Работа с файлами.
Процедура Assign(var f; name : String); Связывает внешний файл с именем name и переменную файлового типа f. Все дальнейшие операции с переменной f будут выполняться с указанным внешним файлом. Assign(f, 'TEST.TXT');
Процедура Append(var f : Text); Открывает существующий текстовый файл f для дополнения. Append(f); { Открыть файл для добавления}
Процедура Close(var f); Закрывает открытый файл, связанный с переменной f. Close(f);
Функция Eof(var f); типа Boolean; Показывает значение Истина (True) при наличии признака конца файла для типизированных или нетипизированных файлов, указываемых файловой переменной f. while not Eof(f) do{Пока нет конца файла делай...}
Функция FilePos(var f); типа Longint; Показывает текущую позицию в файле, указываемом переменной f. Если эта позиция в конце файла, то функция возвращает значение, равное длине файла, а если в начале файла, значение 0.
Функция FileSize(var f); типа Longint; Показывает текущий размер файла f в байтах. Если файл пуст, то 0.
Процедура Rewrite(var f : file); Создает и открывает новый файл. Если такой файл уже есть, то он удаляется и создается новый с тем же именем. Rewrite(f); { Создаем новый файл }
Программа создает файл TEST и записывает в него текст. Var f: text; Begin Assign(f, 'TEST.TXT'); { связываем файловую переменную f } { c именем файла 'TEST.TXT' } Rewrite(f); { Создаем новый файл WriteLn(f,'Исходный текст'); { Записываем строку в файл } Close(f); { Закрываем файл } Append(f); { Открыть файл для добавления} { в его конец строки } WriteLn(f,'Добавляемый текст'); { Добавляем строку } Close(f); { Закрываем файл} End.
Программа на Паскале, которая открывает сразу два файла (один для чтения, а второй создает вновь для записи). Командой Readln(f1,s); из первого файла считывается строка s. В цикле For организуется доступ к ее отдельным символам и производится замена буквы k на K. Затем преобразованная строка сохраняется во втором файле. Считывание строк проводится в цикле repeat- until и завершается при нахождении конца первого файла Eof(f1).
Var f1,f2:text; s:string; i:byte; Begin Assign(f1, 'text.txt'); Assign(f2, 'text_new.txt'); Reset(f1); Rewrite(f2); Repeat Readln(f1, s); for i:=1 to Length(s) do if s[i]='k' then s[i]:='K'; WriteLn(f2, s); until Eof(f1); Close(f1); Close(f2); End. Var f1,f2:file of char; ch:char; Begin Assign(f1, 'text.txt'); Assign(f2, 'text_new.txt'); Reset(f1); Rewrite(f2); Repeat Read(f1, ch); if ch='k' then ch:='K'; Write(f2, ch); Until Eof(f1); Close(f1); Close(f2); End. Программы реализующие одну и ту же задачу.
Покажем простую программу, выполняющую чтение некоторого текста. Эта программа выводит на экран последовательность кодов символов, составляющих файл text.txt.
Program TextFile1; Var f : text; {Читаемый текст} S : char; {Очередной прочитанный символ} Begin assign(f, 'text.txt'); {Связываем файл text.txt с переменной f} reset(f,); {Открываем файл text.txt для чтения} while not Eof(f) do{Пока нет конца файла делай...} begin readln(f, S);{Читаем из файла очередной символ в переменную s} writeln(s);{Печатаем код символа на экран} end; close(f);{Закрываем файл} readln End.
Создает файл это на диске D в папке PABC
Дописывает файл это.
Задание. Напишите программу создания текстового файла в котором будет записан текст этой программы.
Решение задачи через цикл while.
Решение задачи через цикл repeat.
УДАЧИ!!!