Обработка текстовых файлов на языке Турбо Паскаль

Курсовой проект - Компьютеры, программирование

Другие курсовые по предмету Компьютеры, программирование

µкстовый файл строка символов завершается признаком конца строки 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.

Ниже будут приведены примеры программ обрабатывающих текстовый файл.

  1. Дан входной файл 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); {Записываем символ в вых