sapzero
Goto Top

String durchsuchen

Hi,

hab ein Problem will ein Text nach bestimmten Inhalt durchsuchen, welches ich in einem UnicodeString abspeichere.
Ich suche den Inhalt zwischen < > ,jedoch muss ich immer den Inhalt des UnicodeString bis zu dem 1 Treffer löschen damit er mir den 2 Treffer anzeigt. Sonst zeigt er mir immer den 1 Treffer an und nicht die anderen 19, weil er immer wieder am Anfang des Strings sucht.

Sprache C++
for (int i=0; i < 20; i++)
{
int pos1 = text.Pos("<");  
int pos2 = text.Pos(">");  
Memo3->Lines->Add(text.SubString(pos1,(pos2-pos1)));
text.Delete(1,pos2);
}	


Wie kann ich das machen, dass er mir alle 20 Treffer anzeigt ohne den Inhalt vor dem Fund in dem String zu löschen.

Würde mich auf eine schnelle Antwort freuen.

Gruß
Sapzero

Content-Key: 127215

Url: https://administrator.de/contentid/127215

Printed on: April 19, 2024 at 08:04 o'clock

Member: maretz
maretz Oct 15, 2009 at 14:52:55 (UTC)
Goto Top
Gut - es gibt ja nur eine Programmiersprache ...
Member: Sapzero
Sapzero Oct 15, 2009 at 16:13:56 (UTC)
Goto Top
Sry habs vergessen zu erwähnen in C++
Member: TsukiSan
TsukiSan Oct 16, 2009 at 03:11:51 (UTC)
Goto Top
Hi Sapzero,

für den Fall - was ich nicht weiß - dass deine Datei wie folgt aufgebaut ist:
<Treffer 1 etc.>
<Treffer 2 etc.>
usw., würde ich die SPLIT Methode anwenden.

Schau dir mal in dem Link das Beispiel an.
Eventuell hilft dir dies, die Sache zu vereinfachen.

Ein Beispiel in VBS:
TextZeile = "1 < Treffer1 > "  
TextSpl = Split(TextZeile,"<")  

'hier das Ende abschneiden, wenn es immer gleiche Anzahl an Zeichen nach  
' Treffer1 enthält.  
TextSpl1 = mid(TextSpl(1),1,Len(TextSpl(1)) - 3)

msgbox TextSpl1

so ziemlich ähnlich geht das in C++,VB und VBS.

Gruß
Tsuki