Programmieren - alles kontrollieren 4.938 Themen, 20.667 Beiträge

Ersten 23 Zeilen in Textdatei löschen - Datei ist am Anschlus

uscos / 6 Antworten / Flachansicht Nickles

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

bei Antwort benachrichtigen
Borlander uscos „also, es lag tatsächlich an vbnewline. Das nenne ich dann mal...“
Optionen

Prima :-)

Zeilenumbrüche und Zeichencodierungen sind eben immer wieder für Ärger bei der Verarbeitung von Textdateien gut :-\
Mit welchem Zeichumbruch lief es denn nun?

Gruß
Borlander

bei Antwort benachrichtigen
vbLf uscos