FileWrite schreibt manchmal Zeilen doppelt

  • Halli Hallo,

    ich habe da ein Problem mit Filewrite.
    Irgendwie schreibt er ab und zu Zeilen doppelt.
    Leider kann ich nicht rausfinden, woran das liegt.
    Ich poste mal die Zeilen, die in die Datei schreiben.
    Vielleicht übersehe ich ja etwas.

    Spoiler anzeigen

    Und so sieht ein Ergebnis aus:

    bernd670 : SPOILER- und CODE-Tags eingebaut

    • Offizieller Beitrag

    Hallo!

    Ich würde mir mal testweise die Werte der Variablen, die du in der If-Anweisung überprüfst, ausgeben lassen.
    Außerdem ist ElseIf durch Else ersetzbar, da ja entweder aktiviert ist oder eben nicht.

    Leider wird in deinem Skriptausschnitt scheinbar keine der problematischen Zeilen geschrieben, sodass eine genaue Fehlersuche noch schwer ist...

    peethebee

  • Ups, falsches Skript *rotwerd*

    Spoiler anzeigen

    bernd670 : SPOILER- und CODE-Tags eingebaut

    • Offizieller Beitrag

    Hallo!

    Der Ursache wäre wohl am einfachsten mit MsgBoxen beizukommen.

    Aber ein paar grundsätzliche Sachen hätte ich noch, die vielleicht die Übersicht steigern und evtl. den Fehler beseitigen oder offen zu Tage treten lassen:
    - Die Gliederung in Funktionen scheint mir hier nicht sinnvoll, da sie scheinbar nur einmal (und das evtl. sogar direkt hintereinander aufgerufen werden. Würde man einfach alles "hintereinander weg" schreiben, hätte man auch Problem 2 gelöst:
    - Jedes Mal wird ein neues Filehandle aufgemacht, was per se schon mal nicht effektiv und nicht übersichtlich ist. Zudem kann man FileWriteLine als ersten Parameter statt eines Filehandles auch einen Dateinamen ($inventoryfilename) übergeben, der dann automatisch geöffnet und geschlossen wird.

    peethebee

  • Das eigentliche Problem dabei ist, dass die Fehler nur dann auftreten, wenn das Programm als geplanter Task ausgeführt wird.
    Und dies leider auch nicht zuverlässig.

    Der Grund, warum dies Funktionen sind, ist dass das Programm
    in zwei verschiedenen Modi laufen kann.
    In dem Modus wo die Probleme auftreten, werden tatsächlich alle nacheinander aufgerufen.

    Welchen Sinn ergibt denn dann das Filehandle ?

    • Offizieller Beitrag

    Das Filehandle ist dann sinnvoll einzusetzen, wenn man mehrere Zeilen nacheinander in eine Datei schreiben will.
    Dann muss nicht vor jeder Zeile die Datei geöffnet und nach jeder geschlossen werden, sondern nur einmal davor und einmal danach. Dadurch wird also die Perfortmance gesteigert.

    peethebee

    • Offizieller Beitrag

    Hallo,

    was noch intressant wäre ist der Teil in dem die Funktionen aufgerufen werden!