Показать полную графическую версию : [решено] Поиск текста
Доброго дня. Помогите у меня есть к примеру текст(исходный код станицы)
Мне нужно из него вывести к примеру в Memo всю текстовую информацию.
Ка это лучше сделать?
<!-- message --> <div id="post_message_136410" > НЕ удаляйте времено)История<br /> 28/10/2012<br /> ViasatBaltic </div> <!-- / message -->
как я понел, создаем 3 переменные
a = Memo1->Lines->Text. P o s ( " < d i v i d = " p o s t _me s s a g e _ 1 3 6 4 1 0 "> " ) ;
b = Memo1->Lines->Text. P o s ( " </div> " );
c= Memo1->Lines->Text . P o s ( " < / br > " );
А начало, b конец, с новая строка.
А как поиск организовать ?
В идеале должно выйти что то вроде
НЕ удаляйте времено)История
28/10/2012
ViasatBaltic
Проще регулярные выражения использовать, можно подключить дельфийский Regexpr.pas
Project->Add to project (выбираешь pas)
Project->Build project
Затем в нужном модуле пишешь #include <*.hpp>
который был скомпилирован.
а если не затруднит, можно пример проекта?
Вот пример, строка уже вписана в Edit1, так что просто нажмите кнопку
спасибо, вечером проверю.
И вопрос не много не по теме ...
Вы случайно не работали с компонентом quickreport?
Вы случайно не работали с компонентом quickreport? »
Нет, не приходилось
а ссылку на вложение можно получить как нибудь таким методом?
<!-- / message -->
<!-- attachments -->
<div style="padding:6px">
<fieldset class="fieldset">
<legend>Вложения</legend>
<table cellpadding="0" cellspacing="3" border="0">
<tr>
<td>
<img class="inlineimg" src="images/attach/rar.gif" alt="Тип файла: rar" width="16" height="16" border="0" style="vertical-align:baseline" /></td>
<td><a href="attachment.php?attachmentid=27766&d=1351617788">test.rar</a> (2.1 Кб, 34 просмотров <a href="whodownloaded.php?do=whodownloaded&s=&attachmentid=27766" onclick="whodownl_call_ajax_window(this, 'whodownl_main_container', 'whodownl_dragdrop_container'); return false;">Кто скачивал?</a>)</td>
</tr>
</table>
</fieldset>
</div>
<!-- / attachments -->
что бы вышло attachment.php?attachmentid=27766&d=1351617788?
аа expression это скрывает теги, по маске?я прав?
Проще наверно сделать поиск по строке attachment.php?
attachmentid , так как больше влажений на странице не будет.Может есть у вас идея?
Если строка одна на странице, то ,конечно, лучше просто найти подстроку
да строка одна, это постоянная attachment.php?attachmentid=и здесь ид влажение, но он не постоянный.
attachment.php?attachmentid=27766&d=1351617788
А как вытянуть эту ссылку?..больше ссылок 100% не будет.но ид меняется....
но ид меняется. »
На сколько меняется? Если длина одинаковая, то просто посчитать
На сколько меняется? »
не известно.Суть работы - нужно скачивать архив(вложение) с форума, ссылка на пост постоянная, а ссылка вложение меняется при обновлении вложения.(примерно раз в день)
Начало ссылки attachment.php?attachmentid
и заканчивается ">test.rar
И 100% не повторяются эти слова
ferget, может пригодится
int begin= Text.Pos("attachment.php?");
int end= Text.Pos("\">test.rar");
if( begin && end ) Str= Text.SubString(begin,end-begin+String("").Length() );
Str = StringReplace(Str,"amp;","",TReplaceFlags()<<rfReplaceAll);
И получаем ссылку)
ferget, Привет, может подскажите
Обрабатываю примерно 50 строк...
Такого вида:
Дима:Привет:122:11/1111/1:Один:Два:0102030405060708091011121314 #Первая строка
Маша:Привет:122:11/1111/1:Один:Два:0102030405060708091011121314 #Третья строка
Хочу исключить строки(мусор) которые не похожи на эти строки
к примеру
трата та....
11141..
22122
..
Пытался так -
TRegExpr* RegExp=new TRegExpr();
AnsiString str;
AnsiString InputStr = str;
for( int i=0; i<mmo1->Lines->Count;i++ )
{
str=mmo1->Lines->Strings[i];
RegExp->Expression="(\\w+):(\\w+):(\\d+):\\d*/\\d*/\\d*:(\\w+):(\\w+):(\\d+) #(\\w+ \\w+)";
RegExp->Compile();
InputStr=RegExp->Replace(str,"",false);
Memo2->Lines->Add(InputStr);
Но все равно не фильтрует строки...
Может подскажите ошибку?
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.