Hallo,
        ichl habe hier zwar ein sehr einfaches Standardproblemm, aber ich sehe den Fehler einfach nicht. Vielleicht liegts es auch daran, dass VB nicht gerade meine Heimatsprache ist.
        Ich habe mehrere *.dat Dateien bei denen ich die ersten 23 Zeilen jeweils löschen möchte. Dies versuche ich mit folgendem VB Script:
        
        ' Delete First n Lines of a Text File
        
        Const FOR_READING = 1
        Const FOR_WRITING = 2
        Anz_Probanden = 1 'Wscript.Arguments(0)
        strFileName = "1_0.dat"
        counter_stelle_1_datei = 1
        counter_stelle_2_datei = 0
        iNumberOfLinesToDelete = 23
        
        Set objFS = CreateObject("Scripting.FileSystemObject")
        
        Do While counter_stelle_1_datei Do While counter_stelle_2_datei strFileName = counter_stelle_1_datei & "_" & counter_stelle_2_datei & ".dat"
        Set objTS = objFS.OpenTextFile(strFileName, FOR_READING)
        strContents = objTS.ReadAll
        objTS.Close
        arrLines = Split(strContents, vbNewLine)
        Set objTS = objFS.OpenTextFile(strFileName, FOR_WRITING)
        For i=0 To UBound(arrLines)
        If i > (iNumberOfLinesToDelete - 1) Then
        objTS.WriteLine arrLines(i)
        End If
        Next
        objTS.Close
        counter_stelle_2_datei = counter_stelle_2_datei + 1
        Loop
        counter_stelle_1_datei = counter_stelle_1_datei + 1
        Loop
        
        Das Skript ist dem von http://www.microsoft.com/technet/scriptcenter/scripts/misc/text/default.mspx?mfr=true angelehnt.
        So weit so einfach, sollte gehen - blöd ist nur, dass meine *.dat Dateien am Ende 0 Byte lang sind.
        Was übersehe ich da?
        
        Vielen Dank schonmal
        uscos
      
Programmieren - alles kontrollieren 4.934 Themen, 20.613 Beiträge
          Ich habe eben mal kurz nach vbNewline gesucht: Soll Plattformspezifisch (wenn alle Programmierer solche Konstanten verwenden würden hätten wir sicher weniger Probleme als mit hartcodierten Zeichencodes) sein, also ist zu erwarten, daß es unter win32 immer den Wert vbCrLf (=\r\n) hat. Würde es insbesondere auch mal mit vbLf (=\n) probieren...
          
          Gruß
          Borlander
        
