Datei Einlesen in ein Memofeld
-
Och Joe!
ICh schaffs net:
void __fastcall TForm1::Button1Click(TObject *Sender) { TSearchRec sr; AnsiString Path = IncludeTrailingBackslash(Edit1->Text); FindFirst(Path,faAnyFile,sr); Memo1->Lines->Add(sr.Name); FindNext(sr); Memo1->Lines->Add(sr.Name); }geht net, und wie ich anzahl an *.txt Dateien in dem Ordner finden kann weiß ich auch net!!!!! Hilf mir bitte!
-
Was tippst Du denn im Editfeld ein?
Schau Dir bitte nochmal mein Beispiel in Ruhe an.
Grüße Joe_M.
-
ich tippe c:\, c:\, c:\., c:\*.*!
Nix geht!
-
Wie wärs damit?
void __fastcall TForm1::Button3Click(TObject *Sender) { AnsiString SearchDir = Edit1->Text; // \\ am Ende ist wichtig! AnsiString SearchFiles = Edit2->Text; TSearchRec sr; int iAttributes = 0; AnsiString DatDatei; Memo1->Clear(); if (FindFirst(SearchDir + SearchFiles, iAttributes, sr) == 0) { do { int curAttrib = FileGetAttr(SearchDir + sr.Name); if (curAttrib & faDirectory) continue; // Unterverzeichnisse ignorieren, auch wenn sie mit .dat enden DatDatei = sr.Name; // enthält die erste gefundene Datei mit der Endung .dat Memo1->Lines->Add(sr.Name); } while (FindNext(sr) == 0); } FindClose(sr); }
-
Gast2 schrieb:
ich tippe c:\, c:\, c:\., c:\*.*
nur das erste dürfte gehen, 3. und 4. sind keine Pfadangaben, 2. wird dann zu C:\\\
es müßte sogar C: reichen
und schau dir das Beispiel von Joe NOCHMAL genau an, speziell die Zeile mit FindFirst
-
Ah danke @5erial und Joe, es geht doch...sorry!
Nur die Sache mit dem erkennen, wieviele Dateien meiner Auswahl in dem Ordner sind weiß ich noch nicht, wie geht das?
-
hallo?

-
Hallo
steht in
Memo1->Lines->Countbis bald
akari
-
nein ich möchte das vorher wissen, wieviel dateien in einem ordner sind, bevor ich es ins memo lesen!
-
Hallo
Dann mußt du die Dateinamen erstmal zwischenspeichern :
void __fastcall TForm1::Button3Click(TObject *Sender) { AnsiString SearchDir = Edit1->Text; // \\ am Ende ist wichtig! AnsiString SearchFiles = Edit2->Text; TSearchRec sr; int iAttributes = 0; AnsiString DatDatei; TStringList *Buffer = new TStringList(); // Zwischenspeicher für Dateinamen Memo1->Clear(); if (FindFirst(SearchDir + SearchFiles, iAttributes, sr) == 0) { do { int curAttrib = FileGetAttr(SearchDir + sr.Name); if (curAttrib & faDirectory) continue; // Unterverzeichnisse ignorieren, auch wenn sie mit .dat enden DatDatei = sr.Name; // enthält die erste gefundene Datei mit der Endung .dat Buffer->Add(sr.Name); } while (FindNext(sr) == 0); } FindClose(sr); // Jetzt kannst du aus Buffer->Count die Anzahl an Dateien lesen Memo1->Lines->Assign(Buffer); // Schreibt die Namen in das Memo delete Buffer; }bis bald
akari
-
ah danke, werd das morgen gleich mal austesten!