AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Suchfunktion Ergebnis der Suchanfrage

Ergebnis der Suchanfrage


Datum des Suchindex: Heute, 04:47

Parameter dieser Suchanfrage:

Suche in Thema: Eindeutiger Vergleich für große Dateien gesucht
Suche alle Beiträge, die von "negaH" geschrieben wurden
• Suchmethode: "Suche nach allen Begriffen"
• Nach Datum (firstpost) sortiert
• Zeige Treffer als Beiträge
Zeige 25 von insges. 25 Treffern
Suche benötigte 0.008s

Es liegen Ergebnisse in folgenden Bereichen vor:

  • Forum: Sonstige Fragen zu Delphi

    Re: Eindeutiger Vergleich für große Dateien gesucht

      Delphi
      by negaH, 5. Aug 2005
    @Sharky,

    das würde ich gerne tuen weil du absolut Recht hast, die DP bringt folgende Fehlermeldung



    sollte ich jetzt beim Moderator nachfragen ?

    Gruß Hagen
  • Forum: Sonstige Fragen zu Delphi

    Re: Eindeutiger Vergleich für große Dateien gesucht

      Delphi
      by negaH, 5. Aug 2005
    Nö kann ich eigentlich nicht sagen, oder sie tarnen es einfach besser. In die USA, England, Frankreich, Italien sogar Japan habe ich eigentlich gute und offene Kontakte. Es ist ja nicht so das DEC was besonderes wäre, es ist Freeware und kann frei genutzt werden. Es freut mich nur einfach wenn ich über so eine Arbeit nette Kontakte kennen lerne.

    Die Amerikaner halten sich ziemlich zurück, das...
  • Forum: Sonstige Fragen zu Delphi

    Re: Eindeutiger Vergleich für große Dateien gesucht

      Delphi
      by negaH, 5. Aug 2005
    Du spielst damit auf versteckte Signaturen an ? Falls ja kann ich dich beruhigen, meine Signaturen liegen eher in der Art&Weise wie ich was programmiert habe, zb. in ASM Teilen richte ich Schleifen fast immer an 4 Bytes Grenzen aus und als Opcode-Lückenfüller baue ich dann eine 2 oder 3 Bytes große immer wiederkehrende Signatur ein. Das ist im Source offensichtlich erkennbar, aber auf Grund der...
  • Forum: Sonstige Fragen zu Delphi

    Re: Eindeutiger Vergleich für große Dateien gesucht

      Delphi
      by negaH, 4. Aug 2005
    @FriFra:

    ich kann deine Argumentation sehr wohl verstehen, eben weil ich exakt der Auffassung bin das es vom Set der verschiedenen Dateien abhängt. In meinem Falle gibt es Aufnahmen verschiedener Krankheitsherde im Bitmap Format. Somit sind sehr viele Dateien in gleicher Dateigröße vorhanden da das Bildformat stdandardisiert ist. Es gibt sogar viele Serienaufnahmen der gleichen Wunden und in...
  • Forum: Sonstige Fragen zu Delphi

    Re: Eindeutiger Vergleich für große Dateien gesucht

      Delphi
      by negaH, 4. Aug 2005
    Ja in MD4 wurden Kollisionen entdecket, um exakt zu sein 1 Kollision konnteentdeckt werden. Aber, man benutzte dazu einen modifizierten MD4 Algorithmus der nur 64 Bit Komplexität besaß, der entscheidende Teile des Algorithmus'es (das Wort sieht irgendwie schei.e aus) deaktivert hatte. Diese Vorgehensweise ist durchaus üblich wenn man in rein akademischer Art ein Verfahren analysieren möchte. Nun,...
  • Forum: Sonstige Fragen zu Delphi

    Re: Eindeutiger Vergleich für große Dateien gesucht

      Delphi
      by negaH, 4. Aug 2005
    Nöö kann jeder wissen, SOLLTE jeder gute Programmierer auch aus dem Source erkennen müssen ! Das denoch in sovielen kommerziellen Produkten meine Copyright's auftauchten ist schon ein Wunder, ein Wunder das es soviele "schlechte" Programmierer gibt die einfach 1 zu 1 andere Source, hm raub-kaufen. Immerhin DEC ist zwar Freeware, d.h. aber nicht das man ohne meine Zustimmung DEC einfach mal so...
  • Forum: Sonstige Fragen zu Delphi

    Re: Eindeutiger Vergleich für große Dateien gesucht

      Delphi
      by negaH, 4. Aug 2005
    Nochmal was zur Performance, da es hier um grundsätzliche Verständnissprobleme die unter Programmieren sehr häufig vorkommen geht.

    Mal als Beispiel alles ein bischen idealisert dargestellt.

    Wir gehen mal davon aus das auf einer HD eine Million Dateien gespeichert wurden. Nun sollen alle Duplikate gefunden werden. Alle Dateien zusammen sind 1 Terrabyte groß. Von diesen Dateien sind 10% mit...
  • Forum: Sonstige Fragen zu Delphi

    Re: Eindeutiger Vergleich für große Dateien gesucht

      Delphi
      by negaH, 4. Aug 2005
    Jo in der CRC32 Routine sind einige Bytes mehr in der Lookup Tabelle als nötig wären, das bleibt aber mein Geheimnis ;)



    Vorsicht ! Ich dachte auch erst das MMF's saumäßig überlegen sind, denkste. Das du so große Unterschiede bemerkst, zumindestens wars bei mir so, liegt daran das das OS bei MMF's diese sehr lange im Speicher belässt, selbst wenn man alle Handles geschlossen hat. Der erste...
  • Forum: Sonstige Fragen zu Delphi

    Re: Eindeutiger Vergleich für große Dateien gesucht

      Delphi
      by negaH, 4. Aug 2005
    Das du keinen Untrschied merkst liegt daran das alle anderen nötigen Schritte viel mehr an Rechenzeit benötigen. Würde man aber auf schon geladenen Speicherbereichen MD4 mit MD5 vergleichen soentstünde obige Performance Tabelle.
    Für Prüfsummen erachte ich MD4 als besser, für kryptographische Belange sollte man unbedingt MD5 benutzen, da in MD4 Teilkollisionen konstruiert werden konnten (ergo...
  • Forum: Sonstige Fragen zu Delphi

    Re: Eindeutiger Vergleich für große Dateien gesucht

      Delphi
      by negaH, 4. Aug 2005
    Du meinst den Initialisierungs-Vektor, nehme ich mal an ?

    Das liegt daran ads THash_MD5 die Basisklasse auch für RipeMD ist, und dieser benutzt in den ersten Inits die gleichen Werte. Um mir eine überladene Methode für die verschiedenen abgeleiteten Klassen zu sparen habe ich diesen gleich in die Mutterklasse implementiert. Die überschüssigen Werte werden also für MD5 nicht benutzt.

    Gruß...
  • Forum: Sonstige Fragen zu Delphi

    Re: Eindeutiger Vergleich für große Dateien gesucht

      Delphi
      by negaH, 4. Aug 2005
    Ich kann dir versichern das MD4 garantiert schneller als MD5,SHA1/256,RipeMD ist. Benchmark aus meinem inoffiziellen DEC indem 3 erfahrene Coder alle Hashroutinen per Hand in Assembler optimiert haben:


    THash_MD2 : 261.3 cycles/byte 5.74 Mb/sec
    THash_MD4 : 5.9 cycles/byte 252.53 Mb/sec
    THash_MD5 : 9.0 cycles/byte 167.01 Mb/sec...
  • Forum: Sonstige Fragen zu Delphi

    Re: Eindeutiger Vergleich für große Dateien gesucht

      Delphi
      by negaH, 4. Aug 2005
    das nennt man Loop-Unrolling ;) Der MD4 Code hat wenn ich mich recht errinnere einen Durchsatz von > 250MB/sec. Das ist auch der Grund warum der binäre Dateivergleich mit Hilfe von CompareMem() so langsam ist.

    Gruß Hagen
  • Forum: Sonstige Fragen zu Delphi

    Re: Eindeutiger Vergleich für große Dateien gesucht

      Delphi
      by negaH, 4. Aug 2005
    Ok, ich setze noch einen drauf und habe dir die Unit fertig gecodet. In der letzen zeit hätte ich das Ding schon 2-3 mal selber gebrauchen können.

    @Bigg: was ist an der ASM so lustig ?

    Gruß Hagen
  • Forum: Sonstige Fragen zu Delphi

    Re: Eindeutiger Vergleich für große Dateien gesucht

      Delphi
      by negaH, 4. Aug 2005
    So nachfolgend noch ein Code um einen MD4 über eine Datei zu ziehen.
    Dieses mal sieht die Performance schon anders aus. Es gibt in fact keinen Unterschied mehr zwischen MMF's und normalen Streams, also sollten Streams benutzt werden.
    Allerdings unterscheidet sich die Laufzeit zwischen MD4HashFile1() und CompareFile() enorm. Mit meinen 160Mb großen Testdateien, die noch NICHT im Cache lagen,...
  • Forum: Sonstige Fragen zu Delphi

    Re: Eindeutiger Vergleich für große Dateien gesucht

      Delphi
      by negaH, 4. Aug 2005
    Wenn man es aber genauer betrachtet so sind 140% zu wenig falls man mit Hashs arbeiten wird. Die Wahrscheinlichkeit das nach einer MD4 Hash Überprüfung die Funktion CompareFile() aufgerufen werden muß ist einfach viel zu gering um nicht mit den VCL-Streams zu arbeiten, besondersim Hinblick auf die negativen Seiteneffekte der MMF's wie beim Borland Link oben beschrieben. (kannte ich selber noch...
  • Forum: Sonstige Fragen zu Delphi

    Re: Eindeutiger Vergleich für große Dateien gesucht

      Delphi
      by negaH, 4. Aug 2005
    Jaja, wenn man einfach stupid irgendwas abtippt das ein Fachidiot ohne eigene Tests gepostet hat ;)

    Beachtet bitte die beiden Zeilen die mit 1.) und 2.) makiert wurden.


    function GetFileSizeInt64(const FileName: String): Int64;
    var
    Handle: THandle;
    Data: WIN32_FIND_DATA;
    begin
  • Forum: Sonstige Fragen zu Delphi

    Re: Eindeutiger Vergleich für große Dateien gesucht

      Delphi
      by negaH, 4. Aug 2005
    keine Ahnung ?!

    hast du mal gecheckt

    iff AnsiCompareText(FileName1, FileName2) <> 0 !!!

    eventuell kann es also sein das beide oder eine der Dateien schon geöffnet wurde und du keinen Zugriff mit deinem Zugriffsflags bekommst.

    fmShareDenyWrite
  • Forum: Sonstige Fragen zu Delphi

    Re: Eindeutiger Vergleich für große Dateien gesucht

      Delphi
      by negaH, 3. Aug 2005
    Ziehe mal eine weitere Kopie der doppelten Datei und ändere in dieser Datei möglichst nur 1 Byte exakt in der Mitte der Datei.

    Auch ich meine das 0.2 Sekunden enorm schnell ist, einfach zu schnell.

    Das Result auf Integer zu setzen ist keine gute Idee und lass doch mal alle RaiseLastWin32Error drinnen. Falls nämlich irgendeine API Funktion fehlschlägt so wird eine Exception auftreten und...
  • Forum: Sonstige Fragen zu Delphi

    Re: Eindeutiger Vergleich für große Dateien gesucht

      Delphi
      by negaH, 3. Aug 2005
    Jo 2^32 = 2 hoch 32 = 1 shl 32 =



    const
    Power2of32: Int64 = $100000000;


    Alle 2^32 mit der Konstanten Power2of32 ersetzen, oder besser so:
  • Forum: Sonstige Fragen zu Delphi

    Re: Eindeutiger Vergleich für große Dateien gesucht

      Delphi
      by negaH, 3. Aug 2005
    P1 := MapViewOfFile(MMF1.fFileMap, FILE_MAP_READ, CurPos, CurPos + AllocGran, AllocGran);
    P2 := MapViewOfFile(MMF2.fFileMap, FILE_MAP_READ, CurPos, CurPos + AllocGran, AllocGran);
    if not CompareMem(P1, P2, AllocGran) then Exit;
    Inc(CurPos, AllocGran);


    Ich sehe zwei Fehler

    1.) MapViewOfFile() erwartet den Dateioffset der gemappt werden soll als 2x DWord. Du musst also CurPos als...
  • Forum: Sonstige Fragen zu Delphi

    Re: Eindeutiger Vergleich für große Dateien gesucht

      Delphi
      by negaH, 3. Aug 2005
    GetSystemAllocationGranularity ermittelt also die Basis deiner "Buffergröße". Dein Buffer zb. 64Kb muß also ohne Rest durch GetSystemAllocationGranularity teilbar sein. In diesem Moment wird dwFileOffsetLo/Hi automatisch den geforderten Bedinungen gerecht, denn nach jedem Buffervergleich inkrementierst du ja die Int64-Offsets beider Dateien um die Buffergröße. dwFileOffsetLow = Int64Offset mod...
  • Forum: Sonstige Fragen zu Delphi

    Re: Eindeutiger Vergleich für große Dateien gesucht

      Delphi
      by negaH, 3. Aug 2005
    Na bei .Read() wird die .Position um +SizeOf(Buffer) erhöht.

    Um die MMF's richtig zu nutzen solltest du:

    1.) GetFileSize() in einen Int64 speichern, also alle Zähler auf Int64 umbauen
    2.) MapViewOfFile() muß mit einen (OffsetLo,OffsetHi) = Int64 arbeiten
    3.) MapViewOfFile() sollte bei dwNumberOfBytesToMap mit zb. > 64Kb arbeiten
    4.) die innerste Schleife muß also wiederholt mit...
  • Forum: Sonstige Fragen zu Delphi

    Re: Eindeutiger Vergleich für große Dateien gesucht

      Delphi
      by negaH, 3. Aug 2005
    @DaHead:

    ;) denoch machst du den Vergleich sehr umständlich !


    if FSFile1.Size = FSFile2.Size then
    begin
    while FSFile1.Position < FSFile1.Size do
    begin
    L1 := FSFile1.Read(B1, BlockSize);
  • Forum: Sonstige Fragen zu Delphi

    Re: Eindeutiger Vergleich für große Dateien gesucht

      Delphi
      by negaH, 3. Aug 2005
    @dahead:



    Du benutzt noch Filestreams ?
    Suche mal nach "Memmory Mapped Files" und benutze diese neuere Technik des OS.
    FileStreams sind schön und gut haben aber den Nachteil das sie auf eienr "älteren" Schnittstelle zum Datenträger basieren. Ich habe mit MMF's die ich readonly und in partitionen erzeuge bessere Performance erzielt.
  • Forum: Sonstige Fragen zu Delphi

    Re: Eindeutiger Vergleich für große Dateien gesucht

      Delphi
      by negaH, 2. Aug 2005
    Es wurde ja schon alles relevante gesagt, aber trotzdem mal in komprimierter Form

    1.) mit Hash's ermittelt man ob zwei gehashte Dateien gleich sein könnten, zu 100% sicher kann man sich aber erst sein wenn man sie binär Bit für Bit vergleicht

    2.) da man also im Worstcase Bit für Bit zwei Dateien vergleichen muß wäre es dumpfsinnig NICHT die Dateigrößen auf Gleichheit als Indiz zu benutzen....


URL zu dieser Suchanfrage:

https://www.delphipraxis.net/dp_search.php?do=usersearch&search_username=negaH&search_exact_username=1&search_sortby=dateline&search_resulttype=post&search_matchmode=0&searchthreadid=50896
Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:58 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