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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 24.11.2010, 05:19   #1
Lokos
Форумчанин
 
Регистрация: 29.09.2009
Сообщений: 587
По умолчанию Проблема при считывании строки из AContext

Здравствуйте.
После считывания примерно 6 передаваемых строк серверу возникает ошибка которая на скрине.
отправляю на серв так
Код:
Function ZpSendFoto(ITCPC:TidTCPClient;console:TMemo):boolean;
var buf:string;
begin
   SendTextOtClient(ITCPC,'qqqq');
   Console.Lines.Add(DateToStr(Date)+'-'+TimeToStr(Time)+': Отправка фотографий');
   buf:=ReadTextOtClient(ITCPC);
   Console.Lines.Add(buf);
   if buf='Ok_Send_Foto' then
      begin
          Console.Lines.Add(buf);
      ZpSendFoto:=True;
      end
   else
      ZpSendFoto:=False;
end;
сама функция отправки
Код:
Procedure SendTextOtClient(ITCPC:TIdTCPClient;text:string);
var
   str:TStringStream;
begin
   str:=TstringStream.Create;
   str.WriteString(text);
   str.Position:=0;
   ITCPC.IOHandler.Write(str,str.Size,true);
   str.Free;
end;
принемаю так
Код:
Function ReadServText(AContext:TIdContext):string;//чтение текста сервером
var
   str:TStringStream;
begin
   str:=TStringStream.Create;
   AContext.Connection.IOHandler.ReadStream(str);
   str.Position:=0;
   ReadServText:=str.ReadString(str.Size);
   //str.Free;
   str.Destroy;
end;
причем первые строки принемаются нормально
Изображения
Тип файла: jpg 1.jpg (29.1 Кб, 100 просмотров)
Lokos вне форума Ответить с цитированием
Старый 24.11.2010, 06:28   #2
Lokos
Форумчанин
 
Регистрация: 29.09.2009
Сообщений: 587
По умолчанию

причем если вынести этот код

Код:
Function ReadServText(AContext:TIdContext):string;//чтение текста сервером
var
   str:TStringStream;
begin
   str:=TStringStream.Create;
   AContext.Connection.IOHandler.ReadStream(str);
   str.Position:=0;
   ReadServText:=str.ReadString(str.Size);
   //str.Free;
   str.Destroy;
end;
В тело самой программы и считывать им последнию строчку то все хороше читается. возможно библеотеке не хватает памяти или еще чего?
Lokos вне форума Ответить с цитированием
Старый 24.11.2010, 08:21   #3
Lokos
Форумчанин
 
Регистрация: 29.09.2009
Сообщений: 587
По умолчанию

изминил код так
Код:
Function ReadServText(AContext:TIdContext):string;//чтение текста сервером
var
   str:TStringStream;
begin
   str:=TStringStream.Create;
   AContext.Connection.IOHandler.ReadStream(str);
   str.Position:=0;
   ReadServText:=str.ReadString(str.Size);
   //str.Free;
   str.Destroy;
   FreeMemory(str);
end;
программа сработала как надо но на второй запуск опять появилась та же ошибка.
Что за бред такой?
Забыл добавить если нажать на кнопочку brake то перекидывает не вкладку idIOHandler
на кусок кода
Код:
procedure AdjustStreamSize(const AStream: TStream; const ASize: TIdStreamSize);
var
  LStreamPos: TIdStreamSize;
begin
  LStreamPos := AStream.Position;
  AStream.Size := ASize;
  // Must reset to original value in cases where size changes position
  if AStream.Position <> LStreamPos then begin
    AStream.Position := LStreamPos;
  end;
end;

Немного по эксперементировав я увидел что и остальные функции длл не пашут в чем может быть проблема

Последний раз редактировалось Lokos; 24.11.2010 в 09:34.
Lokos вне форума Ответить с цитированием
Старый 24.11.2010, 10:08   #4
Lokos
Форумчанин
 
Регистрация: 29.09.2009
Сообщений: 587
По умолчанию

проблема решена
Как оказалась одна из функций длл возвращала значение типо string и после этого вся длл входила в ступор(((
Вообщем флуд какой то вышел(((
Lokos вне форума Ответить с цитированием
Старый 24.11.2010, 10:49   #5
psycho-coder
Участник клуба
 
Аватар для psycho-coder
 
Регистрация: 06.04.2009
Сообщений: 1,524
По умолчанию

Главное что сам разобрался
В следующий раз пользуйтесь Правкой ()
psycho-coder вне форума Ответить с цитированием
Старый 24.11.2010, 11:45   #6
Lokos
Форумчанин
 
Регистрация: 29.09.2009
Сообщений: 587
По умолчанию

Цитата:
Сообщение от psycho-coder Посмотреть сообщение
Главное что сам разобрался
В следующий раз пользуйтесь Правкой ()
ок. Но есть еще косяк сразу чето не учел переработал. в длл около 4 функциий которые возвращают значения типа string и после них все хорошо работает. А после приема и возврата довольно большей строки начинает тупить(((
Lokos вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема при считывании из файла JeyKip Общие вопросы C/C++ 0 17.01.2010 22:03
Проблемы при считывании PE- заголовка nazavrik Общие вопросы C/C++ 0 05.10.2009 20:33
Проблема при открытии базы при помощи ADO SlavaSH БД в Delphi 21 30.06.2009 16:51
Проблема при считывании каталога Devochka PHP 2 01.12.2008 10:44
Помогите разобраться, ошибка при считывании из ini файла XATAB Помощь студентам 4 13.02.2007 05:57