AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Mehrdimensionale Datenstruktur, aber welche?
Thema durchsuchen
Ansicht
Themen-Optionen

Mehrdimensionale Datenstruktur, aber welche?

Ein Thema von LokutusvB · begonnen am 25. Sep 2006 · letzter Beitrag vom 25. Sep 2006
Antwort Antwort
Seite 1 von 2  1 2      
LokutusvB

Registriert seit: 18. Jul 2006
277 Beiträge
 
Delphi XE6 Enterprise
 
#1

Mehrdimensionale Datenstruktur, aber welche?

  Alt 25. Sep 2006, 09:40
Hallo Leute,

ich suche eine geeignete Datenstruktur, weiss aber beim besten Willen nicht, welche ich nehmen soll.

Es geht um folgendes Problem.

Ich will für ein späteres Suchverfahren verschiedene Pfade zu Dateien in eine Art Liste aufnehmen, weiss aber leider vorher nicht, wieviel es sein werden, sonst hätte ich ...[x..x, x..x] of String genommen.

Vielleicht mal zur Verdeutlichung ein Beispiel:

c:\Daten\ Aktuell\ 20060501\ XXX\ Datei -> Eintrag 1
c:\Daten\ Aktuell\ 20060502\ XXX\ Datei -> Eintrag 2
c:\Daten\ Aktuell\ 20060503\ XXX\ Datei -> Eintrag 3
c:\Daten\ Aktuell\ 20060504\ XXX\ Datei -> Eintrag 4
c:\Daten\ Aktuell\ 20060505\ XXX\ Datei -> Eintrag 5
c:\Daten\ Aktuell\ 20060701\ XXX\ Datei -> Eintrag 6
c:\Daten\ Aktuell\ 20060803\ XXX\ Datei -> Eintrag 7
c:\Daten\ Aktuell\ 20060803\ XXX\ \YYY\ Datei -> Eintrag 8
c:\Daten\ Aktuell\ 20060803\ XXX\ \YYY\ Datei -> Eintrag 9

Vorher ist leider nicht klar, wie groß bzw. wieviel Einträge es geben wird.

Gibt es hierfür eine passende Datenstruktur oder muß ich über zig Umwege das Array-Feld aufbauen?
MFG
LokutusvB
  Mit Zitat antworten Zitat
oki

Registriert seit: 30. Dez 2002
Ort: Brandshagen
1.819 Beiträge
 
Delphi 2007 Professional
 
#2

Re: Mehrdimensionale Datenstruktur, aber welche?

  Alt 25. Sep 2006, 09:44
Hi,

benutze Listenobjecte. Im moment ist mir zwar noch nicht ganz klar was du machen willst, aber das geht so in die Richtung Tree und Tree-Items.

gruß oki
  Mit Zitat antworten Zitat
LokutusvB

Registriert seit: 18. Jul 2006
277 Beiträge
 
Delphi XE6 Enterprise
 
#3

Re: Mehrdimensionale Datenstruktur, aber welche?

  Alt 25. Sep 2006, 09:48
Ich möchte zu einem späteren Zeitpunkt die Verzeichnis-Hirarchie durchsuchen bzw. sortieren. Deswegen will ich ja auch für eine Verzeichnisebene ein "Feld". Mir fällt sonst keine andere Lösung ein, in einem Dateisystem nach Verzeichnissen und Dateien zu suchen, und dann Dateien bzw. Verzeichniss von .. bis .. zu kopieren, als das Dateisystem zu analysieren, die Pfade in eine Datenstruktur aufzunehmen, diese aufbereiten, und dann die gewünschten Pfade wieder auszulesen. Oh Gott, Listenobjekte, klingt arg kompliziert.
MFG
LokutusvB
  Mit Zitat antworten Zitat
oki

Registriert seit: 30. Dez 2002
Ort: Brandshagen
1.819 Beiträge
 
Delphi 2007 Professional
 
#4

Re: Mehrdimensionale Datenstruktur, aber welche?

  Alt 25. Sep 2006, 09:59
Hi LokutusvB,

Zitat von LokutusvB:
Oh Gott, Listenobjekte, klingt arg kompliziert.
ist es gar nicht. Du kannst dir ein eigenes Object erstellen, welches weitere Objecte aufnehmen kann. dein basisobject ist halt vom Typ TObjectList. Hat das Element ein element, ab in die Liste. ein weiteres element, ab in die List, dieses element ein Element, ab in diese Liste usw. ...

Das hört sich erst mal etwas komliziert an, ist aber reine Übungssache. Zum besseren Überblick kannst du deine Objecte ja mit schönen Eigenschaften ausschmücken.

Bsp.:
Delphi-Quellcode:
type
  TPathItem = class(TObjectList)
  public
    property Path : String read FPath write FPath;
  end;
Um das hier elegant zu machen fehlt mir bis jetzt noch der durchblick, was dein Kriterium für die Ordnung sein soll. Gib da mal noch ein paar Infos.

Das Durchsuchen machen dann schon die implementierten Methoden.

gruß oki
  Mit Zitat antworten Zitat
LokutusvB

Registriert seit: 18. Jul 2006
277 Beiträge
 
Delphi XE6 Enterprise
 
#5

Re: Mehrdimensionale Datenstruktur, aber welche?

  Alt 25. Sep 2006, 10:07
