tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
3
ZUGRIFFE
1593
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Tappan Tappan ist offline Grünschnabel
    Registriert seit
    Feb 2005
    Beiträge
    4
    Hi,
    ich habe ein Problem mit der ListBox bei Borland C Builder:

    Ich möchte Inhalte aus verschiedenen Edit-Fenstern in einer ListBox wiedergeben. Dazu möchte ich wissen wie ich es machen kann, dass der Inhalt des ersten Edit-Fenster in der ersten Zeile am Anfang, der Inhalt des zeiten Edit-Fensters auch in der ersten Zeile aber an Stelle 20, also 20 Spalten rechts daneben reingeschrieben wird.

    Damit ich nicht noch en weiteres Thema aufmachen muss würde ich noch gerne eine einfache Frage stellen:

    Wie kann ich den Inhalt der ListBox in einer Textdateien "adden", also hinzufügen, den vorherigen Inhalt nicht ersetzen sonder wie gesagt nur hinzufügen.

    Danke

    Tappan
     

  2. #2
    Avatar von Endurion
    Endurion Endurion ist offline Mitglied Diamant
    Registriert seit
    Apr 2004
    Beiträge
    2.151
    Da ich die Extrafeatures des BCB nicht kenne, kann ich nur generelle Tips geben:

    Die Listbox hat einen LB_TAB (oder so ähnlich) Stil, dieser erlaubt es, dass Textzeilen einen Tab-Character enthalten dürfen. Mit einer weiteren Funktion kann man eine Anzahl von Tabs und die Breiten der Spalten angeben. Danach werden \t (Tab-Zeichen) als Spaltentrennzeichen interpretiert. Macht begrenzt Sinn, da es auch die ListControl gibt, die die wesentlich einfachere Report-Ansicht bietet (die hat auch die üblichen Header über den Spalten).

    Zum "Dazuaddieren", oder auch "append" wie der englischsprachige Programmierer sagt: Beim Dateiöffnen müsste man auch ein Flag angeben können, dass an die Datei angehängt (appended) werden soll. Wenn es über die Standard-C-Library gemacht werden soll, reicht ein zusätzliches "a" in den fopen-Parametern:

    FILE* fileHandle = fopen( "hurz.txt", "ba" );

    ba wie B inary A ppend
     

  3. #3
    Tappan Tappan ist offline Grünschnabel
    Registriert seit
    Feb 2005
    Beiträge
    4
    Danke schon mal für den Anfang, aber wie wär es denn mit einem konkretem Beispiel.

    Und zu 2.hast du meine Frage denke ich falsch verstanden. Ich meinte das nämlich so: wie man z.B. den Inhalt einer ListBox in eine Datei speichert, ohne das, was schon in der Datei gespeichert ist, z.B. vom vorherigen Mal, zu löschen.

    Tappan
     

  4. #4
    Avatar von Turri
    Turri Turri ist offline Mitglied Brokat
    Registriert seit
    Jun 2005
    Beiträge
    354
    Hallo,

    mit dem Tab das hab ich auf die schnelle mit dem \t nicht hinbekommen das wird nicht übersetzt in einen richtigen Tab.
    So kann man es machen, sieht zwar umständlich aus, würde aber gehn denke ich...

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    
    string s = Edit1->Text.c_str();
    int i = s.length();
    if(i < 20)
    { 
        for(i ; i < 20 ; i++)
        {
            s+= " ";   // wenn string zu kurz dann mit Leerzeichen auffüllen
        }
    }
    das auch mit den anderen strings aus dem Edit-Fenstern

    Code :
    1
    2
    
    ListBox1->Items->Add(s + s2 + s3);    // durch die aufgefüllten leerzeichen müsste das immer untereinanderstehn mit Abstand dazwischen
    // s2 und s3 steht jeweils für den text aus den anderen Edit-Feldern
    PS: habs nicht getestet, war dann doch etwas spät


    Hier der Hinweiß zum problem des speicherns und in Datei anfügen

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    
    #include <fstream>
     
    ListBox1->Items->Add("Wert");    // sporatisches einfügen ;-)
    AnsiString as = ListBox1->Items->operator [](0); // die 0 ist die Stelle der ListBox und gibt den Ansistring zurück der an dieser Stelle stand
                                                     // die stelle kannst du mit einer forschleife durchgehn um den ganzen Inhalt der ListBox zu speichern
    string s = as.c_str();        // umwandeln von AnsiString in string zum besseren speichern
     
    ofstream write;
    write.open("deine Datei", ios::out | ios::app);  //ios::app bewirkt ein hinten in datei anfügen ohne überschreiben des vorhandenen Inhalts
    if(write.good())
    {
        write << endl;  // das muss nur wenn in der datei noch ein Zeilenumbruch rein soll 
        write << s;
    }
    write.close();

    So in etwa müsste das gehn
    Für etwaige Fehler übernehm ich keine Verantwortung

    MfG Turri
     

Ähnliche Themen

  1. listbox
    Von Schiffscomputer im Forum .NET Windows Forms
    Antworten: 3
    Letzter Beitrag: 22.11.06, 18:40
  2. ListBox
    Von TheLuCKer im Forum Visual Basic 6.0
    Antworten: 1
    Letzter Beitrag: 20.11.04, 18:42
  3. xml in listbox?
    Von MeikeBehrens im Forum .NET Archiv
    Antworten: 5
    Letzter Beitrag: 15.09.04, 11:36
  4. Listbox.
    Von Yugi-Radiodome im Forum Visual Basic 6.0
    Antworten: 1
    Letzter Beitrag: 21.07.04, 15:24
  5. listbox
    Von zorc68 im Forum Flash Plattform
    Antworten: 2
    Letzter Beitrag: 19.08.02, 23:16