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-ID: 127215

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

Ausgedruckt am: 26.11.2024 um 05:11 Uhr

maretz
maretz 15.10.2009 um 16:52:55 Uhr
Goto Top
Gut - es gibt ja nur eine Programmiersprache ...
Sapzero
Sapzero 15.10.2009 um 18:13:56 Uhr
Goto Top
Sry habs vergessen zu erwähnen in C++
TsukiSan
TsukiSan 16.10.2009 um 05:11:51 Uhr
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