на странице сайта есть код 28ed35629540a8ad8308d2ed94621d25 ,как его извлечь ? Применить регулярку? Или как то по другому вот кусок кода страницы <input id="passwordkey" type="hidden" value="0ac124177979c922180dc30a677a56ae" /> Буду благодарен желательно не давать готовый результат,а подсказать направление Надеюсь поймете ====== интересует есть ли технология парсение инпутов
<input type="zuka" name="copyme" size="25" value="marsupilami"> вот как извлечь отсюда значение ,объясните пожалуйста
Code: function Parse(const tag1, tag2, source: string): TStrings; var p, p2, len: Integer; begin Result := nil; p := Pos(tag1, source); len := Length(tag1); p2 := PosEx(tag2, source, p + len + 1); if (p = 0) or (p2 = 0) then Exit; Result := TStringList.Create; while (p > 0) and (p2 > 0) do begin if p2 > p then Result.Add(Copy(source, p + len, p2 - p - len)); p := PosEx(tag1, source, p2); p2 := PosEx(tag2, source, p + len + 1); end; end; Пример использования: Code: var strings: TStrings; begin strings := Parse('<a href="', '"', Memo1.Lines.Text); if strings <> nil then begin Memo2.Lines.AddStrings(strings); strings.Free; end; end;
я понял спасибо,но хочется не учиться шаблонно вставлять и называть себя программистом Интересно где об этом почитать можно т
Так непонятно что именно ты хочешь сделать? из 1 строчки получить значение, или иметь возможность со всей страницы получить значения, или еще чего-нибудь...
научиться получать значение из инпута,он может быть любим т.е. name допустим 911 ,а value 112,вот значение нужно получать <input id="passwordkey" type="hidden" value="0ac124177979c922180dc30a677a56ae" /> видишь тут id passwordkey а значение код,мне нужно научиться по id или name получать значение
"О Регулярные Выражения Вы Могучи" Всё предельно просто берём - ТУТ качаем regexpr.pas, подключаем Code: uses regexpr; Пишу примерно. Если нам надо получить Value из input: Code: var RegExp : TRegExpr; begin RegExp := TRegExpr.Create; try RegExp.RegExp.InputString := '<input id="passwordkey" type="hidden" value="0ac124177979c922180dc30a677a56ae" />'; if RegExp.Exec then begin Memo1.Lineas.Append(RegExp.Match[1]); end; finally RegExp.Free; end; end; Если надо получить из нескольких input'ов: Code: var RegExp : TRegExpr; begin RegExp := TRegExpr.Create; try RegExp.RegExp.InputString := '<input id="passwordkey" type="hidden" value="0ac124177979c922180dc30a677a56ae" />'; if RegExp.Exec then// к статей тут можно указать текст или переменную типа - RegExp.Exec(List.Text), тогда InputString не нужен begin repeat Memo1.Lineas.Append(RegExp.Match[1]); until not RegExp.ExecNext; end; finally RegExp.Free; end; end; P.S. Должно работать, писал от руки прямо тут. Удачи.
Тебе уже все объяснили, что именно не понятно? Как получить код страницы? Можно например используя компонент Indy. Как пользоваться Indy знает google "Delphi GET POST Indy". Как извлечь определенный текст из кода страницы? Кури Pos(), Copy(), Delete(), Length(), или опять спроси у google "Delphi работа со строками". Конкретный пример для твоего случая: Code: x_src:=Copy(x_src,Pos('passwordkey',x_src)+34,32); где x_src - переменная типа string, которая содержит код страницы и в которую после выполнения этой строчки кода поместиться результат, в твоем случае это будет "0ac124177979c922180dc30a677a56ae"