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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 02.11.2010, 19:45   #1
Marsel737
Форумчанин
 
Аватар для Marsel737
 
Регистрация: 09.11.2009
Сообщений: 669
По умолчанию Почему IdHTTP выдает не тот текст что надо?

Всем доброго времени суток.

Никак не пойму в чём тут проблема, вот так получаю текст страницы:

Код:
function TfrmMain.GetText(AURL: string): string;
var
  MemStream: TMemoryStream;
  StrList: TStrings;
  IdHTTP: TIdHTTP;
begin
  IdHTTP := TIdHTTP.Create(nil);
  with IdHTTP do
  begin
    Request.Pragma := 'no-cache';
    Request.CacheControl := 'no-store, no-cache, must-revalidate';
    Request.AcceptLanguage := 'ru';
    Response.KeepAlive := true;
    HandleRedirects := true;
  end;
  MemStream := TMemoryStream.Create;
  try
    IdHTTP.Get(aURL, MemStream);
    MemStream.Position := 0;
    StrList := TStringList.Create;
    try
      StrList.LoadFromStream(MemStream);
      Result := StrList.Text;
    finally
      StrList.Free;
    end;
  finally
    MemStream.Free;
    IdHTTP.Free;
  end;
end;
Я хочу получить перевод на http://translate.google.ru/, для этого посылаю такой запрос:

Код:
memOutput.Text := GetText('http://translate.google.ru/#en|ru|' +
    'hello'); // для примера
По идее гугл должен перевести "hello" как "привет", но ищу это слова в мемо и ничего не находится:

Код:
procedure TfrmMain.btnSearchClick(Sender: TObject);
var
  strFind: string;
begin
  strFind:= edtInput.Text;
  if Pos(strFind, memOutput.Lines.Text) <> 0 then
  begin
    memOutput.SetFocus();
    memOutput.SelStart := Pos(strFind, memOutput.Lines.Text) - 1;
    memOutput.SelLength := Length(strFind);
  end;
end;
Может я здесь не всё указал? Какие ещё настройки должны быть?

Код:
  with IdHTTP do
  begin
    Request.Pragma := 'no-cache';
    Request.CacheControl := 'no-store, no-cache, must-revalidate';
    Request.AcceptLanguage := 'ru';
    Response.KeepAlive := true;
    HandleRedirects := true;
  end;
Я не всегда знаю, о чем говорю, но знаю, что прав. © Мухаммед Али.
К чёрту обстоятельства. Я создаю возможности. © Брюс Ли
Marsel737 вне форума Ответить с цитированием
Старый 02.11.2010, 21:31   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

а что находится в мемо после запроса?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 03.11.2010, 20:54   #3
DomiNick
Студент, не
Старожил
 
Аватар для DomiNick
 
Регистрация: 29.01.2009
Сообщений: 2,067
По умолчанию

Открываем IE... Пишем туда вашу ссылку... После этого выбираем меню "Вид -> Источник" и убеждаемся что слова "привет" в странице совершенно нету.....

Особо не копался, но не на аяксе ли оно случаем?
I am the First of Cyber Evolution...
I am the First to Program your Future...
DomiNick вне форума Ответить с цитированием
Старый 03.11.2010, 21:09   #4
Voody
Форумчанин
 
Регистрация: 22.06.2009
Сообщений: 310
По умолчанию

Неужели трудно открыть снифер и посмотреть запросы. Там же проще некуда:
Get-запрос по адресу:
Код:
http://translate.google.ru/translate_a/t?client=t&text=hello&hl=ru&sl=en&tl=ru&multires=1&otf=1&sc=1
Ответ сервера:

Цитата:
[[["привет","hello","privet"]],[["существительное",["приветствие","приветственный возглас","возглас удивления"]],["глагол",["здороваться","звать","окликать "]],["междометие",["привет","здравствуйте","алло"]]],"en"]
Voody вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Мне надо сделать так что бы на главной странице картинка была по центру и под ней находился текст Чайник = ) HTML и CSS 1 21.10.2010 18:39
Не надо думать - с нами тот, кто все за нас решит. Levsha100 Свободное общение 36 29.06.2010 09:12
Дан файл, содержащий текст, записанный строчными русскими буквами. Получить в др.файле тот же текст, develish151 Microsoft Office Word 4 05.05.2010 13:20
IdHTTP.Get Google выдает ошибку при попытке получить исходный текст dkdkdk Работа с сетью в Delphi 6 17.12.2009 16:23
Все тот же IdHTTP (Post) AVer Работа с сетью в Delphi 5 28.09.2007 10:40