AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Assoziative Arrays

Ein Thema von Deltachaos · begonnen am 16. Jun 2010 · letzter Beitrag vom 16. Jun 2010
Antwort Antwort
Benutzerbild von Deltachaos
Deltachaos

Registriert seit: 20. Feb 2008
Ort: Berlin
195 Beiträge
 
Delphi 7 Personal
 
#1

Assoziative Arrays

  Alt 16. Jun 2010, 19:13
Delphi-Version: 2010
Hi,

Ich suche eine Möglichkeit ein Assoziative Arrays zu nutzen.
Ich habe jetzt schon von die Folgende Möglichkeit gefunden:

Delphi-Quellcode:
type
  SomeClass = class
  public
    function GetArrayProp(Index: string): string;
    procedure SetArrayProp(Index: string; Value: string);
    property ArrayProp[Index: string]: string read GetArrayProp write SetArrayProp;
die Frage ist wie organisiere ich das intern am besten. Das Problem ist das in meinem Fall ständig werte dazukommen und wieder gelöscht auf nil gesetzt werden.

ich brauchte in meiner Anwendung folgende Struktur:

Clients[34] := TClient...
Clients[234] := TClient...
Clients[12] := TClient...
User['deltachaos'][0] := 34;
User['deltachaos'][1] := 234;
User['deltachaos'][2] := 12;
Maximilian Ruta
Ich weiß mein Deutsch ist ! Bei Fragen: ich bin fast immer im Mumble
Server: cubexsports.de
Port: 64738
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.116 Beiträge
 
Delphi 12 Athens
 
#2

AW: Assoziative Arrays

  Alt 16. Jun 2010, 19:23
Hast du dich schonmal hier umgesehn?
Da gibt es schon einige Beispiele, wo man abgucken könnte.
> Hier im Forum suchenassoziative Arrays oder Hier im Forum suchenassoziatives Array


Ohne Generics läuft es und für dich dann datürlich noch den Record in eine Klasse umgewandelt:
http://www.delphipraxis.net/132817-u...ler-e2506.html

Ach ja, die Speicherverwalrung ist extra nicht stark optimiert,
da dieses bei mir der "neue" Delphi-SpeicherManager schon ausreichend erledigt.
Also entweder man optimiert das selber oder rüstet ebenso mit FastMM nach.


PS:
Delphi-Quellcode:
SomeClass = class
public
  function GetArrayProp(Index: string): string;
  procedure SetArrayProp(Index: string; Value: string);
  property ArrayProp[Index: string]: string read GetArrayProp write SetArrayProp;
Sowas "Einfaches", also ein assoziatives Array of String, könnte man auch über eine StringList erledigen.
SL.Value['name'] = 'text'
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu (16. Jun 2010 um 19:34 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Deltachaos
Deltachaos

Registriert seit: 20. Feb 2008
Ort: Berlin
195 Beiträge
 
Delphi 7 Personal
 
#3

AW: Assoziative Arrays

  Alt 16. Jun 2010, 19:45
Doch das schon.

Nur häufen sich bei mir noch ein paar andere Probleme. Ich nutze zum einen FreePascal da es eine Server Anwendung ist die auf einem Linux Server laufen muss. Zum anderen weiß ich noch nicht mal genau wie ich die Speicherung der Clients überhaupt mache bzw. ob es einfacher geht.
Da ich das gerade bemerkt habe habe ich auch einen anderen Thread aufgemacht:

http://www.delphipraxis.net/152264-s...anwendung.html
Maximilian Ruta
Ich weiß mein Deutsch ist ! Bei Fragen: ich bin fast immer im Mumble
Server: cubexsports.de
Port: 64738
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.116 Beiträge
 
Delphi 12 Athens
 
#4

AW: Assoziative Arrays

  Alt 16. Jun 2010, 20:18
(@mkinzler: ich mach mal hier weiter)
Vielleicht reicht ja eine ValueList?
Meinst du den TValueListEditor?

Darin versteckt sich ein kompletter TStringGrid.


Eine TStringList (wie oben erwähnt) wäre aber sowas wie eine ValueList.


Also im FPC/Lazarus dürfte die Record-Variante laufen ... und falls die Generics da auch nicht gehn oder sie nicht nötig sind, dann einfach den generischen Typen direkt durch deinen Wunschtypen ersetzen.

Wenn man Record in Class ändert, dann hat man eine Klasse draus gemacht.

Dann eventuell noch den eingebetteten Typen rausverlegen.

Nach all diesen Änderungen könnte es eventuell sogar in Delphi 7 laufen.

Ob Speicheroptimierungen nötig sind, das hängt davon ab, wie oft das Array verändert (gelöscht/hinzugefügt) wird und ob es nicht doch schon schnell genug ist.

[add]
Und hier noch ein kleiner Thread dazu
http://www.delphipraxis.net/145892-g...rs-record.html
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu (16. Jun 2010 um 20:25 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort


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 00:58 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