Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

TFileStream


Николай Быков ©   (2002-10-10 14:59:00) 

Объясните что это такое, в каких случаях нужен, как с ним работать. Только не посылайте в хелп.


Zemal   (2002-10-11 15:03:00) [1]

TStream - класс предоставляющий поля и методы для возможности работы с очередью данных... ну типа поток данных :)... примерно как река течёт... :) вот-с... Этот класс имеет абстрактные методы для управления этим потоком данных (неважно какой поток и откуда он идёт - из файла или с сетевого адаптера :) ). Эти абстрактные методы должны быть обязательно перекрыты в наследниках, а именно методы чтения и записи куда-то (например участок памяти, файл и т.д.)... От этого класса, который сам по себе бесполезен для программиста, пораждены стандартные классы для обработки потока-файла или потока-памяти или... ну и т.д. можешь создать своего потомка этого класса и описать методы чтения и записи... например с USB-порта видео поток перехватывать... гы-гы :) это уже твои проблемы :)... для работы с потоком используется понятие позиция (см. свойство Position: Int64), есть также процедуры и функции перемещения по потоку и др. в общем в деталях долго описывать... это тебе к литературе надо обратиться :). Понятие потока я кажется понятно описал, а там сам посмотри как он реализован в модуле Classes ищи... он там описан (и все его потомки тоже там... посмотри, будет интересно :) ).


Pumpkin   (2002-10-11 14:38:00) [2]

2Николай Быков © (10.10.02 14:59)
> Объясните что это такое

Тебе же qube сказал.
Это тебе вместо AssignFile, Reset, Rewrite, BlockRead, BlockWrite и т.д.
Дальше TFilestrem -> F1


MBo   (2002-10-11 14:36:00) [3]

>это то что мне нужно или нет?
это один из вариантов, причем IMHO очень удобный


Николай Быков   (2002-10-11 14:29:00) [4]

А если у меня есть record с динамическими массивами то это точто мне нужно или нет?


Kotka   (2002-10-10 23:42:00) [5]

У меня есть исходники моей программки PatchMaker, которые я выложил специально для ознакомления с этим классом. Это здесь: http://kotka.by.ru/Programmists/howto.htm


lO3ep   (2002-10-10 21:49:00) [6]

TFileStream Например
Сохранение объекта элемента коллекции, переопределяется метод Store
procedure TКакой-тоОбъектПотомокTCollectionItem.Store(Name:String);
var
S: TFileStream;
begin
Error:="";
try
S:=TFileStream.Create(Name,fmCreate);
except
begin
Error:="Could not open file :"+Name;
exit;
end;
end;
if S=nil then exit;
R:=Self.Get_Какой-тоОбъектПотомокTCollectionItem(Name);
if R=nil then exit;
R.Store(S);
S.Destroy;
end;

Если по сети то - TMemoryStream

procedure WriteStringToStream(Stream: TStream; S: string);
var
i,j:integer;
begin
j:=length(s);
Stream.Write(j,sizeof(integer));
for i:= 1 to length(s) do
begin
Stream.Write(s[i],sizeof(char));
end;
end;

procedure TForm4.ServerSocket1ClientRead(Sender: TObject;
Socket: TCustomWinSocket);
var
MS: TMemoryStream;
Err: string;
Res: integer;
begin
....
Command:=Socket.ReceiveText;
MS:=TMemoryStream.Create;
MS.Clear;
WriteStringToStream(MS,"ERROR");
WriteStringToStream(MS,"Incorrect table name: "+Tab_Name);
MS.Position:=0;
ServerSocket1.Socket.Connections[0].SendStream(MS);
......
end;

посмотри еще
\Delphi\Demos\Internet\Chat - очень понятный пример


Rouse_   (2002-10-10 15:02:00) [7]

Для работы с файлом в памяти, для пересылки файла по сети

Желаю успехов


qube   (2002-10-10 15:01:00) [8]

Класс для работы с файлами. Рекомендуется как альтернатива blockread/blockwrite. А как работать -- в хелп.


Наверх

Титульная страница Поиск, карта сайта Написать письмо