Общие принципы работы с файлами в Turbo Pascal
Определение. Файлом называется область памяти жесткого диска, имеющая свое имя. Виды файлов типизированные текстовые нетипизированные
Определение. Типизированный файл - последовательность элементов одного типа (неограниченный массив). Описание данного файлового типа: file of file of ;
C явным объявлением файлового типа: Type file of Type WordFile = file of word; Var Var MyFile : WordFile; Без объявления файлового типа: Var file of Var MyFile : file of word;
Type record Type Student = record Name, SerName : string; YearOld : byte; Sessia : array [1..10] of byte; end; Var file of file of file of Var VarFile1 : file of char; VarFile2 : file of Student; VarFile3 : file of string;
Связь файловой переменной с именем дискового файла: Аssign Аssign (МуFilе, C:\МуDirectory\Result.dat'); Не разрешается связывать с одним физическим файлом различные файловые переменные в программе. Открытие нового файла для записи: Rewrite Rewrite (МуFilе); Если файл с таким именем уже существует, он становится пустым. Открытие существующего файла для чтения: Reset Reset (МуFilе); Файл в данный момент времени может быть в одном из двух состояний: либо только для записи, либо только для чтения. Закрытие файла с сохранением в нём изменений: Closе Closе (МуFilе); Незакрытые файлы нарушают файловую структуру на диске, что может приводить к серьезным проблемам с настройкой компьютера.
FileSize( Функция FileSize(МуFilе) определяет число элементов в файле. ЕОF Функция логического типа ЕОF(МуFilе) имеет значение Тruе, если указатель указывает на маркер конца файла (End Of File).
Seek Seek (МуFilе, n) – перемещает указатель в файле MyFile на позицию n. Внимание! Нумерация элементов типизированного файла начинается с нуля. Примеры: Seek Seek (МуFilе, 2) – устанавливает указатель на третий элемент файла. Seek Seek (МуFilе, 0) - устанавливает указатель в начальной позиции (на первый элемент). Seek Seek (МуFilе, FileSize(МуFilе)) - устанавливает указатель после последнего элемента, то есть на признак конца файла.
IOResult Функция IOResult предназначена для поиска ошибок, возникающих при работе с файлами. Эта функция возвращает результат последней операции ввода/вывода. IOResult При безошибочном выполнении операций ввода/вывода функция IOResult всегда возвращает результат равный нулю. {$I-} {отключение контроля ввода/вывода} Reset (F,'C:\TP7\BIN\Text.txt'); {открытие файла для чтения} If IOResult <> 0 then Writeln ('Ошибка при открытии файла'); {$I+} {включение контроля ввода/вывода} По умолчанию контроль ввода/вывода в Паскале включен автоматически.
Repeat WriteReadLn AssignReset If then Begin WriteLn Close End Repeat Write('Введите имя файла>'); ReadLn(Name); Assign(F,Name); Reset(F); If IOresult<>0 then Begin WriteLn('Ошибка чтения'); Close(F); End; Until Until IOresult=0;
Переименование файла: Rename Rename (МуFilе, FileName); MyFile – имя файловой переменной, связанной с файлом на жестком диске. FileName – новое имя этого файла Уничтожение части файла от текущего положения до конца: Truncate Truncate (МуFilе); Уничтожение всего файла: Erase Erase (МуFilе); Переменные файлового типа в Паскале соответствуют не только физическим файлам, но и логическим устройствам, связанным с вводом и выводом информации. Поэтому не пытайтесь удалить клавиатуру или принтер.
Проверить, является ли один типизированный файл частью другого. Скопировать содержание типизированного файла с N по K позицию в другой типизированный файл. Создать файл, содержащий произвольные строки. Проверить правописание сочетаний жи-ши, ча-ща, чу-щу. Если найдены ошибки, исправить их и написать исправленный слог с большой буквы. Вывести на экран содержимое первоначального и измененного файлов.