Hi,
bin am verzweifeln.
Mein Script fügt in eine TXT ; ein. Leider wird die Datei immer als UTF-8 gespeichert, was die weiteren Programme nicht können.
Die Quell Datei ist ANSI und soll auch wieder in ANSI ausgespuckt werden.
Nach dem was ich gelesen habe, arbeitet AutoIT eigentlich immer mit ANSI, außer es wird speziell angegeben.
Was ist der Fehler ?
Code
#include <GUIConstants.au3>
GUICreate("Dateibearbeitung",500,300)
$contextmenu = GUICtrlCreateContextMenu ()
$Inputbox = GUICtrlCreateLabel("bitte Datei auswählen/öffnen",170,50)
$buttonAuswahl = GUICtrlCreateButton("Datei öffnen",200,100,100, 50)
$buttonStart = GUICtrlCreateButton("Bearbeitung starten",150,180,200,70)
$buttonEnde = GUICtrlCreateButton("Ende",400,240,80,40)
$DateiAusgewaehlt = 0
$bereitsBearbeitet = 0
GUISetState ()
While 1
$msg = GUIGetMsg()
If $msg = $GUI_EVENT_CLOSE Then ExitLoop
If $msg = $buttonEnde Then ExitLoop
If $msg = $buttonAuswahl then
$benutzteDatei = FileOpenDialog("Datei öffnen...", "", "Textdateien (*.txt)", 1)
If @error Then
MsgBox(16, "Fehler" , "Fehler! Es wurde keine Datei ausgewählt!")
Else
$Inputbox = GUICtrlCreateInput($benutzteDatei,40,50, 350, 20)
$DateiAusgewaehlt = 1
EndIf
EndIf
If $msg = $buttonStart then
If $DateiAusgewaehlt = 1 then
$file = FileOpen($benutzteDatei, 0)
While 1
$char = FileReadLine($file)
if @error = -1 Then ExitLoop
if StringRight(StringLeft($char, 10), 3) == "STR" Then
MsgBox(16, "Fehler" , "Fehler! Die Datei wurde bereits angepasst!")
$bereitsBearbeitet = 1
ExitLoop
Else
$zeile = $char
$vordereZeichen = StringLeft($zeile, 7)
$hintereZeichen = StringTrimLeft($zeile, 7)
$zeile = ($vordereZeichen & ";" & $hintereZeichen )
FileWriteLine("temp.txt", $zeile)
EndIf
Wend
FileClose($file)
FileClose($benutzteDatei)
If $bereitsBearbeitet = 0 Then
$bereitsBearbeitet = 1
FileDelete($benutzteDatei)
FileMove("temp.txt", $benutzteDatei)
MsgBox(0, "Fertig", "Bearbeitung beendet")
EndIf
Else
MsgBox(16, "Fehler" , "Fehler! Es wurde keine Datei ausgewählt!")
EndIf
EndIf
Wend
Alles anzeigen