Verschachtelte Gruppen von Daten

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
4Planes
Beiträge: 37
Registriert: 19.11.2020 17:08

Verschachtelte Gruppen von Daten

Beitrag von 4Planes »

Hallo!

Ich frage mich, was der beste Ansatz ist, um in PB mit den mir vorgegebenen Daten umzugehen.

Ich hab eine Text-Datei mit folgender Form:

Code: Alles auswählen

Wert 1: lorem
Wert 2: ipsum
Wert 3: dolor

Gruppe 1:
  String 1: sit
  String 2: amet
Ende Gruppe

Gruppe 2:
  String 1: consetetur
  
  Untergruppe 1:
    String 1: sadipscing
    String 2: elitr
  Ende Untergruppe 1
Ende Gruppe 2
Theoretisch müsste es unendlich viele (Unter-)Gruppen geben können. Mehr als drei habe ich bisher nicht gesehen. Die Namen der Gruppen können sich wiederholen.

Bisher habe ich den kompletten Text Zeile für Zeile in eine Liste geladen. Für jede Zeile habe ich in der Liste gespeichert, welcher String vor dem Doppelpunkt steht, welcher danach, oder ob es sich um den Namen einer Gruppe handelt und dann diesen gespeichert.
Brauche ich einen bestimmten Wert, durchsuche ich die komplette Liste von vorn nach hinten - erst nach dem passenden Gruppennamen, dann nach dem passenden String vor dem Doppelpunkt. Doppelte Gruppennamen sind ärgerlich, aber kein echtes Problem.

Nun wollte ich meinen Code so überarbeiten, dass die Art, wie ich in PB mit den Daten umgehe, widerspiegelt, wie sie in der Textdatei gruppiert und verschachtelt sind, z.B. die Gruppen und Untergruppen in einzelne Maps oder Listen laden. Ich dachte, dadurch würde es einfacher auf diese Gruppen zuzugreifen, z.B. einfach über den Mapkey. Durch diesen Ansatz entstehen aber - logischerweise - ziemlich verschachtelte Listen oder Maps, also Listen von Listen von Listen usw., und ich kriege gerade den Eindruck, dass ich mir damit das Leben schwerer mache.

Lange Rede, kurzer Sinn: Ich wollte mal ganz allgemein Fragen, wie man mit solchen Daten am besten umgeht und wie richtige Programmierer diese Daten in PB verarbeiten würden.
Benutzeravatar
mk-soft
Beiträge: 3695
Registriert: 24.11.2004 13:12
Wohnort: Germany

Re: Verschachtelte Gruppen von Daten

Beitrag von mk-soft »

Der beste Weg ist es mehrere Strukturen anzulegen und diese dann in einer Struktur zusammenzufassen.

Beispiele auf die Schnelle:

Programm Daten und Projekt Daten in XML Laden und Speichern
Link: ProgramData

Strukturen mit Listen und Map als Index
Link: FormDataWindow
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
H.Brill
Beiträge: 356
Registriert: 15.10.2004 17:42
Wohnort: 66557 Neunkirchen

Re: Verschachtelte Gruppen von Daten

Beitrag von H.Brill »

Vielleicht wäre auch eine .ini Datei interessant.
Mit
WritePrivateProfileString_
WritePrivateProfileSection_
GetPrivateProfileString_
GetPrivateProfileInt_

kann man diese bearbeiten.
Die Gruppen in eckige Klammern [], das andere einfach mit =

Damit wären die Gruppen leicht zu finden.

Ich hatte mal eine einfache DB damit gemacht. Wenn man die Sektionen
zum Iterieren durchnummeriert, läßt sich auch alles andere finden :

[Anzahl]
anzahl = 10 ' bei 10 Datensätzen

[1]
Name = "Hans"
Vorname = "Mustermann"
Alter = "50"
[2]
.... usw.
PB 5.60
Axolotl
Beiträge: 146
Registriert: 31.12.2008 16:34

Re: Verschachtelte Gruppen von Daten

Beitrag von Axolotl »

Hi 4Planes,

wenn dein Textformat noch angepasst werden kann, wäre auch JSON eine Option.
Zumindest das Einlesen und Wegspeichern über Strukturen, Arrays oder Listen wäre möglich.
Für das Durchsuchen bietet das aber keine Vorteile (denke ich)
Mostly running PureBasic <latest stable version and current alpha/beta> (x64) on Windows 11 Home
Antworten