AGB  ·  Datenschutz  ·  Impressum  







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

Frage zu: Array of Record

Ein Thema von torud · begonnen am 6. Sep 2003 · letzter Beitrag vom 7. Sep 2003
Antwort Antwort
urs.liska

Registriert seit: 6. Aug 2003
Ort: Freiburg
195 Beiträge
 
Delphi 6 Professional
 
#1

Re: Frage zu: Array of Record

  Alt 6. Sep 2003, 16:35
Für so ein komplexeres Gebilde wäre es sicher OK, über eine eigene Klasse nachzudenken. Die kann dann indizierte Eigenschaften haben, die Du über:
Shop.Gruppe[18].Untergruppe[5].Artikel[73].Bezeichnung
Ansprechen könntest. Dazu wären allerdings Methoden wie Add, Remove und Eigenschaften wie AnzahlGruppen etc. nötig. Dieser Ansatz ist aufwändiger als ein einfaches Array, aber möglicherweise leichter zu erweitern.

Ein Array könnte aber so aussehen:
TArtikelArray = array[0..19][0..19][0..99] of rec_artikel Das ist ein mehrdimensionales Array, über das Du auf alle Artikel in allen Untergruppen in allen Gruppen (von rechts nach links gelesen) zugreifen kannst.
Der Nachteil ist, dass das komplette Array da ist, unabhängig davon, wieviele Artikel tatsächlich definiert sind.
Mit dynamischen Arrays kannst Du es auch machen, da musst Du aber darauf achten, dass die Anzahl der Einträge nicht überschritten wird.
Das eigentliche Problem bei einem einfachen Array dürfte aber sein, dass Du sagst, Du willst nebeneinander bis zu 100 Artikel und bis zu 20 Untergruppen. Das braucht eine etwas komplexere Gruppierung:
Delphi-Quellcode:
type
  TArtikel = record
  // so wie Du ihn definiert hast
  end;

  TArtikelArray = array of TArtikel;

  TUntergruppe = record
    Name: string;
    // weitere Eigenschaften
    Artikel: TArtikelArray;
  end;

  TUntergruppen = array of TUntergruppe;

  TGruppe = record
    Name: string;
    // weitere Eigenschaften
    Untergruppen: TUntergruppen;
    Artikel: TArtikelArray;

  TGruppen = array of TGruppe;

  TShop = record
     Name: string;
     // weitere Eigenschaften
     Warengruppen: TGruppen;
  end;

var Shop: TShop
Damit kannst Du auf Artikel z.B. so zugreifen:
Delphi-Quellcode:
Shop.Name;
Shop.Warengruppen[i].Name;
Shop.Warengruppen[i].Artikel[j].Bezeichnung;
Shop.Warengruppen[18].Untergruppen[5].Artikel[i].Bezeichnung;
...
with Shop.Warengruppen[3].Untergruppen[9] do
  for i := 0 to High(Artikel) do
  begin
    Output(Artikel[i].Bezeichnung); //'Output' steht für eine Aktion, die Du damit durchführst
    Output(Artikel[i].Bestellnummer);
    ...
  end;
Dabei musst Du noch Prozeduren zum Anfügen neuer Gruppen und Artikel schreiben, die dabei auf Höchstanzahl möglicher Gruppen/Artikel achten.

Viel Erfolg
Urs
  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 16:46 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