AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi SortedList oder iDictionary in Delphi (ohne .net!)
Thema durchsuchen
Ansicht
Themen-Optionen

SortedList oder iDictionary in Delphi (ohne .net!)

Ein Thema von Berlinermauer · begonnen am 22. Sep 2010 · letzter Beitrag vom 26. Sep 2010
Antwort Antwort
Seite 1 von 3  1 23      
Berlinermauer

Registriert seit: 3. Okt 2007
Ort: 0x0000
213 Beiträge
 
Delphi 7 Personal
 
#1

SortedList oder iDictionary in Delphi (ohne .net!)

  Alt 22. Sep 2010, 22:53
Delphi-Version: 2007
Hey Leute,

Ich bin an einem Punkt, andem muss ich quasi Arrays mit Key haben.

Ich weiß nicht mehr wie man es nennt, aber in c sähe das so aus: meinarray['brot'] = 'schmeckt nicht';

Dazu kommt, dass ich das nicht mit Strings machen kann, sondern ein TObject habe.

Um es genauer zu sagen: Ich habe eine GUID, und anhand dieser GUID muss ich auf nen TObject kommen.

Ein Array dafür zu verweden, und nur die GUIDS reinzuschreiben ist schlecht, da diese mal 4000 sind, mal 12000 mal 15, sprich die GUID ist nicht klein, und auch nicht durchgängig.

Hat jemand ne Idee wie das zu machen wäre?

In .NET gibt es die SortedList, und in C gibt es ein "iDictionary".

Danke
Marc S.
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#2

AW: SortedList oder iDictionary in Delphi (ohne .net!)

  Alt 22. Sep 2010, 23:00
Such mal in der CodeLib nach "Dictionary"
  Mit Zitat antworten Zitat
Benutzerbild von bernau
bernau

Registriert seit: 1. Dez 2004
Ort: Köln
1.268 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: SortedList oder iDictionary in Delphi (ohne .net!)

  Alt 23. Sep 2010, 01:54
Wenn es "nur" die GUID ist und ein Object, dann bietet sich doch wunderbar eine einfache Stringlist an. Zu jedem String kann man ein Object hinterlegen.

meineStringliste.addObject('DieGUID',MeinObject);
Gerd
Kölner Delphi Usergroup: http://wiki.delphitreff.de
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: SortedList oder iDictionary in Delphi (ohne .net!)

  Alt 23. Sep 2010, 06:22
http://www.delphipraxis.net/topic156343.html

Den Index-String auch noch zum generischen Typen machen und 'nen IComparer (oder wie das jetzt nochmal hieß) für den Index-Vergleich anschaffen, dann sollte/dürfte/könnte das auch mit anderen Indize funktionieren.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Berlinermauer

Registriert seit: 3. Okt 2007
Ort: 0x0000
213 Beiträge
 
Delphi 7 Personal
 
#5

AW: SortedList oder iDictionary in Delphi (ohne .net!)

  Alt 23. Sep 2010, 07:28
Danke für die vielen Antworten, ich habe das Problem und dmait gleich ein weiteres Problem gelöst:

Ihr kennt ja sicher die ComboBoxen etc, die Controls womit man was auswählt, nun wollte ich passend zum Text der da steht ein Objekt haben, und war kurz davor den Text zu parsen :]

Nur ein Problem habe ich da:

TObject(ComboBox1.Items.Objects[ComboBox1.ItemIndex]); So, ItemIndex hat immer unterschiedliche Werte (d.h. je nach dem, was ausgewählt wurde), jedoch ist das TObject das am Ende rauskommt, immer das, welches den größten ItemIndex hat?!

Egal auf das ComboBox1.ItemIndex steht, ComboBox1.Items.Objects ist immer High() in dem Sinne.

lt. der OH müsste es so funktionieren?
Warum mag das nicht?!


Edit: Achja, Ich tue das nicht! im OnChange oä der ComboBox, sondern dies ist ein Seperater Button der da gedrückt werden muss. (obwohl, das ist ja nur wichtig wenn ItemIndex nicht stimmt)
Marc S.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: SortedList oder iDictionary in Delphi (ohne .net!)

  Alt 23. Sep 2010, 07:47
Wie hast du die Objekte der ComboBoxen zugewiesen?
Eventuell stimmt da ja was nicht, ansonsten sollte ComboBox1.Items.Objects[ComboBox1.ItemIndex] schon korrekt sein.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu (23. Sep 2010 um 08:03 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Chemiker
Chemiker

Registriert seit: 14. Aug 2005
1.858 Beiträge
 
Delphi 11 Alexandria
 
#7

AW: SortedList oder iDictionary in Delphi (ohne .net!)

  Alt 23. Sep 2010, 07:50
Hallo Berlinermauer,

das sieht so aus, dass Du allen Objecten das letzte Object zugewiesen hast.

Bis bald Chemiker
wer gesund ist hat 1000 wünsche wer krank ist nur einen.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: SortedList oder iDictionary in Delphi (ohne .net!)

  Alt 23. Sep 2010, 08:04
das sieht so aus, dass Du allen Objecten das letzte Object zugewiesen hast.
Was auch gern "falsch" gemacht wird:
Allen Items das selbe Objekt und nur den Objektinhalt ausgetauscht/überschrieben.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Satty67

Registriert seit: 24. Feb 2007
Ort: Baden
1.566 Beiträge
 
Delphi 2007 Professional
 
#9

AW: SortedList oder iDictionary in Delphi (ohne .net!)

  Alt 23. Sep 2010, 09:47
Ist vielleicht nicht angebracht, aber wenn jemand von der (C#?) .NET Welt kommt...

Objekte werden in Delphi ja nicht automatisch in einer GarbageCollection entsorgt. Wenn da etwas bei der Objektzuweisung schief läuft und Referenzen verloren gehen sowieso.

Evtl. ReportMemoryLeaksOnShutdown := true oder FastMM4 verwenden (wenn Delphi 7 noch stimmt)?
  Mit Zitat antworten Zitat
Berlinermauer

Registriert seit: 3. Okt 2007
Ort: 0x0000
213 Beiträge
 
Delphi 7 Personal
 
#10

AW: SortedList oder iDictionary in Delphi (ohne .net!)

  Alt 26. Sep 2010, 00:04
Hm, wie kann ich gucken ob alle Objecte die gleichen sind? beim Debuggen will das iwie nicht so recht, weil .Objects[] kein array oder soetwas in dem Sinne ist.

und nein ich komme nicht von C# nur hab ich da halt einen Beispiel Code gefunden, und dachte: Sowas müsste es doch auch in Delphi geben!


Achja:

Zitat:
Was auch gern "falsch" gemacht wird:
Allen Items das selbe Objekt und nur den Objektinhalt ausgetauscht/überschrieben.
Ja könnte sein, aber was ist daran falsch?
Wie müsste es richtig lauten?

Grüße
Marc S.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


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 07:48 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