AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Algorithmen, Datenstrukturen und Klassendesign Delphi Konzeptfrage: Datenhaltung vieler Datei-Infos und deren Darstellg mit schneller Suche
Thema durchsuchen
Ansicht
Themen-Optionen

Konzeptfrage: Datenhaltung vieler Datei-Infos und deren Darstellg mit schneller Suche

Ein Thema von juergen · begonnen am 4. Jul 2015 · letzter Beitrag vom 12. Jul 2015
Antwort Antwort
Seite 1 von 4  1 23     Letzte »    
Benutzerbild von juergen
juergen

Registriert seit: 10. Jan 2005
Ort: Bönen
1.175 Beiträge
 
Delphi 11 Alexandria
 
#1

Konzeptfrage: Datenhaltung vieler Datei-Infos und deren Darstellg mit schneller Suche

  Alt 4. Jul 2015, 17:27
Hallo zusammen,
dieser Thread ist aus diesem entstandehttp://www.delphipraxis.net/1307584-post1.htmln:

Da ich nun motiviert bin ein altes Programm neu hochzuziehen, möchte ich jetzt auch "auf das richtige Pferd" setzen.

Voraussetzungen: Delphi XE, ich habe das Quantumgrid und für DB-Zugriffe den Vorgänger vom FireDAC (AnyDAC).
Da ich diese Komponenten schon etwas kenne, würde ich diese auch am liebsten nutzen wollen, den VT eher nicht (momentan zu kompliziert für mich, da ich noch nie damit gearbeitet habe).

Mein momentan überlegtes Konzept:
Welche Daten benötige ich überhaupt? => Dateipfad, Dateiname, Änderungsdatum, evtl. Erstelldatum, Dateigröße. Weiterhin in einem separaten Thread einige MP3- und Exif-Infos auslesen.
Mein momentaner Plan: Ich sauge mir das Ganze in eine SQLite-DB!??? Mehrplatzfähigkeit wird nicht benötigt.

Was wichtig ist:
Performante Datei-Suche. Es gilt oft ca. 500.000 Datensätze nach Dateinamen zu durchsuchen und zu filtern. Das Ganze muss unter 1 s ablaufen.
Da weiß ich nicht ob die o.g. Komponenten das überhaupt her geben.
Weiterhin ist wichtig, dass das Ganze in irgendeiner Form abgespeichert werden kann. Das Programm soll beim Neustart alle zuvor eingelesen Datei-Infos anzeigen und nicht neu einlesen müssen.

Meine Fragen:
1. Welche Erfahrungen habt ihr in diesem Bereich und welche Empfehlungen resultiert daraus?
2. Welches Konzept würdet Ihr anwenden? Datenhaltung= DB?, Anzeige= Quantumgrid?
3. Ist eine Datenbank das Mittel der Wahl? (performant genug?) Evtl. TObjectList?
4. Verwendung welcher Komponenten?

Vielen Dank schon mal vorab!
Jürgen
Indes sie forschten, röntgten, filmten, funkten, entstand von selbst die köstlichste Erfindung: der Umweg als die kürzeste Verbindung zwischen zwei Punkten. (Erich Kästner)
  Mit Zitat antworten Zitat
idefix2

Registriert seit: 17. Mär 2010
Ort: Wien
1.027 Beiträge
 
RAD-Studio 2009 Pro
 
#2

AW: Konzeptfrage: Datenhaltung vieler Datei-Infos und deren Darstellg mit schneller S

  Alt 4. Jul 2015, 17:53
Aus deinem Beitrag ist mir nicht wirklich klar geworden, was du überhaupt genau machen willst.
  Mit Zitat antworten Zitat
Popov
(Gast)

n/a Beiträge
 
#3

AW: Konzeptfrage: Datenhaltung vieler Datei-Infos und deren Darstellg mit schneller S

  Alt 4. Jul 2015, 18:09
Ich weiß zwar auch nicht was du speicherst (liest sich nach Daten, MP3, usw.). Wenn ich die Dateninformationen eines Verzeichnisses einlese, dann speichere ich alle Informationen zu einer Datei einfach als TSearchRec. Einfache geht es nicht und alle Daten sind später bei Hand.

TSearchRec in DB ablegen ist allerdings schwieriger. Trotzdem würde ich alles sichern.
  Mit Zitat antworten Zitat
Benutzerbild von juergen
juergen

Registriert seit: 10. Jan 2005
Ort: Bönen
1.175 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Konzeptfrage: Datenhaltung vieler Datei-Infos und deren Darstellg mit schneller S

  Alt 4. Jul 2015, 18:47
sorry, wenn ich mich nicht richtig ausgedrückt habe...
Ich lese die Dateiinformationen erst einmal über TSearchRec.... ein.Danach die MP3- und Exif-Infos.
Die Frage ist in erster Linie wo ich die relativ große Menge der Dateiinformationen speichere (DB,TObjectList ????), so das auch eine Suche sehr schnell ist. Weiterhin was ich zur Darstellung der reinen Dateinamen verwende (Quantumgrid, ...???), bzw. alternative Konzepte
Jürgen
Indes sie forschten, röntgten, filmten, funkten, entstand von selbst die köstlichste Erfindung: der Umweg als die kürzeste Verbindung zwischen zwei Punkten. (Erich Kästner)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#5

AW: Konzeptfrage: Datenhaltung vieler Datei-Infos und deren Darstellg mit schneller S

  Alt 4. Jul 2015, 18:57
