Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2002.10.21;
Скачать: [xml.tar.bz2];

Вниз

TFileStream   Найти похожие ветки 

 
Николай Быков   (2002-10-10 14:59) [0]

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


 
qube   (2002-10-10 15:01) [1]

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


 
Rouse_   (2002-10-10 15:02) [2]

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

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


 
lO3ep   (2002-10-10 21:49) [3]

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 - очень понятный пример


 
Kotka   (2002-10-10 23:42) [4]

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


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

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


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

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


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

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

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


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

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



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2002.10.21;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.008 c
3-68601
SergeyDove
2002-09-27 12:45
2002.10.21
Как получить значение поля?


3-68658
Leviathan
2002-09-29 23:46
2002.10.21
IBDatabase.CreateDatabase


7-69027
Hellman
2002-08-02 19:15
2002.10.21
Прочти :)


3-68635
QUE
2002-09-27 12:28
2002.10.21
Привет Мастера !!! Много форм в проекте как от этого избавиться .


3-68674
Lariska
2002-09-30 12:25
2002.10.21
BatchMove





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский