Text auslesen (Wortweis aus Richedit)
-
Hallo, ich hoffe ihr könnt mir hier im Forum weiterhelfen. Bisher hab ich es immer versucht ohne Hilfe zu schaffen aber jetzt muß ich euch mal belasten.
Und zwar möchte ich einen Text der jetzt zum Bsp. mal im Richedit steht auslesen. Und zwar soll der mit zum Beispiel das Wort was auf das gesucht Wort ausgeben. Bsp.:
Das Wetter ist heute sehr schön.
Gesucht ist das Wort nach "heute". Der Rechner soll mir jetzt also zum testen erstmal eine ShowMessage("sehr") ausgeben.
Ich hoffe ihr habt verstanden wie. Probiere jetzt schon seit über 3 Tagen udn komm nicht weiter.
Meine größte Idee war bis jetzt so:
int Pos=RichEdit1->Lines->Text.Pos("heute ");
und dann mit dem darauf folgenden das nächste wort aber ich weiß nicht wie man das nächste wort bzw. die trennung durch leerzeichen etc. herausfindet.bin für jeden hinweiß dankbar.
P.s.: bin relativer anfänger. bitte recht einfach

-
Hallo
AnsiString Text = "Das Wetter ist heute sehr schön."; // Ausgangstext AnsiString SearchWord = "heute"; // zu suchendes Wort AnsiString NextWord; // Wort nach dem zu suchenden Wort int Pos = Text.AnsiPos(SearchWord); // Wort in Text suchen // Wenn Wort in Text vorhanden, nächstes Wort suchen if (Pos > 0) { Pos += SearchWord.Length();// Position um Wort AnsiString Part = Text.SubString(Pos +1, Text.Length() - Pos +1); // Text nach dem Suchwort raustrennen Pos = Part.AnsiPos(" "); // im Text danach nach dem nächsten Leerzeichen suchen if (Pos > 0) NextWord = Part.SubString(1, Pos -1); // Text bis Leerzeichen ausschneiden }Das basiert alles auf den AnsiString-Methoden, die du u.a. hier nachlesen kannst.
bis bald
akari
-
Hallo,
Hier mal eine andere Variante (mit Vergewaltigung von TStringlist)
TStringList * list = new TStringList; AnsiString text = "Das Wetter ist heute sehr schön."; // Suchsatz AnsiString SearchWord = "heute"; // zu suchendes Wort AnsiString NextWord; // Wort nach dem zu suchenden Wort list->CommaText = text; // StringList teilt so selbsttätig bei Kommas und Leerzeichen auf int index = list->IndexOf(SearchWord); // Suche nach dem Wort if( index != -1 && index < list->Count) // ist das Wort enthalten und nicht das Letzte NextWord = list->Strings[index+1]; delete list;
-
ok super habs grade mal kurz probiert das funkt. ich versuch mal am wochenende den ganzen text auszulesen und werde dann meine lösung online stellen.