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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 12.06.2010, 23:29   #1
KREGI
Форумчанин
 
Аватар для KREGI
 
Регистрация: 29.11.2008
Сообщений: 333
По умолчанию Проблема - парсинг

Нужно достать значение переменной из html строки:
Код:
<a href="http://site.ru/login/?logout=1&amp;sid=73906d66f34d0bce69f5c4364f1e79ca" class="mainmenu">бла бла</a>
необходимо достать:
73906d66f34d0bce69f5c4364f1e79ca
делаю так:
Код:
function GetSubStr(InputStr, BeginStr, EndStr: String): String;
var
  s: String;
  sp, ep: Integer;
begin
  Result := '';
  if pos(BeginStr, InputStr) <> 0 then
  begin
    sp := pos(BeginStr, InputStr)+length(BeginStr);
    s := copy(InputStr,sp,length(InputStr));
    ep := pos(EndStr,s)-1;
    Result := copy(s,1,ep);
  end;
end;
Вызов:
Код:
procedure TForm2.FormCreate(Sender: TObject);
var
s : string;
begin
 s:=IdHTTP1.Get('http://site.ru/index.php');
 Form2.Memo1.Lines.Add(GetSubStr(s,'&amp;sid=','" class="mainmenu">Выход</a>'));
end;
в мемо не чего не выводится
Если помог - Весы слева

Последний раз редактировалось KREGI; 12.06.2010 в 23:45.
KREGI вне форума Ответить с цитированием
Старый 12.06.2010, 23:36   #2
Pasha_Sh
Форумчанин
 
Аватар для Pasha_Sh
 
Регистрация: 16.05.2010
Сообщений: 137
По умолчанию

делал от руки может каряво
Код:
var
buff:string;
begin
buff:='<a href="http://site.ru/login/?logout=1&amp;sid=73906d66f34d0bce69f5c4364f1e79ca" class="mainmenu">бла бла</a>';
delete(buff, Pos('<a', buff), Pos('d=', buff);
delete(buff, Pos('" c', buff), lenght(buff);
memo1.lines.text:=buff;
end;
osu
Pasha_Sh вне форума Ответить с цитированием
Старый 12.06.2010, 23:44   #3
KREGI
Форумчанин
 
Аватар для KREGI
 
Регистрация: 29.11.2008
Сообщений: 333
По умолчанию

это если только эту строку рассматривать, а я немного другое имел ввиду, эта строка в html странице, где еще куча всего, а мне необходимо только значение sid Достать,
Если помог - Весы слева
KREGI вне форума Ответить с цитированием
Старый 12.06.2010, 23:46   #4
Pasha_Sh
Форумчанин
 
Аватар для Pasha_Sh
 
Регистрация: 16.05.2010
Сообщений: 137
По умолчанию

Сайт напиши
osu
Pasha_Sh вне форума Ответить с цитированием
Старый 12.06.2010, 23:48   #5
KREGI
Форумчанин
 
Аватар для KREGI
 
Регистрация: 29.11.2008
Сообщений: 333
По умолчанию

Код:
s:string;
begin
s:=IdHTTP1.Get('http://site.ru/index.php');
delete(s, Pos('<a href="http://site.ru/login/', s), Pos('sid=', s));
delete(s, Pos('" class="mainmenu">', s), length(s));
memo1.lines.text:=s;
end;
по идеи должно работать, но увы... выводит все страницу как я понял
Если помог - Весы слева
KREGI вне форума Ответить с цитированием
Старый 12.06.2010, 23:51   #6
Pasha_Sh
Форумчанин
 
Аватар для Pasha_Sh
 
Регистрация: 16.05.2010
Сообщений: 137
По умолчанию

Ты можешь сайт сказать?
osu
Pasha_Sh вне форума Ответить с цитированием
Старый 12.06.2010, 23:53   #7
KREGI
Форумчанин
 
Аватар для KREGI
 
Регистрация: 29.11.2008
Сообщений: 333
По умолчанию

Pasha_Sh в личных сообщениях написал тебе.
Если помог - Весы слева
KREGI вне форума Ответить с цитированием
Старый 12.06.2010, 23:58   #8
Pasha_Sh
Форумчанин
 
Аватар для Pasha_Sh
 
Регистрация: 16.05.2010
Сообщений: 137
По умолчанию

Скинь в личку или сюда исходный код, регестрироваться не хочется.
osu
Pasha_Sh вне форума Ответить с цитированием
Старый 13.06.2010, 00:00   #9
KREGI
Форумчанин
 
Аватар для KREGI
 
Регистрация: 29.11.2008
Сообщений: 333
По умолчанию

вот исходный код
Если помог - Весы слева

Последний раз редактировалось KREGI; 13.06.2010 в 00:24.
KREGI вне форума Ответить с цитированием
Старый 13.06.2010, 00:05   #10
Pasha_Sh
Форумчанин
 
Аватар для Pasha_Sh
 
Регистрация: 16.05.2010
Сообщений: 137
По умолчанию

Код:
var
buff:string;
begin
buff:=idhttp1.get(СЮДА АДРЕС СТРАНИЦЫ);
delete(buff, Pos('<!DOCTYPE', buff), Pos(';sid=', buff);
delete(buff, Pos('" class="mainmenu">Выход', buff), lenght(buff);
memo1.lines.text:=buff;
end;
Теперь покажите какое значение вырезалось!
osu

Последний раз редактировалось Pasha_Sh; 13.06.2010 в 00:19.
Pasha_Sh вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
И снова парсинг Sergionix Работа с сетью в Delphi 4 16.08.2011 13:07
Парсинг сайта AnToHa-KiLL Общие вопросы Delphi 3 30.06.2009 08:22
парсинг Html eldar Общие вопросы Delphi 4 23.04.2009 20:42
HTML Парсинг BaikalLord Помощь студентам 5 15.12.2008 08:20