Hallo zusammen.
Ich habe schon lange ein Autoit Skript laufen, welches CSV Dateien ausließt, umsortiert usw... Der Inhalt der Dateien und auch des Skriptes soll an dieser Stelle weitgehend egal sein, es geht lediglich um den Befehl _FileWriteToLine. Und zwar ist mir folgendes aufgefallen:
Mein Skript läuft schon länger und tut was es soll, u.a. immer die erste Zeile einer Textdatei (bzw. CSV) entfernen, und zwar mit folgendem Befehl:
Das steht auch so inder Hilfe: If _FileWriteToLine() is called with $iOverWrite as 1 and $sText as "", it will delete the line.
Nun ist mir zufällig aufgefallen, dass die Folgeoperationen meines Skriptes nicht mehr richtig funktionieren und nach kurzer Suche bin ich drauf gestoßen: Die erste Zeile wird nicht mehr gelöscht. Nur warum?
Ich habe vor einiger Zeit mal den Entwicklungsrechner gewechselt und dort ohne groß nachzudenken Autoit heruntergeladen und installiert, und zwar die Version v3.3.14.5 . Nach dieser Installation habe ich das Skript noch mal kompiliert, um ein paar Kleinigkeiten anzupassen, die nichts mit dem o.g. Befehl zu tun haben.
Nun habe ich mir mal den Installer vom alten Rechner geholt und diesen durchlaufen lassen und siehe da, mit dieser Version, der v3.3.14.2 funktioniert das erneut kompilierte Skript wieder und die erste Zeile wird mit o.g. Befehl gelöscht.
Hat jemand eine Idee, warum das in der neuen Version nicht mehr klappt? Ist das vielleicht ein Bug?
---
Nachtrag: Ich sehe gerade, dass in der v3.3.14.5 für den Befehl _FileWriteToLine() der Parameter $bFill hinzugekommen ist, siehe Hilfe und siehe Changelog #3093.
Es ist aber egal, ob man diesen Parameter auf TRUE oder FALSE setzt, also
_FileWriteToLine($sDateipfad , 1 , "" , True , True)
oder
_FileWriteToLine($sDateipfad , 1 , "" , True , False)
Mit dem Befehl wird die Zeile nun nicht mehr gelöscht, sondern es bleibt eine leere Zeile stehen. In der Hilfe steht aber nach wie vor, dass die Zeile gelöscht wird, wenn abeim dritten Parameter "" und beim vierten TRUE angibt.