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->Count
    

    bis 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!


Anmelden zum Antworten