AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Menge von Integerzahlen schnell u. einfach merken?
Thema durchsuchen
Ansicht
Themen-Optionen

Menge von Integerzahlen schnell u. einfach merken?

Ein Thema von PeterPanino · begonnen am 21. Mai 2008 · letzter Beitrag vom 21. Mai 2008
Antwort Antwort
Seite 1 von 2  1 2      
PeterPanino

Registriert seit: 4. Sep 2004
1.465 Beiträge
 
Delphi 10.4 Sydney
 
#1

Menge von Integerzahlen schnell u. einfach merken?

  Alt 21. Mai 2008, 03:18
Welche Methode würdet ihr verwenden, um möglichst schnell und einfach eine Menge von Integerzahlen (deren Anzahl zur Laufzeit noch nicht bekannt ist) in einer definierten Reihenfolge zu speichern (d.h. zu merken)? Die Betonung liegt auf schnell und einfach - würdet ihr gleich ein dynamisches Array verwalten oder gibt es eine einfachere Methode?
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#2

Re: Menge von Integerzahlen schnell u. einfach merken?

  Alt 21. Mai 2008, 03:23
Es gibt da genug. Z.B.: TList. Wenn es schnell sein soll, aber nicht einfach, dann nehme verkettete Listen.
Gruß
Hansa
  Mit Zitat antworten Zitat
PeterPanino

Registriert seit: 4. Sep 2004
1.465 Beiträge
 
Delphi 10.4 Sydney
 
#3

Re: Menge von Integerzahlen schnell u. einfach merken?

  Alt 21. Mai 2008, 03:29
Zitat von Hansa:
TList.
Ich möchte dafür keine eigene Klasse schreiben. Meinst du die Methode, mit der statt der Objektzeiger die Integerwerte gespeichert werden?
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#4

Re: Menge von Integerzahlen schnell u. einfach merken?

  Alt 21. Mai 2008, 03:39
Je ne pas compris. Du willst keine Klase neu schreiben ? Wo liegt denn das Hindernis ? Das macht doch Delphi sowieso alles. Wieso neu schreiben ?
Gruß
Hansa
  Mit Zitat antworten Zitat
PeterPanino

Registriert seit: 4. Sep 2004
1.465 Beiträge
 
Delphi 10.4 Sydney
 
#5

Re: Menge von Integerzahlen schnell u. einfach merken?

  Alt 21. Mai 2008, 03:43
Zitat von Hansa:
Je ne pas compris. Du willst keine Klase neu schreiben ? Wo liegt denn das Hindernis ? Das macht doch Delphi sowieso alles. Wieso neu schreiben ?
Ich meine eine Klasse, in der weitere Verwaltungsfunktionen enthalten sind.
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#6

Re: Menge von Integerzahlen schnell u. einfach merken?

  Alt 21. Mai 2008, 03:53
Ja, welche denn ? Nimm eben TObjectList. Da ist Add, Sort, Last und was weiß ich noch drin.
Gruß
Hansa
  Mit Zitat antworten Zitat
Benutzerbild von sx2008
sx2008

Registriert seit: 16. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#7

Re: Menge von Integerzahlen schnell u. einfach merken?

  Alt 21. Mai 2008, 04:12
Zitat von PeterPanino:
Ich möchte dafür keine eigene Klasse schreiben.
Du kannst dich nicht duschen ohne nass zu machen!
Und von Nix kommt Nix !

Variante A:
Man kann die Daten in einem dynamischen Array speichern.
Also z.B. Array mit 32 Elementen anlegen und eine Variable CurrentIndex führen.
Wenn CurrentIndex = 32 dann wird die Grösse der Arrays mit SetLength() verdoppelt.
Dabei müssen alle Elemente vom alten Speicherplatz auf den neuen Speicherplatz kopiert werden.
Dabei muss die ganze Logik im Anwendungsprogramm untergebracht werden.
Es ist also nicht schnell und einfach.
Auch ist es nicht wiederverwendbar oder sicher.

Variante B:
Andererseits kann man die Klasse TList ableiten und dann verwenden.
Um die neue KLasse TIntList schreiben zu können muss man verstehen wie TList funktioniert.
Die Anwendung der Klasse ist dagegen recht simpel und schnell.
Nachteil: pro Element werden 4 zusätzliche Bytes für einen Zeiger notwendig.
Man braucht also doppelt so viel Speicher wie beim dynamischen Array.

Variante C:
Man arbeitet mit mehreren dynmischen Arrays. Wenn ein Array voll ist, wie ein weiteres
dynamisches Array angelegt.
Dies vermeidet die Nachteile von Variante A (kopieren grosser Speicherblöcke, Speicherfragmentierung)
und den Nachteil von Variante B (doppelter Speicherplatz).
Allerdings ist die Verwaltung von mehreren Arrays nur durch eine Klasse möglich.
Die einzelnen Arrays werden sozusagen virtuell zu einem grossen Array zusammengesetzt.
Technisch ist das die beste Lösung.
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#8

Re: Menge von Integerzahlen schnell u. einfach merken?

  Alt 21. Mai 2008, 04:23
Wegen 4 Bytes macht nur B einen Sinn. Leute, wir leben im Zeitalter von Gigabytes !! Wegen Delphi braucht man auch nicht noch unnötig im Source Klimmzüge zu machen.
Gruß
Hansa
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#9

Re: Menge von Integerzahlen schnell u. einfach merken?

  Alt 21. Mai 2008, 08:22
Zitat von Hansa:
Wegen 4 Bytes macht nur B einen Sinn. Leute, wir leben im Zeitalter von Gigabytes !! Wegen Delphi braucht man auch nicht noch unnötig im Source Klimmzüge zu machen.
Sich aber dann beschweren, wen Vista und Firefox einem den RAM auffressen....
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#10

Re: Menge von Integerzahlen schnell u. einfach merken?

  Alt 21. Mai 2008, 09:24
ich persönlich würde ein Array nehmen. Allerdings ist genau so gut auch eine TList. Nichts mit ableiten etc. Die TList verwaltet Pointer welche 32 bit groß sind. Integer sind ebenfalls 32bit groß. Entsprechend kann man durch einen einfachen Cast auch Integer darin speichern. Denn letztendlich ist es eine Interpretationssache ob man das was im Speicher steht als Integer, Pointer, String etc. ansieht.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:17 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