Ungleiche Werte bei Vergleich mit strcmp() immer gleich
-
Hallo zusammen,
ich brauch wieder mal Hilfe !
Ich habe folgenden Code:
int __fastcall TfrmDateisuche::filtern(char *Dateiname, char *Verzeichnisname) { if(pruefart==3) { TListItem *pItemV=LiVVerz->TopItem; TListItem *pItemD=LiVDateien->TopItem; if(MidStr(Verzeichnisname, 12, 8)=="profiles") { a=filtern_Datei(Dateiname, Verzeichnisname); return a; } String Verz=Verzeichnisname; // Hier gehts for(int i=0; i<LiVVerz->Items->Count; i++) { if(strcmp(Verz.c_str(), pItemV->Caption.c_str())==0) { a=filtern_Datei(Dateiname, Verzeichnisname); return a; } pItemV = LiVVerz->GetNextItem(pItemV, sdBelow, TItemStates() << isNone); } String Dat=Dateiname; //Hier gehts nicht for(int j=0; j<LiVDateien->Items->Count; j++) { if(strcmp(Dat.c_str(), pItemD->Caption.c_str())==0); { return 1; } pItemD = LiVDateien->GetNextItem(pItemD, sdBelow, TItemStates() << isNone); } a=filtern_Verzeichnis(Dateiname, Verzeichnisname); } return a; }
Das Ganze soll folgendermassen funktionieren:
- Im ersten Vergleichsblock (String Verz=...) werden mit strcmp() Verz und pItemV->Caption verglichen. Das funktioniert auch. Wenn die beiden ungleich sind, springt er weiter.
- Im 2. Vergleichsblock (String Dat=....) werden mit strcmp() Dat und pItemD->Caption verglichen. Wenn die beiden ungleich sind, springt er trotzdem auf "return 1;". Beispiel: Wenn ich mit dem Cursor beim debuggen auf "Dat" fahre, steht beim Cursor: Dat = {Data:"iq0010.bmp"}. Bei "Caption" von pItemD->Caption steht: pItemD->Caption = {Data:"profile.mdb"}. Das ist doch nicht gleich, oder ? Trotzdem springt er auf "return 1;".Was hab ich da falsch gemacht ?
Vielleicht kann mir ja jemand einen Tip geben.Vielen Dank schon mal.
-
if(strcmp(Dat.c_str(), pItemD->Caption.c_str())==0); // ^ //Mach daraus mal if(strcmp(Dat.c_str(), pItemD->Caption.c_str())==0)
-
Das ist ja zum Kot...
Ich hab das jetzt glaub ich 1 Stunde lang Zeile für Zeile rauf und runter verglichen. Aber meinst Du, ich hätte DAS gesehen ??Vielen Dank, Knuddelbaer. Jetzt gehts
Gruß Markus
-
Ich koennt mir vorstellen, dass der ==-Operator fuer 'String' bestimmt
ueberladen ist. Dann brauchste kein strcmp + .c_str()-Methode.mfg
v R