Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
772to776
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
772to776
772to776
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

2mal Line Input - geht das?

2mal Line Input - geht das?
15.06.2006 17:50:51
volker
Hei Forum,
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

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: 2mal Line Input - geht das?
15.06.2006 18:19:54
Erich G.
Hallo Volker,
könnte es sein, dass #3 leer ist? Dann ergibt das erste Line Input einen Fehler.
Versuchs mal mit
Do Until EOF(3)
...
Loop
(Analog hast du's oben bei #1 formuliert.)
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
AW: 2mal Line Input - geht das?
15.06.2006 18:33:04
volker
Das hatte ich versucht, nur dann rennt das Programm ja ohne Fhelermeldung durch. Und Ende der Datei ist Ende der Datei egal wie man das abfragt.
Das Problem ist ja, dass bereits bei allen #3 Dateien das Ende der Datei erreicht ist, obwohl doch gerade erst geöffnet.
Ich habe den Verdacht, dass die erste Zeile in #3 gerade die aktuelle von #1 ist - und das ist meist das hinter dem Ende von #3.
Wie kann man das umgehen?
Volker
Anzeige
AW: 2mal Line Input - geht das?
15.06.2006 19:30:01
Erich G.
Hallo Volker,
bei einer leeren Datei ist es entscheidend, wann man den EOF abfragt.
Macht man das erst nach dem ersten Line Input, gibt Line Input einen Fehler.
Schreib doch mal noch eine Zeile in deinen Code:
...
Open fragenfilepfad & includedatei For Input As #3
If LOF(3) = 0 Then MsgBox "Leere Datei: " & includedatei ' Test
...
Dann siehst du, dass da eine leere Datei includiert werden soll.
Wenn das Until EOF beim Do steht, wird VOR dem ersten Leseversuch geprüft,
ob da überhaupt etwas zum Lesen ist.
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
AW: 2mal Line Input - geht das?
15.06.2006 19:43:03
volker
Guter Gedanke, aber ich weiß definitiv, dass die Datei nicht leer ist, die ich einlesen will.
Wie kann ich denn die Zeilennummer abfragen von #3?
Dann könnte ich meine Vermutung, dass es sich um die Linie von #1 handelt erhärten.
Danke,
Volker
AW: 2mal Line Input - geht das?
15.06.2006 20:06:35
volker
Natürlich geht das!
Mein Fehler ist gefunden: Die Dateien die ich zwischen schreiben wollte, waren im Unix Format abgespeichert und hatten deswegen nur eine oder für Windows eben keine Zeile.
Danke für Deine Mithilfe, aber darauf muss man erstmal kommen, oder ;-)
Volker
Trinidad wird nun leider doch nicht Deutschlands Achtelfinalgegener :-(
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige