Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции по Паскалю.doc
Скачиваний:
61
Добавлен:
04.06.2015
Размер:
7.62 Mб
Скачать

Var n : Integer;

f_int : File Of Integer;

Begin

ClrScr;

Assign(f_int, ‘d:\User\f_int.dat’);

ReWrite(f_int);

Repeat

Write(‘Введите число:’);

ReadLn(n);

If (n <> 0)

Then Write(f_int,n);

Until (n=0);

ReSet(f_int);

Схема алгоритма: While Not(EOF(f_int)) Do

Begin

Read(f_int, n);

Write(n:5);

End;

WriteLn;

Close(f_int);

ReadLn;

End.

Функции для работы с типизированными файлами

Для работы с типизированными файлами используются следующие функции:

FileSize(файловая переменная)- текущий размер файла – количество записей в файле,

FilePos(файловая переменная)- номер текущей записи в файле – позиция указателя текущей записи (нумерация записей начинается снуля, номерпоследнейзаписи наединицу меньшетекущего размера файла),

И процедуры:

Seek(файловая переменная, номер)- перемещение указателя на запись с заданным номером (нумерация записей начинается снуля),

Truncate(файловая переменная)- усечение файла после текущей записи: все записи в файле после текущей удаляются, и после нее ставится метка конца файлаEOF,

Erase(файловая переменная) - уничтожение файла – стирание его с диска.

Пример: открыть файл, созданный предыдущей программой, определить его конечный размер, номер начальной записи, поставить указатель на третью запись (по номеру), вывести ее на экран, усечь файл, начиная с нее и вывести новый файл на экран:

Программа:

Program File_1;

Uses CRT;

Var n : Integer;

f_int : File Of Integer;

Begin

ClrScr;

Assign(f_int, ‘d:\User\f_int.dat’);

ReSet(f_int); открываем файл для чтения

While Not(EOF(f_int)) Do пока не конец файла:

Begin

Read(f_int, n); читаем из него в n очередную запись

Write(n:5); и выводим значение n на экран

End;

WriteLn;

n := FileSize(f_int); nразмер файла- количество записей в нем

WriteLn(‘Размер файла равен ’, n);

ReSet(f_int); ставим указатель на начальную запись

n := FilePos(f_int); nномер начальной записи в файле

WriteLn(‘Номер начальной записи равен ’, n);

Seek(f_int, 3); ставим указатель на запись с номером 3

Read(f_int, n); читаем из файла в переменную n текущую запись

WriteLn(‘Запись с номером 3 равна ’, n);

Truncate(f_int); удаляем из файла все записи после текущей

ReSet(f_int); открываем файл для чтения - ставим указатель

на начальную запись

While Not(EOF(f_int)) Do снова читаем файл и выводим его на экран

Begin

Read(f_int, n);

Write(n:5);

End;

WriteLn;

Close(f_int); закрываем файл

ReadLn;

End.

На экран будет выведено:

3 -1 5 12 -6

Размер файла равен 5

Номер начальной записи равен 0

Запись с номером 3 равна 12

3 -1 5 12