StringList.AddStrings

Verweis: Stringlisten
Uses: Classes
Eingabe: TextArray(Array of String)oder Stringlist(Tstrings)
Ausgabe: Stringlist(Tstrings)
Funktion: fügt zu einer Stringlist mehrere neue Einträge hinzu. Diese müssen in einem Array oder Stringlist definiert sein.

Mit der Methode “Stringlist.AddStrings” können wir 2 Strinlisten zusammen führen. Dies können aber auch Arrays von Strings sein die dann in die Stringlist überführt werden. Dies wird hier im ersten Beispiel gezeigt.

Beispiel 1

Vorbereitung: Erstellen sie eine IDE Anwendung und ziehen Sie einen TButton und TMemo auf die Form. Doppelklicken sie auf den Button und ersetzen Sie das Ereignis durch folgenden Quelltext:

procedure TForm1.Button1Click(Sender: TObject);
const
  Tiere: array[0..4] of string =
    ('Hund', 'Katze', 'Maus', 'Esel', 'Kuh');
  Nahrung: array[0..4] of string =
    ('Sahne', 'Joghurt', 'Milch', 'Butter', 'Kuh');
var
  Liste: TStringList; //Verknüpfe Variable mit liste
  Eintraege: integer; //Wie viele Einträge
begin
  Liste := TStringList.Create; // Erstelle eine Liste
  liste.Sorted := False;
  // Mit AddString ist es Möglich
  // ein definiertes Array hinzu zufügen.
  liste.AddStrings(Tiere);
  // Beide Arrays Kombinieren
  liste.AddStrings(Nahrung);
  memo1.Lines := liste;
  Eintraege := liste.Count;
  ShowMessage('Die Arrays wurden addiert. Es sind nun: ' +
    IntToStr(Eintraege) + ' Einträge.');
  //2. Durchgang----------
  //liste löschen
  liste.Clear;
  //Jetzt schalten wir auf sortieren
  liste.Sorted := True;
  // Jetzt noch mal das gleiche wie oben.
  liste.AddStrings(Tiere);
  // Beide Arrays Kombinieren
  liste.AddStrings(Nahrung);
  memo1.Lines := liste;
  Eintraege := liste.Count;
  //Nun Ergebnis anzeigen
  ShowMessage('Die Arrays wurden addiert. Es sind nun: ' +
    IntToStr(Eintraege) + ' Einträge.');
  Liste.Free;
end;

In dem Beispiel führen wir 2 mal die Strings aus den Arrays zusammen. Einmal unsortiert und einmal sortiert. Das Sortieren können wir durch den Schalter “Sorted” ein und ausschalten. Das Beispiel ist in 2 Teile aufgeteilt.

Lazarus AddStrings sortiert und unsortiert
Stringlist.AddStrings

Und so bekommen wir auch 2 Ausgaben in unserem Memo angezeigt. Im 1. Teil haben wir, wie zu erwarten 10 Einträge. Im 2. Teil haben wir nur noch 9, weil die Eigenschaft Sort die Doppelten Einträge standardmäßig entfernt. Und hier das Wort “Kuh” in beiden Listen vorkommt. Sie können dies aber mit der Eigenschaft “Duplicates” ändern.

Beispiel 2

Vorbereitung: Erstellen sie eine IDE Anwendung und ziehen Sie einen TButton und TMemo auf die Form. Doppelklicken sie auf den Button und ersetzen Sie das Ereignis durch folgenden Quelltext:

procedure TForm1.Button1Click(Sender: TObject);
const
  Tiere: array[0..4] of string =
    ('Hund', 'Katze', 'Maus', 'Esel', 'Kuh');
  Nahrung: array[0..4] of string =
    ('Sahne', 'Joghurt', 'Milch', 'Butter', 'Kuh');
var
  ListeA, ListeB, GesamtListe: TStringList;
  //Verknüpfe Variable mit liste
  Eintraege: integer; //Wie viele Einträge
