AGB  ·  Datenschutz  ·  Impressum  







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

Array über mit String als "Index"?

Ein Thema von Pow3rus3r · begonnen am 30. Jul 2012 · letzter Beitrag vom 1. Aug 2012
Antwort Antwort
Seite 1 von 2  1 2      
Pow3rus3r

Registriert seit: 17. Apr 2012
43 Beiträge
 
Delphi XE Professional
 
#1

Array über mit String als "Index"?

  Alt 30. Jul 2012, 12:01
hallo zusammen,

ich habe eine große Menge Daten, die ich in ein Array laden will, was z.B. so aussieht:

[0]: Name1, 5, 18, 24, 58
[1]: Name2, 4, 32, 55, 23
...

Dabei sind mir die "Namen" jederzeit bekannt und ich würde das Array gerne über die Datensatznamen ansprechen. normal muss ja immer die Zeilennummer des Array angegeben werden. Gibt es da evtl. eine Möglichkeit, das ganze ohne eine Schleife o.ä. zu realisieren?

Danke und Gruß
Thomas
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.174 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: Array über mit String als "Index"?

  Alt 30. Jul 2012, 12:08
Schau dir mal das Values-Property von TStrings an.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.101 Beiträge
 
Delphi 12 Athens
 
#3

AW: Array über mit String als "Index"?

  Alt 30. Jul 2012, 12:56
TDictionary wäre auch eine Alternative.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von s.h.a.r.k
s.h.a.r.k

Registriert seit: 26. Mai 2004
3.159 Beiträge
 
#4

AW: Array über mit String als "Index"?

  Alt 30. Jul 2012, 13:16
Himitsu hatte ein Hier im Forum suchenassoziatives Array glaub schon mal sowas geschrieben... Irgendwie über einen Record, soweit ich das weiß... Nur finde ich es gerade nicht.

Würde aber auch ein TDictionary empfehlen, nachdem du schon XE hast.
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)
  Mit Zitat antworten Zitat
Pow3rus3r

Registriert seit: 17. Apr 2012
43 Beiträge
 
Delphi XE Professional
 
#5

AW: Array über mit String als "Index"?

  Alt 30. Jul 2012, 14:06
Mit Tstrings und TDictionary kann man aber nur einem String genau EINEN anderen Sting zuordnen, oder habe ich da jetzt was falsch verstanden?

Ich bräuchte irgendwie sowas, wie eine Datenbank, bei der ich sagen kann, ich will den gesamten Datensatz (bestehend aus mehreren Datenfeldern) mit dem namen "xy".

Alternativ könnte ich wohl einfach die Datensätze (also die Zahlen) in ein Array laden und dann TDictionary oder Tstrings nutzen, um den ID's des Arrays die Namen zuzuordnen. Wäre zwar etwas umständlich, aber wie es scheint die einzige Möglichkeit, oder?
  Mit Zitat antworten Zitat
Benutzerbild von alleinherrscher
alleinherrscher

Registriert seit: 8. Jul 2004
Ort: Aachen
797 Beiträge
 
Delphi XE2 Professional
 
#6

AW: Array über mit String als "Index"?

  Alt 30. Jul 2012, 14:12
Und wenn du ein Array of Record machst und dir eine Suchfunktion schreibst, die aus dem Namen den Array-Index sucht. Dann kannst du immer auf den kompletten Datensatz zugreifen. Ist perfomancetechnisch vielleicht nicht das allerschnellste, aber müsste ausreichend sein.

Gruß, Michael
„Software wird schneller langsamer als Hardware schneller wird. “ (Niklaus Wirth, 1995)

Mein Netzwerktool: Lan.FS
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#7

AW: Array über mit String als "Index"?

  Alt 30. Jul 2012, 14:17
vielleicht wäre es gut wenn Du Deine Daten etwas näher beschreiben würdest.
Schon it einer Stringlist und binärer Suche hättest Du eine recht schnelle Möglichkeit für
Code:
name1 = 1 2 3 4 55 66 77
name2 = 1234 34 12342 2 77
name3 = irgendeinwert
Tdictonary kenn ich nicht aber vom Hörensagen ist das a) schneller b) einfacher zu handhaben.

Gruß
k-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
tgvoelker

Registriert seit: 9. Sep 2002
Ort: Oelsnitz, Vogtland
39 Beiträge
 
Delphi 2009 Professional
 
#8

AW: Array über mit String als "Index"?

  Alt 30. Jul 2012, 23:46
hallo zusammen,

ich habe eine große Menge Daten, die ich in ein Array laden will, was z.B. so aussieht:

[0]: Name1, 5, 18, 24, 58
[1]: Name2, 4, 32, 55, 23
...

Dabei sind mir die "Namen" jederzeit bekannt und ich würde das Array gerne über die Datensatznamen ansprechen. normal muss ja immer die Zeilennummer des Array angegeben werden. Gibt es da evtl. eine Möglichkeit, das ganze ohne eine Schleife o.ä. zu realisieren?

Danke und Gruß
Thomas
Würde ich als Descendant von TStringList implementieren. Im Constructor Sorted auf True, Duplicates auf dupError und OwnsObjects auf True. Die Daten selber als Objekt implementieren (class of TObject). Wäre meiner Ansicht nach am streßfreiesten.
Thomas Völker
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Array über mit String als "Index"?

  Alt 31. Jul 2012, 01:23
Nja, wozu eine TStringList misbrauchen, wenn es das Dictionary gibt?
Und dazu noch als Generic, wo man bei der TStingList ständig alles selber (unsicher) casten muß. (abgesehn davon, wenn man alles via AS casten würde)
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Furtbichler
(Gast)

n/a Beiträge
 
#10

AW: Array über mit String als "Index"?

  Alt 31. Jul 2012, 05:06
TDictionary gibt es ja nur für neuere Delphi bzw. nicht für das alte Zeugs.

Ich habe nur BDS2006 und muss mir mit einer Hashmap helfen. die hier im Forum rumgeistert.
  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 11:03 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