Класс
TFileStream
Класс TFileStream позволяет создать поток для работы с файлами. При этом
поток работает с файлом без учета типа хранящихся в нем данных (см.
выше).
Полное имя файла задается в параметре FileName при создании потока:
constructor Createfconst FileName: string; Mode: Word);
Параметр Mode определяет режим работы с файлом. Он составляется из флагов режима открытия:
fmCreate
— файл создается;
fmOpenRead
— файл открывается для чтения;
fmopenwrite
— файл открывается для записи;
fmOpenReadWrite
— файл открывается для чтения и записи.
И флагов режима совместного использования:
fmShareExciusive — файл
недоступен для открытия другими приложениями;
fmShareDenyWrite — другие
приложения могут читать данные из файла;
fmShareDenyRead — другие
приложения могут писать данные в файл;
fmShareDenyNone — другие
приложения могут производить с файлом любые операции.
Для чтения и записи из потока используются методы
Read и write , унаследованные
от класса THandleStream :
procedure TForml.CopyBtnClick(Sender: TObject);
var Streaml, Stream2: TFileStream;
IntBuf: array[0..9] of Integer/begin
if Not OpenDlg.Execute then Exit;
try
Streaml := TFileStream.Create(OpenDlg.FileName, fmOpenRead);
Streaml.ReadBuffer(IntBuf, SizeOf(IntBuf));
try
Stream2 := TFileStream.Create('TextFile.tmp', fmOpenWrite);
Stream2.Seek(0, soFromEnd);
Stream2.WriteBuffer(IntBuf, SizeOf(IntBuf));
finally
Stream2.Free;
end;
finally
Streaml.Free;
end;
end;
Обратите внимание, что в данном фрагменте кода функция
seek используется для записи данных в конец файлового потока.
При необходимости копирования одного файла в другой целиком используется метод
CopyFrom , унаследованный от класса
Tstream :
procedure TForml.CopyBtnClick(Sender: TObject);
var Streaml, Stream2: TFileStream;
begin if Not OpenDlg.Execute then
Exit;
try
Streaml := TFileStream.Create(OpenDlg.FileName, fmOpenRead);
Stream2 := TFileStream.Create('Sample.tmp1, fmOpenWrite);
Stream2.Seek{0, soFromEnd);
Stream2.CopyFrom(Streaml, Streaml.Size);
finally
Streaml.Free;
Stream2.Free;
end;
end;
Обратите внимание, что в данном случае идя определения размера передаваемого потока необходимо использовать свойство
stream, size, которое дает реальный объем данных, содержащихся в потоке. Функция
sizeof (stream) в этом случае даст размер объекта потока, и не более того.
Знаете ли Вы, что "гравитационное линзирование" якобы наблюдаемое вблизи далеких галактик (но не в масштабе звезд, где оно должно быть по формулам ОТО!), на самом деле является
термическим линзированием , связанным с изменениями плотности эфира от нагрева мириадами звезд. Подробнее читайте в
FAQ по эфирной физике .
НОВОСТИ ФОРУМА Рыцари теории эфира 10.11.2021 - 12:37: ПЕРСОНАЛИИ - Personalias -> WHO IS WHO - КТО ЕСТЬ КТО - Карим_Хайдаров. 10.11.2021 - 12:36: СОВЕСТЬ - Conscience -> РАСЧЕЛОВЕЧИВАНИЕ ЧЕЛОВЕКА. КОМУ ЭТО НАДО? - Карим_Хайдаров. 10.11.2021 - 12:36: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от д.м.н. Александра Алексеевича Редько - Карим_Хайдаров. 10.11.2021 - 12:35: ЭКОЛОГИЯ - Ecology -> Биологическая безопасность населения - Карим_Хайдаров. 10.11.2021 - 12:34: ВОЙНА, ПОЛИТИКА И НАУКА - War, Politics and Science -> Проблема государственного терроризма - Карим_Хайдаров. 10.11.2021 - 12:34: ВОЙНА, ПОЛИТИКА И НАУКА - War, Politics and Science -> ПРАВОСУДИЯ.НЕТ - Карим_Хайдаров. 10.11.2021 - 12:34: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от Вадима Глогера, США - Карим_Хайдаров. 10.11.2021 - 09:18: НОВЫЕ ТЕХНОЛОГИИ - New Technologies -> Волновая генетика Петра Гаряева, 5G-контроль и управление - Карим_Хайдаров. 10.11.2021 - 09:18: ЭКОЛОГИЯ - Ecology -> ЭКОЛОГИЯ ДЛЯ ВСЕХ - Карим_Хайдаров. 10.11.2021 - 09:16: ЭКОЛОГИЯ - Ecology -> ПРОБЛЕМЫ МЕДИЦИНЫ - Карим_Хайдаров. 10.11.2021 - 09:15: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от Екатерины Коваленко - Карим_Хайдаров. 10.11.2021 - 09:13: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от Вильгельма Варкентина - Карим_Хайдаров.