Delphi-PRAXiS
Seite 4 von 5   « Erste     234 5      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Software-Projekte der Mitglieder (https://www.delphipraxis.net/26-software-projekte-der-mitglieder/)
-   -   SearchSameFiles v2.0 (SSF) (https://www.delphipraxis.net/51701-searchsamefiles-v2-0-ssf.html)

himitsu 31. Mär 2007 15:25

Re: SearchSameFiles v2.0
 
Liste der Anhänge anzeigen (Anzahl: 1)
So, nochmal ^^

Ich hoffe die "Beschreibung" in der RTF is verständlich.


Bitte mal die EXE testen, hab da vorallem den TopHash gegen BackHash getauscht.

Also forher wurde der 2. Teilhash ab Dateianfang gebildet und nun am Dateiende.
Ich denk zwar daß es dort keine Probleme gibt, aber da ich ja nur in ganzen Sektoren (wegen NonCached) lese, gäbe es Probleme, wenn da nicht an Sektorgrenzen angefangen wird, also wenn da meine Berechnung Länge/Startpos fehlerhaft wäre, würde es nicht funktionieren ._.


Wenn's klappt, dann sollte da noch ein bissl/viel Geschwindigkeitssteigerung herauskommen,
vorallem bei Datei, wo nur das Dateiende verändert wurde ... wie z.B. die ID3-Tags bei Mediadateien.


Sobald ich das Popupmenü fertig überarbeitet hab, kommt's dann wieder als offizielle Version, mit QuellCode raus.

[edit 04.08.09] anhang entfernt

turboPASCAL 31. Mär 2007 20:12

Re: SearchSameFiles v2.0
 
Upps, nach einem Stop kam das:

Delphi-Quellcode:
---------------------------
   | SearchSameFiles
---------------------------
Zugriffsverletzung bei Adresse 004C0FD0 in Modul 'SearchSameFiles2.exe'. Lesen von Adresse FFFFFFFE.
---------------------------
OK  
---------------------------
:gruebel:

himitsu 2. Apr 2007 10:53

Re: SearchSameFiles v2.0
 
Wo kam dat denn her? :shock:

Nur einmal, oder reproduzierbar?


hmmm, FFFFFFFE klingt nach -2, aber dat kann eigentlich nich sein :grübel:

himitsu 5. Apr 2007 18:56

Re: SearchSameFiles v2.0
 
So, hatte jetzt per Zufall auch mal soeine Fehlermeldung bekommen,
allerdings (reproduzierbar) immer nur dann, wenn ein selektierter Eintrag gelöscht wurde.

Hab dann ewig gesucht und dann durch Zufall rausbekommen, daß die ListView versuchte den Eintrag wärend des löschens (als die davon Selektion entfernt wurde) neu zeichnete und ich vorher schon die Daten im Item freigegeben hatte, welche ja für's Neuzeichnen nötig waren.
(bin da fast verrückt geworden, bei der Suche :wall: )


@turboPASCAL: bist du sicher, das es beim Stop war?
weil da ist ja eigentlich die Liste noch leer und das Zeichenproblem dürfte da nicht auftauchen.
Oder hast zumindestens den Fehler nochmals gefunden?


So, dann ist mir jetzt aufgefallen, daß ich beim ganzen Umgebaue die Löschroutine vergessen hatte, so daß da zu 99% nicht gelöscht wurde.
(Naja, zumindestens wurde nicht was Falsches gelöscht)


Das Unterstreichproblem wärend der Suche überseh ich nun einfach (wäre ein zugroßer aufwand da was gegen zu unternehmen ... und das nur wegen den paar "unbedeutenden" Strichen :roll:

Ansonsten hab ich nun auch nochmals angefangen in dem PopupMenü weiterzumachen und alles zu kontrolieren.
(die Einträge ohne * sollten also funktionieren)

Außerdem gab's 'ne Überarbeitung beim LinkCode ... also da wo die angeklickten Links aufgerufen werden.
> wenn alles klappt, dann sollten die wögliches in einem neuen Browserfenster aufgehn und das jeweils im Standardbrowser ... wär schön, wenn das mal ein paar cht-IE-Nutzer mit prüfen könnten.


Der HTML-Export müßte nun auch funktionieren.
> die letzen Fehler bei der UTF-8/HTML-Codierung wurden behoben (die Dateinamen sind ja als Unicode vorhanden)
> und die Datei W3C-konform ausgelegt

Bei dem BinärImport werden ältere Dateien nicht mehr unterstützt, da sich Dateiversion geändert hatte ... aufgrund 'ner kleinen Änderung im Format.

[edit 04.08.09] anhang entfernt

himitsu 31. Jul 2009 09:45

Re: SearchSameFiles v2.0
 
Liste der Anhänge anzeigen (Anzahl: 1)
OK, hab es nun endlich soweit...
bin jetzt bei Version 3 angelangt, da alles komplett von Grund auf neu geschrieben wurde. :nerd:

Aktuell funktioniert aber nur der Such-&Vergleichalgo und eine erste Variante der Anzeige.
Mir geht es aber zu diesem Stadium auch erstmal nur darum, daß der innere Teil (Suchen und Vergleichen) und der Refresh der Anzeige läuft.
- eine besser Anzeige und die Bearbeitung des Suchergebnisses kommen noch.

Es wird im Programmverzeichnis eine XML mit den Einstellungen gespeichert (der Auswahldialog für das Speicherverzeichnis ist noch nicht aktiv)


so, aber nun zum Programm selber:
  • es wird jetzt in mehreren (4) Schritten gesucht, was es nun endlich ermöglicht restliche die Laufzeit besser einzuschätzen
    - also bei Suchen wird das aktuelle Verzeichnis gezeigt ... aber es geht recht schnell
    - und bei Durchgang 1 bis 3 wird für den Druchgang eine relativ genaue Prozentanzeige geliefert (siehe Statusleiste)
    - und Durchgang 4 (der endgültige Vergleich) kann abgebrochen werden, aber dann liegt nur eine grobe Vergleichsliste vor ... dort können noch ein paar False-True-Meldungen enthalten sein, also Dateien, welche als Gleich gelistet werden, es aber nicht sind
  • es gibt nun auch einen reinen Hashvergleich (MD5)
    und den bekannten direkten und 100%-genauen byteweisen Vergleich.
  • die Dateiliste kann schon wärend der Suche angesehn werden, da die aktuellen Suchergebnise von der Searchengine regelmäig in den TreeView geladen werden.
  • ja und die Anzeige wurde etwas (hoffentlich) übersichtlicher gestaltet
    - nun sind nicht mehr alle Einträge in eine einfachen Liste hintereinander,
    sondern können auch direkt über den Verzeichnispaum parallel betrachtet werden
    - ebenso ist per Doppelklick in die 2 Listen ein Wechsel zum Ort der entsprechenden Datei in der anderen Liste möglich
  • es gibt auch mehrere Arten der Ansicht
    - kompletter Baum mit allen Dateien (auch die "Ungleichen")
    - Verzeichnisbaum mit den "Duplikaten" und nötigen Verzeichnissen
    - Liste aller Duplikate
    - Liste des jeweils ersten Duplikates ... die anderen Duplikate sind ja in der 2. Liste auch sichtbar
    - Liste der Dateien mit Zugriffsproblemen
  • und ich speichere jetzt auch die Fehlercodes, so daß man nun sehn kann, warum auf eine Datei nicht zugegriffen werden konnte
  • beim Klick auf [stop] oder wenn der PC hoffentlich auch, wenn es z.B. in den Standby fährt, schaltet das Programm in einen Pausemodus
  • ja und einfach nicht über den Fenstertitel wundern ... des ist nur 'ne Debug-Statusanzeige für mich :stupid:
  • !!! selbst wenn "ohne WindowsFileCache" nicht auswählt ist, werden dennoch "etwas" intelligent geregelt vorallem größere Dateien dennoch nicht durch die Cache gejagt ... der Schalter stellt nur um, daß alle Dateien nicht mehr da durchgezwängt werden sollen

ja und ich hoffe/denke mal es läuft mindestens ab Win2K

Ansonsten sollte immernoch recht flott verglichen werden :angel:
> z.B. 320 GB in 13.000 Dateien > 450 MB in 460 Dateien doppelt/mehrfach vorhanden > in 3 Minuten auf einer USB-Festplatte
> die alte Version brauchte für knapp 300.000 Dateien á 900 GB etwa 6 Stunden und ich glaub die aktuelle Version war schneller, obwohl ich sie etwas langsamer vermutet hätte ... liegt wohl an der inteligenteren Cache-Verwaltung

[add 11:30] Anhänge getauscht ... irgendwie scheint der Kompiler manchmal die StackGröße von fast 2 MB nicht zu verwenden/zu ignorieren und es kommt zu einem Stacküberlauf ... hab die Lesepuffer also mal umgelagert und laß die 1 MB vom Standard :stupid:
[add 12:00] bei der letzen Optimierung einer Funktion ging wohl was schief :wall:
man konnte den Pausemodus nur noch abbrechen, aber nicht mehr fortsetzen
[edit 01.08. 0:05] Anhänge ersetzt ... siehe nächster Post
[edit 01.08. 20°°] siehe Post #39 [edit] Post #39 kommt später ... ich änder noch schnell etwas
[edit 04.08. 12:20] neue Testversion > siehe Post #39
[edit 04.08. 13:30] kleinen Fehler im Pausemodus des Threads behoben ... man konnte den Thread nun nichtmehr abbrechen
[edit 04.08. 14:00] Synchronisierung Datenbäumchen <> TreeView geändert
[edit] es gibt jetzt nur nich die gezippte EXE ... doppteltest Hochladen ist bei dem UMTS etwas nervig
[edit 07.08. 9:30] neue Version, siehe #42
[edit 28.08. 15:30] neue Version, siehe #43
[edit 28.08. 19:00] Fehlerbehebung, siehe #44

himitsu 31. Jul 2009 23:20

Re: SearchSameFiles v2.0
 
Liste der Anhänge anzeigen (Anzahl: 1)
anscheinend scheint es zu laufen?
s' hat sich zumindestens noch keiner beschwert :angel2:
  • kleinere Änderungen ... zu unbedeutend, um sie zu erwähnen,
    aber dennoch im Post #36 neue Versionen hochgeladen
  • mit Icons sieht's jetzt hübscher aus
    wie in der neuen und nie veröffentlichten v2.1 werd' ich aber keine Dateispezifischen Icons mehr anzeigen ... die kleine Satz für alle Dateien gleiche Standardicons muß reichen
  • wie man sieht, ist der schnellere Vergleich via MD5 nicht immer schneller :angel2:
    (siehe Anhang)

    nach nur 27 Minuten war ein erster Überblick über ~240.000 Dateien á 970 GB verfügbar
    und nach knapp 2 Stunden war dann alles genau verglichen

    man beachte aber, das bei mir
    a) sehr viele Dateien gleich sind
    b) und nicht grad wenige fast ähnlich (unterscheiden sich nur in wenigen defekten Sektoren)
    c) das eines der Laufwerke ist ein etwas langsameres USB-Plättchen
    also d) würde es bei Vielen, mit einer ähnlichen Datenmenge, vermutlich nicht so lange dauern, da efekiv weniger Daten verglichen werden ... siehe oben rechts > Zeit und tatsächlicher Datendurchsatz :angel2:
  • als nächstes kommt die Behandlung der Checkboxen
    (das der VTV ja nur teilweise geladen wird, muß/will ich ja den Status der Boxen im Vergleichsbaum speichern und da verwalten ... bzw. den Markierungsstatus vom Baum in der Box darstellen),
    ein Popupmenü mit ein/zwei funktionen
    und ein bissl was mit dem Header der TreeView kommt auch noch

