Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ПРАКТИЧЕСКАЯ РАБОТА Компьютерные сети_2_1.doc
Скачиваний:
4
Добавлен:
16.11.2018
Размер:
142.85 Кб
Скачать

4. Чтение и запись текстовых файлов

Запись данных в текстовый файл осуществляется процедурой

procedure Write(var F: TextFile; <список выражений>);

Выражения могут быть типов Char, Integer, Real, String, Boolean. При этом допускается возможность форматирования.

Например:

Write(F, 'Вам ', I, ' лет');

Аналогичная процедура Writeln отличается от Write только тем, что после за­писи пишет символ перехода на новую строку, т.е. Writeln формирует одну строку.

Чтение данных из текстового файла осуществляется последовательно от его начала процедурой

procedure Read(var F: TextFile; <список переменных>);

где в списке перечисляются переменные, в которые читаются данные из файла. Например, если определить переменные S1 и S2 как

var S1,S2 : string[4];

то чтение строки, записанной в файл приведенным выше оператором, если использовать оператор

Read(F, S1, I, S2);

даст значение S1, равное "Вам ", значение I равное записанному числу лет, и зна­чение S2, равное " лет".

Аналогичная процедура Readln отличается от Read только тем, что после чте­ния переводит текущую позицию в файле на новую строку. Если в процедуре Re­adln не задан список переменных, то она просто пропускает текущую строку и пе­реходит к следующей.

5. Чтение и запись типизированных файлов

Для типизированных файлов процедуры чтения и записи Read и Write не отличаются от рассмотренных ранее для текстовых файлов. Только типы выражений при записи и переменных при чтении должны соответствовать объявленному типу данных файла. Процедур, аналогичных Readln и Writeln для типизированных файлов нет. Зато есть проце­дура Seek, позволяющая перемещаться по файлу не только последовательно, как в текстовых файлах, но сразу переходить к требуемому элементу. Ее синтаксис:

procedure Seek(var F: File, N: Longint);

где N — номер элемента. Эта процедура перемещает текущую позицию в файле на нужный элемент.

Имеется также функция FilePos:

function FilePos(var F): Longint;

которая возвращает текущую позицию в файле.

6. Чтение и запись нетипизированных файлов

В нетипизированных файлах в место процедур записи и чтения Read и Write имеются процедуры BlockRead и BlockWrite, объявленные следующим образом:

procedure BlockWrite (var f: File; var Buf; Count: Word; [var Result: Word]);

procedure BlockRead (var f: File; var Buf; Count: Word; [var Result: Word]);

В этих процедурах:

Buf — любая переменная, содержимое которой записыва­ется в файл или в которую читаются записи из файла.

Count — выражение типа Word, определяющее число записываемых или читаемых записей.

В необязатель­ный параметр Result заносится число реально записанных или прочитанных запи­сей. Это число может быть меньше или равно числу, указанному как Count. Недо­статочное значение Result при чтении может, например, свидетельствовать, что конец файла достигнут ранее, чем прочиталось заданное число записей. А при за­писи это может означать, например, что диск переполнился.