AnsiString Array



  • Hallo,

    ich möchte gerne auf Button-druck, das der Inhalt eines Edit-Feldes in ein Array eingelesen wird. Danach soll das Array 1.

    Mein Quellcode:

    Tab=("  ");
     Path=Edit2->Text; //Path der Datei
     Datei=ListBox1->Items->Strings[ListBox1->ItemIndex]; //Name der Datei
     Beschreibung=Memo1->Text; //Beschreibung der Datei
     Edit1->Text=Path+Tab+Datei+Tab+Beschreibung;
    

    Dieser liest aus einem Editfeld und einer ListBox, sowie aus einem Memo den Inhalt aus und schreibt diesen getrennt mit einem Leerzeichen in ein EditFeld.
    Dieses Editfeld würde ich gerne auslesen und in ein Array schreiben (Nach Button-Druck).

    Nun meine Fragen:
    Wie lese ich die Anzahl der ListBox aus, um ein Array dynamisch anzulegen?
    Wie lege ich ein AnsiString (wenn es sowas gibt) an?
    Wie schreibe ich die Einträge rein?
    Wie erhöhe ich die Arraystelle?
    Wie lese ich die Einträge wieder aus?

    Ich glaube danach komme ich erstmal viel weiter.
    Danke Euch



  • Sieh dir mal TStringList an, das ist auch ein "Array" von Strings, aber mit vielen zusätzlichen nützlichen Eigenschaften und Funktionen.



  • Jetzt bricht der Builder ganz ab:

    int Anzahl=ListBox1->Items->Count;
     for(int i=0;i<Anzahl;i++)
     {
      TStringList *StringList = new TStringList; // Listenobjekt erstellen
       try{
          StringList->Strings[i]=Edit1->Text;
       }
       __finally
       {
        delete StringList; // Listenobjekt freigeben
       }
    

    Wo liegt denn bitte der Fehler ?



  • Mach mal

    StringList->Add(Edit1->Text);
    


  • Ok funktioniert nun, vielen Dank.

    Für mich stellt sich die Frage, wie greife ich nun auf die Stinglist wieder zu ?
    Ich habe schließlich einzelne Zeilen mit Tabulatoren eingelesen und will die auch wieder auslesen.



  • Hallo

    Auf die TStringList kannst du solange zugreifen bis das delete darauf kommt. Must du die Daten zwischen verschiedenen Methodenaufrufen behalten, must du die StringList zu einem Member des Forms machen und im Konstruktor erstellen bzw. im noch manuell hinzuzufügenden Destruktor löschen.

    bis bald
    akari



  • Auf vorhandene(!) Einträge kannst du, wie von dir schon versucht, mittels TStringList::Strings[] zugreifen.


Anmelden zum Antworten