VBscript OpenTextFile funktioniert nicht?
Hallo Leute,
ich Programmiere ja VBScript und habe jetzt eine Fehlermeldung und kriege diese nicht behoben:
Set fso = CreateObject("Scripting.FileSystemObject")
sl = InputBox("Wieviele Schüler sollten den Test machen?","")
'Gibt es eine "& sl &"ste Datei?
If fso.FileExists("D:\Lernprogrammmi\NomenMitEndungen\Tests\Temp\"& sl &".txt") Then
Do until Sl="0"
Set oFile = fso.OpenTextFile("D:\Lernprogrammmi\NomenMitEndungen\Tests\Temp\"& sl &".txt")
msgbox oFile.ReadLine
sl=sl-1
loop
Das Programm sollte in einer msgbox die Datei öffnen und danach auch die Dateien die unter der eingegebenen Zahl liegen öffnen und das bis null. Nun steht aber in dieser Zeile: "msgbox oFile.ReadLine" ein Fehler:
Eingabe hinter Dateiende
Kann mir da jemand helfen?
Außerdem möchte ich dass Alle Dateien in einer Abgespeichert werden aber so wie ich das erfahren habe klappt das nicht. Denn dann kreuzen sich zwei oFile's.
1 Antwort
- Fehler Du prüfst außerhalb des Do-Loops ob die Datei existiert
- Fehler Wenn die Datei leer ist liest Du hinter dem Dateiende
- If fso.File... ist nicht mit end if abgeschlossen
korrigiertes Script:
Set fso = CreateObject("Scripting.FileSystemObject")
sl = InputBox("Wieviele Schueler sollten den Test machen?","")
'Gibt es eine "& sl &"ste Datei?
Do until sl=0
'wenn File existiert Inhalt lesen
If fso.FileExists("D:\Lernprogrammmi\NomenMitEndungen\Tests\Temp\"& sl &".txt") Then
Set oFile = fso.OpenTextFile("D:\Lernprogrammmi\NomenMitEndungen\Tests\Temp\"& sl &".txt")
'sicherstellen das nicht hinter dem Dateiende gelesen wird
Do Until oFile.AtEndOfStream
' alle Zeilen der Datei lesen
fileText= filetext & oFile.ReadLine & vbCrLf
Loop
oFile.close
'fileText anzeigen
msgbox "Datei " & sl & ".txt :" & vbCrLf & fileText
'Dateiinhalt der "Sammelvariable" für alle Texte zuweisen
'dateiname : Linefeed fileText 2xLinefeed
allText=allText & sl & ".txt :" & vbCrLf & fileText & vbCrLf & vbCrLf
'fileText löschen
fileText=""
end if
'Zähler veringern
sl=sl-1
loop
'allText anzeigen
msgbox allText
'erstelle neue Datei "all.txt"
Set oFile = fso.CreateTextFile("D:\Lernprogrammmi\NomenMitEndungen\Tests\Temp\all.txt")
'allText iin Datei "all.txt" schreiben
oFile.Write(allText)
oFile.close
- Dateiprüfung in die Schleife verlegt
- Datei nicht weiter als das Dateiende lesen ... .AtEndOfStream
- end if an richtiger Stelle eingefügt
- den gesamten aus allen Dateien gelesen Text in neue Sammeldatei schreiben