Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Работа с сетью в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.12.2011, 13:25   #1
hobtorkins
 
Регистрация: 20.12.2011
Сообщений: 4
По умолчанию Вопрос по TidTCPClient

пишу прогу-клиент.
Код:
procedure readstream;
var
   answer:string;
begin
  answer:= Form1.idtcpclnt1.CurrentReadBuffer;
  Form1.mmo1.Lines.Add(answer);
  reaction(answer);
end;
это процедура получения ответа от сервера после отправки определенной команды. если ответ небольшой, то все нормально, а если большой (более 1500 символов примерно), то в мемо выводится не вся информация полученная от сервера, а остаток выдается при следующем вызове этой процедуры, когда надо уже выводить ответ на следующую команду, и получается черти что. возможно это происходит не сразу, возможно где-то что-то накапливается и в какой-то момент чего-то не хватает. подскажите пожалуйста что я не так делаю. может неправильно задаю переменную answer, может нужен другой тип, или может быть надо как-то подчищать буфер, или может вообще все не так. может быть надо через readln, но через ридлн у меня не получилось, т.к. ответ имеет разное кол-во строк, и код, типа приведенного ниже, вызывает зависание программы и вылет с ошибкой при попытке прочитать строку после последней (то есть несуществующую строку):
Код:
procedure readstream;
var 
flag:boolean;
answer:string;
begin
   while not flag do
   begin
      try
         Form1.idtcpclnt1.readln(answer)
      exception
         flag:=true;
      end;
   end;
end;
вобщем я уже неделю бьюсь. и так и этак, ничего не выходит. подскажите плиз как же это правильно делается все таки. вообще в идеале конечно через readln. потому что иначе приходится вручную строки разделять. потому что некоторые строки в ответе сервера не нужны. может кто знает как отследить достижение последней строки буфера чтения.

Последний раз редактировалось hobtorkins; 21.12.2011 в 13:57.
hobtorkins вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как отправить текст с TidTCPServer на TidTCPClient? cyberexpert Работа с сетью в Delphi 0 19.09.2011 23:26
Вопрос по mySQL + Вопрос по RichEdit HTL Общие вопросы Delphi 4 01.01.2010 20:22
TIdTCPClient.IOHandler.InputBufferI sEmpty не сразу обновляется st01en Работа с сетью в Delphi 1 26.06.2009 08:34
Вопрос наверное про функции, а так точно даже не знаю про что. (Вопрос начинющего #6) Albert2008 Общие вопросы Delphi 4 21.08.2008 15:33
вопрос по сокетам и общение как в ICQ.Сложный вопрос... Руслантус Общие вопросы C/C++ 2 12.08.2008 21:10