UDF: Inhaltlicher Vergleichen zweier Dateien

  • Hey Leute,
    darf ich euch meine erste UDF präsentieren...

    [autoit]

    _FileContentCheck($hFile1,$hFile2)

    [/autoit]


    Diese Funktion stellt einen Vergleich zwischen den zwei Inhalten von zwei Dateien dar.
    Rückgabewerte:
    0 - Dateien ihnhaltlich ungleich
    1 - Dateien inhaltlich gleich
    2 - Datei 1 nicht gefunden/verfügbar
    3 - Datei 2 nicht gefunden/verfügbar
    4 - Datei 1 und Datei 2 nicht gefunden oder verfügbar

    Bsp.:

    [autoit]

    $msg = _FileContentCheck( @ScriptDir&"\passwort.txt" , @ScriptDir&"\passwort.txt")
    MsgBox(0,"rückgabewert",$msg)

    [/autoit]

    Probierts einfach mal aus, pber ein Feedback würd ich mich freuen(:


    SKRIPT:

    Spoiler anzeigen
    [autoit]

    Func _FileContentCheck($hFile1,$hFile2)
    ;========================================================================================================================
    ; Function Name: _FileContentCheck()
    ; Description:: Vergleicht zwei Dateien inhaltlich.
    ; Parameter(s):
    ; $hFile1 :Pfad zur Datei1
    ; $hFile1 :Pfad zur Datei2
    ;
    ; Return Value(s): Dateien ungleich 0
    ; Dateien inhaltlich gleich 1
    ; Datei1 nicht verfügbar/gefunden 2
    ; Datei2 nicht verfügbar/gefunden 3
    ; Datei1 und Datei2 nicht verfügbar/gefunden 4

    [/autoit] [autoit][/autoit] [autoit]

    ; Author: Timo Grams
    ;=========================================================================================================================
    local $iData1 = "X"
    local $iData2 = "Y"

    [/autoit] [autoit][/autoit] [autoit]

    if FileExists($hFile1) then
    local $ifile1 = FileOpen($hFile1,16)
    local $iData1 = FileRead($ifile1)
    FileClose($ifile1)
    Else
    if FileExists($hFile2) then
    return(2)
    Else
    return(4)
    EndIf
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    if FileExists($hFile2) then
    local $ifile2 = FileOpen($hFile2,16)
    local $iData2 = FileRead($ifile2)
    FileClose($ifile2)
    Else
    if FileExists($hFile1) then
    return(3)
    Else
    return(4)
    EndIf
    EndIf

    if $iData1 = $iData2 then
    return (1)
    Else
    return(0)
    EndIf

    if not FileExists($hFile1) and not FileExists($hFile2) then return(4)

    EndFunc

    [/autoit]

    Einmal editiert, zuletzt von TimoIt (7. September 2011 um 14:26)

  • Naja, wirklich vergleichen tut es die Inhalte nicht, es sagt ja nur ob es der gleiche Inhalt ist und es wird nichtmal Case Sensitive geprüft. Außerdem:

    [autoit]

    StringCompare ()

    [/autoit]


    Macht eig. das gleiche nur mit Strings ;)

    mfg BB

    "IF YOU'RE GOING TO KILL IT
    OPEN SOURCE IT!"

    by Phillip Torrone

    Zitat von Shoutbox

    [Heute, 11:16] Andy: ....böseböseböseböse....da erinnere ich mich daran, dass man den Puschelschwanz eines KaRnickels auch "Blume" nennt....ob da eins zum anderen passt? :rofl: :rofl: :rofl: :rofl:

    https://autoit.de/index.php?page…leIt#post251138

    Neon Snake

  • _Crypt_HashData und die Hash vergleichen und schon weißt ob die Dateien gleich sind.

    Andy hat mir ein Schnitzel gebacken aber da war ein Raupi drauf und bevor Oscar das Bugfixen konnte kam Alina und gab mir ein AspirinJunkie.