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.