Erzeugen einer Textdatei



  • Hallo,
    beim Schreiben in eine Textdatei mache ich die Zeichenabstände zueinander mit Leerzeichen und Tabs ("\t"). Diese Methode ist nicht elegant, da die Textlängen variabel sind.

    CString str_text = "Erste Zeile\r\nZweite Zeile, erste Spalte\t\tZweite Zeile zweite Spalte";
    fprintf_s(fDatei,"%s", str_text);
    

    Gibt es eine Mögichkeit eine Art Tabelle (ohne Gitternetz) aufzubauen, oder kann man absolute Taulatoren bzw. in den Textstring einfügen?

    Vielen Dank!
    fujitsufan



  • Schau dir mal IOSTREAM genauer an.



  • Hallo,

    oder die CString-Format-Methode, dort kann man Feldlängen festlegen.

    MfG,

    Probe-Nutzer



  • Probe-Nutzer schrieb:

    Hallo,

    oder die CString-Format-Methode, dort kann man Feldlängen festlegen.

    MfG,

    Probe-Nutzer

    Hallo,
    also bei funktioniert das nicht.
    Ich kann zwar erzwingen ob der String rechts- oder linksbündig sein soll, die Anzahl der gewünschten Zeichenlänge wird ignoriert.
    Ich gehe jetzt davon aus, dass die erste Spalte 1 Sp1 5 Felder lang, die Spalte 2 Sp2 5 Felder, die Spalte 3 Sp2 8 Fleder breit ist, usw. egal wievel Zeichen in der Spalte stehen. Der Rest der Spalte sollte mit Leerzeichen gefüllt sein.

    Linksbündig:

    CString str_format;
    str_format = "%.5s\t%.5s\t%.8s\t%.70s\t%s\r\n";
    str_format.Format("Sp1.", "Sp2.", "Sp3", "Sp4", "Sp5");
    

    Rechtsbündig:

    CString str_format;
    str_format = "%5s\t%5s\t%8s\t%70s\t%s\r\n";
    str_format.Format("Sp1.", "Sp2.", "Sp3", "Sp4", "Sp5");
    

    Ich komm´ nicht drauf.
    fujitsufan


  • Mod

    Du hast die Formatspezifikation nicht verstanden:

    %-9.5
    - bedeutet linskbündig
    9 bedeutet minimale Ausgabelänge 9
    5 bedeutet maximale Textlänge des String ist 5

    Siehe MSDN Doku zu printf!


Anmelden zum Antworten