Форум программистов, компьютерный форум, киберфорум
Наши страницы

C++ Builder

Войти
Регистрация
Восстановить пароль
 
Gdasar
190 / 51 / 10
Регистрация: 18.02.2013
Сообщений: 488
Записей в блоге: 9
Завершенные тесты: 1
#1

Перевод кода с Delphi на С++ - C++ Builder

13.09.2013, 21:39. Просмотров 654. Ответов 3
Метки нет (Все метки)

Доброго времени суток
У меня возникла проблема с редиректом в synapse(про indy не говорите,я знаю,что там есть HandleRedirects)
Вот нашел такой код,который помогает добраться до нужной страницы через N-е количество редиректов.
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
function TDHttp.GetRedirectUrl: string;
   var i: integer;
       Line: string;
begin
   Result:='';
   for i := 0 to FSend.Headers.Count-1 do
   begin
     Line:=LowerCase(FSend.Headers[i]);
     if Pos('location:',Line)>0 then
     begin
       Result:=Trim(StringReplace(Line,'Location:','',[rfIgnoreCase]));
       Exit;
     end;
   end;
end;
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
function TDHttp.GET(AUrl: string): string;
   var Stream: TStringStream;
       RedirectUrl: string;
begin
   try
     Stream:=TStringStream.Create('',FCodePage);
     try
       FSend.Headers.Clear;
       FSend.Document.Clear;
       if FReferer<>'' then FSend.Headers.Add('Referer: '+FReferer);
       if FSend.HTTPMethod('GET', AUrl) then
       begin
         FSend.Document.SaveToStream(Stream);
         Result:=Stream.DataString;
         RedirectUrl:=GetRedirectUrl;
         if RedirectUrl<>'' then
           Result:=GET(RedirectUrl);
       end else raise Exception.Create(GetError);
     finally
       Stream.Free;
     end;
   except
     on E: Exception do
       raise Exception.Create('TDHttp.GET('+AUrl+'): '+E.Message);
   end;
end;
Но этот код на Delphi. Помогите его перевести на c++.
P.S. вот сам сайт.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.09.2013, 21:39
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Перевод кода с Delphi на С++ (C++ Builder):

Перевод кода из Delphi в C++ - C++ Builder
unit UDAL; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs,...

Перевод кода из Delphi в C++ - C++ Builder
Ребята надо перевести код из Delphi в С++.procedure TF2_DAL.RaschetClick(Sender: TObject); var mas: array of Integer; i: integer; ...

Перевод кода из Delphi в C++ - C++ Builder
Помогите друзья! это код Делфи.Переделать это на С++WITH OpenDialog1 Do If Executе Then begin Memo1.Visible:=True; { видимость...

Перевод кода Delphi - C++ Builder
Здравствуйте!! Ребята помогите, пожалуйста, с переводом кода с Delphi на С++ Builder. Хоть на форуме уже не 1 год, просто никогда не...

Перевод кода из Delphi в C++ - C++ Builder
unit pr1; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, RXClock,...

Перевод кода из Delphi на C++ - C++ Builder
Доброго вечера. Пожалуйста, помогите портировать код с Delphi на C++. Его не очень много, но есть некоторые компоненты, которых не могу...

3
Gdasar
190 / 51 / 10
Регистрация: 18.02.2013
Сообщений: 488
Записей в блоге: 9
Завершенные тесты: 1
15.09.2013, 14:45  [ТС] #2
Ну в общем не стал я переводить этот код,да и не нужно(стал писать свою функцию).
Я столкнулся с проблемой:
Если писать так:
C++
1
Memo1->Lines->AddStrings(http->Headers);
то в мемо успешно помещается содержимое хедера,а если вот так:
C++
1
2
3
TStringList* List=new TStringList;
List->AddStrings(http->Headers);
Memo1->Lines->Text=List->Text;
то программа ничего не выполняет(зависает и все).
Можете сказать,в чем тут загвоздка.
0
leva
10 / 10 / 1
Регистрация: 12.04.2012
Сообщений: 248
19.09.2013, 17:07 #3
Цитата Сообщение от Gdasar Посмотреть сообщение
Ну в общем не стал я переводить этот код,да и не нужно(стал писать свою функцию).
Я столкнулся с проблемой:
Если писать так:
C++
1
Memo1->Lines->AddStrings(http->Headers);
то в мемо успешно помещается содержимое хедера,а если вот так:
C++
1
2
3
TStringList* List=new TStringList;
List->AddStrings(http->Headers);
Memo1->Lines->Text=List->Text;
то программа ничего не выполняет(зависает и все).
Можете сказать,в чем тут загвоздка.
http - Объясни что это именно какой компонент и приводи все код полностью.
0
Gdasar
190 / 51 / 10
Регистрация: 18.02.2013
Сообщений: 488
Записей в блоге: 9
Завершенные тесты: 1
20.09.2013, 13:56  [ТС] #4
leva, уже разобрался.
Я заменил:
C++
1
TStringList* List=new TStringList;
на
C++
1
TStringList* List=new TStringList();
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.09.2013, 13:56
Привет! Вот еще темы с ответами:

Перевод кода Delphi на C++Builder - C++ Builder
procedure TForm1.Button1Click(Sender: TObject); var jpeg: TJPEGImage; bmp: TBitmap; begin if OpenPictureDialog1.Execute then ...

Перевод кода с Delphi на C++ Builder - C++ Builder
Помогите перевести данный код (экспорт данных из ADOTable в Excel) с Delphi на C++ Builder. var XLApp,Sheet,Colum:Variant; ...

Перевод кода из Delphi 7 в C++ Builder 6 - C++ Builder
Подскажите, пожалуйста, как можно перевести код: TMemo(FindComponent('Memo' + IntToStr(i))).Lines.LoadFromFile(GetCurrentDir + '\db\' +...

Перевод кода из Delphi в C++ Builder - C++ Builder
Кто нибудь сможет помочь перевести проект с делфи на билдер? unit Unit1; interface uses Windows, Messages, SysUtils,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru