Здавалка
Главная | Обратная связь

Схема алгоритма: 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

 

Текстовые файлы

Текстовые файлы представляют собой последовательность строк различной длины, каждая из которых заканчивается меткой EOLnEnd Of Line – конец строки (последовательность символов #13#10). В конце файла стоит метка EOFEnd Of File.

Запись данных в текстовый файл практически не отличается от вывода данных на экран терминала. Чтение же данных из текстового файла имеет свои особенности.

Объявить текстовый файл можно двумя способами:

1. указанием его имени и типа в разделе описания переменных:

Var f_text : Text; объявлен текстовый файлf_text,

f_text – имя логического файла – файловой переменной

Внимание! При описании файла его размер не указывается.

2. указанием его типа в разделе определения типов TYPE и имени – в разделе описания переменных:

Type TFile_text = Text;

Var f_text : TFile_text;

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

Assign(имя файловой переменной, ‘путь к физическому файлу’);

Assign(f_text,’D:\User\f_text.txt’);

f_text – имя файловой переменной (логического файла),

D:\User\f_text.txt - полный путь к физическому файлу на внешнем носителе: диск D:, директория (папка) User,
файл f_text.txt

Внимание! Желательно совпадение имени физического файла и имени файловой переменной; расширение имени текстового файла всегда .txt.

После установления пути к физическому файлу его можно открыть:

а) открытие нового файла для записи в него данных:

ReWrite(f_text);

При этом на внешнем носителе создается новый физический файл с заданным именем. Если файл с таким же именем уже существовал, то он очищается,

б) открытие существующего файла для чтения из него данных:

ReSet(f_text);

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

в) открытие существующего файла для записи в его конец новых строк:

Append(f_text);

При этом на внешнем носителе отыскивается файл с заданным именем и, если он найден, то указатель текущей записи становится в конец файла.

Запись в открытый для записи файл осуществляется операторами:

Write( файловая переменная, имя записываемой переменной);

WriteLn( файловая переменная, имя записываемой переменной);

Во втором случае после записи в файл значения переменной текстовый курсор переходит в начало новой строки (как на экране терминала).

В текстовый файл можно записывать данные только целого, вещественного, символьного типа или строки.

Пример: создать текстовый файл и записать в него

1. номер учебной группы

2. фамилию студента

3. имя студента

4. его оценку по информатике

5. средний балл сдачи сессии

Данные вводить с экрана. Все данные записывать в файл с новых строк.

Интерфейс:







©2015 arhivinfo.ru Все права принадлежат авторам размещенных материалов.