Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Универсальность кода


Автор: Canyon 30.3.2012, 10:21
Как сделать следующее:

К примеру у меня есть вот такой код

Код

var
 s : string;
 I, h : integer;
Begin
 S := 'HTML СТРАНИЦа ';
 I := Pos ('href=', S);
 Copy(S, i, 10);
End;


и резко мне надо в этом же приложении использовать другой метод парсинга, т.е. дабовить больше функций.

Как это сделать не переделывая готовый exe????
В какую сторону капать, поподробней пожалуйста.

Автор: Данкинг 30.3.2012, 10:22
Цитата(Canyon @  30.3.2012,  11:21 Найти цитируемый пост)
Как это сделать не переделывая готовый exe????

Как не переделывая, не понял? Исполняемый файл хакнуть, что ли?

Автор: Canyon 30.3.2012, 10:25
Не перекомпилировать. 
Т.е. я укажу где нибудь в memo синтаксис по которому парсить строки, и он мне сделает по тому коду по которой написан в memo

Автор: Akella 30.3.2012, 10:34
Use http://forum.vingrad.ru/forum/topic-258533.html, Luke

Автор: Canyon 30.3.2012, 10:41
использовать эту http://regexpstudio.com/

Если честно, ни чиго не могу понять в этом regexp, сколько раз не садился разбираться что и как, не смог понять.

Но даже с regexp придеться частично иногда изменять код.

Может все таки можно как то придумать без регулярки?

Автор: Alexeis 30.3.2012, 10:43
Цитата(Akella @  30.3.2012,  11:34 Найти цитируемый пост)
Use regexpr, Luke 

+1 . Это позволит тебе задавать правила поиска в текстовом поле, а затем применять для поиска. Другое дело, что таким же образом не удастся обобщить обработку найденных строк.

Автор: Qu1nt 30.3.2012, 11:17
Я просто оставлю http://stackoverflow.com/a/1732454 здесь.

Автор: Akella 30.3.2012, 14:19
Тогда смотри в сторону http://www.remobjects.com/ps.aspx, http://www.fast-report.com/ru/products/fast-script.html или на побобные библиотеки/компоненты.

Добавлено через 32 секунды
Canyon, но без регулятор тебе парсить HTML будет реально трудно!

Добавлено через 6 минут и 20 секунд
Qu1nt, ты бы в двух словах мог рассказать?  smile 

Автор: Canyon 30.3.2012, 17:58
Если долго мучаться, что-нибудь получится.
Вообщем нашел статью от журнала Хакер, про регулярные выражения, я буквально сразу почти понял как что делать,
а справку стандартную несколько раз перечитывал и нифигашечки не понял.

Но осталась маленькое но, не знаю как убрать символ из найденой строки.

пример строки которую ищу в html
Код

"/mail/signup.php?s=&PHPSESSID=6290d2hj56egh6bdcdd9687jf29fa7"

результат нужен без ковычек

вот регулярка
Код

\"+\/[\w]+\/[\w.]+\?+r+\=+\&+[\w]+\=+[\w]+\"

(указал в начале и в конце ковычки, т.к. без них выдает еще кучу результатов котоыре не нужны)

Как исключить эти ковычки из результат при помощи регулярки?
И мне еще кажеться что я сделал как то не красиво эту регулярку. Можно было сделать подругому?

Автор: Canyon 30.3.2012, 18:35
Начал парсить русский текст и наткнулся на камень.

Пример
Код

<a href="/articles/item/168-Kak_dostatb-soseda.html">
            Как достать соседа 7? (Как dostatb soseda7?).        </a>


Результат должен быть "Как достать соседа 7? (Как dostatb soseda7?)."

Начинаю искать от .html"> до </a> но что то не выходит. 
Приведите пример регулярки для этого поиска

Автор: Akella 31.3.2012, 12:09
Canyon, Фридла почитай

Добавлено @ 12:11
Canyon, используй модификатор s

Код
(?is).html">([^<]+)</a>

Автор: Akella 4.4.2012, 10:12
Вот ещё про http://habrahabr.ru/post/67158/

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)