begin
  ListeA := TStringList.Create; // Erstelle eine Teilliste
  ListeB := TStringList.Create; // Erstelle eine Teilliste
  GesamtListe := TStringList.Create; // Erstelle eine GesamtListe
  // Bestücken der Teilliste A
  ListeA.AddStrings(Tiere);
  // Bestücken der Teilliste B
  ListeB.AddStrings(Nahrung);
  // Diese Listen könne wir nun
  // in der Gesamtliste zusamenführen
  GesamtListe.AddStrings(ListeA);
  GesamtListe.AddStrings(ListeB);
  // Nun zeigen wir die GesamtListe im Memo an.
  memo1.Lines := GesamtListe;
  // 3 Listen Erstellt also 3 Listen freigeben
  ListeA.Free;
  ListeB.Free;
  GesamtListe.Free;
end;

Das Beispiel 2 ist sehr umständlich und würde man in der Praxis so nicht schreiben. Aber für das Lernen der Befehle ausreichend. Hier werden also 3 Listen erzeugt. Liste A und B werden mit den Konstanten bestückt. Nun werden, im Unterschied zu Beispiel 1 nicht die Arrays addiert sondern 2 Listen. Da wir 3 Listen erzeugt haben, müssen wir auch 3 Listen wieder freigeben. Wir können auch Arrays und Listen kombinieren.

Beispiel 3

Vorbereitung: Erstellen sie eine IDE Anwendung und ziehen Sie einen TButton und TMemo auf die Form. Doppelklicken sie auf den Button und ersetzen Sie das Ereignis durch folgenden Quelltext:

procedure TForm1.Button1Click(Sender: TObject);
const
  Tiere: array[0..4] of string =
    ('Hund', 'Katze', 'Maus', 'Esel', 'Kuh');
  Nahrung: array[0..4] of string =
    ('Sahne', 'Joghurt', 'Milch', 'Butter', 'Kuh');
var
  ListeA, ListeB, GesamtListe: TStringList;
begin
  ListeA := TStringList.Create; // Erstelle eine Teilliste
  ListeB := TStringList.Create; // Erstelle eine Teilliste
  GesamtListe := TStringList.Create; // Erstelle eine GesamtListe
  // Bestücken der Teilliste A
  ListeA.AddStrings(Tiere);
  ListeB.AddStrings(Nahrung);
  // Kopiere die Tiere in die Gesamtliste.
  GesamtListe.AddStrings(ListeA);
  // Nun zeigen wir die GesamtListe im Memo an.
  memo1.Lines := GesamtListe;
  ShowMessage('Nach dem Klicken auf OK, werden die Tiere gelöscht.');
  // Liste B wird nun die Tiere von ListeA in der
  // Gesamtliste löschen
  GesamtListe.AddStrings(ListeB, True);
  // Nun zeigen wir die GesamtListe im Memo an.
  memo1.Lines := GesamtListe;
  // 3 Listen Erstellt also 3 Listen freigeben
  ListeA.Free;
  ListeB.Free;
  GesamtListe.Free;
end;

In dem letzten Beispiel von AddStrings zeigen wir Ihnen wie Sie die Liste mit dem gleichen Befehl Löschen. Normalerweise wird beim Befehl AddStrings die angegeben Zeilen addiert. Wenn sie das nicht wünschen dann haben sie zusätzlich folgende Möglichkeit.

  GesamtListe.AddStrings(ListeB, True);

Mit dem True in der obigen Zeile löschen Sie die für das Addieren angegebe Liste. Hier in dem Beispiel Also die “Gesamtliste”. Das Löschen ist optional und steht normalerweise auf False. Das bedeutet, dass bei fehlender Angabe nicht gelöscht wird. Dieser Befehl ist Analog zu:

  GesamtListe.Clear;
  GesamtListe.AddStrings(ListeB);

Jedoch um eine Zeile kürzer.