Запись и чтение данных из файлов
|
Шеф дает секретарше две дискеты:
- Леночка, скопируйте вот эту дискету на эту, чистую.
Через пару минут она прибегает в слезах:
- Михаил Иваныч, чистую дискету ксерокс зажевал!
|
{
В следующем примере показано как можно осуществить чтение
и запись данных в/из файла. Данный пример предполагается
в первую очередь использовать тем, кто делает первые шаги
в вопросах чтения/записи. Для получения дополнительной
информации о каждом объекте, обратитесь к электронной справке.
В коде присутствует минимальная обработка исключительных
ситуаций, но она никоим образом не является законченным решением.
Для оформления программы необходимо установить на форме
компонент TMemo с заголовком Запись, и кнопку с заголовком
Чтение. Запустите программу, поместите несколько строк в "memo",
после чего нажмите на кнопку Запись. Очистите "memo", и нажмите Чтение.
}
procedure TForm1.BtnWriteClick(Sender: TObject);
{ автор: Michael Vincze
}
var
FileStream: TFileStream;
Writer: TWriter;
I: Integer;
begin
FileStream :=
TFileStream.Create('c:\delphi\projects\delta40\fileio\stream.txt',
fmCreate or fmOpenWrite or fmShareDenyNone);
Writer := TWriter.Create(FileStream, $FF);
Writer.WriteListBegin;
for I := 0 to Memo1.Lines.Count - 1 do
Writer.WriteString(Memo1.Lines[I]);
Writer.WriteListEnd;
Writer.Destroy;
FileStream.Destroy;
end;
procedure TForm1.BtnReadClick(Sender: TObject);
{ автор: Michael Vincze
}
var
FileStream: TFileStream;
Reader: TReader;
begin
{ пробуем открыть несуществующий файл
}
try
FileStream :=
TFileStream.Create('c:\delphi\projects\delta40\fileio\bogus.txt',
fmOpenRead);
except
; { Destroy не нужен, поскольку Create потерпела неудачу }
end;
FileStream :=
TFileStream.Create('c:\delphi\projects\delta40\fileio\stream.txt',
fmOpenRead);
Reader := TReader.Create(FileStream, $FF);
Reader.ReadListBegin;
Memo1.Lines.Clear;
while not Reader.EndOfList do
Memo1.Lines.Add(Reader.ReadString);
Reader.ReadListEnd;
Reader.Destroy;
FileStream.Destroy;
end;
|
|