Einzelnen Beitrag anzeigen

Benutzerbild von sx2008
sx2008

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

Re: Accessing a Record Structure Programatically

  Alt 18. Mai 2008, 13:14
Zum Thema OOP:
ein guter Programmierer muss merken, wenn ein Record für das gegebene Problem zu schwach ist
und aus dem Record eine Klasse machen.
Er wird dem Record auch nicht länger nachtrauern, sondern die Änderung wird durchgezogen
(je früher desto besser).
Und wenn es an vielen Stellen eine Umstellung gibt, zeigt das nur, wie bitter nötig dies war.

Zum Thema Array:
viele Programmierer greifen zum Array (meist zum dynamischen Array) obwohl eine TList-Klasse
wesentlich geeigneter für das Problem wäre.
Ein Array hat keine eigene Intelligenz, während TList, TObjectList, ... dem Programmierer viel Arbeit abnehmen!

Zum Thema Quicksort:
Beim Sortieren werden im Prinzip nur 2 Funktionen benötigt COMPARE und EXCHANGE.
Exchange, also das Vertauschen zweier Elemente, ist für TList völlig problemlos, ganz gleichgültig
welche Daten vertauscht werden. (beim Array geht das nicht)
Beim Compare, also das Vergleichen zweier Element wird Detailwissen über die Daten notwendig.
Hier kann eine Klasse gegenüber einem Record seinen Vorteil ausspielen, denn die Compare-Methode kann quasi automatisch bereitgestellt werden.

Zitat von Hansa:
Wie wärs denn mit einem Listen-Objekt ? In TObjectList kann man die Record-Struktur reinpacken und das Ding kennt die Methode Sort. Es müsste also nur eine Vergleichsroutine gebastelt werden.
Genau das ist der richtige Weg!
Noch einfacher ist allerdings mein Vorschlag mit den MemoryDatasets. Da bekommst du suchen, sortieren, usw. auf dem Silbertablett geliefert.
Ein Memorydataset ist sozusagen eine TObjectList mit eingebauter RTTI und vielen zusätzlichen Funktionen.
  Mit Zitat antworten Zitat