namen eingeben, in einer .txt datei nachschlagen und ausgebn
-
hallo habe noch eine Frage..
und zwar folgendes..
Ich gebe in einem Edit den gewünschten Dateinamen ein.
Dann hatte ich vor den Namen aus meinem zuvor ausgelesen und in einer .txt gespeicherten Daten auszulesen..In der .txt Datei steht der gesamte Pfad..
z.B: c:\Programme\\Adobe\Acrobat 6.0\Esl\AiodLite.dll
So..
wenn der Benutzer nun AiodLite eingibt soll es diese Zeile in der .txt Datei finden in der dieser Name vorkommt und in einer ListBox ausgeben.Code bisher:
GroupBox4->Visible=true; AnsiString datei,datei2; int i; int wert=0; datei=Panel2->Caption; DATEI=new TStringList; DATEI->LoadFromFile("lokal.txt"); int n=DATEI->Count; for(i=0;i<=n-1;i++) { datei2=DATEI->Strings[i].Pos(datei); if(datei==datei2){ListBox2->Items->Add(datei);wert+1;} } if(wert==0){ShowMessage("nicht vorhanden");} }So funktioniert es aber nicht..was ist falsch??
Was muss ich verändern??
Habt ihr Ideen für eine bessere Umsetzung als meine??
-
Hallo,
AnsiString::Pos gibt einen index zurück (oder 0 wenn nicht gefunden) und keinen AnsiString. Steht auch so in der Hilfe.
-
hmm ok..aber was muss ich dann einsetzen um das rauszulesen??
-
Wie wärs mit
if( DATEI->Strings[i].Pos(datei) != 0) ...
-
GroupBox4->Visible=true; bool bGefunden = false; AnsiString datei = Panel2->Caption; DATEI=new TStringList; DATEI->LoadFromFile("lokal.txt"); for(i = 0; i < DATEI->Count; i++) { if (DATEI->Strings[i].AnsiPos(datei)) { ListBox2->Items->Add(DATEI->Strings[i]); bGefunden = true; } } if(!bGefunden) {ShowMessage("nicht vorhanden"); }[EDIT]
Fällt mir gerade noch auf:
[cpp]DATEI = new TStringList**()**;[/cpp]
Und ich hoffe da folgt dann noch ein delete DATEI...
-
hmm...leider geht es so auch nicht..Delete hab ich auch noch nicht eingebaut..
es zeigt im übrigen keinen Fehler an..aber es gibt einfach nichts in der listbox aus..
und es kommt immer "wurde nicht gefunden" obwohl es 100% da is..
-
okay es geht!!
danke!!!!!