Схема алгоритма: 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
Текстовые файлы Текстовые файлы представляют собой последовательность строк различной длины, каждая из которых заканчивается меткой EOLn – End Of Line – конец строки (последовательность символов #13#10). В конце файла стоит метка EOF – End 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, Внимание! Желательно совпадение имени физического файла и имени файловой переменной; расширение имени текстового файла всегда .txt. После установления пути к физическому файлу его можно открыть: а) открытие нового файла для записи в него данных: ReWrite(f_text); При этом на внешнем носителе создается новый физический файл с заданным именем. Если файл с таким же именем уже существовал, то он очищается, б) открытие существующего файла для чтения из него данных: ReSet(f_text); При этом на внешнем носителе отыскивается файл с заданным именем и, если он найден, то указатель текущей записи становится в начало файла , в) открытие существующего файла для записи в его конец новых строк: Append(f_text); При этом на внешнем носителе отыскивается файл с заданным именем и, если он найден, то указатель текущей записи становится в конец файла. Запись в открытый для записи файл осуществляется операторами: Write( файловая переменная, имя записываемой переменной); WriteLn( файловая переменная, имя записываемой переменной); Во втором случае после записи в файл значения переменной текстовый курсор переходит в начало новой строки (как на экране терминала). В текстовый файл можно записывать данные только целого, вещественного, символьного типа или строки. Пример: создать текстовый файл и записать в него 1. номер учебной группы 2. фамилию студента 3. имя студента 4. его оценку по информатике 5. средний балл сдачи сессии Данные вводить с экрана. Все данные записывать в файл с новых строк. Интерфейс: ©2015 arhivinfo.ru Все права принадлежат авторам размещенных материалов.
|