Problem mit Konvertierungsskript(EBCDIC zu ASCII)

  • Hey,

    ich habe folgendes Problem, ich hab ein Skript zum konvertieren von EBCDIC zu ASCII geschrieben. Dann hab ich es ausprobiert und kompiliert und auf meinem Rechner lief es auch. Nur als mein Chef es dann auf seinem Rechner ausprobieren wollte hat es nicht mehr funktioniert.

    Danke im Vorraus für Hilfe

  • Achso Okay danke :)

    [autoit]


    #include <GUIConstants.au3>
    #include <Array.au3>
    #include <File.au3>

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

    Dim $quellvz, $check, $zielvz, $dateipfad, $mainwindow, $secondwindow, $write, $Ascii, $Ascii_Tabelle, $write, $len, $read

    $Ascii = ("0,1,2,3,0,9,0,127,0,0,0,11,12,13,14,15," _
    &"16,17,18,19,0,10,8,0,24,25,0,0,28,29,30,31," _
    &"0,0,0,0,0,0,23,27,0,0,0,0,0,5,6,7," _
    &"0,0,22,0,0,0,0,4,0,0,0,0,20,21,0,26," _
    &"32,0,0,228,224,0,0,229,231,241,91,46,60,40,43,33," _
    &"38,233,0,0,232,0,0,0,236,223,93,36,42,41,59,94," _
    &"45,47,0,196,0,0,0,197,0,209,166,44,37,95,62,63," _
    &"248,201,0,0,0,0,0,0,0,96,58,35,64,39,61,34," _
    &"216,97,98,99,100,101,102,103,104,105,0,0,240,0,254,0," _
    &"176,106,107,108,109,110,111,112,113,114,0,0,230,0,198,164," _
    &"181,126,115,116,117,118,119,120,121,122,0,0,208,221,222,0," _
    &"162,163,0,0,0,167,0,0,0,0,172,124,175,168,180,0," _
    &"123,65,66,67,68,69,70,71,72,73,0,0,246,242,0,0," _
    &"125,74,75,76,77,78,79,80,81,82,0,0,252,249,0,0," _
    &"92,0,83,84,85,86,87,88,89,90,0,0,214,0,0,0," _
    &"48,49,50,51,52,53,54,55,56,57,0,0,220,0,0,0")
    $Ascii_Tabelle = StringSplit($Ascii,",")

    If $CmdLine[0] = 2 And $CmdLine[1] = "-f" And Not $CmdLine[2] = "" Then

    $dateipfad = $CmdLine[2]
    konvertierenbutton()
    Exit

    ElseIf $CmdLine[0] = 2 And $CmdLine[1] = "-d" And Not $CmdLine[2] = "" Then

    $quellvz = $CmdLine[2]
    konvertierenbutton()
    Exit


    ElseIf $CmdLine[0] = 4 And $CmdLine[1] = "-d" And Not $CmdLine[2] ="" And $CmdLine[3] = "-z" And Not $CmdLine[4] ="" Then

    $quellvz = $CmdLine[2]
    $zielvz = $CmdLine[4]
    konvertierenbutton()
    Exit

    EndIf

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

    Opt("GUIOnEventMode", 1) ;Wechsle in den OnEvent Modus

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

    $mainwindow = GUICreate("EBCDIC to ASCII Converter",400,200)
    GUICtrlCreateLabel('Klicken Sie auf "Öffnen",'& @CRLF & 'um eine einzelne Datei zu konvertieren.', 22,15)
    $oeffnenbutton = GUICtrlCreateButton("Öffnen",22,45,120,30)
    GUICtrlCreateLabel('Klicken Sie auf "Verzeichnis öffnen",'& @CRLF & 'um ein Verzeichnis mit Dateien zu konvertieren.', 22, 85)
    $vz_oeffnenbutton = GUICtrlCreateButton("Verzeichnis öffnen", 22, 120, 120, 30)
    $konvertieren = GUICtrlCreateButton("Konvertieren",260, 45, 120,30)
    $endbutton = GUICtrlCreateButton("Beenden",260, 120, 120,30)
    GUICtrlSetOnEvent($oeffnenbutton, "oeffnenbutton")
    GUICtrlSetOnEvent($vz_oeffnenbutton, "vz_oeffnenbutton")
    GUICtrlSetOnEvent($endbutton, "endbutton")
    GUISetOnEvent($GUI_EVENT_CLOSE, "close")

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

    $secondwindow = GUICreate("Verzeichniswahl",400,200)
    GUICtrlCreateLabel("Wählen Sie das Quellverzeichnis aus.",22,15)
    $quellbutton = GUICtrlCreateButton("Quellverzeichnis auswählen", 22,30,150,30)
    GUICtrlCreateLabel("Setzen Sie ein Häkchen um bak Dateien zu erstellen," & @CRLF & "andernfalls müssen Sie ein Zielverzeichnis auswählen.",22,65)
    $check = GUICtrlCreateCheckbox ("bak Dateien", 22, 95, 140, 30)
    GUICtrlCreateLabel("Wählen Sie das Zielverzeichnis aus.",22, 130)
    $zielbutton = GUICtrlCreateButton("Zielverzeichnis auswählen", 22, 150,150,30)
    $fertigbutton = GUICtrlCreateButton("Fertig",260, 150, 120,30)
    GUICtrlSetOnEvent($quellbutton, "quellbutton")
    GUICtrlSetOnEvent($zielbutton, "zielbutton")
    GUICtrlSetOnEvent($check, "checked")
    GUICtrlSetOnEvent($fertigbutton, "fertigbutton")
    GUISetOnEvent($GUI_EVENT_CLOSE, "close")
    GUICtrlSetOnEvent($konvertieren, "konvertierenbutton")
    GUISetState(@SW_SHOW, $mainwindow)

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

    While 1

    Sleep(1000) ; Häng rum

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

    WEnd

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

    ;Subfunctions

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

    Func oeffnenbutton()

    $dateipfad = FileOpenDialog("Wählen Sie die zu konvertierende Datei aus!","C:\", "Alle(*.*)", 1+2)

    EndFunc

    Func vz_oeffnenbutton()

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

    GUISetState(@SW_SHOW, $secondwindow)

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

    EndFunc

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

    Func endbutton()

    Exit

    EndFunc

    Func quellbutton()

    $quellvz = FileSelectFolder("Wählen Sie den Quellordner aus!", "C:/")

    EndFunc

    Func zielbutton()

    $zielvz = FileSelectFolder("Wählen Sie den Zielordner aus!", "C:/",1)

    EndFunc

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

    Func checked()

    If BitAnd(GUICtrlRead($check),$GUI_CHECKED) = $GUI_CHECKED Then

    GUICtrlSetState(13,$GUI_DISABLE)
    GUICtrlSetState(14,$GUI_DISABLE)

    Else

    GUICtrlSetState(13,$GUI_ENABLE)
    GUICtrlSetState(14,$GUI_ENABLE)

    EndIf

    EndFunc

    Func fertigbutton()

    GUISetState(@SW_HIDE, $secondwindow)

    EndFunc

    Func close()

    If @GUI_WINHANDLE = $mainwindow Then

    GUIDelete($secondwindow)
    GUIDelete($mainwindow)
    Exit

    ElseIf @GUI_WINHANDLE = $secondwindow Then

    GUISetState(@SW_HIDE, $secondwindow)


    EndIf

    EndFunc

    Func konvertierenbutton()


    If Not $dateipfad = "" Then

    $splitdateipfad = StringSplit($dateipfad,"\") ;Dateipfad jeweils bei "\" teilen und in Array speichern
    _ArrayReverse($splitdateipfad) ;Array umsortieren damit Dateiname am Anfang steht
    $len = StringLen($splitdateipfad[0]) ;Länge des Dateinamens ermitteln
    $dateipfadcut = StringTrimRight($dateipfad, $len) ;um $len von Rechts an abzuschneiden
    $splitdateiname = Stringsplit($splitdateipfad[0],".") ;Dateiname beim "." teilen
    $bak = $splitdateiname[1] & "_" & $splitdateiname[2] & ".bak" ;für die bak Datei
    FileCopy($dateipfad,$dateipfadcut&$bak,1) ;bak Datei erstellen
    $read = ""
    $read = FileRead($dateipfad)
    $len = StringLen($read)
    For $i = 1 to $len

    $Ch = StringMid($read, $i, 1)
    $write = $write & Chr($Ascii_Tabelle[Asc($Ch)+1])

    Next
    $file = FileOpen($dateipfad,2)
    FileWriteLine($file, $write)
    FileClose($file)
    $write =""

    EndIf

    If Not $quellvz = "" And BitAnd(GUICtrlRead($check),$GUI_CHECKED) = $GUI_CHECKED Or ($CmdLine[0] = 2 And $CmdLine[1] = "-d") Then

    $f = 1
    $dateien = _FileListToArray($quellvz,"*",1) ; die Anzahl der Dateien aus dem Ordner und die einzelnen Namen der Dateien in dem Ordner in ein Array schreiben

    For $i = 1 To $dateien[0]

    $splitdateiname = Stringsplit($dateien[$f],".") ;Dateiname beim "." teilen
    $bak = $splitdateiname[1] & "_" & $splitdateiname[2] & ".bak" ;für die bak Datei
    FileCopy($quellvz&"\"&$dateien[$f],$quellvz&"\"&$bak,1)
    $read = ""
    $read = FileRead($quellvz&"\"&$dateien[$f])
    $len = StringLen($read)
    konvertieren()
    $file = FileOpen($quellvz&"\"&$dateien[$f],2)
    FileWriteLine($file, $write)
    FileClose($file)
    $write = ""
    $f += 1

    Next

    EndIf

    If Not $quellvz = "" And Not BitAnd(GUICtrlRead($check),$GUI_CHECKED) = $GUI_CHECKED Or ($CmdLine[0] = 4 And $CmdLine[1] = "-d" And $CmdLine[3] = "-z") And Not $zielvz ="" Then

    $f = 1
    $dateien = _FileListToArray($quellvz,"*",1) ; die Anzahl der Dateien aus dem Ordner und die einzelnen Namen der Dateien in dem Ordner in ein Array schreiben
    For $i = 1 To $dateien[0]

    FileCopy($quellvz&"\"&$dateien[$f],$zielvz&"\"&$dateien[$f],9)
    $read = ""
    $read = FileRead($zielvz&"\"&$dateien[$f])
    $len = StringLen($read)
    konvertieren()
    $file = FileOpen($zielvz&"\"&$dateien[$f],2)
    FileWriteLine($file, $write)
    FileClose($file)
    $write = ""
    $f += 1

    Next

    EndIf

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

    If ($dateipfad = "" And $quellvz ="" And BitAnd(GUICtrlRead($check),$GUI_CHECKED) = $GUI_CHECKED) Or ($dateipfad = "" And $quellvz = "" And Not BitAnd(GUICtrlRead($check),$GUI_CHECKED) = $GUI_CHECKED And $zielvz = "") Then

    MsgBox (48, "Fehler", "Keine Datei oder keine Dateien ausgewählt!")

    Else

    MsgBox(64, "Konvertieren", "Dateien erfolgreich konvertiert!")

    EndIf

    EndFunc

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

    Func konvertieren()

    For $i = 1 to $len

    $Ch = StringMid($read, $i, 1)
    $write = $write & Chr($Ascii_Tabelle[Asc($Ch)+1])

    Next

    EndFunc

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