Problem mit Find()

athlon

Mitglied
Also:

Code:
CFile datei( DateiName, CFile::modeReadWrite);
CString inhalt;
datei.Read(inhalt.GetBufferSetLength(datei.GetLength()), datei.GetLength()); 

CString gesucht = "wie";
if (inhalt.Find(gesucht) == 0 )
{AfxMessageBox("Heftig es klappt");}

Die datei sieht so aus:
Code:
Hallo wie gehts
Wenn ich nach dem "Hallo" suche ist das kein Problem
auch nicht wenn ich nach "Hallo wie gehts" suche
aber sobald ich nach "wie" oder "gehts" suche klappts nicht :-(

Was mache ich falsch?
 
Ich kann mich jetzt zwar irren, aber ich glaube find gibt die Position zurück, an der das gefundene Wort im String beginnt. Für "Hallo" und "Hallo wie geht's" ist das natürlich 0, für "wie" würde allerdings 6 zurückgegeben werden. Da du nur prüfst, ob 0 zurückkommt, erscheint die Suche nach "wie" natürlich erfolglos.
 
Naja, immer noch mit Find danach suchen, allerdings deine if -Zeile ändern. Ich hab jetzt hier leider keine Möglichkeit nachzusehen, aber Find gibt sicherlich einen bestimmten Wert zurück, wenn es nix findet und du kannst doch auf diesen Wert prüfen und abhängig davon deine Erfolgsmeldung ausgeben.
 
Das dunktioniert aber irgednwie nicht :-(

Code:
CString gesucht = "wie";
if (inhalt.Find(gesucht) == 0 )
{AfxMessageBox("NIcht gefunden");}

Er sagt mir immer Nicht gefunden auch wenn das wie dasteht!
 
Kleiner Hinweis: == -1 muss irgendwo in die zweite Zeile deines Codeabschnitts, den du zuletzt gepostet hast...
 
ja sorry ich hatte nen falschen code gepostet ich meinte natürlich

Code:
CString gesucht = "wie";
if (inhalt.Find(gesucht) == -1 )
{AfxMessageBox("NIcht gefunden");}

Trotzdem geht es nicht.
 
Zurück