dima1981, Пример работает, но частично из-за специфики текстового файла иногда не так высчитывает как надо. Результат получается такой
результат
Код:
http://www.oszone.net/1/Windows
http://www.oszone.net/1/Windows
http://www.oszone.net/8628/windows_7
http://www.oszone.net/10/Windows_Vista
http://www.oszone.net/8/Windows_XP
http://www.oszone.net/5021/Windows_Server_2008
http://www.oszone.net/9/Windows_Server_2003
http://www.oszone.net/7/Windows_2000_NT
http://www.oszone.net/6/
http://www.oszone.net/5681/Windows_Services
http://www.oszone.net/11612/Windows_Live_Wave_4_leaked">В Интернет просочились скриншоты Windows Live Wave 4</a> <a href="http://www.oszone.net/11612/Windows_Live_Wave_4_leaked"><img src="/img/2/arrow.gif" alt="Читать далее..." width="3" height="5" vspace="1" border="0
http://www.oszone.net/11607/Unsurprisingly_IE9_wont_be_supported_on_an_obsolete_OS">К всеобщему удивлению, Internet Explorer 9 не будет работать на Windows XP</a> <a href="http://www.oszone.net/11607/Unsurprisingly_IE9_wont_be_supported_on_an_obsolete_OS"><img src="/img/2/arrow.gif" alt="Читать далее..." width="3" height="5" vspace="1" border="0
http://www.oszone.net/5681/Windows_Services
http://www.oszone.net/4327/FAQ_Windows_Vista
http://www.oszone.net/106/
http://www.oszone.net/5021/Windows_Server_2008
http://soft.oszone.net/program/30/"><img src="http://tools.oszone.net/Blast/unattended.png" alt="Учебник по автоустановке Windows" width="48" height="48" border="0" align="left
Код:
...
// Обрабатываем по нажатию на кнопку "Сортировать"------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
int start, end, sub;
TStringList *General = new TStringList();
TStringList *list = new TStringList();
if(RichEdit1->Lines->Text != ""){
General->Text = RichEdit1->Text;
for(int i = 0; i < General->Count; i++){
if(General->Strings[i].LowerCase().Pos("href=\"") && General->Strings[i].LowerCase().Pos("http:") && General->Strings[i].LowerCase().Pos("windows")){
start = General->Strings[i].LowerCase().Pos("href=\"") + String("href=\"").Length();
end = General->Strings[i].LowerCase().LastDelimiter("\""); // В этой строке причина неточного расчёта. LastDelimiter ищет последнее вхождение указаного символа...
sub = end - start;
list->Add(General->Strings[i].SubString(start, sub));
}
}
}
Memo2->Text = list->Text;
General->Clear();
list->Clear();
}
// Кнопка "Вставить текст"------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
RichEdit1->Clear();
RichEdit1->PasteFromClipboard();
}
//---------------------------------------------------------------------------
...
Если в вашей задаче нужно найти слово входящее в скобки. Например:
Цитата:
какой-то текст находящийся в файле и вот здесь [искомое слово], которое нам надо извлечь
|
То можно искать:
Код:
start = General->Strings[i].Pos("[");
end = General->Strings[i].Pos("]");
sub = end - start;
list->Add(General->Strings[i].SubString(start, sub));