Zeichen im Satz prüfen
-
Hallo,
ich habe folgendes problem und zwar, möchte ich zwischen ' und ' überprüfen, ob sich noch so ein zeichen ' im '' befindet.
beispiel;
'Ich, der Bequemste, duld**'** es kaum.'
Das was Fett dargestellt ist, möchte ich überprüfen, die zeichen außen sind unwichtig.if (Text.Pos("'")) { }so wird das aber nicht funktionieren, ich möchte auf diese Zeichen prüfen die innerhalb der ' ' zeichen stehen.
EDIT: oder vieleicht noch einfacher, das was zwischen (' und ', steht, möchte ich auf ' überprüfen.
EDIT: ich habe das so gelöst:
for (int i=0; i<Liste->Count-1; i++) { Pos1 = Liste->Strings[i].Pos("('")+2; Pos2 = Liste->Strings[i].Pos("',")-3; Text = Liste->Strings[i].SubString(Pos1,Pos2); if (!Text.Pos("'")) { Memo1->Lines->Add(Text); } }Vielen Dank.
MfG
-
SubString erwartet als 2. Parameter die Anzahl der Zeichen (nicht die 2. Position), d.h.
Pos1 = Edit2->Text.Pos("('"); Pos2 = Edit2->Text.Pos("',"); Text = Edit2->Text.SubString(Pos1,Pos2-Pos1+1);
-
Du könntest doch über pos() auf das erste Vorkommnis von ' prüfen. Dann dieses Char löschen. Dann auf's nächste ' suchen, das ebenfalls löschen, dann wieder suchen, und wenn er dann eines findet, dann hast du 3 gefunden, also das vorherige lag zwischen 'und'.
Nachteil: du veränders deinen Originalstring