Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi dyn. array oder records oder tstrinlist bitte um rat (https://www.delphipraxis.net/150277-dyn-array-oder-records-oder-tstrinlist-bitte-um-rat.html)

elyesa 12. Apr 2010 11:31


dyn. array oder records oder tstrinlist bitte um rat
 
hallo,
ich habe folgendes problem. ich möchte zur laufzeit eine liste mit werten analysieren und gruppieren und festhalten.

die liste:

  • E|9430863|Kolkata Knight Riders - Delhi Daredevils|Kolkata - Delhi Da|Cricket|Indian Premier League|L|07.04.2010 16:30:00|1027||||Game running|1|0|bg_1027_1.jpg|38|163|405870|0|Runs=94 : 0|Overs=10 : 0|Wickets=0 : 0|Match Overs=0 : 0|6´s Total=3 : 0|Batting team=Kolkata Knight Riders
    K|0
    S|HOME|0|0|0|0
    S|ROAD|0|0|0|0
    L|2079816|0||Six!|E
    L|2079814|0||Over 10 - 11 runs|E
    L|2079808|0||Six!|E
    L|2079806|0||Over 9 - 4 runs|E
    L|2079801|0||Over 8 - 8 runs|E
    L|2079788|0||Over 7 - 15 runs|E
    L|2079785|0||Six!|E
    L|2079784|0||Over 6 - 9 runs|E
    L|2079780|0||Over 5 - 3 runs|E
    L|2079771|0||Over 4 - 6 runs|E
    L|2079765|0||Over 3 - 10 runs|E
    L|2079760|0||Over 2 - 15 runs|E
    L|2079753|0||Over 1 - 7 runs|E
    L|2079741|0||Batting Team: Kolkata Knight Riders|E
    L|2079740|0||Game running|E
    G|12157207|9930957|Spiel|N2|1|E||7|Y
    O|11544219|@|1|150|N|E||#|1
    O|11544220|@|2|240|N|E||#|2
    G|12157306|9934536|1. Innings Runs Über/Unter 169.5|21|2|E|If overs become reduced bets are void unless result known|8|N
    O|11544537|Über 169.5|1|115|N|E||Über 169.5|1
    O|11544538|Unter 169.5|2|450|N|E||Unter 169.5|2
    G|12157208|9932783|Wann wird das 1. Wicket verloren (1st innings)|21|12157208|D||1|N
    O|11544221|Over 24.5 runs|1|105|Y|D||Over 24.5 runs|1
    O|11544222|Under 24.5 runs|2|700|Y|D||Under 24.5 runs|2
    G|12157209|9932784|Wie wird das 1. wicket verloren (1st Innings)|11|4|E||1|N
    O|11544223|Caught|1|155|N|E||Caught|1
    O|11544224|Bowled|2|400|N|E||Bowled|2
    O|11544225|LBW|3|750|N|E||LBW|3
    O|11544226|Anders|4|675|N|E||Anders|4
    E|9431354|Bangalore Royal Challengers - Deccan Chargers|Bangalor - Deccan C|Cricket|Indian Premier League|E|08.04.2010 16:30:00|1027|||||1|0|bg_1027_1.jpg|38|1|405870|0|
    K|0
    S|HOME|0|0|0|0
    S|ROAD|0|0|0|0

E ist die hauptgruppe dann folgt die untergruppe G mit den inhalten O und die untergruppe L.
von E gibt es ca 100 listen, die sich ständig ändern.

meine frage wäre wie könnte ich dies am besten lösen ohne einen memory leak zu bekommen. ich glaube ich müsse eine kombination von arrays und tstringlists machen.

wäre super wenn ihr mir einen ansatz zeigen könntet.

danke vorab für die bemühungen.

gruss ismail

Luckie 12. Apr 2010 11:41

Re: dyn. array oder records oder tstrinlist bitte um rat
 
Ich würde mir Containerklassen arbeiten: http://www.michael-puff.de/Developer...ainer-Klassen/

elyesa 12. Apr 2010 12:19

Re: dyn. array oder records oder tstrinlist bitte um rat
 
hi,
erst mal danke @luckie.
habe ich aber noch nicht so richtig verstanden. wäre das in form von

Delphi-Quellcode:
type
  Tgroupofevent = class(Tobject)
  privat
    fgroupno : integer;
    fgroupquote : Tlist;
  end;


Tevent = class(Tobject)
  privat
    Fevent = Tlist;
    Fgroup = Tgroupofevent;
    Feventlist = Tlist;
  end;

Teventlist = class(Tlist)
  private
    getevent(index: integer): Tevent
  end;
ich weiss nicht wie es umsetzen könnten.

gruss
ismail

elyesa 12. Apr 2010 12:57

Re: dyn. array oder records oder tstrinlist bitte um rat
 
hallo,
könnte das etwa so funktionieren:

Delphi-Quellcode:
type

Tgroup = record
   fgroupno: integer
   fgroupquote : TStringlist
  end;

Tgroups = array of Tgroup
 
 
Tgroupevent = record
   feventno : Integer;
   feventlist : eventlist;
   
Tgroupeventlist = array of Tgroupevent;  
 
 
var
lliste   : tstringlist --- die L Liste
grouplist : Tstringlist ---> die groupenliste
eventlist : tstringlist ---> die eventliste
1.) den tgroups array mit den group record füllen

2.) die group liste mit den groupen füllen
grouplist.addobject('groupeno', Tgroups[indeger]);

3.) dann die eventliste mit der groupliste und der lliste füllen
eventlist.addobject('groupno',grouplist);
eventlist.addobject('llist',lliste);


4.) den array tgroupevents mit dem record tgrouprecord füllen


gruss
ismail


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:13 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