Open config.txt For Input as #ff

Nabend,
ich schreibe Configurationsparameter in eine datei.
Nun habe ich mein Programm Erweiter und 4 Zeilen in der Configurationsdatei hinzugefügt. Problem ist das beim Programmstart die Zeilen eingelesen werden, die 4 neuen aber bis zum ersten mal speichern noch gar nicht existieren. Folge „Input Past end of File“
Wie kann ich diese beim ersten start bzw. bis zum ersten speichern ignorieren ?

 Line Input #ff, Ziel1
 Line Input #ff, Ziel2
 Line Input #ff, Ziel3
 Line Input #ff, Ziel4
 'neu
 Line Input #ff, neu1
 Line Input #ff, neu2
 Line Input #ff, neu3
 Line Input #ff, neu4

mfg joe

Hi Joe,

While Not EOF(#ff)
input …
Wend

Gruß, Rainer

A hoi Rainer,
bekomme trotzdem nen „Input Past End of File“
hab ich was falsch gemacht ?

ff = FreeFile

Open pfd & "ziel.txt" For Input As #ff
While Not EOF(ff)

 Input #ff, xnew
 Line Input #ff, Ziel1
 Line Input #ff, Ziel2
 Line Input #ff, Ziel3
 Line Input #ff, Ziel4
 Line Input #ff, Ziel5
Input #ff, new27
Input #ff, new28
Input #ff, new29
Input #ff, new30


Wend

 Close #ff

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hi Joe,

bekomme trotzdem nen „Input Past End of File“
hab ich was falsch gemacht ?

Du hast unabhängig vom Ende weiter gelesen. Ich weiß nicht wie variabel Du es brauchst und warum Du keine Arrays verwendest. Wenn es aber nur auf die neuen ankommt, sollte es so gehen:

ff = FreeFile

Open pfd & "ziel.txt" For Input As #ff

 Input #ff, xnew
 Line Input #ff, Ziel1
 Line Input #ff, Ziel2
 Line Input #ff, Ziel3
 Line Input #ff, Ziel4
 Line Input #ff, Ziel5

 If EOF(#ff) = False Then
 Input #ff, new27
 Input #ff, new28
 Input #ff, new29
 Input #ff, new30
 End If

 Close #ff

Gruß, Rainer

YEs,
so funktioniert es.
Das Thema Array werde ich mir die tage nochmal im Buch anschauen :stuck_out_tongue:
Diggn Dank.
mfg joe

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hi Joe,

YEs,
so funktioniert es.

prima!

Das Thema Array werde ich mir die tage nochmal im Buch
anschauen :stuck_out_tongue:

Statt:

 Line Input #ff, Ziel1
 Line Input #ff, Ziel2
 Line Input #ff, Ziel3
 Line Input #ff, Ziel4
 Line Input #ff, Ziel5

(Das nennt man übrigens 'Spaghetti-Code. :smile:)

würde dann da stehen:

Dim i As Byte
Dim Ziel(1 to 5) As String

...

For i = 1 To 5
 Line Input #ff, Ziel(i)
Next

Das finde ich so schon hübscher, wenn es mal ein paar Zeilen mehr werden, wird es richtig interessant. :smile:

Gruß, Rainer

hmpf.
was gestern mit mir los :smile:
leider funktioniert es doch noch nicht so wie es soll.

On Error GoTo moep
'If EOF(ff) = True Then
Input #ff, Ziel13
Input #ff, ZIel14
moep:
'End IF

alles ohne erfolg. ARGH.
wie zähle ich die Zeilen einer TEXT Datei ?

mfg jonny

Hi Joe,

wie zähle ich die Zeilen einer TEXT Datei ?

mit der While-Schleife.
Wenn Du nicht ganz präzise weißt, wie viel Zeilen die Datei enthält. kann schon ein zweiter Input-Befehl zum Fehler führen, wenn man nicht vorher auf EOF() prüft.

Wenn Deine Variablen statt Zeile11 Zeile(11) heißen würden könntest Du das so schreiben:

Open ... #ff
 While Not EOF(#ff)
 i=i+1
 Linie Input #ff, zl
 Zeile(i)=zl
 Wend
Close #ff

und wärst alle sorgen los, das liest nie über das Ende hinaus.

Du kannst aber auch den ‚richtigen‘ Code vor deinen setzen und ihn zum zählen der Zeilen mißbrauchen, dann liest Du die Datei eben zwei mal. :smile: Gleich richtig machen ist aber bequemer.

Gruß, Rainer