AGB  ·  Datenschutz  ·  Impressum  







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

werte in array ablegen und aufrufen

Ein Thema von Privateer3000 · begonnen am 13. Dez 2008 · letzter Beitrag vom 14. Dez 2008
Antwort Antwort
Benutzerbild von Privateer3000
Privateer3000

Registriert seit: 10. Jun 2002
Ort: Jena
1.128 Beiträge
 
Delphi 10.4 Sydney
 
#1

werte in array ablegen und aufrufen

  Alt 13. Dez 2008, 09:11
Hallöchen,
um nicht 20 Spalten in einer Tabellen anlegen zu müssen habe ich
in eine Zelle 20 Parameter (alles Integer) als Text in eine Spalte mit Kommas getrennt gelegt.
Der Text in etwa so aus: 0,1,2,0,2,1...
Nun möchte ich den Inhalt wieder auseinander nehmen und die Parameter verwenden.
Wie sähe der richtige Weg dazu aus? Muss man alles in eine Stringliste legen oder
gibt es andere Möglichkeiten?

Grüße
Privateer3000
Peter
+++Versuch es nicht mit Gewalt + Nimm einen größeren Hammer! +++
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.540 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: werte in array ablegen und aufrufen

  Alt 13. Dez 2008, 09:24
Was meinst Du mit Tabelle? Datenbank? Dann ist das genau das falsche Vorgehen, da die DB so nicht normalisiert ist.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von TonyR
TonyR

Registriert seit: 17. Jun 2006
Ort: Bautzen
503 Beiträge
 
FreePascal / Lazarus
 
#3

Re: werte in array ablegen und aufrufen

  Alt 13. Dez 2008, 11:08
Sind die vorhandenen "Parameter" alles einstellige Zahlen? Wie möchtest du die Ergebnisse vorliegen haben?
Es gibt units und Funktionen, die dieses Problem behandeln, such mal nach explode

Aber eigentlich könntest du für dein Problem relativ schnell eine eigene Funktion basteln, aber dafür müsste man schon die obigen Fragen beantworten =)


Edit: Er meint glaube ich eine CSV!?
Es ist unmöglich, witzig zu sein ohne ein bisschen Bosheit. Die Bosheit eines guten Witzes ist der Widerhaken, der ihn haften lässt. - Georg Christoph Lichtenberg
  Mit Zitat antworten Zitat
Benutzerbild von Privateer3000
Privateer3000

Registriert seit: 10. Jun 2002
Ort: Jena
1.128 Beiträge
 
Delphi 10.4 Sydney
 
#4

Re: werte in array ablegen und aufrufen

  Alt 13. Dez 2008, 14:53
Ja, in einer datenbank habe ich alle möglichen programmeinstellungen gespeichert.
Jetzt wollte ich mit Parametern bestimmte Zustände schalten. Dies geschieht mit
mit 0,1 oder 3. 20 Zustände sollen geschrieben werden. Um, wie gesagt, nicht 20 Spalten
benutzen zu müssen wollte ich alle in einen String packen und dann,wie richtig erkannt, wieder
auseinander zu nehmen. So dass ich dann ähnlich einer Stringlist mit n1[i]..n20[i]
eine integere Variable damit belegen kann.
Ich hab keine richtige Idee das umzusetzen.
Peter
+++Versuch es nicht mit Gewalt + Nimm einen größeren Hammer! +++
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.540 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: werte in array ablegen und aufrufen

  Alt 13. Dez 2008, 15:19
Wenn ich das richtig verstehe, handelt es sich doch um eine m:n-Beziehung. Diese wird im Normalfall über eine Zuordnungstabelle realisiert, dafür brauchst Du keine 20 Spalten in der Haupttabelle.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
guidok

Registriert seit: 28. Jun 2007
417 Beiträge
 
#6

Re: werte in array ablegen und aufrufen

  Alt 14. Dez 2008, 09:32
Also wenn ich das alles richtig verstanden habe, dann ist die TStringList ganz gut für dich geeignet. Du weist deinen kommaseparierten String einfach der Eigenschaft StringList.DelimitedText zu und kannst dann ganz einfach über den Listenindex auf die einzelnen Inhalte zugreifen.

Alternativ gäbe es noch die Möglichkeit Schlüssel-Wertepaare ala INI-Datei zu verwenden. Das heisst du legts in deiner StringList die Parameter in folgender Form ab (geht z.B. über die Eigenschaft Value):

StringList.Value('Para1') := IntToStr(34); Para1=34
Para2=22
...

Auslesen kannst du auch hier wieder DelimitedText:

Para1=34,Para2=22...

Mit den Eigenschaften Value und Name kannst du in der StringList direkt über Schlüsselname auf den Wert zu greifen. Das hat den Vorteil, dass du nicht immer alle Parameter speichern musst, sondern nur die, die du im jeweiligen Fall auch benötigts UND du könntest durch neue Schlüsselnamen ganz einfach erweitern.

Edit:

Wobei DeddyH natürlich recht damit hat, dass man dies in einer DB nicht unbedingt so machen sollte... Ich könnte mir das allerdings trotzdem durchaus vorstellen, um z.B. Einstellungen für einen Benutzer in einem Parameterstring zu sichern, o.ä.
  Mit Zitat antworten Zitat
Benutzerbild von Privateer3000
Privateer3000

Registriert seit: 10. Jun 2002
Ort: Jena
1.128 Beiträge
 
Delphi 10.4 Sydney
 
#7

Re: werte in array ablegen und aufrufen

  Alt 14. Dez 2008, 09:45
Danke Leute

ja es geht um Benutzereinstellungen zu sichern.
Kann ich nicht ein fach den string den ich aus der DB auslese
in eine stringlist umwandeln?
Normalerweise werden ja elemente einzeln einer stringlist hinzugefügt.
Nun steht der string ja schon "fertig" da.
Delphi-Quellcode:
var settings:String;
...
settings:=fieldbyname('einstell').asString;
kann man das nun einfach umwandeln?
Peter
+++Versuch es nicht mit Gewalt + Nimm einen größeren Hammer! +++
  Mit Zitat antworten Zitat
guidok

Registriert seit: 28. Jun 2007
417 Beiträge
 
#8

Re: werte in array ablegen und aufrufen

  Alt 14. Dez 2008, 10:03
Zitat von Privateer3000:
kann man das nun einfach umwandeln?
Steht doch da, genau ein Beitrag weiter oben: DelimitedText

Schau dazu auch in der Hilfe zur TStringList nach.
  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 21:18 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