Guten Morgen zusammen,
ich habe da (mal wieder) ein Problem und wende mich wie immer hier ans Forum, nachdem ich mich seit gestern irgendwie im Kreis drehe.
Blöde ist das ich etwa 3500 Anwender damit beglücken muss und das manuell so nicht machbar ist.
Vorab:
Das ganze Script hat schon mehrere tausend mal seinen Dienst erfolgreich geleistet
(Funktion des Scripts :
Mittels eines in einem anderen System (IDM) erstellten csv Files, wird dieses nach definierten Regeln aufgesplittet und in sog. einzelne 'redirect files' umgewandelt, um einen Usermove zu unterstützen.
Die einzige Änderung die mir einfällt und ggf. eine Rolle spielen könnte, war das Update der AutoIT Version (das hat mich bei der StringEncrypt Funktion erwischt)
Problem:
wie im Titel beschrieben wird das temporäre Textfile nicht mehr zeilenweise gefüllt, nachdem es mit FileOpen 'created' wurde.
Keinen blassen Schimmer warum das jetzt nicht mehr funktioniert
Also hier mal der entscheidende Teil des Scriptes
If Not _FileReadToArray($cdeSourceNRF, $acdeNRF) Then
MsgBox(4096, "Fehler", " Fehler beim Einlesen ins Array (Error:" & @error & ")") ;Einlesen Sourcefile mit Errorhandling (Öffnen des Datenfiles)
Exit
EndIf
$CdeRuns = $acdeNRF[0] / 6 ;Berechnung der Anzahl zu erzeugender Files (1-5 Zeilen = Dateiinhalt / 6.Zeile Filename)
If Int($CdeRuns) - $CdeRuns <> 0 Then
MsgBox(16, "In der Quelldatei liegt ein Fehler vor", "Wahrscheinlichster Fehler: Ein falsche Anzahl an Datenzeilen" & @LF & @LF & "Richtig sind:" & @LF & "5 Zeilen Daten + 1 Zeile für Dateinamen (6 Zeilen/nrf file).")
Else ;Errorhandling (Anzahl Zeilen muss aufgehen / durch 6 teilbar)
$cdeMessage1 = ""
SplashTextOn("Step 1: *.nrf - erstellen", $cdeMessage1, 300, 70, -1, -1, 16 + 2, "", 10, 400) ;Splash
;######################## hier beginnt das Entscheidende #######################
For $i = 1 To $CdeRuns ;Schleife .... Start
FileOpen(@ScriptDir & "\nrf_temp.txt", 1) ;Temp File erzeugen - <------------- das File wird erzeugt und hat die Grösse 0 KB
For $x = 1 To 5
_FileWriteToLine(@ScriptDir & "\nrf_temp.txt", $x, $acdeNRF[$x], 0) ;Schreiben der 5 Zeilen für NRF in das neue Temp File
Next
FileClose(@ScriptDir & "\nrf_temp.txt")
$x = 6
$cdeFilename = $acdeNRF[$x] ;Dateiname ermitteln (immer die jeweils 6.Zeile)
FileMove(@ScriptDir & "\nrf_temp.txt", @ScriptDir & "\nrf\" & $cdeFilename, 9) ;Neues File benamen und ins Verzeichnis 'NRF' schieben - <------------- funktioniert
$cdeMessage1 = ($i & " / " & $CdeRuns & " - NRF File(s) erzeugt" & @CRLF & @CRLF & $cdeFilename) ;Splash text
ControlSetText("Step 1: *.nrf - erstellen", "", "Static1", $cdeMessage1) ;Splash update
Sleep(200)
For $y = 1 To 6
_ArrayDelete($acdeNRF, 1) ;'Abgearbeitete Zeilen' aus dem Array löschen
Next
Next ;Schleife .... Ende
Sleep(500)
;### Tidy Error -> if is never closed in your script.
Alles anzeigen
Vielleicht weiss ja jemand Rat - wäre super .....
LG
ugt100
Edit bernd670: Code richtig formatiert!