Thema: Delphi TList für Integer

Einzelnen Beitrag anzeigen

Benutzerbild von Coder
Coder

Registriert seit: 27. Feb 2004
Ort: Bochum
206 Beiträge
 
Delphi 3 Professional
 
#1

TList für Integer

  Alt 11. Jul 2023, 13:51
Delphi-Version: 5
Moin,

ja und zwar wollt ich mal fragen u.a. auch anlässlich der
https://www.delphipraxis.net/213266-...-new-post.html

an diser Stelle natürlich auch mein Glückwunsch!

und
weil es mich immerschonmal interessiert hat:

Warum hat man bis vor 10 Jahren unter Delphi keine Liste für Integer gebraucht, gewünscht (nicht gekonnt?) bzw. wo hat man die Integer gelassen?
Nur in einem Array?
oder TFrickelliste?
Warum gab es zwar eine TStringlist, aber kein bequemes Pendant für immerhin die Integer (wenn auch Flieskommazahlen sicherlich schwerer zu speichern sind).
Gut, klar mit Tlist und Pointern kann ich mir da was zusammenmatschen. Muß aber selber vor dem PointerZuweisen dafür Speicher reservieren, adde das an die Liste, rufe es wieder ab und muß anschließend erst den Speicher für den Pointer wieder mit Dispose freigeben, bevor ich es von der Liste löschen kann (also den Pointer).
Das ist/war doch undurchsichtiges, fehlerträchtiges Gefrickel. (s.u.)

OKOK, an eine Tlist kann ich Daten aller Formate und Typen, sowie beliebiger Länge dranklatschen.

und - OK, ja, seit 2011 oder wann kann ich mir auch eine mit
  List: TList<Integer>; durch Generische Collections basteln.

Aber wie um Himmelswillen hat man das früher gemacht??
- und warum hat man sich das vor 2011 nicht einfacher gemacht???!!
1980 Nen visuellen Editor, Compiler und Linker in 80 kb (!!!) gepresst, später dann
die C++-Builder-IDE mittels Delphi erstellt u. compiliert, damit man's einfacher hatte,
in den 20 Jahren aber keine Zeit für ne Titnegerlist gehabt???!
Boarland .... embargodero ... Menschenskinder ...

Delphi-Quellcode:
function bla(a: String);
var
  tl : Tlist;
  p : ^Integer;
begin
  tl := Tlist.create;
  new(p);
  p^ := 2; // Zahl 2 zuweisen
  tl.add( p);
  p := tl[0];
   self.Caption := inttostr((p^)); // z.B. Ausgabe / Bsp.-Weiterverarbeitung
  dispose(p);
  tl.Delete(0);
  tl.free;
end; // Function
Kann sich da noch jemand dran erinnern, warum man das nicht eher gemacht hat?
OK, bei Integern bin ich da nicht auf Länge von 2147483648 oder Cardinal beschränkt.

mein Workaround war immer:
Delphi-Quellcode:
var ts: tStringlist;
begin
ts := tStringlist.Create;
ts.add(inttostr(2));
ts.add(inttostr(5));
ts.add(inttostr(7));
 form1.zahl := strtoint(ts[1]) * 3); // gleich Sechs (als Zahl weiterverarbeiten)
 ts.delete(ts.count-2);// die 5; od. einfach gleich alle drei löschen:
ts.delete(0);ts.delete(0);ts.delete(0); // optional
ts.free;
Ok, geht vielleicht auch als langjähriger Programmierer sicher eleganter)
Aber was hätte ich mich über eine einfache Lösung für Integer gefreut ...
ICQ: 204141443
Delphi 3 Professional, Intel 2x 2,4Ghz, 3 GB-Graka, Sound-onBrd, --
außerdem D2S, D3Pro, D4S, D5S, D6S, D7S + Indy, Lazarus, VB5Std, VC++5Pro, Tasm4+5 - was braucht man mehr?
-

Geändert von Coder (11. Jul 2023 um 14:13 Uhr)
  Mit Zitat antworten Zitat