AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Viele Dateien suchen und Informationen abgleichen
Thema durchsuchen
Ansicht
Themen-Optionen

Viele Dateien suchen und Informationen abgleichen

Ein Thema von Dragon27 · begonnen am 29. Mär 2009 · letzter Beitrag vom 29. Mär 2009
Antwort Antwort
Dragon27

Registriert seit: 20. Nov 2003
Ort: Aßling
543 Beiträge
 
Delphi XE6 Enterprise
 
#1

Viele Dateien suchen und Informationen abgleichen

  Alt 29. Mär 2009, 10:40
Hallo zusammen,

ich habe das Problem, dass ich sehr viele Dateien (ca. 15.000) auf der Festplatte suchen muss (gleicher Typ) und dann diese
mit einer Datenbank abgleichen muss.

Nun habe ich hier im Forum diese Procedure zum suchen verwendet und die Dateien dann gleich in ein Stringgrid geschrieben, danach
habe ich die Informationen im Stringgrid mit der DB abgeglichen (XML).

Nur leider ist das ganze sehr langsam. Also für 14.000 Dateien habe ich rund 30 Min. gebraucht und zum Ende hin ist das Einlesen und Vergleichen dann
immer langsamer geworden.


Ich habe mir nun überlegt, einen Record zu machen und diesen als Array zu deklarieren, dass ich vielleicht Zeit spare wegen dem Stringgrid. Bin mir aber da nicht sicher ob das viel ausmacht.

Könnt Ihr mir einen Verbesserungsvorschlag geben?

Danke!
Delphi is ......... DELPHI!!
  Mit Zitat antworten Zitat
Benutzerbild von juergen
juergen

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

Re: Viele Dateien suchen und Informationen abgleichen

  Alt 29. Mär 2009, 11:00
Hallo Dragon27,

die Frage ist:
Benötigst du überhaupt eine visuelle Komponente?

Ich würde das Ganze in eine TStringList oder ggf. in TObjectList laden.
Ggf. diese vor deiner Compare-Methode zur DB noch sortieren.
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
mjustin

Registriert seit: 14. Apr 2008
3.004 Beiträge
 
Delphi 2009 Professional
 
#3

Re: Viele Dateien suchen und Informationen abgleichen

  Alt 29. Mär 2009, 11:07
Zitat von Dragon27:
Ich habe mir nun überlegt, einen Record zu machen und diesen als Array zu deklarieren, dass ich vielleicht Zeit spare wegen dem Stringgrid. Bin mir aber da nicht sicher ob das viel ausmacht.
Wenn die Stringverarbeitung wirklich der Engpass ist (und nicht die DB oder XML Verarbeitung), ist ein TStringBuilder eventuell der schnellste Datentyp für das Einlesen.

http://stackoverflow.com/questions/686413/

http://www.monien.net/blog/index.php...stringbuilder/

Den Text aus dem StringBuilder könnte man dem StringGrid zuweisen (wobei die Zeilen im StringBuilder jeweils ein Zeilenendezeichen haben müssen, sonst stehen die 15K Dateinamen in einer Zeile).
Michael Justin
habarisoft.com
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.116 Beiträge
 
Delphi 12 Athens
 
#4

Re: Viele Dateien suchen und Informationen abgleichen

  Alt 29. Mär 2009, 13:14
XML selber ist auch nicht immer schnell (MSXML ist bei mir sehr langsam )

Und was das suchen angeht ... zwei Mal ~30.000 Dateien suchen, in eine gemeinsame Liste eintragen (bei mir je auf USB-Stick und Festplatte geht hier in weniger als einer Minute)

wenn dir FindAllFiles (in Verbindung mit TStringList) zu langsam ist, dann such selber und nutze eine bessere Liste.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: Viele Dateien suchen und Informationen abgleichen

  Alt 29. Mär 2009, 13:27
Moin Dragon,

Zitat von Dragon27:
... und zum Ende hin ist das Einlesen und Vergleichen dann
immer langsamer geworden.
hast Du dabei mal den Speicherverbrauch kontrolliert?

Das klingt für mich so, als würden immer mehr Objekte angelegt, gefüllt, verarbeitet, aber nicht wieder freigegeben.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  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 04: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