![]() |
Inis, Arrays oder doch Datenbanken?
:hi: allesamt
ich bin mir etwas unschlüssig, wie ich eine bestimmte Struktur von Daten realisieren soll :? Ich habe ungefähr sowas:
Code:
Also einen Wert A, über den ergeben sich ein paar weitere Werte. Wenn man dann einen von diesen Werten auswählt, ergeben sich wieder ein paar neue Werte. Das war's dann. Also drei Subkategorien.
A > A
B > A C B B : C C : D D : : : : Ich liebe Inis und wollte deswegen mit ihnen arbeiten, aber das würden dann gegen Ende des Projektes nahezu 400 Dateien werden, also Ini-Dateien. Ich glaube, dass kann ich einfach nicht bringen. Allerdings sind Inis eben auch ohne Code leicht editierbar, weswegen ich die noch nicht abschreibe. Miene Frage ist jetzt, ob es geschickter wäre die obige Struktur mit Arrays oder doch einer Datenbank zu realisieren? :nerd: |
Re: Inis, Arrays oder doch Datenbanken?
Also ganz klar ist mir deine Übersicht nicht,
sieht aber eher nach einer Array-Lösung auch. Musst du die Werte permanent speichern? René |
Re: Inis, Arrays oder doch Datenbanken?
hi,
ja ich weiß nicht recht, wie ich es veranschaulichen soll. Im Grunde brauche ich einen Wert, dem ich weitere Werte einverleibe, und diesen einverleibten Werten, weitere einverleibe. Mit Inis sicherlich ungeeignet, aber es fällt mir eben am einfachsten. Die Werte werden dauerhaft gespeichert und sollen mit einem anderen programm jederzeit editiert werden. Laden/Speichern wird auch oft der Fall sein, aber nicht in regelmäßigen Abständen. Hoffe es hilft weiter :) edit: habe die Darstellung oben nochmal bearbeitet. |
Re: Inis, Arrays oder doch Datenbanken?
Müsste doch auch als INI machbar sein hrm... etwa so eine Struktur:
Code:
Damit wäre alles in einem File. Dazu müsstest du halt spezielle Load und Save-Routinen basteln
[Root]
Count=4 Caption0=blah SubItems0=SI0 Caption1=blubb SubItems1=SI1 Caption2=bling Caption3=blopp [SI0] Count=2 Caption0=xxx Caption1=yyy SubItems1=SI2 [SI1] Count=3 Caption0=aaa Caption1=bbb Caption2=ccc [SI2] Count=... Caption0=... SubItems0=... : : |
Re: Inis, Arrays oder doch Datenbanken?
Inis sind eigentlich ziemlich eklige Viecher.
Wenn du mit Arrays typisierte Dateien meinst, ebenfalls eklig. Und Arrays sind im Code auch noch friemelig, weil sie ja nur strunzdumme primitive Typen sind... Kiek dir mal die ![]() |
Re: Inis, Arrays oder doch Datenbanken?
Ich habe deinen Aufbau nicht ganz verstanden :wink: , aber eventuell willst du deine Daten (so wie es für mich aussieht) hierarchisch speichern. Benutze doch XML.
|
Re: Inis, Arrays oder doch Datenbanken?
:hi:
Zitat:
![]() Zitat:
Habe mir mal ![]() @cruiser: Ja alles in eine zu packen wäre auch eine Möglichkeit (auf die ich natürlich nicht gekommen bin :D). Werde ich wohl mal antesten :roteyes: Danke vorerst für die Antworten, darauf kann ich schon mal aufbauen :nerd: |
Re: Inis, Arrays oder doch Datenbanken?
Zitat:
Delphi-Quellcode:
type
TEinstellung = class(TCollectionItem) published property SomeString : String read fSomeString write fSomeString; property BliBlaBlupps : TmxJsCollection read fBliBlaBlupps; end; TBliBlaBlupp = class(TCollectionItem) published property EinInteger : Integer read fEinInteger write fEinInteger; end; .... constrcutor TEinstellung... fBliBlaBlupps := TmxJsCollection.Create(TBliBlaBlupp); ...
Delphi-Quellcode:
Ausgelesen wird einfauch nur noch das hier und gut ist:
var
einstellung : TEinstellung; einstellungen : TmxJsCollection; begin einstellungen := TmxJsCollection.Create(TEinstellung); einstellung := einstellungen.Add() as TEintellung; for i := 1 to 100 do begin with einstellung.BliBlaBlupss.Add() as TBliBlaBlupp do EinInteger := i; end; einstellungen.SaveToFile('plaintext.txt'); einstellungen.Binary := true; einstellungen.SaveToFile('binary.bin');
Delphi-Quellcode:
Dat ist hierarchisch und beim Definieren der Klassen zum Halten der Daten bestimmst du die Struktur der Datei gleich mit.
var
einstellung : TEinstellung; einstellungen : TmxJsCollection; begin einstellungen := TmxJsCollection.Create(TEinstellung); einstellungen.LoadFromFile('plaintext.txt'); for i := 0 to einstellungen.Count - 1 do begin einstellung := einstellungen[i] as TEintellung; writeLn(einstellung.SomeString); for j := 0 einstellung.BliBlaBlups.Count - 1 do writeLn('-> ', TBliBlaBlupp(einstellung.BliBlaBlups[j]).EinInteger); end; Außerdem kannst du Daten laden, die mit einer vorherigen Version deines Programmes gespeichert wurden, da DFM streaming abwärtskompatibel ist. (Du kannst ja auch ein D7 Form in BDS2006 öffnen :zwinker: ) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:52 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz