Воскресенье, 19.05.2024, 17:04
Приветствую Вас Гость | RSS
delphicode.clan.su
Форма входа
Поиск
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
 
 ОПЕРАЦИИ ВВОДА/ВЫВОДА
  
 

Рассмотрим две самые распространенные операции, выполняемые при работе с файлами, чтение и запись. Для их осуществления применяются специальные функции файлового ввода/вывода. Для выполнения операции чтения или записи необходимо произвести следующие действия:

- Объявить файловую переменную необходимого типа.
- При помощи функции AssignFile связать эту переменную с требуемым файлом.
- Открыть файл при помощи функций Append, Reset, Rewrite.
- Выполнить операции чтения или записи. 
- Закрыть файл при помощи функции CloseFile.

Рассмотрим пример:

Поместим на форму компонент TMemo, TOpenDialog и TButton. В обработчике событий OnClick компонента TButton запишем следующее:

procedure TForm1.Button1Click(Sender: TObject);
var F: TextFile;
S: string;
begin
if OpenDialog1.Execute
then AssignFile(F, OpenDialog1.FileName)
else Exit;
Reset(F);
while Not EOF(F) do
begin
Readln(F, S);
Memo1.Lines.Add(S);
end;
CloseFile(F);
end;

В результате выполнения при нажатии кнопки появляется стандартный диалог открытия, выбираем любой текстовый файл и его содержимое добавиться в Memo.

При открытии файла его имя связывается с файловой переменной F при помощи процедуры AssignFile. Затем при помощи процедуры Reset этот файл открывается для чтения и записи.

В цикле выполняется чтение из файла текстовых строк и запись их в компонент TMemo. Процедура Readin осуществляет чтение текущей строки файла и переходит на следующую строку. Цикл выполняется, пока функция EOF не сообщит о достижении конца файла. После завершения чтения файл закрывается.

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

procedure TForm1.Button1Click(Sender: TObject);
var F: TextFile;
S: string;
begin
S:=Memo1.text; //переменной s присваивается текст из Memo
if OpenDialog1.Execute 
then AssignFile(F, OpenDialog1.FileName) 
else Exit;
Append(F); //открываем файл в который будем записывать данные
WriteLn(F, S); //записываем
CloseFile(F);
end;