Ich denke, eine Datenbank kann nicht verkehrt sein. Wenn man dann noch entsprechende Indizes anlegt, sollte auch die Performance zufriedenstellend sein. Wie man die Daten darstellt, ist Geschmackssache.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Popov
(Gast)

n/a Beiträge
 
#6

AW: Konzeptfrage: Datenhaltung vieler Datei-Infos und deren Darstellg mit schneller S

  Alt 4. Jul 2015, 19:08
Wie ich schon oben meinte, wenn es nur Suche sein soll, also DB kein Muss ist, würde ich es in einer Liste speichern. Egal welche es am Ende auch ist, ob Array oder TObjectList. Allerdings kann ich dir aus meiner Erfahrung sagen, dass TObjectList schnell genug ist. Ich hab letztens hier irgendwo ein kleines Beispiel mit TObjectList veröffentlicht, bei dem ich 100.000 Daten in etwa 14ms sortiert habe.

Und wie gesagt, ich würde aus TSearchRec nicht nur einzelne Informationen einlesen, sondern einfach alles kopieren. TSearchRec ist nur ein Record, mehr nicht. Man hat also gleich alles bei Hand.
  Mit Zitat antworten Zitat
mm1256

Registriert seit: 10. Feb 2014
Ort: Wackersdorf, Bayern
642 Beiträge
 
Delphi 10.1 Berlin Professional
 
#7

AW: Konzeptfrage: Datenhaltung vieler Datei-Infos und deren Darstellg mit schneller S

  Alt 4. Jul 2015, 20:49
TSearchRec ist zum Speichern schon sehr effizient, keine Frage. Aber wenn du dann bei der Suche...
Zitat:
Es gilt oft ca. 500.000 Datensätze nach Dateinamen zu durchsuchen und zu filtern. Das Ganze muss unter 1 s ablaufen.
...die TSearchRec's wieder aufdröseln musst, gibt's die A-Karte gratis
Gruss Otto PS: Sorry wenn ich manchmal banale Fragen stelle. Ich bin Hobby-Programmierer und nicht zu faul die SuFu zu benutzen

Geändert von mm1256 ( 4. Jul 2015 um 20:49 Uhr) Grund: Rechtschreibfehler
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#8

AW: Konzeptfrage: Datenhaltung vieler Datei-Infos und deren Darstellg mit schneller S

  Alt 4. Jul 2015, 21:01
Zitat:
Wie ich schon oben meinte, wenn es nur Suche sein soll, also DB kein Muss ist, würde ich es in einer Liste speichern. Egal welche es am Ende auch ist, ob Array oder TObjectList. Allerdings kann ich dir aus meiner Erfahrung sagen, dass TObjectList schnell genug ist.
Wenn es nur um diese Suche geht, kann man ganz auf die Speicherung in einer Liste o.ä. sparen, da man ja sowie so die Verzeichnisse durchsuchen muss. Sollen die Informationen persistent erhalten werden, muss man diese ja wieder irgendwie ablegen, wenn man nicht bei jedem Programmstart sen "index" neu anlegn lassen will. Ich würde die Infos gleich in einer datenbnk ablegen.
Markus Kinzler
  Mit Zitat antworten Zitat
Dejan Vu
(Gast)

n/a Beiträge
 
#9

AW: Konzeptfrage: Datenhaltung vieler Datei-Infos und deren Darstellg mit schneller S

  Alt 5. Jul 2015, 11:38
Deine Idee mit einer kleinen DB war schon mal nicht falsch bzw. der naheliegende Weg.

Erstelle Dir zunächst die Tabellenstruktur(en) zum Speichern der Daten in der DB. Das geht einher mit den Recherchemöglichkeiten, die Du deinem System spendieren möchtest.

Anschließend erzeugst Du die Queries, um deine Fragen zu beantworten.

Dann importierst Du die Daten und prüfst, ob deine Queries zum gewünschten Ergebnis in der gewünschten Zeit kommen.

Du änderst ggf. das Design so, das deine Performancevorgaben erfüllt werden.

Und zum Schluß die UI.
  Mit Zitat antworten Zitat
Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.343 Beiträge
 
Delphi 11 Alexandria
 
#10

AW: Konzeptfrage: Datenhaltung vieler Datei-Infos und deren Darstellg mit schneller S

  Alt 5. Jul 2015, 12:11
Die Ordnerstruktur ist ja letztlich auch eine Datenbank.
Unter VisualStudio kann man wohl auch per SqlServer direkt auf die Ordnerstruktur zugreifen. Genaueres kann ich dazu aber jetzt nicht sagen.

Welche Suchfunktionen Delphi in Ordnern ermöglicht, kann ich auch nicht sagen.

Eine Datenbank zu verwenden und diese zum Suchen zu verwenden ist sicher kein schlechter Weg.
Ein paar passende Indizes würde eine schnelle Suche ermöglichen.

Das Problem wird die Synchronisation sein. Wenn Du Dein Projekt startest und zum letzten Lauf hat sich etwas an in den Ordnern geändert müsste ja die Datenbank erst mal aktualisiert werden. Gleiches, wenn sich während der Laufzeit etwas in den Ordnern ändert.

Im Grunde hast Du einen redundanten Datenbestand.

Insofern wäre es vielleicht besser, die Ordner direkt nach Treffern zu durchsuchen und diese zur Anzeige in einer Liste zu sammeln.
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 4  1 23     Letzte »    


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