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

7. Закрытие файлов

После выполнения различных операций чтения и записи файл должен быть закрыт процедурой CloseFile:

procedure CloseFile(var F: File);

8. Проверка окончания файла

При операциях ввода/вывода проверять окончание файла можно функцией Eof(F: File), возвращающей TRUE при достижении конца файла.

9. Файловый ввод/вывод с помощью компонентов

В Delphi работа с текстовыми файлами может осуществляться и без непосредственного обращения к функциям Object Pascal. Для этого можно исполь­зовать методы LoadFromFile и SaveToFile, имеющиеся у классов TStrings и TStringList. Эти классы описывают списки строк и обладают множеством мето­дов, позволяющих манипулировать строками.

Многие свойства компонентов имеют тип TStrings и, следовательно, в них можно загружать текстовые файлы. Например, прочитать тестовый файл, а также файл документа в обогащенном формате RTF можно в компонент RichEdit следующим образом:

RichEditl.Lines.LoadFromFile('Test.rtf'’);

После того, как пользователь что-то изменил в тексте, его можно сохранить в файле оператором

RichEditl.Lines.SaveToFile('Test.rtf'’);

Формат, в котором сохраняется текст, определяется значением свойства PlainText компонента RichEdit. Если PlainText = FALSE (это значение принято по умол­чанию), то файл записывается в формате RTF. Если вам желательно сохранить файл в текстовом формате, то перед сохранением текста в файл надо установить PlainText в TRUE.

Аналогичным образом можно работать и с компонентом Memo. Только в этом случае нет необходимости думать о формате, так как Memo работает только с текстовым форматом.

Если не требуется отображать текст пользователю, а надо просто прочи­тать содержимое некоторого текстового файла, обработать текст и сохранить его в файле, можно сделать это, например, следующим образом. Объявить перемен­ную списка строк типа TStringList, в которой будет храниться текст файла. В мо­мент создания формы или в момент, когда надо прочитать файл, разместить в памяти эту переменную. Например:

var List: TStringList;

……..

List := TStringList.Create;

После этого можете читать в переменную List файл:

List.LoadFromFile('test.txt' ) ;

Далее можно работать с этим текстом методами, свойственными типу TString­List: Add, Delete и т.п. В заключение можно сохранить измененный текст в файле и удалить из памяти уже ненужный список:

List.SaveToFile('test.txt');

List.Free;

Через компоненты Delphi можно работать не только с текстовыми файлами, но и с файлами изображений и мультимедиа.

10. Обработка ошибок при работе с файлами в delphi

При работе с файлами, при чтении и записи в них каких-то данных возможны различные ошибки. Если не принять соответствующих мер, то эти ошибки приве­дут к прерыванию работы программы. Предотвратить это можно двумя путями:

  • Первый предполагает обработку исключений InOutError, поле errorcode которых содержит информацию о конкретном виде ошибки.

  • Второй предполагает применение опции {$I-}, отключающей генерацию исключений ошибок ввода/вывода, и дальнейшее обращение к функ­ции lOResult, возвращающей код ошибки и сбрасывающей его в 0 (так что повтор­ное обращение к lOResult бессмысленно). После обработки операции ввода/вывода контроль ошибок можно снова включить опцией {$I+}. В этом случае общая орга­низация работы с файлами строится примерно по такой схеме:

AssignFile(F, OpenDialogl.FileName);

{$I-}

Reset (F) ;

($I+}

I:=IOResult;

if I <> 0 then <операторы обработки кода ошибки> else ...

{$I-}

<операторы чтения или записи>

{$I+}

I:=IOResult;

if I <> 0 then <операторы обработки кода ошибки>

CloseFile(var F: File);