Aus Datei lesen, dabei Leerzeichen ignorieren



  • Joe_M. schrieb:

    [...] TStringList [...] Finde ich einfacher handzuhaben.

    Ausserdem passen diesbezügliche Fragen auch in das Forum hier, im Gegensatz zu ifstream etc. ... 😉



  • Hast du zufällig ein Beispiel, habe ich auch schon mal probiert aber nie hinbekommen. Das ifstream habe ich halt in meinem letzen Projekt verwendet, damals hatte ich aber nicht das Problem mit den Leerzeichen, da in jeder Zeile nur ein Wort stand.



  • bronstein schrieb:

    Hast du zufällig ein Beispiel

    Ich bin mir sicher, das die BCB-Hilfe eines hat.



  • Hast du zufällig ein Beispiel

    Hast du selbst 🙂
    Schreib mal im BCB in den Quelltext einfach mal das Wort "TStringList", dann drückst du die Taste F1, wählst dann "TSringList (VCL)" oder so aus und klickst dann oben auf "Verwendung von TStringList".

    Und ansonsten, klitzekleines Beispiel (weil ich zugeben muss, dass in der Hilfe doch auch nix komplettes ist hihi)

    TStringList *TempList = new TStringList; // Liste deklarieren
       	try{
          	  TempList->LoadFromFile("C:\sowieso.txt"); //Stringliste benutzen
               ShowMessage(TempList->Strings[0]); //Erste Zeile anzeigen
       	}
       	__finally{
        delete TempList; // Stringlistenobjekt freigeben
       	}
    

    tschüss
    Robert



  • Hierbei bringt er mir diese Fehlermeldung:

    TempList->LoadFromFile("C:\Dokumente und Einstellungen\Hans\Desktop\Autovermietung\autos.txt")
    

    Im Projekt xxxx ist eine Exception der Klasse yyyyy aufgetreten. Meldung:
    'zzzzzz'. Prozeß wurde angehalten. Mit Einzelne Anweisung oder Start
    fortsetzen.

    Habe die vcl.h, iostream.h includiert muss ich noch etwas mit einbinden. Achso kann die Fehlermeldung auch daran liegen, dass es eine Konsolenanwendung ist?

    gruß Bronstein



  • Hallo,

    TempList->LoadFromFile("C:\\Dokumente und Einstellungen\\Hans\\Desktop\\Autovermietung\\autos.txt")
    

    so gehört es!,
    da \ eine besonder "funktion" hat zb.
    /n Zeilenumbruch oder
    /" Anführungszeichen "Escapen"



  • sorry, hab ich vergessen...



  • @bronstein
    Habe ich richtig verstanden das er solange ein Zeichen einlesen sollt bis er auf ';' stößt (auskommentiert) bzw. bis die Zeile beendet wird (Wagenrücklauf) ???
    Dann nutze doch die getline Fuktion die von der fstreamklasse angeboten wird, dort kann du bis zum Zeilende einlesen, bzw. bis zu einem definiertem Zeichen. Damit kannst du dann in einen char array die Zeile kpl. einlesen, und damit weiterverarbeiten. Mehr dazu findest du in der Hilfe.



  • bronstein schrieb:

    Im Projekt xxxx ist eine Exception der Klasse yyyyy aufgetreten. Meldung:
    'zzzzzz'.

    Vielleicht solltest du dir mal angewöhnen, Meldungen wie diese
    a) in Ruhe durchzulesen, und zwar komplett,
    b) zu versuchen zu verstehen, was dir die Meldung sagen will und welche Schlüsse du daraus auf eventuelle Programmfehler ziehen könntest ("Cannot open file 'C:\...\autos.txt'" ist wohl um einiges informativer als "zzzzzz"), und
    c) wenn du schon selbst nicht die Nerven für a) und b) aufbringst, dann doch zumindest die komplette Fehlermeldung zu zitieren.



  • Hallo!

    komplette Fehlermeldung
    

    Ja, und zu diesem Thema möchte ich auch noch was erwähnen: Wenn die Fehlermeldung angezeigt wird, kann der komplette Fehlermeldungs-Text mittels Strg+C in die Zwischenablage kopiert werden. (quasi, wenn der Dialog offen ist)

    Das gilt für die Fehlermeldungen genauso wie für MessageBox und ShowMessage - Dialoge!

    Ist mir nur so aufgefallen (auch im Gespräch mit Kunden), dass dieses "Feature" eigentlich fast niemand kennt - schade eigentlich, sonst würde man endlich vollständige Fehlermeldungen erhalten...

    tschüss
    Robert


Anmelden zum Antworten