text.txt aus ordner in ComboBox
-
also ich währe für die vorbereitete methode.
ComboBox1->Items->LoadFromFile("lehrer.txt");und das wars auch schon.
-
konvenienz2 schrieb:
bitte, aber

deinen letzten beitrag verstehe ich nicht ganz.
dann könnte das programm ja auch gleich alle .txt dateien auf
dem rechner einlesen, das wäre vielleicht ein bischen viel, oder?Wie erfährt denn das programm, welche datei die richtige ist?
ciao,
kes soll nur alle .txt. dateien aus dem festgelegten ordner
textdateien/
herauslesen..
dort werden die textdateien hingespeichert und dort soll ich sie wieder rauslesen(da immer neue dazukommen und ich den quelltext ja nicht für jede neue .txt datei verändern will..
gibt es da nix??
-
um alle txt dateien zu finden solltest du dich
mal überFindFirst
FindNextinformieren...
jenz
-
na toll das hatten wir noch nicht..naja mal sehen was ich finde
trotzdem thx..
-
Hallo,
Du must genau festlegen welche Dateien du anzeigen willst. Ich habe aus einer Datenbank die Dateinamen ausgelesen mit hilfe einer Schleife.
Ich denke du kanst es genauso auch aus einem Ordner der Rheihe nachauslesen und dann mit DBComboBox->Items->Add(Variable oder LoadFromFile) anzeigen.
Auf den nächsten eintrag wechselst du dann mit Next().
-
hallo..
ich habe gestern noch den ganzen tag rumprobiert..und nix ist rausgekommen...
hab mir aus ein paar beiträgen hier etwas rausgesucht..doch alles ohne erfolgint i; char name[512] = {0}; ListBox2->Clear(); GroupBox4->Visible=true; bool bGefunden = false; AnsiString datei = Edit1->Text; AnsiString b; AnsiString tmp = b; std::ofstream ofs(tmp.c_str()); TSearchRec sr; AnsiString pfad; pfad +=Edit1->Text+ "\\"; if (FindFirst(pfad + "*", faAnyFile, sr) == 0) { do { if ((sr.Name != ".")&&(sr.Name != "..")) { if(sr.Name.UpperCase().AnsiPos(datei.UpperCase()) != 0) { ListBox2->Items->Add(pfad + sr.Name); } } } while (FindNext(sr) == 0); FindClose(sr); } } /*for(i = 0; i < DATEI->Strings[i]->Count; i++) { if(DATEI->Strings[i].UpperCase().AnsiPos(datei.UpperCase()) != 0) { ListBox2->Items->Add(DATEI->Strings[i]); bGefunden = true; } } if(!bGefunden) {ShowMessage("nicht vorhanden"); } */hier ein paar meiner versuche..
wobei der untere ausgeklammerte sowieso nicht geht weil ich viele wichtige Sachen derweil rausgelöscht hab..doch funktioniren tuts nicht..
es soll so funktionieren das es den Ornder auf vorhandene .txt Dateien überprüft und dann in jede Datei reinspringt und sie auf das gesuchte Wort durchsucht..
das gesuchte Wort soll mit der Datei in der es gefunden wurde und dem Pfad der dazu gehört in der ListBox ausgegeben werden(BSP: in der .txt Datei steht c:\lehrer\kw\hallo.bmp
und in der schueler.txt steht c:\schueler\ta04st\hallo_frau_kw.bmp
wenn ich im Edit jetzt "hallo" eingebe soll es alle vorhandenen .txt dateien durchlaufen und c:\schueler\ta04st\hallo_frau_kw.bmp und c:\lehrer\kw\hallo.bmp in die ListBox schreiben..)gibt es dafür keine einfache umsetzung??
bitte helft mir..muss es bis montag fertig haben
danke
-
es soll nun übrigens gleich alle .txt dateien durchlaufen..ohne das man vorher die.txt aus einer ComboBox wählt..es gibt nur noch ein Edit1 wo man des gesuchten Text reinschreibt und dann soll es automatisch alle gefundenen .txt dateien aus dem Ordner "Suche" durchsuchen..
-
Was zahlst Du mir, wenn ich Deine Hausaufgaben mache?
Wieso kannst Du das nicht? Hausaufgaben dienen normalerweise zur Vertiefung des Unterrichtsstoffes. Also solltest Du in der Lage sein, das Problem zu lösen...
Wenn Du in der BCB-Hilfe mal unter FindFirst nachgesehen hättest, hättest Du das Beispiel gefunden, das sich, mit wenig Aufwand, an dein Problem anpassen läßt:
AnsiString asSearchPath = "c:\\temp\\"; // zu durchsuchendes Verzeichnis AnsiString asFileName = "*.txt"; // Dateityp if (!Edit1->Text.IsEmpty()) // nur ausführen wenn Edit1 nicht leer ist { TSearchRec sr; // Details zu TSearchRec stehen in der BCB-Hilfe int iAttributes = 0; iAttributes |= faAnyFile; if (FindFirst(asSearchPath + asFileName, iAttributes, sr) == 0) { do { if ((sr.Attr & iAttributes) == sr.Attr) { // hier Suche in Datei durchführen } } while (FindNext(sr) == 0); FindClose(sr); } }Um Dir nicht den ganzen Spaß zu verderben, habe ich die Suche in der Datei und die Ausgabe in der ListBox rausgelassen.
-
es sind keine hausaufgaben..muss ein paar programme schreiben die ich vorgelegt bekommen hab un die "einfach" sein sollten..da ich viele Zensuren nachholen muss da ich wegen ner Krankheit des halbe jahr fehlte..
naja das was für die einfach is habe ich aber no nie gehört..
danke für die hilfe..
-
huhu..
nochmal kurze frage.. ^^ srrif (FindFirst(asSearchPath + asFileName, iAttributes, sr) == 0) { do { if ((sr.Attr & iAttributes) == sr.Attr) { OpenFile(char()asFileName); if(datei.UpperCase().AnsiPos(datei.UpperCase()) != 0) { ListBox2->Items->Add(pfad + sr.Name); } } } while (FindNext(sr) == 0); FindClose(sr); }in dieser Zeile
OpenFile(char()asFileName);kommt der fehler
[C++ Fehler] Unit1.cpp(49): E2121 ) fehlt beim Funktionsaufruf
????
wieso??ich habe doch alles richtig geschlossen??
seht ihr vielleicht ob ich irendwo noch eins vergessen hab??hab überall geguckt..finde aber nichts..dankeschön..
-
jetzt habe ich glaub großen mist gebaut...
hab also rumprobiert und rumprobiert heraus kam:
[C++ Fehler] Unit1.cpp(50): E2121 ) fehlt beim Funktionsaufruf <<-immernoch da..
zusätzlich:
[C++ Fehler] Unit1.cpp(51): E2316 'name' ist kein Element von 'TSearchRec'
[C++ Fehler] Unit1.cpp(61): E2308 Bei do-Anweisung fehlt das Schlüsselwort while
[C++ Fehler] Unit1.cpp(80): E2089 Bezeichner 'schlieen1Click' darf keinen Typqualifizierer besitzen
[C++ Fehler] Unit1.cpp(95): E2134 Abschließendes } fehlt <<-obwohl alles was offen ist geschlossen wird...werden immer mehr fehler..anstatt das mal einer behoben wird..kommt immer einer dazu..
-
Statt FileOpen: Schau Dir mal TStringList an. Und dort insbesondere die Methoden LoadFromFile() die Eigenschaft Text. Die Eigenschaft Text ist vom Typ AnsiString. Dort solltest Du einen Blick auf die Methode AnsiPos() werfen.
-
okay da hatte ich wohl den falschen ansatz

die fehler hab ich jetz wegbekommen..
probier es jetz mal so aus..
thx