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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 30.10.2011, 20:57   #1
bulldog5293
Форумчанин
 
Регистрация: 13.05.2010
Сообщений: 670
По умолчанию Трабл с декопрессором gzip

накидал код для распаковки gzip ответов сайта, но чёт так не фурычит
Код:
var
  S:TStringStream;
  O:string;
  FH: TIdHTTPEX;
  frx: TfrxGZipCompressor;//компанент delphi xe 2    
begin
    FH := TIdHTTPEX.Create(nil);
    frx := TfrxGZipCompressor.Create(nil);
    S := TStringStream.Create;
begin
        FH.getex('http://' + FUrl + '/', S);
    O:= Trim(FH.Response.ContentEncoding);
        If (Pos('gzip', O) > 0) then
        begin
         try
          frx.Decompress(S.DataString, S.DataString);
        finally
        end;
        end;
        end;
Пишит ошибка E2010 Incompatible types: 'TStream' and 'string'
bulldog5293 вне форума Ответить с цитированием
Старый 31.10.2011, 10:30   #2
Mifody
Форумчанин
 
Регистрация: 12.02.2009
Сообщений: 215
По умолчанию

Ну и? Текст ошибки ничего Вам не говорит? Или совсем уж буковки страшные?
Декомпресор ожидает TStream а Вы ему суете String/
Помог с вопросом - тыркаем в весы, Вам не сложно, а мне приятно
Mifody вне форума Ответить с цитированием
Старый 31.10.2011, 14:06   #3
bulldog5293
Форумчанин
 
Регистрация: 13.05.2010
Сообщений: 670
По умолчанию

Ну если у меня изначально страница закачивается в TStringStream, как я ему передам объект на файл или даже банально передам S в TStream, в сети нечего не нашёл об этом
bulldog5293 вне форума Ответить с цитированием
Старый 31.10.2011, 15:11   #4
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Код:
var
  S,S2:TStringStream;
  O:string;
  FH: TIdHTTPEX;
  frx: TfrxGZipCompressor;//компанент delphi xe 2    
begin
 FH := TIdHTTPEX.Create(nil);
 frx := TfrxGZipCompressor.Create(nil);
 S := TStringStream.Create;
 S2:=TStringStream.Create;
 FH.getex('http://' + FUrl + '/', S);
 O:= Trim(FH.Response.ContentEncoding);
 If (Pos('gzip', O) > 0) 
  then
   begin
    try
     frx.Decompress(S, S2);
    finally

    end;
   end;
end;
и в чем проблема то?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 31.10.2011, 16:51   #5
bulldog5293
Форумчанин
 
Регистрация: 13.05.2010
Сообщений: 670
По умолчанию

с твоим кодом выдаёт E2034 Too many actual parameters
bulldog5293 вне форума Ответить с цитированием
Старый 31.10.2011, 17:23   #6
Mifody
Форумчанин
 
Регистрация: 12.02.2009
Сообщений: 215
По умолчанию

bulldog5293 - хэлп класса пробовали читать?
Последняя ошибка "E2034 Слишком много фактических параметров" (полученно через 2 сек после прочтения поста с помощью гугляпереводчика)
Помог с вопросом - тыркаем в весы, Вам не сложно, а мне приятно
Mifody вне форума Ответить с цитированием
Старый 31.10.2011, 17:31   #7
bulldog5293
Форумчанин
 
Регистрация: 13.05.2010
Сообщений: 670
По умолчанию

Так ошибку я эту и так знаю, я указал т.к. не понимаю как в этой ситуации поступить, что бы код заработал
P.S. почему то так ошибку не выдаёт, да и в принцепе не думаю что работает, и эфекта нет, даже при трассирование
Код:
var
  S:TStringStream;
  O:string;
  FH: TIdHTTPEX;
  frx: TfrxGZipCompressor;//компанент delphi xe 2    
begin
 FH := TIdHTTPEX.Create(nil);
 frx := TfrxGZipCompressor.Create(nil);
 S := TStringStream.Create;
 FH.getex('http://' + FUrl + '/', S);
 O:= Trim(FH.Response.ContentEncoding);
 If (Pos('gzip', O) > 0) 
  then
   begin
    try
     frx.Decompress(S);
    finally

    end;
   end;
end;

Последний раз редактировалось bulldog5293; 31.10.2011 в 18:51.
bulldog5293 вне форума Ответить с цитированием
Старый 31.10.2011, 19:04   #8
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

у меня нет DXE2, потому выложите прототип функции полный.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 31.10.2011, 19:51   #9
bulldog5293
Форумчанин
 
Регистрация: 13.05.2010
Сообщений: 670
По умолчанию

с большой бы радостью выложил бы, но не знаю где его достать, нашёл то си файлы, а паса нет
bulldog5293 вне форума Ответить с цитированием
Старый 31.10.2011, 20:06   #10
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

а из подсказки не переписать?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
HTTP и Gzip Slafka C/C++ Сетевое программирование 3 18.10.2011 20:30
THttpCli + gzip (Компоненты ICS) X11 Работа с сетью в Delphi 4 13.09.2010 10:01
Gzip в Delphi sivuda Работа с сетью в Delphi 1 22.08.2010 19:55
Разжать GZIP CoDeR Общие вопросы Delphi 3 23.06.2009 00:20
трабл Informer Общие вопросы C/C++ 0 02.06.2009 15:21