Обработка текстовых файлов на языке Турбо Паскаль
Курсовой проект - Компьютеры, программирование
Другие курсовые по предмету Компьютеры, программирование
µкстовый файл строка символов завершается признаком конца строки EOLn.
WriteLn используется только для текстовых файлов. При вызове
WriteLn можно опускать параметр список вывода, в этом случае в файл передается признак конца строки, что при выводе на экран приведет к переводу курсора в начало следующей строки.
Приведём пример программы, использующей процедуру Write:
Program Write_into_my_file;
Var F:String; {Фамилия}
D:Word; {Дата рождения}
T:Text;
Begin
Assign(T,my_file.txt);
Rewrite(T);
F:=Sharifov ;
D:=1987;
WriteLn(T,F,Rustam );
WriteLn(T,D);
Close(T);
End.
Функция EOLn([файловая переменная]);
Это логическая функция, то есть возвращает значения TRUE или FALSE. Возвращает значение True, если на входном текстовом файле указатель достиг маркера конца строки. Иначе принимает значение False.
Если параметр [файловая переменная] опущен, функция проверяет стандартный файл Input.
Приведем пример программы использующей функцию EOLn:
Допустим нам дан входной текстовый файл In состоящий только из символьного типа данных Char. Нам надо записать в выходной текстовый файл Out только первую строку из входного файла.
Program End_Of_Line;
Var
In,Out:Text;
C:Char;
Begin
Assign(In,indata.txt);
Assign(Out,outdata.txt);
Reset(In);
Rewrite(Out);
Repeat
Read(In,C);
Write(Out,C);
Until EOLn; {Пока курсор не достигнет первого маркера конца строки будет производиться считывание и запись}
End.
Функция EOF([файловая переменная]);
Проверяет является ли текущая позиция файла концом файла. EOF возвращает TRUE, если следующим считанным символом из файла или если файл пуст будет признак конца файла. В противном случае функция EOF возвращает FALSE.
Если параметр [файловая переменная] опущен то функция проверяет стандартный файл Input.
С помощью этой функции можно с легкостью считать всю информацию из файла.
Приведем пример программы использующей функцию EOF:
Допустим нам дан входной текстовый файл In состоящий только из символьного типа данных Char. Нам надо записать в выходной текстовый файл Out все символы из входного файла.
Program End_Of_Line;
Var
In,Out:Text;
C:Char;
Begin
Assign(In,indata.txt);
Assign(Out,outdata.txt);
Reset(In);
Rewrite(Out);
Repeat
Read(In,C);
Write(Out,C);
Until EOF; {Пока курсор не достигнет конца файла будет производиться считывание и запись}
End.
Функция SeekEOLn([файловая переменная]);
Пропускает все пробелы и знаки табуляции до маркера конца строки ЕОLn или до первого значащего символа и возвращает TRUE если маркер обнаружен. Т.е. функция проверяет есть ли значащие символы до конца строки и принимает значение FALSE если они есть.
Если параметр [файловая переменная] опущен, функция проверяет стандартный файл INPUT.
Приведём пример программы использующей функцию EOLn:
Допустим нам дана строка во входном текстовом файле In:
1 2 3 4 5
(Без кавычек, после 5 стоят ненужные пробелы)
Program Seek_End_Of_line;
Var
s:array[1..5] of byte;
i:integer;
f:text;
Begin
assign(f,temp.txt);
reset(f);
i:=0;
repeat
inc(i);
read(f,s[i]); {когда считается 5-ка цикл остановится так как нет значящих символов}
until seekeoln(f);
End.
Функция SeekEOF([файловая переменная]);
Логическая функция. Пропускает все пробелы, знаки табуляции и маркеры конца строки EOLn до маркера конца файла или до первого значащего символа и возвращает TRUE,если маркер обнаружен. В противном случае FALSE. То есть с помощью этой функции можно проверить есть ли значащие символы до конца строки.
Если параметр [файловая переменная] опущен, функция проверяет стандартный файл INPUT.
Процедура Flush([файловая переменная]);
Сбрасывает буфер текстового файла, связанного с файловой переменной и открытого для вывода процедурой Rewrite или Append. Это даёт гарантию того , что вся информация, записываемая в файл, будет сохранена во внешнем физическом файле.
Процедура не влияет на файлы открытые для ввода.
Процедура SetTextBuf([файловая переменная],[новый размер буфера]);
Назначает буфер ввода-вывода для текстового файла, связанного с файловой переменной. [новый размер буфера] это переменная типа Word.
Никогда не применяется к открытым файлам, поскольку в этом случае возможны потери данных.
При обработке текстовых фалов на языке Pascal приходиться применять не только операторы работающие с файлами, но и другие возможности и структуры языка Pascal.
Ниже будут приведены примеры программ обрабатывающих текстовый файл.
- Дан входной файл In состоящий из текста на русском языке. В тексте точки встречаются только в конце предложения. Нужно перевести все повествовательные предложения оканчивающиеся точкой в восклицательные. Результат записать в выходной файл.
Program vosklicateliy_znak;
Var
C:Char;
Indata,Out:Text;
Begin
Assign(Indata,indata.txt); {Связываем }
Assign(Out,outdata.txt); { файлы}
Reset(Indata); {Открываем}
Rewrite(Out); {файлы}
While not EOF(Indata) do
Begin
Read(Indata,C); {Считываем один символ}
If C=. then C:=!; {Если символ точка, то присваиваем символьной переменной значение ! то есть восклицательный знак}
Write(Out,C); {Записываем символ в вых