2mal Line Input - geht das?
15.06.2006 17:50:51
volker
ich will aus mehreren Dateien eine machen.
Dazu lese ich Datei 1 (#1) aus und schreibe jede zeile in Datei 2 (#2).
In #1 gibt es immer wieder aufrufe von weiteren Dateien (#3), die in Datei #2 nicht als Aufrufe, sondern als Textzeilen erscheinen sollen. Deswegen öffne ich einfach die aufgerufene Datei (#3) und wollte die dann Zeilenweise in #2 schreiben.
Nun sagt mir mein Programm immer "Laufzeitfehler '62': Einlesen hinter Dateiende"
Vermutung: Ich lese #1 bereits mit LINE INPUT. #3 wil ich ebenfalls mit INPUT LINE lesen. Ist das nicht möglich, weil LINE INPUT bereits verwendet wird von einer noch geöffneten Datei?
Wie kann ich das umgehen?
Danke!
Volker
PS: Der Code :-)
Option Explicit
Private Sub spsslauf_start()
Dim studnr As Long
Dim fragenfile As String
Dim fragenfilepfad As String
Dim filemitpfad As String
Dim zeichen(0 To 1) As Long
Dim fragentext As String
Dim includedatei As String
Dim includetext As String
'File identifizieren und Pfad auslesen
filemitpfad = Application.GetOpenFilename
zeichen(0) = 1
Do
zeichen(1) = InStr(zeichen(0) + 1, filemitpfad, "\")
If zeichen(1) = 0 Then Exit Do
zeichen(0) = zeichen(1)
Loop Until zeichen(1) = 0
fragenfile = Right(filemitpfad, Len(filemitpfad) - zeichen(0))
fragenfilepfad = Left(filemitpfad, InStr(1, filemitpfad, fragenfile) - 1)
Open filemitpfad For Input As #1
Open fragenfilepfad & "spssfragen.t" For Output As #2
Do Until EOF(1)
Line Input #1, fragentext
If InStr(fragentext, "*include") Then
Print #2, "/* " & fragentext
If InStr(9, fragentext, ";") > 0 Then _
includedatei = Mid(fragentext, 10, InStr(1, fragentext, ";") - 10) _
Else includedatei = Mid(fragentext, 9)
Open fragenfilepfad & includedatei For Input As #3
'HIER STEIGT MEIN PROGRAMM AUS. WARUM?
Do
Line Input #3, includetext
Print #2, includetext
Loop Until EOF(3)
Close #3
Else
Print #2, fragentext
End If
Loop
Close #1
Close #2
End Sub