toms 1. Aug 2009 07:53

Re: SearchSameFiles v2.0
 
Ich verstehe nicht ganz, wozu die rechte Listview ist? Wie kommen Daten dort rein, damit man doppelte Dateien via "delete selected" löschen kann?

himitsu 1. Aug 2009 08:14

Re: SearchSameFiles v2.0
 
Liste der Anhänge anzeigen (Anzahl: 2)
Dort sind praktisch die Duplikate aufgelistet, welche zur links markierten Datei gehören.
[add] ich werd' aber mal mal einen Dummyeintrag ala "keine Datei selektiert" bzw. "keine Duplikate vorhanden" dort reinmachen, wenn die Liste leer ist.[/add]

Im linken Baum/Liste werden entweder alle Duplikate "full dup list", nur das jeweils erste Dupplikat "dup list", alle Duplikate im Verzeichnisbum "dup tree", alle Dateien "full tree" (hier sieht man über die Icons was mehrfach vorkommt und wo sich was versteckt) oder die Dateien mit Zugriffsproblemen.

Das mit dem Löschen selbst ist aber noch nicht drin - das bau ich gleich mit ein, aber darum ist der Button auch noch deaktiviert.
Wie gesagt, ich mach grad alles von Grund auf neu und das dauert ein Weilchen.

