Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Listen addieren? (https://www.delphipraxis.net/49672-listen-addieren.html)

blackfoxx 14. Jul 2005 11:39


Listen addieren?
 
Moin,

Gibt es die Möglichkeit, zwei Listen zu addieren bzw. in eine Liste die Elemente einer anderen Liste komplett einzufügen?

Danke schonmal.

freak24 14. Jul 2005 11:45

Re: Listen addieren?
 
Gerade mit einer Listbox getestet, müsste deinen Zweck erfüllen:
Delphi-Quellcode:
listbox1.Items.AddStrings(listbox2.items);

malo 14. Jul 2005 11:46

Re: Listen addieren?
 
Ja, sofern die Listen die Typen der entsprechend anderen unterstützen, funktioniert es. Ein Beispiel mit einer TStringList:

Delphi-Quellcode:
var a, b: TStrings;
    i, j: integer;
begin
a := TStringList.Create;
b := TStringList.Create;
a.Add('bla');
a('blubb');
while a[i] <> '' do
  inc(i);
for i := 0 := i do
  b.Add(a[i]);
end;
//edit: Ich muss mal testen, ob obriger Code wirklich für alle StringListen funktioniert :gruebel:
//edit2: Klappt sogar :cry: Und eben noch ein Fehler in meinem Code ausgebessert ;)

BlackJack 16. Jul 2005 17:43

Re: Listen addieren?
 
naja ein paar fehler sind trotzdem noch geblieben, meinst du nicht?

Pr0g 16. Jul 2005 18:26

Re: Listen addieren?
 
Vergess nicht die Listen freizugeben :shock:

Und mach nen try-finally-end Block drum...


MfG Pr0g

Jan 16. Jul 2005 18:41

Re: Listen addieren?
 
Zitat:

Zitat von malo
Ja, sofern die Listen die Typen der entsprechend anderen unterstützen, funktioniert es. Ein Beispiel mit einer TStringList:

Delphi-Quellcode:
var a, b: TStrings;
    i, j: integer;
begin
a := TStringList.Create;
b := TStringList.Create;
a.Add('bla');
a('blubb');
while a[i] <> '' do
  inc(i);
for i := 0 := i do
  b.Add(a[i]);
end;
//edit: Ich muss mal testen, ob obriger Code wirklich für alle StringListen funktioniert :gruebel:
//edit2: Klappt sogar :cry: Und eben noch ein Fehler in meinem Code ausgebessert ;)

das klappt?
Man das ist ja echt schon ewig her, dass ich Delphi geproggt hab, weil das sieht ganz schön falsch aus.
was soll denn
Delphi-Quellcode:
for i:=0 :=i do
also entweder das ist ne ganz neue variante zu schreiben, dass er von 0 nach einem bestimmten wert gehen soll, wenn i einen anderen Wert als 0 hatte, oder es ist einfach falsch. Ich glaube ja letzteres, weil ich dieses Konstrukt noch nie gesehen hab.
Und es mag ja sein, dass es richtig ist, aber was zum Geier ist
Delphi-Quellcode:
a('blubb');
a ist doch ein Objekt und keine Methode.
Solche aufrufe kenne ich sonst nur vom Konstruktor in Java und C#. Und der Kontruktor hat da nun wirklich nix zu suchen.
Ich bin jetzt erstmal verwirrt.
Gruß
Jan

Dani 16. Jul 2005 18:44

Re: Listen addieren?
 
Zitat:

Zitat von malo
Delphi-Quellcode:
var a, b: TStrings;
    i, j: integer;
begin
a := TStringList.Create;
b := TStringList.Create;
a.Add('bla');
a('blubb');
while a[i] <> '' do
  inc(i);
for i := 0 := i do
  b.Add(a[i]);
end;

Willst du blackfoxx auf die Schippe nehmen? :gruebel: Bei dem Code rollen sich einem ja die Zehennägel auf. Delphi-Referenz durchsuchenTStrings.AddStrings

edit: kein roter Kasten?

Ultimator 16. Jul 2005 18:45

Re: Listen addieren?
 
Zitat:

Zitat von malo
Ja, sofern die Listen die Typen der entsprechend anderen unterstützen, funktioniert es. Ein Beispiel mit einer TStringList:

Delphi-Quellcode:
var a, b: TStrings;
    i, j: integer;
begin
a := TStringList.Create;
b := TStringList.Create;
a.Add('bla');
a('blubb');
while a[i] <> '' do
  inc(i);
for i := 0 := i do
  b.Add(a[i]);
end;
//edit: Ich muss mal testen, ob obriger Code wirklich für alle StringListen funktioniert :gruebel:
//edit2: Klappt sogar :cry: Und eben noch ein Fehler in meinem Code ausgebessert ;)

Soll das ein Witz oder gar "Code" sein? :shock:
Also entweder ist mein Delphi intolerant, dass es keinen kreativen Code zulässt oder dein Delphi hat öfters einen spontanen Anfall von Nachlässigkeit.

Und wie soll das bitte klappen?
  • a('blubb');
    Was soll das sein? Sieht fast ein wenig nach einem Typecast aus, aber du kannst den String 'blubb' nicht auf TStrings casten.
    Da fehlt also ein Add.
  • for i := 0 := i :shock:
    Bestimmt NICHT. Erstens haut das mit der Syntax nicht hin und zweitens wäre das ganze Schwachsinn, wenn es denn funktionieren könnte
  • Wozu brauchst du die Variable j? Ich seh nirgends, dass sie verwendet wird.
  • Sollte diese for-Schleife so lauten sollen:
    Delphi-Quellcode:
    for j := 0 to i do
    , dann kannst du dir das Ganze viel leichter machen, indem du dir die While-Schleife schenkst und i in der for-Schleife von 0 nach a.Count-1 zählen lässt.
  • Als letztes: TStrings soll man nicht verwenden, nimm TStringlist.

Ich hab das oben Genannte einfach mal in einen Code verwandelt, wie ich ihn schreiben würde, er funktioniert auch:
Delphi-Quellcode:
var a, b: TStringList;
    i: integer;
begin
 a := TStringList.Create;
 b := TStringList.Create;
 try
  a.Add('blaA');
  a.Add('blubbA');
  a.add('sersA');
  b.add('Tach auchB');
  b.Add('sersB');
  for i := 0 to a.Count -1 do
   b.Add(a[i]);
  ShowMessage(b.Text);
 finally
  a.free;
  b.free;
 end;
end;
MfG
Ultimator+

//edit Okay, 3 Leute in etwa das Gleiche, aber ich hab das Meiste :mrgreen:
Aber der rote Kasten will und trotzdem vereiern...

Robert_G 16. Jul 2005 18:49

Re: Listen addieren?
 
Sagt mal Mädels...
Wer hat denn hier von TStrings geredet? :shock:
Nur bevor sich da noch einer verbeisst... ;)

btw: @malo :thuimb: :mrgreen:

malo 16. Jul 2005 20:12

Re: Listen addieren?
 
:oops: Die Fehler in meinem "Code" tun mir Leid. Das war einfach so dahergetippt, ohne zu testen... Vielleicht hätte ich selbst den Code nochmal lesen sollen :duck:

Und mit "Klappt sogar" meinte ich die kurze Variante ;)

Aber ihr seid auch verdammt clever. Sagt mir das doch das nächste mal, bevor die 24-Stunden-Editierfrist abgelaufen ist :wall:

//Edit: Die letzte Vorschleife sollte übrigens heißen: for j := 0 to i. Wie gesagt, nur dahergetippt... ;)


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:45 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz