1. Dashboard
  2. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  3. Forenregeln
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. AutoIt.de - Das deutschsprachige Forum.
  2. Mitglieder
  3. MrOuzo

Beiträge von MrOuzo

  • File/Bytepatcher (suchen und ersetzen mit Patternmaske)

    • MrOuzo
    • 28. Januar 2015 um 20:04

    Hi WhiteLion,

    das ist echt ein tolles Teil und funktioniert auch super, einzig das Format der Masken stört mich, die Bytest Search / Replace sind ja immer 2stellig, die Masken nur 1 stellig, hier ist es sehr schwer das ganze leicht abzugleichen, ich habe nun die Maske auch 2stellig gemacht, dadurch steht diese genau unter den anderen Masken und man kann wunderschön sehen was ausgelassen und was ersetzt wird
    Beispiel:

    Code
    $Search1          = "0345EC8B55F43B42587402B3018B45F8"
    $Replace1         = "0345EC8B55F43B42589090B3008B45F8"
    $SearchMask1      = "xxxx??xxxx??xxxx??xxxxxxxxxxxx??"
    $ReplaceMask1     = "??????????????????xxxx??xx??????"


    dazu habe ich in search_and_replace.au3 den Code geändert

    Code
    Func _FilePatch($searchstring, $searchmask, $replacestring, $replacemask)
        ; for germans:
        ; parameter 1: "$searchstring" in hex z.B: "Eb20FF2100"
        ; parameter 2: "$searchmask" z.B. "xx?x?" (x = muss gefunden werden, alles andere platzhalter, anzahl muss == sein mit replacestring)
        ; parameter 3: "$replacestring" in hex z.B: "7433dd2110"
        ; parameter 4: "$replacemask" z.B. "xxx?x" (x = muss gefunden werden, alles andere platzhalter, anzahl muss == sein mit suchstring)
    
    
        $CharArray = StringSplit($searchmask, "") ; No delimiter will separate all chars.
        $NewSearchMask = ""
    
    
        If IsEvenNumber($CharArray[0]) Then
            For $i = 1 to $CharArray[0] Step 2
                $NewSearchMask = $NewSearchMask & $CharArray[$i]
            Next
        Else
            SetError(1)
            Return -1
        EndIf
    
    
        $CharArray = StringSplit($replacemask, "") ; No delimiter will separate all chars.
        $NewReplaceMask = ""
    
    
        If IsEvenNumber($CharArray[0]) Then
            For $i = 1 to $CharArray[0] Step 2
                $NewReplaceMask = $NewReplaceMask & $CharArray[$i]
            Next
        Else
            SetError(1)
            Return -1
        EndIf
    
    
        Local $return = DllCall ($OpenSRdll, "int:cdecl", "FilePatch", "str", $searchstring, "str", $replacestring, "str" , $NewReplaceMask, "BOOL", "true", "str", $NewSearchMask)
    Alles anzeigen


    Gruß
    MrOuzo

Spenden

Jeder Euro hilft uns, Euch zu helfen.

Download

AutoIt Tutorial
AutoIt Buch
Onlinehilfe
AutoIt Entwickler
  1. Datenschutzerklärung
  2. Impressum
  3. Shoutbox-Archiv
Community-Software: WoltLab Suite™