Split verhält sich heute anders als bisher

  • VBScript

Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von WillyBauaS.

    Split verhält sich heute anders als bisher

    In einem meiner VBS-Scripte läuft seit > 1 Jahr fehlerfrei die Zeile

    Visual Basic-Quellcode

    1. ThisRowArray = Split(Row_, Delim)


    Row_: String, enthält Daten: jede Zeile 1 Datensatz, Daten in der Zeile durch Delim getrennt
    Delim ist |

    Bislang war es kein Problem, wenn in den Daten || stand, also Dateninhalt = "nichts".
    Seit heute ist dadurch das Array plötzlich um ein Element kürzer, d.h. bei 11 Elementen pro Zeile läuft

    SearchValue = ThisRowArray(10)

    ins Leere bzw. in die Fehlermeldung "Subscript out of range; '[number: 10]'

    Hat sich da (durch ein Windows Update?) irgendwas geändert?
    Könnte ich die Code-Zeile robuster gestalten?

    Habe mir auf die Schnelle beholfen, indem ich an den kritischen Stellen ein Leerzeichen in die Daten eingefügt habe.
    Dieses einfache Beispiel läuft bei mir auch.

    Die "echten" Daten werden zeilenweise aus einem ziemlich großen File (~15.000 Datensätze) gelesen und modifiziert, bevor sie auf die o.g. Codezeile treffen. Der Versuch, das Problem auf einen einfachen Fall runterzubrechen, misslang. Sobald der Code kurz und übersichtlich wird funktioniert alles so wie es soll. Ich habe im originalen (nicht funktionierenden) Code probeweise direkt vor der Problemstelle ein

    WScript.Sleep 1

    eingefügt. Auch dann klappt alles, wie es soll. Diese eine Millisekunde genügt.

    Ich glaube, ich lasse alles wie es ist. Eine meiner nächsten Aufgaben ist ohnehin, diesen Code zu überarbeiten, weil sich am Datenformat einiges ändern wird. Danach schau'n mer mal ...

    Besten Dank dennoch für die Hilfe.

    Gruß
    Willy