![]() |
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]() ![]() ![]() |
|
Rondo |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 154 Регистрация: 24.2.2006 Где: там.. Репутация: нет Всего: нет |
Подскажите как можно найти текст в html документе, между какими то тегами.
Тоесть чтоб например в memo выводилось все что лежит между тегами <body>это должно вывестись в momo </body> ![]() --------------------
Начинающий кодер |
|||
|
||||
Poseidon |
|
|||
![]() Delphi developer ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 5273 Регистрация: 4.2.2005 Где: Гомель, Беларусь Репутация: 53 Всего: 133 |
Можно
![]()
Писал "на коленке", поэтому можно многое оптимизировать. Но главное - суть - должна быть понятна ![]() -------------------- Если хочешь, что бы что-то работало - используй написанное, если хочешь что-то понять - пиши сам... |
|||
|
||||
Rondo |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 154 Регистрация: 24.2.2006 Где: там.. Репутация: нет Всего: нет |
Спасибки за такой быстрый ответ, ща проверю!
--------------------
Начинающий кодер |
|||
|
||||
Rondo |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 154 Регистрация: 24.2.2006 Где: там.. Репутация: нет Всего: нет |
Все работате, только после того как найдет 1 тег останавливается
Добавлено @ 00:00 Как сделать чтоб он все тэги страницы выводил, немогу придумать ![]() --------------------
Начинающий кодер |
|||
|
||||
Poseidon |
|
|||
![]() Delphi developer ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 5273 Регистрация: 4.2.2005 Где: Гомель, Беларусь Репутация: 53 Всего: 133 |
Что это значит? На одной странице может быть до сотни различных тегов. Ты хочешь их все выводить? Или ты хочешь выводить все врагменты текста, каторый заключен к какой-то один тип тега (как <body> в примере)?
-------------------- Если хочешь, что бы что-то работало - используй написанное, если хочешь что-то понять - пиши сам... |
|||
|
||||
Rondo |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 154 Регистрация: 24.2.2006 Где: там.. Репутация: нет Всего: нет |
Я имел в виду чтоб он все писал мне в memo что находится между <тег>...</тег> body я простн взял для примера
![]() Мне надо все фрагменты текста на страницы которые заключены в нужный мне тег --------------------
Начинающий кодер |
|||
|
||||
Poseidon |
|
|||
![]() Delphi developer ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 5273 Регистрация: 4.2.2005 Где: Гомель, Беларусь Репутация: 53 Всего: 133 |
Ну так загони функцию в цикл
![]() Что-то вроди такого (опять "на коленке") ![]()
Это сообщение отредактировал(а) Poseidon - 7.7.2006, 00:25 -------------------- Если хочешь, что бы что-то работало - используй написанное, если хочешь что-то понять - пиши сам... |
|||
|
||||
Rondo |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 154 Регистрация: 24.2.2006 Где: там.. Репутация: нет Всего: нет |
Poseidon, респект!
--------------------
Начинающий кодер |
|||
|
||||
Yanis |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2937 Регистрация: 9.2.2004 Где: Москва Репутация: 72 Всего: 111 |
Помоему регулярные выражения сильно упрощаю жизнь.
|
|||
|
||||
Poseidon |
|
|||
![]() Delphi developer ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 5273 Регистрация: 4.2.2005 Где: Гомель, Беларусь Репутация: 53 Всего: 133 |
Yanis, если бы я дал пример с TRegExpr, думаю он бы вообще ничего не понял а просто скопировал. А так хоть разберется с основами работы со строками ;)
-------------------- Если хочешь, что бы что-то работало - используй написанное, если хочешь что-то понять - пиши сам... |
|||
|
||||
Rondo |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 154 Регистрация: 24.2.2006 Где: там.. Репутация: нет Всего: нет |
Опять же в мемо загружаю текст, и хотелось бы чтоб там осталось только:
Хотелось бы найти что находится между определенными тегами... На этот раз только в первом и последнем найденом теге и поместить найденый текст в отдельную строку ![]()
Это сообщение отредактировал(а) Girder - 10.7.2006, 13:25 --------------------
Начинающий кодер |
|||
|
||||
Guedda |
|
|||
![]() Подрывник ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3137 Регистрация: 27.12.2005 Где: Ростов-на-Дону Репутация: 14 Всего: 78 |
Допустим, у тебя есть строка: <tag>Превед!</tag>
Чтобы вытащить Превед! Необходимо проделать следующее:
Добавлено @ 14:21 Соответственно, если у тебя тег будет не <tag>, а какой либо другой, там уже будешь варьировать с MatchesMask и с copy (там по символам подберешь...) -------------------- Ll 2 |
|||
|
||||
Mechanic |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 228 Регистрация: 5.5.2006 Где: Kharkov, Ukraine Репутация: 6 Всего: 7 |
А чем выделены теги? Если как в html, тогда поможет вот эта функа, что написана специально для разбора html тегов
--------------------
Tell me the extensions of the files You backup and I'll tell You who You are.. ©Mch |
|||
|
||||
Sunr1se |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 193 Регистрация: 1.5.2006 Репутация: 6 Всего: 13 |
насколько я понял, надо просто вставить текст, находящийся между определенными тегами, в отдельную строку? Тогда вот первое, что пришло в голову (уж извините за такой нехороший код).
Добавлено @ 14:31 Пока код писал, вон сколько народу уже откликнулось ![]() --------------------
IRC-канал Винграда |
|||
|
||||
Rondo |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 154 Регистрация: 24.2.2006 Где: там.. Репутация: нет Всего: нет |
Спасибо, ща все проверю
![]() Добавлено @ 15:12 Sunr1se, Неправильно понял, допустим у меня такой код.
Мне надо выдернуть из этого кода 14 156 608 и 210 125 741 (они в самом низу ![]() --------------------
Начинающий кодер |
|||
|
||||
Sunr1se |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 193 Регистрация: 1.5.2006 Репутация: 6 Всего: 13 |
Тогда сделай так:
В цикле перебирай строчки, записывая в какую-то переменную номер строки, если в ней есть тег <tr>(ну или какой-то другой). Как только цикл закончится, воспользуйся функцией Mechanic'а, передав в нее эту самую строчку. --------------------
IRC-канал Винграда |
|||
|
||||
Rondo |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 154 Регистрация: 24.2.2006 Где: там.. Репутация: нет Всего: нет |
Вообщем перелопатил я этот текст и получилось как и ожидал эти самые 2 числа
Толкько как разлечить что это 2 числа а не 6 числел, и отправить их на разные строки... И числа то могут быть разные ![]() --------------------
Начинающий кодер |
|||
|
||||
Sunr1se |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 193 Регистрация: 1.5.2006 Репутация: 6 Всего: 13 |
А ты не мог бы показать, каким образом лопатил текст?
![]() --------------------
IRC-канал Винграда |
|||
|
||||
BUGOR |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 325 Регистрация: 12.3.2006 Репутация: 5 Всего: 16 |
В данном случае однозначно рулят регулярки. Только в твоём примере первый и последний найденные теги какие? Я так понял надо найти всё, что в пределах тегов td и чтобы это были цифры, если так, то выражение будет выглядеть следующим образом:
(?!(<td.*>(<b>)?)) [0-9 ]+(?=((</b>)?</td>)) Из твоего примера моё выражение выдирает следующее: 3 897 51 212 1 796 802 23 917 530 030 14 156 608 210 125 741 |
|||
|
||||
Rondo |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 154 Регистрация: 24.2.2006 Где: там.. Репутация: нет Всего: нет |
Еще Poseidon довал на днях
![]()
Это сообщение отредактировал(а) Rondo - 10.7.2006, 16:21 --------------------
Начинающий кодер |
|||
|
||||
BUGOR |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 325 Регистрация: 12.3.2006 Репутация: 5 Всего: 16 |
А, ну и если будешь работать с MatchCollection, то просто бери два последних элемента массива, если же с массивами работать не хочешь, то нужно дорабатывать выражение, чтобы оно выбирало текст между двумя последними тегами td, в принципе это несложно, если надо скажи, попробую составить.
Добавлено @ 16:30 Rondo, объясни мне зачем писать огромные и тормозные функции, когда это всё красиво и элегантно умещается в одно регулярное выражение? |
|||
|
||||
Rondo |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 154 Регистрация: 24.2.2006 Где: там.. Репутация: нет Всего: нет |
Неумею я пока ими пользоватся
![]() --------------------
Начинающий кодер |
|||
|
||||
Sunr1se |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 193 Регистрация: 1.5.2006 Репутация: 6 Всего: 13 |
Так ты передавай в функцию строки по отдельности. тогда будешь получать строку, в которой одно число. Удали из строки пробелы и приведи его к типу integer.
http://anso.da.ru/ - здесь есть и компонент необходимый, и мануальчик небольшой по регулярным выражениям ![]() Это сообщение отредактировал(а) Sunr1se - 10.7.2006, 16:44 --------------------
IRC-канал Винграда |
|||
|
||||
BUGOR |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 325 Регистрация: 12.3.2006 Репутация: 5 Всего: 16 |
Rondo, Уже оффтопить начали, ну думаю модеры нас простят. Я учил регулярные выражения по книге:
Фридл Дж. Регулярные выражения (2-е изд.), Питер 2003, 464 с., ISBN 5-272-00331-4 Есть в сети. Прочёл всего-лишь порядка 100 страниц, но при этом спокойно могу составлять довольно сложные регулярки. |
|||
|
||||
Лысенак |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 8.7.2006 Репутация: нет Всего: нет |
http://www.regularexpressions.info/ Это сообщение отредактировал(а) Лысенак - 10.7.2006, 18:42 |
|||
|
||||
Rondo |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 154 Регистрация: 24.2.2006 Где: там.. Репутация: нет Всего: нет |
Нашел эту книгу, и правда легко )) http://foror.name/upload/regexp.zip
--------------------
Начинающий кодер |
|||
|
||||
Eva_Adamova |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 18 Регистрация: 26.3.2007 Где: Петропавловск-Кам чатский Репутация: нет Всего: нет |
Пусть я отвечаю поздно, через полгода, но всё равно хочется сказать спасибо. У меня такая же проблемы была, с разбором таблиц в ХТМЛе, сейчас всё стало более менее ясно!
Добавлено через 3 минуты и 18 секунд Вышеприведённая ссылка на книгу не работает, вот другая - http://natahaus.ifolder.ru/551395 |
|||
|
||||
Yanis |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2937 Регистрация: 9.2.2004 Где: Москва Репутация: 72 Всего: 111 |
Приятно осозновать, что есть люди которые пользуются поиском.
Eva_Adamova, ![]() |
|||
|
||||
AlManZ |
|
|||
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 4.1.2007 Репутация: нет Всего: нет |
Ну чтоб не создавать новый топик... Книга - да, отличная! А вот теперь еще бы где-нить взять эту библиотеку TRegExpr... ссылки, которые нашел уже не работают :(. Можно и на мыло, буду благодарен.
|
|||
|
||||
iddqd |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 491 Регистрация: 16.11.2005 Репутация: 0 Всего: 2 |
-------------------- |
|||
|
||||
AlManZ |
|
|||
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 4.1.2007 Репутация: нет Всего: нет |
![]() |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Общие вопросы" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |