AGB  ·  Datenschutz  ·  Impressum  







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

Mein Array ist explodiert

Ein Thema von bgeissl · begonnen am 27. Apr 2005 · letzter Beitrag vom 27. Apr 2005
Antwort Antwort
bgeissl

Registriert seit: 27. Apr 2005
Ort: Köln
4 Beiträge
 
#1

Mein Array ist explodiert

  Alt 27. Apr 2005, 19:50
Hallo Forum,

ich muss an einem bestehendem Delphi-Programm eine Änderung vornehmen, obwohl ich von Progammieren und insbesondere Delphi nur 0,001 Ahnung habe. Und hier das Problem:

Wir wollen eine Tabelle mit fast 200 Mio Zeilen und rund 30 Spalten auswerten. Die Spalten enthalten Merkmale wie z. B. Alter, Geschlecht, Schuhgröße... mit je 2, 3, 4 oder auch mal 20 Merkmalsausprägungen (z. B. Alter kann M oder W sein). Bisher wird ein riesen Array gebildet, der alle erdenklichen Merkmalskombinationen enthällt; in der letzten Spalte wird dann hochgezählt, wie oft genau eine bestimmte Kombination vorgekommen ist. Will man nicht alle Merkmale auswerten, ist der Array kleiner als die Ausgangstabelle. Will man alle Merkmale auswerten, wird der Array zu groß. Daher die Idee, die Daten in einer Baumstruktur abzubilden. Damit soll erreicht werden, dass kein Speicherplatz für Merkmalskombinationen reserviert wird, die es gar nicht gibt.

Gibt es dafür fertige Lösungen? Ich versuche gerade Klassenprogrammierung zu verstehen. Kann ich soetwas mit Klassen abbilden und wenn ja wie denn?

Gruß
Boris
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#2

Re: Mein Array ist explodiert

  Alt 27. Apr 2005, 19:58
Schmeiße den definitiv benötigten Kram in eine verkettete Liste und Ruhe ist.
Gruß
Hansa
  Mit Zitat antworten Zitat
bgeissl

Registriert seit: 27. Apr 2005
Ort: Köln
4 Beiträge
 
#3

Re: Mein Array ist explodiert

  Alt 27. Apr 2005, 20:10
Meinst du TList oder was? Kann ein Listenelement mehr als einen Nachfolger haben?
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#4

Re: Mein Array ist explodiert

  Alt 27. Apr 2005, 20:20
TStringlist müßte auch gehen. Vermute aber mal, es geht zu langsam bei der Menge oder es wird zuviel Ballast mit rumgeschleppt. Die Frage ist aber zu unpräzise gestellt. Ich verstehe nur nicht was Du genau vor hast. Was heißt : mehr als ein Nachfolger ? Der Titel ist übrigens echt Klasse. Welche Fehlermeldung kommt denn, wenn das Array explodiert ?
Gruß
Hansa
  Mit Zitat antworten Zitat
bgeissl

Registriert seit: 27. Apr 2005
Ort: Köln
4 Beiträge
 
#5

Re: Mein Array ist explodiert

  Alt 27. Apr 2005, 20:34
Wenn es keine Mädchen gäbe die rauchen, bräuchte ich doch keinen Speicher dafür reservieren, wie ich es beim Array tue:

Also könnte ich das doch in einem Baum abbilden, oder ist das blöd?

Baum:
Geschlecht-> Raucherstatus-> Anzahl

/////////////Raucher 5
M
\\\\\\\\\\\\\Nichtraucher 2




W
\\\\\\\\\\\\\Nichtraucher 7


Array:
M Raucher 5
M Nichtraucher 2
W Raucher 0
W Nichtraucher 7
  Mit Zitat antworten Zitat
Benutzerbild von Jasocul
Jasocul

Registriert seit: 22. Sep 2004
Ort: Delmenhorst
1.355 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: Mein Array ist explodiert

  Alt 27. Apr 2005, 21:00
Ich frage jetzt mal ganz naiv:
Du redest von einer Tabelle mit 200 Mio Zeilen. Ich gehe doch mal davon aus, dass es sich um eine Datenbank-Tabelle handelt, oder?
Falls das so ist, warum macht ihr keine geschickten Datenbankabfragen?
Falls nicht, ist das Konzept vielleicht falsch?

Davon sagst du nämlich nichts. Darum die naive Frage.
Peter
  Mit Zitat antworten Zitat
bgeissl

Registriert seit: 27. Apr 2005
Ort: Köln
4 Beiträge
 
#7

Re: Mein Array ist explodiert

  Alt 27. Apr 2005, 21:14
Für die Zukunft ist das auch geplant, die Tabelle in einer Datenbank auswerten zu lassen. Es werden aber nicht nur einfach irgendwelche Abfragen mit dem Delphi-Programm durchgeführt, sondern die Datensätze werden einzeln vorher noch auf Plausibilität geprüft. Das geht mit SQL glaube nicht so einfach. Außerdem liegen die Rohdaten in vielen verteilten Textdateien vor, die vom Programm zusammengesucht werden.
  Mit Zitat antworten Zitat
Nicolai1234

Registriert seit: 21. Feb 2004
1.008 Beiträge
 
Turbo Delphi für Win32
 
#8

Re: Mein Array ist explodiert

  Alt 27. Apr 2005, 22:52
[OT]
Zitat:
Wir wollen eine Tabelle mit fast 200 Mio Zeilen[...]
Was ist das für eine Datenmenge? So viele Menschen gibt es in Deutschland ganricht...
[/OT]

Zitat:
Außerdem liegen die Rohdaten in vielen verteilten Textdateien vor, die vom Programm zusammengesucht werden.
Wäre es da nicht erstmal sinnvoll alle Datensätze in eine DB schreiben zu lassen? Danach kann man dann einfacher die Abfragen machen...
  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 22:25 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