Здесь показаны различия между двумя версиями данной страницы.
| Следующая версия | Предыдущая версия | ||
|
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 | ||
Записаться на занятия к репетитору