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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 06.03.2010, 00:25   #1
kakawkin
Форумчанин
 
Регистрация: 21.09.2009
Сообщений: 431
По умолчанию Проблемы с парсингом строки

Надо отпарсировать строчку взятую из html страницы.

Вот сам код html страницы:
Код:
<html>
.........
    <input type="hidden" name="token" value="05ef76d8466ca88b698c98ccaa8afd5f">
.........
</html>
мне бы получить значение это (value)

Вот тут есть код для парсирования:
Код:
var
  i: Integer;
  str : String;
begin
  for i := 0 to Memo1.Lines.Count - 1 do
  begin
    if Pos('name="token"',memo1.Lines.Strings[i]) <> 0 then
    begin
      str := memo1.Lines.Strings[i];
      Delete(str,1,Pos('value="',str)+6);
      Delete(str,Pos('">',str),2);
      ShowMessage(str);
      Exit;
    end;
  end;
но он за место этого значения выдаёт: t type="hidden" name="token"
kakawkin вне форума Ответить с цитированием
Старый 06.03.2010, 00:46   #2
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Какашкин, что за бред ?
Pos('name="token"',memo1.Lines.Stri ngs[i]) - нашли номер строки.
Теперь в этой же строке примените Pos('"value="...
и добавьте длину ("value=")...

Последний раз редактировалось mihali4; 06.03.2010 в 12:37.
mihali4 вне форума Ответить с цитированием
Старый 06.03.2010, 00:50   #3
spamer
Software Developer
Старожил
 
Аватар для spamer
 
Регистрация: 19.12.2008
Сообщений: 2,070
По умолчанию

kakawkin, странно, код ведь рабочий, выводит то, что вам и надо 05ef76d8466ca88b698c98ccaa8afd5f
Будь проще и люди к тебе потянутся
spamer вне форума Ответить с цитированием
Старый 06.03.2010, 01:07   #4
Usov
Форумчанин
 
Аватар для Usov
 
Регистрация: 29.09.2009
Сообщений: 228
По умолчанию

вот еще: http://www.programmersforum.ru/showp...92&postcount=7
Usov вне форума Ответить с цитированием
Старый 06.03.2010, 01:46   #5
kakawkin
Форумчанин
 
Регистрация: 21.09.2009
Сообщений: 431
По умолчанию

Цитата:
Сообщение от Usov Посмотреть сообщение
попробовал сделать по вашему коду.
Вот сделал такое событие на баттоне:
Код:
ShowMessage(GetSubStr(memo1.Lines.Strings[i],'name="token"','">'));
и оно мне выдаёт пустоту((((

помогите пожалуйста разобраться в чём дело то
kakawkin вне форума Ответить с цитированием
Старый 06.03.2010, 02:06   #6
NervniiJ
Похмел
Пользователь
 
Регистрация: 10.01.2010
Сообщений: 16
По умолчанию

Код:
<html>
.........
    <input type="hidden" name="token" value="05ef76d8466ca88b698c98ccaa8afd5f">
.........
</html>
Код:
function Parse(var s: string; const sep: string): string;
var p : Longint;
begin
  p := AnsiPos(sep, s);
  if p > 0 then begin
      Result := Copy(s, 0, p - 1);
      Delete(s, 1, p + Length(sep) - 1);
  end else begin
      Result := Copy(s, 1, Length(s));
      s := '';
  end;
end;

var
  i: Integer;
  str, s : String;
begin
  for i := 0 to Memo1.Lines.Count - 1 do
  begin
    s := memo1.Lines[i];
    parse(s, 'name="token"');
    parse(s, 'value="');
    str := parse(s, '"');
    ShowMessage(str);
  end;
NervniiJ вне форума Ответить с цитированием
Старый 06.03.2010, 02:06   #7
kakawkin
Форумчанин
 
Регистрация: 21.09.2009
Сообщений: 431
По умолчанию

проблема была в моих кривых руках:
слишком малая ширина memo1 была и из-за этого такая трабла.
А как загрузить фаил не методом
Код:
memo1.lines:=idhttp1.get(yandex.ru)
а как нибудь в память чтобы небыло такого сексанома с memo1 ???
kakawkin вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
проблемы с удалением строки в таблице retede JavaScript, Ajax 2 15.01.2010 12:57
Перенести символа с начала строки в место перед запятой этой же строки. Zhiltsov Microsoft Office Excel 4 05.06.2009 13:10
проблемы с длиной строки (возврвщается пустая строка) NieL Общие вопросы Delphi 3 21.02.2009 13:31
считать из файла две строки, вывести на экран символы первой строки, которые отсутствуют во второй gotex Помощь студентам 4 08.05.2008 02:27