Textdatei einlesen - Formatierung



  • Hi Leutz,

    ich möchte den Inhalt einer Textdatei einlesen und dann in meinem Programm ausgeben. Im Moment verwende ich zur Ausgabe eine ListBox. Der Text in der Textdatei ist mit Tabs getrennt. Das Problem ist die Ausgabe in der Listbox.

    Textdatei:

    1   pfad1   file1
    2   pfad2   file2
    

    Listbox:

    1pfad1file1
    2pfad2file2
    

    Wie bekome ich die Formatierung der ListBox hin bzw. sollte ich vielleicht lieber ein anderes Objekt benutzen? Wie ist das mit tabellenartigen Objekten, also mit so mehreren Spalten oder so, würde ja auch schicker aussehen. Gibts sowas?

    PS: Bitte Noob-konforme Antworten 😉
    thx, MFG



  • Hallo

    verwende die Komponente TStringGrid. Findest du in Palette Zusätzlich.
    Das ist eine Tabelle, in der du mit RowCount und ColCount bestimmt, wie viele Zellen du haben willst. Dann kannst du mit Cells[Col][Row] AnsiStrings als Werte eintragen.

    bis bald
    akari



  • dope_dope,

    dope_dope schrieb:

    Wie ist das mit tabellenartigen Objekten, also mit so mehreren Spalten oder so, würde ja auch schicker aussehen. Gibts sowas?

    das gibt es und nennt sich TListView.



  • dschensky schrieb:

    das gibt es und nennt sich TListView.

    ListView ist doch aber für sone Art Hierarchie, ich möchte einfach mehrere Spalten.

    Ich hab jetzt den StringGrid genommen. Problem ist nur: ich hab ja drei "Spalten" in der Textdatei (siehe oben), die Datei wird aber zeilenweise gelesen. Die Zeilen müssen also an den tabs aufgesplittet werden, damit ich sie in die einzelnen Tabellenzellen schreiben kann.

    Ansatz:

    // Die einzelnen Elemente aufsplitten
    char input[100];
    for (int z=0; z<=100; z++)
    {
       input[z]=zeile[z];
    }
    char *p;
    
    /* strtok places a NULL terminator
    in front of the token, if found */
    p = strtok(input, " ");
    if (p)   StringGrid_myDBContent->Cells[0][y]=("%s\n", p);
    
    /* A second call to strtok using a NULL
    as the first parameter returns a pointer
    to the character following the token  */
    p = strtok(NULL, ",");
    if (p)   StringGrid_myDBContent->Cells[1][y]=("%s\n", p);
    

    Problem: Aber wie ist das Zeichen für Tab???????

    Hat jemand eine Idee???
    thx, MFG



  • Die Escape Sequenz für ein Tab ist: "\t"

    meinste das?



  • Nee meinte ich nicht, aber habs jetzt mit ° anstatt tab gemacht

    thx, MFG
    dope_dope


Anmelden zum Antworten