Datei enlesen in Combobox
-
Halle .
Ich habe ein kleineres Problem . Ich habe ein Programm geschriebn mit der ich mehrere Sprachdateien habe und einlesen möchte . wenn ich es per hand zuweise funktioniert dieses.1. Problem Ermitteln wiviele *.ini dateien im Ordner Language sind
2. Die Namen der Datei z.b. english.ini ohne ini in eine Combobox zur Auswahl einlesenWäre für Informationen Dankbar
-
Schau dir mal in der Hilfe Struktur TSearchRec an, damit kannst du Ordner nach Dateien (,etc...) durchsuchen. (PS: An den Ordneraufbau denken und die 'Dateien' '..' und '.' abfangen.) Weitere interessante Frunktionen in diesem Zusammenhang: FindFirst(),FindNext(),FindClose()
Den Dateinamen bekommst du als AnsiString zurück.
Dort kannst du dann einfach sagen:
AnsiString Dateiname;
Dateiname=Dateiname.SubString(0,Dateiname.Pos(.));
Damit bekommst du dann nur noch den Dateinamen zurück ohne .ini
Greets

-
Ich habe es jetz so gemacht habe auch 2 Dateien im Ordner aber warum liest er nur 1 Aus und trägt sie rein und dann bleibt das feld auch leer wenn ich das programm öffne gebe ich es bei Text an zeigt er es an hmmm.
TSearchRec sr; AnsiString Dir,Lwert,wert; Dir="language\\"; bool res = true; if(FindFirst(Dir+"*.ini",0,sr)== 0) { while(!FindNext(sr)&& res) { wert = sr.Name.SubString(0,5); Lwert = ComboBox1->Items->Add(wert); if(sr.Name!=".." && sr.Name!=".") res=false; } } FindClose(sr);
-
Hab deinen Code etwas angepasst.
Sollte nun funzen.
Greetz

TSearchRec sr; AnsiString Dir,Lwert,wert; Dir="language\\"; bool res = true; if(FindFirst(Dir+"*.ini",0,sr)== 0){ if(sr.Name!=".." && sr.Name!="."){ wert = sr.Name.SubString(0,sr.Name.Pos(".")-1); Lwert = ComboBox1->Items->Add(wert); } while(!FindNext(sr)){ if(sr.Name!=".." && sr.Name!="."){ wert = sr.Name.SubString(0,sr.Name.Pos(".")-1); Lwert = ComboBox1->Items->Add(wert); } } } FindClose(sr);
-
Beste dank es funktioniert supi danke danke danke für die schnelle hilfe
-
Hab den Code noch eben vereinfacht:
eine fußgesteuerte Schleife bietet sich hier nämlich an:
TSearchRec sr; AnsiString Dir,Lwert,wert; Dir="language\\"; if(FindFirst(Dir+"*.ini",0,sr)== 0){ do{ if(sr.Name!=".." && sr.Name!="."){ wert = sr.Name.SubString(0,sr.Name.Pos(".")-1); Lwert = ComboBox1->Items->Add(wert); } }while(!FindNext(sr)); } FindClose(sr);