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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 05.06.2014, 00:53   #1
Hsl
Пользователь
 
Регистрация: 18.04.2014
Сообщений: 56
Восклицание Кодировка HTML

Еще раз добрый день. Столкнулся с еще одной проблемой, поиски в Google и на форуме не помогли, хотя что-то нужное промелькнуло.
Существует такой кусок кода:
Код:
rezop:=idhttp1.Get('http://site.ru/account');
Да, буду парсить информацию.
Код для парсинга (нашел в интернете):
Код:
function Pars (T_, ForS, _T: string): string;
var a, b: integer;
begin
result := '';
if (T_='') or (ForS='') or (_T='') then Exit;
a:=Pos(T_,ForS);
if a=0 then Exit else a:=a+Length(T_);
ForS:=Copy(ForS, a, Length(ForS)-a+1);
b:=Pos(_T, ForS);
if b>0 then
Result:=copy(ForS, 1, b - 1);
end;
Если я пытаюсь искать вот это:
Код:
if pos('/account/exit', rezop) <> 0 then
begin
Всё отлично.
Но когда мне необходимо спарсить русскую информацию, в частности слово "Баланс", то информации не выдаёт.
После, решил проверить что выводит в Memo1 rezop.
Оказывается, имеется неправильная кодировка, в частности, CP1252. И её мне необходимо перевести в CP1251.
Были догадки как реализовать это, но в Delphi перешел совсем недавно.
Hsl вне форума Ответить с цитированием
Старый 05.06.2014, 08:03   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Хм... Могу тебя только направить на изучение класса TEncoding. Он в современных Делфи отвечает за перекодировку.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 05.06.2014, 10:16   #3
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Можно так..
Код:

rezop:=idhttp1.Get('http://site.ru/account',TEncoding.GetEncoding(1251));
Человек_Борща вне форума Ответить с цитированием
Старый 05.06.2014, 14:05   #4
Hsl
Пользователь
 
Регистрация: 18.04.2014
Сообщений: 56
По умолчанию

Цитата:
Сообщение от Человек_Борща Посмотреть сообщение
Можно так..
Код:

rezop:=idhttp1.Get('http://site.ru/account',TEncoding.GetEncoding(1251));
Выдает ошибку:
Код:
[dcc32 Error] Unit2.pas(72): E2250 There is no overloaded version of 'Get' that can be called with these arguments
Естественно, просто заменил Ваш код на мой без добавления чего-либо.
( На всякий случай добавил строку:
Код:
Encoding: TEncoding;
)
Также попробовал добавить этот код:
Код:
idHttp1.Request.AcceptCharSet:='windows-1251';
Результат без изменений.

Последний раз редактировалось Hsl; 05.06.2014 в 14:08.
Hsl вне форума Ответить с цитированием
Старый 05.06.2014, 14:36   #5
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Цитата:
Encoding: TEncoding;
если у вас IDE старше 2009й, то у вас нет этого класса.
Человек_Борща вне форума Ответить с цитированием
Старый 05.06.2014, 14:49   #6
Hsl
Пользователь
 
Регистрация: 18.04.2014
Сообщений: 56
По умолчанию

Цитата:
Сообщение от Человек_Борща Посмотреть сообщение
если у вас IDE старше 2009й, то у вас нет этого класса.
Delphi XE3..
Hsl вне форума Ответить с цитированием
Старый 05.06.2014, 15:03   #7
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Hsl, подключите System.SysUtils.
Человек_Борща вне форума Ответить с цитированием
Старый 06.06.2014, 17:21   #8
Hsl
Пользователь
 
Регистрация: 18.04.2014
Сообщений: 56
По умолчанию

Цитата:
Сообщение от Человек_Борща Посмотреть сообщение
Hsl, подключите System.SysUtils.
Подключено. Всё та же ошибка:
Код:
[dcc32 Error] Unit2.pas(70): E2250 There is no overloaded version of 'Get' that can be called with these arguments
В строке:
Код:
rezop:=idhttp1.Get('http://site.ru/account',TEncoding.GetEncoding(1251));
Hsl вне форума Ответить с цитированием
Старый 06.06.2014, 18:12   #9
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Там все правильно. GET метод не тот. По справке посмотрите, какой-там 2й параметр должен быть... там 3 параметра на входе..
Человек_Борща вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
html страничка в html странички Людмила_И HTML и CSS 4 04.06.2013 06:19
HTML код НА HTML странице NewLamer&Programer Помощь студентам 3 10.05.2013 17:21
Как через js передать переменную из ex1.html в ex2.html? Andrody JavaScript, Ajax 5 06.08.2012 11:23
Как вывести код html из файла на страницу HTML Рамирас JavaScript, Ajax 1 25.07.2010 20:06
HTML кодировка KoBRaAndrey Работа с сетью в Delphi 0 30.04.2010 14:23