Thema: Delphi Listen addieren?

Einzelnen Beitrag anzeigen

Benutzerbild von Ultimator
Ultimator

Registriert seit: 17. Feb 2004
Ort: Coburg
1.860 Beiträge
 
FreePascal / Lazarus
 
#8

Re: Listen addieren?

  Alt 16. Jul 2005, 19:45
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
//edit2: Klappt sogar Und eben noch ein Fehler in meinem Code ausgebessert
Soll das ein Witz oder gar "Code" sein?
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
    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: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
Aber der rote Kasten will und trotzdem vereiern...
Julian J. Pracht
  Mit Zitat antworten Zitat