Schon mal vielen Dank für die Tips,

Das Hauptkriterium der Suche ist das Datum-Verzeichnis, z.B.

c:\Daten\ Aktuell\ ->20060501\<- XXX\ Datei -> Eintrag 1

Und 2. die zu kopierenden Dateien sind nicht immer im selben Unterordner

-> XXX\
-> XXX\YYY\

Aber das ist nicht weiter dramatisch, im 2. Falle würde dann ein Eintrag in der Liste, wenn ich dich richtig verstehe, einfach länger werden.

Gesucht werden sollen nun z.B. alle Verzeichnisse bzw. Dateien zwischen 2 Datum-Angaben, und diese kopiere ich dann. Das Kopieren klappt schon super, jedoch nur ohne Angabe von Datum von und Datum bis. Und das will ich nun auch noch realisieren.
MFG
LokutusvB
  Mit Zitat antworten Zitat
oki

Registriert seit: 30. Dez 2002
Ort: Brandshagen
1.819 Beiträge
 
Delphi 2007 Professional
 
#6

Re: Mehrdimensionale Datenstruktur, aber welche?

  Alt 25. Sep 2006, 10:23
Hi,

ich glaube wir reden aneinander vorbei. Ich versuche es noch mal von vorne.

1. Was soll in die Datenstruktur eingelesen werden?

Hier stellt sich die Frage, welche Dateien nach welchen Kriterien eingelesen werden sollen.

Bsp.1:
Lese alle Textdateien (*.txt) in der Hirarchie der Verzeichnisse ein. Das heißt, jedes Verzeichnis mit Textdatei ein Listenobject, in welchem sich weitere Listenobjecte als Verzeichnisse oder als Textdatei befinden.

Bsp.2:
Lese alle Textdateien (*.txt) und merke dir alle Verzeichnisse in denen die jeweilige datei steht (Mehrfachvorkommen).

Das ist der erste Schritt, des geklärt werden muß. Danach geht es um die Aktionen, die ausgeführt werden sollen.

gruß oki
  Mit Zitat antworten Zitat
LokutusvB

Registriert seit: 18. Jul 2006
277 Beiträge
 
Delphi XE6 Enterprise
 
#7

Re: Mehrdimensionale Datenstruktur, aber welche?

  Alt 25. Sep 2006, 10:34
Dann nach dem ersten Prinzip.
MFG
LokutusvB
  Mit Zitat antworten Zitat
oki

Registriert seit: 30. Dez 2002
Ort: Brandshagen
1.819 Beiträge
 
Delphi 2007 Professional
 
#8

Re: Mehrdimensionale Datenstruktur, aber welche?

  Alt 25. Sep 2006, 10:51
o.k.,

tut mir leid, wenn ich es etwas umständlich mache.

Nächste Frage:
Müssen wir das alles einlesen, oder können wir uns auch durch die Verzeichnisse ackern und alles sofort erledigen? (Einlesen macht nur Sinn, wenn man das alles noch mal braucht!)

gruß oki
  Mit Zitat antworten Zitat
LokutusvB

Registriert seit: 18. Jul 2006
277 Beiträge
 
Delphi XE6 Enterprise
 
#9

Re: Mehrdimensionale Datenstruktur, aber welche?

  Alt 25. Sep 2006, 11:30
Ich lerne gern dazu

alles sofort durchackern und kopieren geht nur, wenn kein Start- und Enddatum ausgewählt ist. Das mache ich schon.

Und um ganz sicher zu gehen, falls ein Start- und Enddatum gewählt wird, das wirklich alle Dateien der bestimmten Unterordner kopiert werden, möchte ich vor dem Kopieren alle Ordner erfassen, sortieren, Auswahl treffen, Pfade der Auswahl zum Kopieren zurückgeben.

Habe mich schon belehren lassen, das sowas direkt mit TSearchRec total ungenau werden kann, deswegen der Weg mit Einlesen und Auswerten. und da die Datum-Verzeichnisse mittendrinn in der Verzeichniss-Ebene sind, war anfangs für jede Verzeichnissebene ein Feld im Array angedacht.

Eintrag 1: ver1 ver2 ver3 datei
EIntrag 2: ver1 ver2 ver3 ver4 datei
Eintrag 3: ver1 ver2 ver3 datei
usw...

Alles etwas umständlich, ich weiss...
MFG
LokutusvB
  Mit Zitat antworten Zitat
oki

Registriert seit: 30. Dez 2002
Ort: Brandshagen
1.819 Beiträge
 
Delphi 2007 Professional
 
#10

Re: Mehrdimensionale Datenstruktur, aber welche?

  Alt 25. Sep 2006, 11:55
Zitat von LokutusvB:
alles sofort durchackern und kopieren geht nur, wenn kein Start- und Enddatum ausgewählt ist. Das mache ich schon.
wenn du dich schon direkt durchackerst, dann füge doch vor dem Kopieren folgende Funktion ein:
function GetDirctoryDate(Path : String) : TDateTime; Das ist natürlich eine eigenen Funktion, in der du den Phad zerlegst und das darin befindliche Datum extrahiert. Das kannst du dann zur Prüfung nutzen und das kopieren je nach bedarf ausführen.

Wie gesagt, ich will dich nicht von den Listen abbringen, sondern nur checken, ob es nicht einfacher geht.

gruß oki
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 10: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