Список общих функций и процедур для работы с файлами:
1. Assign(Var F : File; Name : String) – оператор назначения;
2. Reset(Var F : File) – оператор открытия уже существующего файла;
3. Rewrite(Var F : File) – оператор создания нового файла. Если файл с таким именем уже существовал, то он будет стерт.
4. Read(var F : File; X1, X2, …, Xn) – чтение данных из файла;
5. Write(Var F: File; X1, X2, …, Xn) – запись данных в файл;
6. Close(Var F : File) – завершение раоты с фалом F (закрытие файла F);
7. Erase(Var F: File) – уничтожение файла.
8. Rename(Var F : File; Newname : String) – переименование файла F.
9. Seek(Var F : File; N : Longint) – поиск элемента с номером N в файле F и установка маркера в эту позицию.
10. Filesize(Var F : File): Longint – определение количества записей (числа элементов) в файле F.
11. Filepos(Var F : File) : Integer – определение текущего положения указателя файла.
Для работы с текстовыми файлами наряду с перечисленными выше (кроме подпрограмм Seek, Filesize, Filepos) используются следующие:
1. Eoln(Var F : Text) : Boolean –функция, принимает значение True, если маркер достиг конца строки ( при чтении данных из текстового файла) и значении False в противном случае.
2. Append(Var F : Text) – открытие уже существующего файла для добавления данных в конец файла.
3. Writeln(Var F : Text) – завершение текущей строки текстового файла F при его записи.
4. Readln(Var F : Text) – переход к началу следующей строк файла при его чтении.
5. Writeln(Var F : Text, X1 X2, …, Xn) – запись в файл F данных X1 X2, … Xn с завершением текущей строки.
6. Readln(Var F : Text, X1, X2, …, Xn) – чтение N символов файла F с переходом к новой строке.
Варианты заданий
I. Пусть файл F содержит два элемента «4» и «2». Определить, какое значение будет иметь переменная Y после выполнения операторов:
а) Reset(F); Read(F, Y);
If Not Eof)F0 Then Read(F, Y);
If Not Eof(F) Then Read(F,Y);
б) Reset(F); Y:=0; While Not Eof(F) Do Begin
Read(F, X); Y:=Y+ X End;
в) Reset(F); Y:=1; Repeat
Read(F, X); Y:= Y * X;
Until Eof(F);
II. В файле FF записано N вещественных чисел. Написать функцию Nmb(FF), которая должна относительно записанных в файле FF чисел определить:
а) количество положительных чисел,
б) количество отрицательных чисел,
в) сумму всех чисел,
г) сумму положительных чисел,
д) сумму отрицательных чисел.
III. Type Time = Record
hour : 0..23; {Часы}
Min, Sec : 0..59; {Минуты, Секунды}
End;
FileofTime = File Of Time;
Var F1, F2 : Fo;eofTime;
Описать логическую функцию EQ(F1, F2), проверяющую на равенство файлы F1 и F2 типа FileofTime.
IY. Имеется внешний файл First типа Course, содержащий сведения
о студентах первого курса:
Type Exams = (Mathematics, Informatics, Physics);
Student = Record
Fio : String[40]; Group : 41..46;
Marrs : Array[Exams] Of 2..5;
End;
Course = File of Student;
Var First : Course;
Написать программу, которая переписывает в файл Second сведения о студентах:
а) успешно сдавших все экзамены,
б) имеющих задолженность хотя бы по одному предмету,