Здесь показаны различия между двумя версиями данной страницы.
Следующая версия | Предыдущая версия | ||
subjects:programming:pascal:file [2018/06/05 02:24] ¶ создано |
subjects:programming:pascal:file [2021/04/02 17:20] (текущий) ¶ |
||
---|---|---|---|
Строка 1: | Строка 1: | ||
====== Работа с файлами ====== | ====== Работа с файлами ====== | ||
- | Файлы бывают 3-х видов: | + | Файлы (//для Pascal//) бывают 3-х видов: |
- | * текстовые файлы | + | * текстовые файлы<code pascal> |
- | * типизированные файлы | + | var fl:text; {текстовый файл} |
- | * нетипизированные файлы. | + | </code> |
+ | * типизированные файлы<code pascal> | ||
+ | var | ||
+ | flabc: file of char; {типизированный файл} | ||
+ | fl123: file of integer; {типизированный файл} | ||
+ | </code> | ||
+ | * нетипизированные файлы<code pascal> | ||
+ | var fl: file; {нетипизированный файл} | ||
+ | </code> | ||
+ | |||
+ | ===== Основные процедуры ===== | ||
+ | ==== Режим открытия файла ==== | ||
+ | * ''reset (fl);'' --- Открытие существующего файла для чтения при последовательном доступе. | ||
+ | * ''rewrite (fl);'' --- Открытие создаваемого файла для записи в него информации; если файл с таким именем уже существует, то информация в нем стирается. | ||
+ | * ''append (fl);'' --- Добавление информации в конец. | ||
+ | |||
+ | ==== Работа с открытым файлом: основное ==== | ||
+ | * ''Read (f, список переменных);'' --- Чтение из файла. | ||
+ | * ''ReadLn (f, список переменных);'' --- Чтение из файла, но после прочтения данных пропускаются все оставшиеся символы в данной строке, включая метку конца строки. | ||
+ | * ''Write (f, список переменных);'' --- Запись в конец файла. | ||
+ | * ''WriteLn (f, список переменных);'' --- Запись в конец файла + символа конца строки. | ||
+ | |||
+ | ==== Работа с открытым файлом: дополнительное ==== | ||
+ | * Чтение до конца файла: оператор EOF (//end of file//). \\ ''eof(f);'' --- Возвращает ''True'', если достигнут конец **файла**. | ||
+ | * Чтение до конца строки: оператор EOL (//end of line//). \\ ''eoln(f);'' --- Возвращающая ''True'', если достигнут конец **строки**. | ||
+ | * ''erase(переменная_файла);'' --- Удалить файл. | ||
+ | * ''rename(переменная_файла,'новое имя файла');'' --- Переименовать файл. | ||
+ | * ''close (f); {закрытие файла}'' -- Закрыть файл. | ||
+ | |||
+ | Работа с файлом осуществляется через три основных шага: | ||
+ | - Процедура ''assign''. | ||
+ | - Процедура ''reset'' или ''rewrite''. | ||
+ | - Процедура ''close''. | ||
===== Открытие текстового файла для чтения ===== | ===== Открытие текстового файла для чтения ===== | ||
- | <code pascal> | + | <code pascal readtextfile.pas> |
Program readtextfile; | Program readtextfile; | ||
- | Uses crt; | + | Uses crt; // Подключаем модуль для clrscr |
var | var | ||
fl:text; // Для связи программы с текстовым файлом. Файловые переменные, предназначенные для работы с текстовыми файлами, должны иметь тип данных Text. | fl:text; // Для связи программы с текстовым файлом. Файловые переменные, предназначенные для работы с текстовыми файлами, должны иметь тип данных Text. | ||
str:string; // Будем использовать для чтения строк из файла. | str:string; // Будем использовать для чтения строк из файла. | ||
begin | begin | ||
- | clrscr; | + | clrscr; // clrscr - очищает экран |
assign (fl, 'programs\text.txt'); // Теперь посредством файловой переменной «fl» мы можем управлять файлом «text.txt». | assign (fl, 'programs\text.txt'); // Теперь посредством файловой переменной «fl» мы можем управлять файлом «text.txt». | ||
reset (fl); // Инициация файла – это открытие файла для чтения, записи либо для чтения и записи одновременно. Процедура Reset говорит нам о том, что файл открывается только для чтения. | reset (fl); // Инициация файла – это открытие файла для чтения, записи либо для чтения и записи одновременно. Процедура Reset говорит нам о том, что файл открывается только для чтения. | ||
- | read (fl,str); // Для того чтобы получить доступ к записям, хранящимся в файле, используются процедуры Read, Readln, Write, Writeln. В результате действия процедуры Read из файловой переменной «fl» будет прочитана информация и эта информация будет записана в строковую переменную «str». | + | while not eof(fl) do begin // Цикл работает, пока текущая позиция не дойдёт до конца строки. |
+ | readln (fl,str); // Для того чтобы получить доступ к записям, хранящимся в файле, используются процедуры Read, Readln, Write, Writeln. В результате действия процедуры Read из файловой переменной «fl» будет прочитана информация и эта информация будет записана в строковую переменную «str». | ||
write(str); // Вывод на экран. | write(str); // Вывод на экран. | ||
+ | end; | ||
close(fl); // Стандартная процедура закрытия файла. | close(fl); // Стандартная процедура закрытия файла. | ||
- | readln; | + | readln; // Ожидание ввода, т.е. нажатия "Enter" от пользователя. |
end. | end. | ||
</code> | </code> | ||
FIXME | FIXME |