TStringList Zeile entfernen



  • In einem Programm von mir wird eine 4-stellige Zahl in einer Textdatei gespeichert. Diese Zahl wird mit einer TStringList und SaveToFile gespeichert. Eigentlich alles kein Problem. Diese Zahl steht nun in der ersten Zeile der Datei. Nun wird aber beim Abspeichern am Ende der Zeile an die Zahl ein unsichtbares "Zeilenende-Zeichen" (kleines Quadrat) angehängt.
    Da ich diese Datei mit einem anderen Programm öffne, wird dieses Zeichen sichtbar.

    Wie bekomme ich es weg?

    Mit der Delete-Funktion von TStringList geht es nicht, da es eigentlich ja gar keine zweite Zeile gibt...???

    Danke schon mal...



  • Den Fehler beim Lesen vom "anderen" Programm beheben.



  • Geht nicht, da die Software gekauft ist. Es handelt sich um ein Programm zum Etiketten drucken. Diese Zahl in der Datei wird ausgelesen und kommt direkt auf das Etikett.

    Weitere Vorschläge?



  • Per Hand speichern (über fstream's), da kannst du genauer kontrollieren, ob und wo Zeilenwechsel eingebaut werden.

    (PS: Ist eine StringList für ein einzelnes Element nicht etwas Overkill?)



  • Hallo

    im Builder kannst du statt std::fstream auch TFileStream nehmen.

    bis bald
    akari



  • CStoll schrieb:

    Per Hand speichern (über fstream's), da kannst du genauer kontrollieren, ob und wo Zeilenwechsel eingebaut werden.

    (PS: Ist eine StringList für ein einzelnes Element nicht etwas Overkill?)

    Wirft die Frage auf, wie in diesem Programm dann die Trennung mehrerer Elemente erfolgt.
    Kann dieses Programm mehrere Zeilen einlesen ? Oder willst du nur einen einfachen String speichern ?



  • @akari
    Das ist richtig. Allerdings finde ich, dass fstream deutlich einfacher zu benutzen ist.

    int test(4444);
    ofstream out("Test.txt");
    out << test;
    out.close();
    

    gegen

    AnsiString test("4444");
    TFileStream *out = new TFileStream("Test.txt", fmCreate | fmShareExclusive);
    out->Write(test.c_str(), test.Length());
    delete out;
    

Anmelden zum Antworten