Aber du hast mich eben auf 'ne Idee gebracht ... 'ne Ansicht, wo man mal nur die Markierten sieht, wäre bestimmt nicht schlecht. :stupid:

Und durch 'nen Doppelklick auf einen Namen da rechts kannst man dann auch links in der Liste zu der Datei springen
und wenn ich die Verwaltung der CheckBoxen fertig hab, dann kann man auch endlich links oder rechts die Auswahl ändern, welche dann auch beachtet wird (aktuell tut der TreeView nur so als ob)

[add]
in der alten Version gab es nur diese Ansicht (siehe Bild 2), aber jetzt versuch mal,
obwohl man es zu einem gewissen Grad sortieren lassen konnte (leider nur nach dem ersten Eintag der Dupplicate),
rauszubekommen wie es sonst noch in diesem Verzeichnis aussieht ... nahezu unmöglich :wall:

himitsu 4. Aug 2009 11:31

Re: SearchSameFiles v2.0 (SSF)
 
mal einige Testanfragen:
  • wie läßt sich der Speicherdialog für die Programmoptionen bediehen?
    > siehe http://www.delphipraxis.net/internal...064535#1064535
    > er kann jetzt auch Pfeiltasten, Scrollrad und per Doppelklick auf einen Button eine Direktwahl
  • und das Wichtigste:
    irgendwie hab ich ein Leck/Schleife? :gruebel:
    vorallem wenn man schnell zwischen Pause und Resume umstellt, bleibt der Suchthread anscheinend im Pausemodus hängen
    > Stop ist aber noch möglich ... nur Resume nicht mehr (leider ist das mit dem Debuggen etwas schwer, da der Fehler sich nicht zuverlässig reproduzieren läßt)

    wenn man z.B. schnell und oft [stop] und dann [nein] wählt,
    also auf [stop] drücken, dann [nein] wählen und das öfters hintereinander (oder abwechselnd S und N dücken)

    kann noch jemand diesen Fehler reproduzieren?
  • wenn der PC in in den StandBy oder Ruhezustand wechselt, sollte sich das Programm automatisch in den Pausemodus versetzen und beim Runterfahren natürlich abschalten.
    beim Ruhezustand und Standby weiß ich aber noch nicht, ob es recht zuverlässig funktioniert (vorallem in Vista und Seven kommt ja die nötige Message nicht immer im Programm an :? )
  • das Popupmenü in den Trees ist jetzt drin, aber noch Vieles ist deaktivert,
    dennoch sollte sich dort zumindestens nun der Speicherpfad ändern lassen
  • im rechten Tree für die Duplikate wird jetzt ein Hinweis angezeigt ... ich hoffe es ist so verständlicher, wofür diese Liste gut sein soll
  • außerdem wurde die SearchEngine überarbeitet und sollte nun nochmal etwas flotter arbeiten
  • Testversionen in Post #35

MagicAndre1981 4. Aug 2009 12:58

Re: SearchSameFiles v2.0 (SSF)
 
Hi,

dein Programm hat ein Problem ab NT6.x .Da sind die Dateien im WinSxS Ordner gespeichert und als Hardlinks in die Zielordner (C:\Windows;C:\Programme etc) gemappt, somit sind die Dateien nicht doppelt, obwohl dein Programm sie als doppelt auflistet. Du musst also noch ne Prüfung einbauen ob es Hardlinks sind oder nicht.


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:08 Uhr.
Seite 4 von 5   « Erste     234 5      

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz