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

Вниз

TMemoryStream TidTCPClient..server   Найти похожие ветки 

 
Fl@sh ©   (2006-03-29 19:00) [0]

На сервере обработчик:
procedure TForm1.ITCPSTIdCommandLoadFromDBKlientCommand(
 ASender: TIdCommand);
var
 DataModule: TDataModule1;
 i: integer;
 SL: TStringList;
 ipRR: string;
 ms: TMemoryStream;
begin
 DataModule := TDataModule1.Create(nil);
 try
   ipRR := ASender.Params[0];

   with DataModule.IBQuery do
   begin
     Close;
     SQL.Clear;
     SQL.Text := "SELECT * FROM KLIENT WHERE "RR"=" + ipRR;
     Open;
   end;

   SL := TStringList.Create;
   ms := TMemoryStream.Create;
   try
     try

       for i := 0 to DataModule.IBQuery.FieldCount - 1 do
         SL.Add(DataModule.IBQuery.Fields[i].AsString);
         SL.Add("asdf");
         SL.SaveToStream(ms);
         ASender.Thread.Connection.WriteStream(ms, True, False);
     except
       on E: Exception do
         Writeln("Error:" + e.Message);
     end;
   finally
     SL.Free;
     ms.Free;
   end;
 finally
   DataModule.Free;
 end;
end;



На клиенте:
procedure TfmServer.Button5Click(Sender: TObject);
var
 i : Integer;
 ms: TMemoryStream;
 SL: TStringList;
begin
 fmServer.IdTCPClient.Connect;
 fmServer.IdTCPClient.SendCmd("select 2345");
 ms := TMemoryStream.Create;
 try
//    ms.Position := 0;
   fmServer.IdTCPClient.ReadStream(ms);

   SL.LoadFromStream(ms);
   //Memo1.Lines.LoadFromStream(ms);
 finally
   SL.Free;
   ms.Free;
 end;
end;


Вискакивает error на строчке    SL.LoadFromStream(ms);
..excepion with message "Out of memory while expanding memory stream". Use step..
Как лечить?


 
antonn ©   (2006-03-29 19:48) [1]

комментарий убрать
  fmServer.IdTCPClient.ReadStream(ms);
  ms.Position := 0;
  SL.LoadFromStream(ms);


 
Fl@sh ©   (2006-03-29 20:02) [2]

Вот так:
procedure TfmServer.Button5Click(Sender: TObject);
var
 i : Integer;
 ms: TMemoryStream;
 SL: TStringList;
begin
 fmServer.IdTCPClient.Connect;
 fmServer.IdTCPClient.SendCmd("select 2345");
 ms := TMemoryStream.Create;
 try
   fmServer.IdTCPClient.ReadStream(ms); //Ошибка та же что и в [0]
   ms.Position := 0;
   SL.LoadFromStream(ms);
 finally
   SL.Free;
   ms.Free;
 end;
end;

Не помогло :)


 
antonn_   (2006-03-29 20:24) [3]

кстати, SL создается?

по проблеме - не знаю, я с ТЦП не работал...


 
Fl@sh ©   (2006-03-29 20:44) [4]


> кстати, SL создается?

Уже да, я забыл про него, хотя суть не в этом, я еще даже к SL не обращался.


 
tesseract ©   (2006-03-29 21:50) [5]

Пример из help по TCPClient по indy 9


     if bSizeKnown then
     // read known data size
     AConnection.ReadStream(AStream, ABytes, False)
     else
     // read all data until disconnected
     AConnection.ReadStream(AStream, -1, True);


 
Fl@sh ©   (2006-03-29 22:37) [6]


> tesseract ©   (29.03.06 21:50) [5]

Спасибо большое за пример
Кому интересно, вот как надо:

...
try
 fmServer.IdTCPClient.ReadStream(ms, ms.Size, False);    
 ms.Position := 0;
 SL.LoadFromStream(ms);
finally
...



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

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

Наверх




Память: 0.46 MB
Время: 0.068 c
2-1144168672
Volkodav
2006-04-04 20:37
2006.04.16
Можно ли заставить прогу включить комп например в 10:30?


15-1143098411
boalse
2006-03-23 10:20
2006.04.16
Как перевести и понять?


2-1143559418
Jolik
2006-03-28 19:23
2006.04.16
Странно ведет себя программа...


15-1142857467
nisa01
2006-03-20 15:24
2006.04.16
требуется программист Delphi,


15-1143006803
SergP.
2006-03-22 08:53
2006.04.16
Еще раз о сканировании портов. ИМХО кто-то чего-то темнит...





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский