Textdatei erste Zeile auslesen



  • Kann mir jemand helfen die Daten aus einer Textdatei auszulesen.
    Aber nur die Erste Zeile..
    Die Daten in einer Textdatei sehen so aus:
    SP 1
    SP 2
    ..

    Ich habe schon versucht
    Bei diesen Quelltext habe ich das Problem das er alle Daten ausliest und sie zb. in einem Memo so darhstellt 😮
    S
    P
    1
    ...

    Bei dem zweiten Coder liest er leider nur das erste Zeichen. 😡 😡 😡

    Hmm könnte mir jemand behilglich sein das so zu machen das er nur die erste Zeile liest

    Code 1

    char b;
    fstream i("C:\\auswahl.txt", ios::in);
    i>>b;
    while (i)
    {
    Memo1->Lines->Add(b);
    i>>b;
    }
    

    Code 2

    char b;
    fstream i("C:\\auswahl.txt", ios::in);
    i.read((char*)&b,sizeof(char));
    Edit1->Text=b
    


  • Nimm doch TStringList:

    // Neues Objekt der Klasse "TStringList" erstellen
    TStringList* slTest=new TStringList;
    
    // Textdatei einlesen
    slTest->LoadFromFile("C:\\Pfad\\Datei.txt");
    
    // Erste Zeile in Edit-Feld einlesen
    Edit1->Text=slTest->Strings[0];
    
    // Wichtig! Objekte müssen grundsätzlich wieder gelöscht werden, damit der Speicher wieder frei wird.
    delete slTest;
    


  • hmmm ich verushc es danke aber ich komme mit tstringlist schonmal garnicht klar ........... 😡



  • HMMM HILF MIR MAL BITTE
    ICH HABE DAS JA VERSUCHT
    LEIDER BEKOMME ICH DIE MELDUNG DAS ER DIE DATEI NICHT ÖFFNEN KANN



  • Etwas abgewandelt:
    Code 1

    std::string b; 
    ifstream i("C:\\auswahl.txt"); 
    i >> b; 
    Memo1->Lines->Add(b.c_str());
    

    oder

    char *b = new char[21]; 
    ifstream i("C:\\auswahl.txt"); 
    i.getline(b,20); 
    b[20] = '\0';
    Memo1->Lines->Add(b.c_str()); 
    delete[] b;
    

    PS. Wenn du die Datei nicht öffnen kannst liegt das nicht am Code sondern am Pfad. Schau doch mal genau nach ob deine Datei dort wirklich ist.
    Funktionieren müssten alle dir bereits gezeigten Variante.
    Achso, bitte schrei hier nicht rum.



  • Tut mir leid ich wollte nicht schreien
    ich habe vergessen mein finger von der Shift-Taste louszulasen
    hmm eigenlich ist der Pfad richtig
    ach ist es jezt eigentlich egal was ich bentze oder haben die Stringlisten ein Vorteil denn die erste Zeile nach dem neustrart muss dann später gelöscht werden.



  • knaxen1 schrieb:

    ich habe vergessen mein finger von der Shift-Taste louszulasen

    lol, erste Anzeichen für Alzheimer?

    hmm eigenlich ist der Pfad richtig

    Hast du die Pfade auch mit Doppeltem Backslash ('\') geschrieben? HZast du auch Zugriffsrechte auf die Datei?

    Und: Wenn du die erste Zeile löschen willst, musst du noch das hier machen:

    // Löscht erste Zeile
    slTest->Delete(0);
    
    // Speichert Datei wieder ab
    slTest->SaveToFile("C:\\Pfad\\Datei.txt");
    
    // Das vorherige delete wieder löschen, und hier einfügen:
    delete slTest;
    


  • Hmm ein großen Dank an dich für deine Hilfe.
    Das mit Pfad eigetlich alle richtig.
    Ich weiß nicht wo der Fehler liegt.
    Ist es möglich dir da zu senden und kuckst das nach. ??? 🙄
    Denn ich bin am verzweifeln.



  • Hmm danke hat sich schon erledigt habe den Fehler schon selber gefunden.
    Hmm kann st du mir nochmal helfen bitte

    und zwar will ich die erste Zeile die ich eingelesen habe verleichen mit einer if Bedinung func aber nicht richtig

    if (auswahl->Strings[0] == "SP1");
    ....
    Dtei starten und so ..

    aber verleicht es leider nicht
    er startet die Datei trozdem


Anmelden zum Antworten