VisualBasic Anweisung erwartet

Raknar

Ensign
Registriert
Apr. 2006
Beiträge
205
Hallo,
ich schreibe gerade an einem größeren Script (VBscript)und hänge bei folgender Stelle, welche als eigenständiges Script auch funktionieren müsste:
Code:
Const ForReading = 1 

Dim strText, strLine
strText = ""
strLine = ""

Set objFSO = CreateObject("Scripting.FileSystemObject") 
Set objFile = objFSO.OpenTextFile("N:\Scriptaufgaben\Test.xyz", ForReading) 

Set objFSO1 = CreateObject("Scripting.FileSystemObject") 
Set objFile1 = objFSO1.CreateTextFile("N:\Scriptaufgaben\neu.xyz") 

Do Until objFile.AtEndOfStream 
	strLine = objFile.ReadLine 

	If strLine Like "*########.###*#######.###*##.###" Then strText = strText & strLine & vbCrLf
	End If 

Loop

objFile1.Write strText
objFile1.Close
Wscript.Echo strText
In der Zeile mit End If wird eine Anweisung erwartet, ich weiß bloß nicht welche.

Es soll in einer Textdatei (Test.xyz) nachgesehen werden, ob es Zeilen gibt, die Zahlen mit einer bestimmten Stellenanzahl haben. Die sollen dann in eine andere Textdatei(neu.xyz) kopiert werden. Es gibt quasi 3 Spalten mit Zahlen und die, die im Code angegebene Stelligkeit haben, sind von Interesse. Ich hätte das auch gerne in Excel gemacht, nur sind die Textdateien alle mindestens 20Gb groß und das mag meine Excelversion gar nicht:rolleyes:

Vielen Dank im Voraus!
 
Hi,

bei vbs darf in einer IF Anweisung nur dann "End IF" stehen, wenn es mehrere Zeilen sind. Also "End IF" entfernen oder

If strLine Like "*########.###*#######.###*##.###" Then
strText = strText & strLine & vbCrLf
End If
 
Ich würde das so
Code:
If strLine Like "*########.###*#######.###*##.###" Then 
   strText = strText & strLine & vbCrLf
End If
bzw. so
Code:
If strLine Like "*########.###*#######.###*##.###" Then    strText = strText & strLine & vbCrLf
schreiben.

Soweit ich weiß brauchst du kein Endif wenn die "Then" Bedingung direkt hinter das If gehängt wird.
 
Ich habe mich dafür entschieden:
Code:
If strLine Like "*########.###*#######.###*##.###" Then strText = strText & strLine & vbCrLf

Nun wird in dieser Zeile aber gesagt, das eine "Sub- oder Function-Prodzedur nicht definiert" ist.
 
Das Problem sollte ja jetzt gelöst sein, allerdings ist mir noch etwas aufgefallen:
In der Zeile 10 hast du folgenden Befehl:
Set objFSO1 = CreateObject("Scripting.FileSystemObject")
Ich bin zwar kein VBS-Profi, also korrigier mich wenn iich falsch liege, aber für was machst du ein zweites FileSystemObject? kannst du für Zeile 11 nicht das Objekt objFSO nehmen?
 
Mit einem objFSO "geht" es auch. Allerdings taucht der neue Fehler "Sub- oder Function-Prodzedur nicht definiert" immer noch bei der If-Anweisung auf :(
 
Hast du es schon mal so probiert?
Code:
If strLine Like "*########.###*#######.###*##.###" Then 
   strText = strText & strLine & vbCrLf
End If
Ich würde dir diese Syntax empfehlen, sie ist übersichtlicher und weniger Fehleranfällig.
 
hast du das ganze auch in ein entsprechendes Unterprogramm geschrieben?
 
Zurück
Oben