|
Новости |
Операции над текстовыми файламиКак уже установлено, текстовые файлы состоят из строк, поделённых на символы. Каждая строка заканчивается парой символов CR/LF, файл заканчивается символом Ctrl-Z. Ctrl-Z заносится в открытый файл в момент его закрытия. Текстовые файлы могут быть связаны с набором данных либо с логическими устройствами. В первом случае обработка данных, содержащихся в файле, может осуществляться после выполнения процедуры Assign и одной из процедур Reset, Rewrite, Append. По окончании обработки должна быть выполнена процедура Close. В другом случае, т.е. при связи файла с устройством, можно воспользоваться предопределённой файловой переменной. В таком случае не допускается выполнение процедур Assign, Reset, Rewrite, Close по отношению к этой переменной либо можно рассматривать устройство как набор данных с символическим именем устройства, воспользоваться процедурой Assign для связи файла с устройством, затем приступить к обработке файла. Процедура AssignСинтаксис: Assign (TextVar, StrExp) TextVar - имя файловой переменной типа text, StrExp - строковое выражение. Файл TextVar не должен быть открытым. TextVar не может быть именем предопределённой файловой переменной. Процедура Assign связывает файл TextVar с набором данных либо с логическим устройством, имя которого определено StrExp. Пример:
Имя файловой переменной Device представляет текстовый файл. Процедура Assign связывает файл Device с консолью. Процедура Assign открывает файл Device. Процедура ResetСинтаксис: Reset (TextVar) TextVar - имя файловой переменной типа text. Перед выполнением процедуры Reset файл TextVar должен быть связан с существующим набором данных или с логическим устройством. TextVar не может быть именем предопределённой файловой переменной. Процедура Reset открывает файл TextVar. Если файл TextVar связан с логическим устройством, то он уже открыт и использование процедуры Reset ничего не изменит. Пример:
Процедура Assign свяжет текстовый файл InpFile с набором данных OLDBOOK. Процедура Reset откроет текстовый файл InpFile для чтения. Процедура RewriteСинтаксис: Rewrite(TextVar) TextVar - имя файловой переменной типа text. Перед выполнением процедуры Rewrite файл TextVar должен быть связан с существующим набором данных или с логическим устройством. TextVar не может быть именем предопределённой файловой переменной. Процедура Rewrite открывает файл TextVar для записи. Если файл TextVar связан с логическим устройством, то он уже открыт и процедура Rewrite не приведёт ни к каким результатам. Если файл TextVar связан с несуществующим набором данных, то последний будет создан. Если набор данных существует, то он будет уничтожен и создан заново. В обоих случаях будет создан пустой набор данных. Пример:
Процедура Assign связывает текстовый файл OutFile с набором данных NEWBOOK. Процедура Rewrite открывает файл OutFile для записи. После открытия рассматриваемый файл пуст. Процедура AppendСинтаксис: Append (TextVar) TextVar - имя файловой переменной типа text. Перед выполнением процедуры Append файл TextVar должен быть связан с существующим набором данных или с логическим устройством. TextVar не может быть именем предопределённой файловой переменной. Процедура Append открывает файл TextVar. Если файл TextVar связан с логическим устройством, то он уже открыт и процедура Append не приведёт ни к каким результатам. Если файл TextVar связан с несуществующим набором данных, то он будет открыт, а указатель файла будет установлен к конец. Пример:
Процедура Assign связывает текстовый файл Extend с набором данных BOOK. Процедура Append открывает файл Extend для расширения. Процедура CloseСинтаксис: Close (TextVar) TextVar - имя файловой переменной типа text. TextVar не может быть именем предопределённой файловой переменной. Процедура Close закрывает файл TextVar. Пример:
При явном определении имя Output не является именем предопределённой файловой переменной, поэтому использование процедур Assign и Rewrite правильное и обязательное. После выполнения приведённой программы будет создан набор данных из 8 символов. Обращение к процедуре Close приведёт к вводу символа Ctrl-Z и выполнению действий, заканчивающих образование набора данных JB.DOC, содержащего последовательность символов: janek CR LF Ctrl-Z. Функция EofСинтаксис: Eof (TextVar) TextVar - имя файловой переменной типа text. Если TextVar имеет значение Input, то обращение может быть упрощено до Eof. Функция Eof может применяться к файлу, связанному с множеством данных или с логическим устройством. В обоих случаях результатом функции будет величина типа boolean с значениями true или false. Если файл связан с набором данных, то результатом функции Eof будет значение true, когда указатель файла находится перед Ctrl-Z или в конце. В противном случае результатом функции будет величина false. Если файл связан с логическим устройством, то результатом функции Eof будет значение true когда последним интерпретируемым символом будет Ctrl-Z. В противном случае результатом функции будет величина false. Пример:
Если при выполнении программы с консоли будут введены символы Ctrl-Z и CR, то будет выведено сообщение FALSE. Это произойдёт потому, что символ Ctrl-Z будет проигнорирован, т.е. результатом функции Eof будет величина со значением false. Функция SeekEofСинтаксис: SeekEof (TextVar) TextVar - имя файловой переменной типа text. Если TextVar имеет значение Input, то обращение может быть упрощено до SeekEof. Действие функции SeekEof аналогично действию функции Eof. Будут пропущены пробелы, знаки табуляции, CR и LF, результат будет таким же, как и для функции Eof. Пример:
Если набор данных STRANGE.DOC состоит из пустой строки, то после выполнения программы будет выведено сообщение TRUE. |
На главную страницу(с)Все права защищеныПо всем интересующим вопросам прошу писать на электронный адрес |