Содержание
-
Работа с файлами в Паскаль
-
Любой файл имеет три характерные особенности. Во-первых, у него есть имя, что дает возможность программе работать одновременно с несколькими файлами. Во-вторых, он содержит компоненты одного типа. Типом компонентов может быть любой тип Паскаля, кроме файлов. Иными словами, нельзя создать «файл файлов». В-третьих, длина вновь создаваемого файла никак не оговаривается при его объявлении и ограничивается только емкостью устройств внешней памяти. Файловый тип или переменную файлового типа в Паскале можно задать одним из трех способов: Type =fileof;=text;=file; Здесь – имя файлового типа (правильный идентификатор); File, of – зарезервированные слова (файл, из); – любой тип Паскаля, кроме файлов. Пример описания файлового типа в ПаскалеType Product=record Name: string; Code: word; End; Text80= fileofstring[80];Var F1: fileofchar; F2: text; F3: file; F4: Text80; F5: fileofProduct; В зависимости от способа объявления можно выделить три вида файлов Паскаля: типизированные файлы Паскаля(задаются предложением fileof..); текстовые файлы Паскаля(определяются типом text); нетипизированные файлы Паскаля(определяются типом file).
-
Close(); - закрытие файла. Rewrite(); - открытие файла для записи. Write(, ); - запись в файл. Reset(); - подготовка файла к чтению. Read(,); - чтение из файла. Eof(); - функция определения достижения конца файла (возвращает false или true). Rename(, ); - изменение имя файла. Erase(); - уничтожение файла. Truncate(); - уничтожение части файла с текущей позиции до конца. Append(); - открытие файла для добавления записи, запись осуществляется в конец файла.
-
Пример решения задачи с файлами Паскаля Пусть нам необходимо сформировать текстовый файл с помощью Паскаля, а затем переписать из данного файла во второй только те строки, которые начинаются с буквы «А» или «а». Пояснения: нам понадобятся две файловые переменные f1 и f2, поскольку оба файла текстовые, то тип переменных будет text. Задача разбивается на два этапа: первый – формирование первого файла; второй – чтение первого файла и формирование второго. Для завершенности решения задачи есть смысл добавить еще одну часть, которая в задаче явно не указана – вывод на экран содержимого второго файла.
-
Program primer; Var f1,f2:text; I,n: integer; S: string; Begin{формируем первый файл} Assign(f1,'file1.txt'); {устанавливаем связь файловой переменной с физическим файлом на диске} Rewrite(f1);{открываем файл для записи} Readln(n);{определим количество вводимых строк} for i:=1 to n do Begin readln(s); {вводим с клавиатуры строки} writeln(f1,s); {записываем последовательно строки в файл} end; close(f1); {заканчиваем работу с первым файлом, теперь на диске существует файл с именем file1.txt, содержащий введенные нами строки. На этом программу можно закончить, работу с файлом можно продолжить в другой программе, в другое время, но мы продолжим} {часть вторая: чтение из первого файла и формирование второго} Reset(f1); {открываем первый файл для чтения} Assign(f2,'file2.txt'); {устанавливаем связь второй файловой переменной с физическим файлом} Rewrite(f2);{открываем второй файл для записи} {Дальше необходимо последовательно считывать строки из первого файла, проверять выполнение условия и записывать нужные строки во второй файл. Для чтения из текстового файла рекомендуется использовать цикл по условию «пока не конец файла»} While not eof(f1) do Begin Readln(f1,s);{считываем очередную строку из первого файла} If (s[1]='A') or (s[1]='a') then Writeln(f2,s); {записываем во второй файл строки, удовлетворяющие условию} End; Close(f1);{заканчиваем работу с файлами} Close(f2); {часть третья: выводим на экран второй файл} Writeln; Writeln('Второй файл содержит строки:'); Reset(f2); {открываем второй файл для чтения} Whilenoteof(f2) do {пока не конец второго файла} Begin Readln(f2,s);{считываем очередную строку из второго файла} Writeln(s); {выводим строку на экран} End; End.
Нет комментариев для данной презентации
Помогите другим пользователям — будьте первым, кто поделится своим мнением об этой презентации.