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 3  1 23      
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.170 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
10.995 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
Pow3rus3r

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

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

  Alt 30. Jul 2012, 14:37
Die Daten bestehen aus:
1.) Datensatzname
2.) 16 einzelnen Hexadezimalzahlen, die auch einzeln ansprechbar sein müssen

Bisher hatte ich alles in einem Array und dann mit einer Schleife nach dem gewünschten Datensatznamen gesucht. Aber das ist bei der Anzahl von Daten (ca. 400 Datensätze) schon recht Zeitintensiv.
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

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

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

  Alt 30. Jul 2012, 14:43
Du kannst sowas:
Delphi-Quellcode:
record
  Name: String;
  Values: Array of Byte;
end;
in ein Array packen und dafür sorgen dass dieses sortiert ist und bleibt. Dann kannst du eine binäre Suche benutzen.

Mit Tstrings und TDictionary kann man aber nur einem String genau EINEN anderen Sting zuordnen, oder habe ich da jetzt was falsch verstanden?
Du kannst deine ganzen Wert auch in eine Containerklasse packen, dann reicht das vollkommen.
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

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

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

  Alt 30. Jul 2012, 15:14
Die Daten bestehen aus:
1.) Datensatzname
2.) 16 einzelnen Hexadezimalzahlen, die auch einzeln ansprechbar sein müssen
Was heißt einzeln ansprechbar?

Bisher hatte ich alles in einem Array und dann mit einer Schleife nach dem gewünschten Datensatznamen gesucht. Aber das ist bei der Anzahl von Daten (ca. 400 Datensätze) schon recht Zeitintensiv.
wie denn das? 400 Datensätze waren für W95 vielleicht eine Herausforderung, mit einem halbwegs modernem Equipment ist das doch ruck zuck erledigt!?

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  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 17:47 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