Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
560to564
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
560to564
560to564
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Wert von EOF(1) verändern

Wert von EOF(1) verändern
05.02.2005 08:56:53
EOF(1)
Hallo,
ich habe da ein kleines Problem.
Wenn ich die MS-Hilfe richtig verstanden habe, zeigt EOF(1) (wenn der Wert True ist)an das ich mich am ende einer Datei befinde. Nun möchte ich diesen Wert nach durchlaufen einer schleife wieder auf False setzen. Und genau das bekomme ich nicht hin. Geht das eigentlich?
Gruß
Claudia

21
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Wert von EOF(1) verändern
EOF(1)
Hallo Claudia,
wie meist sind die Beispiele in der Vba-Hilfe etwas ungenau. So wird es Passender.

Dim datNr As Integer
datNr = FreeFile                  'holen einer freien Datei-Nummer
Open "DATEI1" For Input As datNr  'Datei zum Einlesen öffnen.
Do While Not EOF(datNr)           'auf Dateiende abfragen.
Line Input #1, Dateidaten     'Datenzeilen lesen.
Debug.Print Dateidaten        'Daten im Direktfenster ausgeben.
Loop
Close #1
Die freie Datei-Nummer zum Öffnen der txt-Datei bestimmt das Betriebssystem über die Funktion FreeFile. EOF (Dateiende) und BOF (Dateianfang) sind schreibgeschützte Werte.
Die Position des Datenzugriffs-Cursors bestimmt, welchen Wert BOF und EOF haben.
Gruß von Luschi
aus klein-Paris

Anzeige
AW: Wert von EOF(1) verändern
05.02.2005 10:55:30
EOF(1)
Hallo Luschi,
leider hilft mir dies nicht ganz weiter.
Die schleife geht leider nur einmal. Speicherst du excel ab und öffnest es dann noch einmal geht vba nicht wieder in die schleife rein. Aus diesem grund muss ich das makro so überlisten, dass es den Datenzeiger beim öffnen von excel immer an den Anfang setzt.
Und deswegen wollte ich eigentlich den EOF wert verändern.
Gruß
Claudia
AW: Wert von EOF(1) verändern
EOF(1)
...und wozu soll das Ganze dienen? Ggf. gibts ja eine andere Lösung.
Ulf
AW: Wert von EOF(1) verändern
05.02.2005 11:21:12
EOF(1)
hallo,
ich möchte durch clicken auf einen Button eine TXT-datei einlesen. Das habe ich soweit auch hinbekommen. Das Problem liegt nun darin, dass wenn ich die Exceldatei schliesse und später wieder öffnen möchte das ganze nicht. Beim Debuggen geht er nicht mehr in die scheife zum auslesen hinein. Ich kann leider die TXT-datei nicht nur einmal einlesen weil sich die daten ändern können. Aus diesem Grund muss ich die gleiche Datei zu jedem zeitpunkt immer wieder einlesen können.
Gruß
Claudia
Anzeige
AW: Wert von EOF(1) verändern
EOF(1)
Sorry, verstehe ich nicht, noch offen.
Ulf
AW: Wert von EOF(1) verändern
05.02.2005 11:37:14
EOF(1)
Hallo,
also ich möchte eine txt-datei öffters einlesen. Erstelle ich eine neue Excel-datei mit dem Makro zu einlesen dann liest mir dieses die TXT-datei einmal ein.
Speichere ich die Ecel-datei ab und öffne sie z.B. 2 Tage später funktioniert das Makro nicht mehr, weil der Datenzeiger am ende der TXT-datei steht.
Nun möchte ich es hinbekommen, dass dies doch funktioniert. Es muss eigentlich gehen, weil wenn man ein makro aufnimmt kann man diese auch mehrmals nutzen. Bei dieser Lösung hatte ich allerdings das Problem das ich einen festen Pfad eingeben musste und das möchte ich nicht.
Gruß
Claudia
Anzeige
AW: Wert von EOF(1) verändern
05.02.2005 11:29:32
EOF(1)
Hallo Claudia!
Zeig doch mal den Code zum einlesen!
Wie wird der Code gestartet?
Gruß Sepp
P.S.: Rückmeldung nicht vergessen!
AW: Wert von EOF(1) verändern
05.02.2005 11:46:52
EOF(1)
Hallo,
also
ausgelöst wird er durch:

Private Sub ButEinlesen_Click()
einlesen.einlesen
End Sub

Sub einlesen()

Dim StrDaten As String
Dim StrModulNr As String
Dim StrZeile As String
Dim StrSpalte As String
Dim IntSpalte As Integer
Dim IntZeile As Integer

Open "BestesIndividuum.txt" For Input As #1
Do Until EOF(1)
IntSpalte = 1
IntZeile = 1
StrDaten = Input(5, #1)
StrModulNr = StrDaten
StrDaten = Input(1, #1)
Do While StrDaten = " "
StrDaten = Input(1, #1)
Loop

If StrDaten " " Then
StrZeile = StrDaten
StrDaten = Input(1, #1)
Do While StrDaten " "
StrZeile = StrZeile + StrDaten
StrDaten = Input(1, #1)
Loop
End If
Do While StrDaten = " "
StrDaten = Input(1, #1)
Loop
If StrDaten " " Then
StrSpalte = StrDaten
'Dim StrTest As String
StrDaten = Input(1, #1)
Do While StrDaten Chr(13)
StrSpalte = StrSpalte + StrDaten
StrDaten = Input(1, #1)
Loop
End If
If StrDaten = Chr(13) Then
StrDaten = Input(1, #1)

End If
'StrDaten = dat.read(2)

Do While Cells(IntZeile, IntSpalte) ""
IntZeile = IntZeile + 1
Loop
If Cells(IntZeile, IntSpalte) = "" Then
Cells(IntZeile, IntSpalte) = StrModulNr
IntSpalte = IntSpalte + 1
Cells(IntZeile, IntSpalte) = StrZeile
IntSpalte = IntSpalte + 1
Cells(IntZeile, IntSpalte) = StrSpalte

End If

Loop

Close #1



End Sub
Der code wie gesagt funktioniert allerdings nur einmal und ich bräuchte dies häufiger.
Gruß Claudia
Anzeige
AW: Wert von EOF(1) verändern
05.02.2005 11:56:39
EOF(1)
Hallo Claudia!
Ich hab' keine lust mir diesen Code reinzuziehen!
Einfacher wäre es, wenn du beschreibst, welche Daten aus dem Textfile du benötigst
und welche Strucktur das Textfile besitzt! (evtl. Beispiel der Textdatei hochladen)
Dann kann ich dir bestimmt eine Lösung anbieten.
Gruß Sepp
P.S.: Rückmeldung nicht vergessen!
AW: Wert von EOF(1) verändern
05.02.2005 12:23:48
EOF(1)
Eine Bsp. TXT-Datei hab ich gerade hochgeladen.
Ich benötige sämtliche Informationen aus den Zeile.
TXT-Datei zeile 1: W1121 0 0
zeile 2: W1321 0 1
Die Ausgabe in Excel sollte wie folgt dann aussehen.
In Zelle A1: W1121
In Zelle B1: 0
In Zelle C1: 0
In Zelle A2: W1321
In Zelle B2: 0
In Zelle C2: 1
die nächsten zeile der TXT-Datei natürlich in die nächsten zeile.
Gruß Claudia
Anzeige
AW: Wert von EOF(1) verändern
05.02.2005 12:52:50
EOF(1)
Hallo Claudia!
Wenn die Textdateiimmer gleich aufgebaut ist, dann müsste das reichen.


      
Sub einlesen()
Dim arr As Variant
Dim tmp As String
Dim n As Integer
Dim lastRow As Long
lastRow = IIf(Range(
"A65536") <> "", 65536, Range("A65536").End(xlUp).Row)
   
Open "BestesIndividuum.txt" For Input As #1
   
      
Do While Not EOF(1)
      
      lastRow = lastRow + 1
            
      
Input #1, tmp
      
      arr = Split(tmp, 
" ")
      
      
On Error Resume Next
      
         
For n = 0 To 2
            Cells(lastRow, n + 1) = arr(n)
         
Next
         
      
On Error GoTo 0
      
      
Loop
   
   
Close #1
        
    
End Sub 


Gruß Sepp
P.S.: Rückmeldung nicht vergessen!
Anzeige
AW: Wert von EOF(1) verändern
05.02.2005 13:35:25
EOF(1)
Hallo Sepp,
dein Code funktioniert leider auch nur beim erstenmal. Speichere ich die Exceldatei ab und öffne sie danach wieder kann er die TXT-datei nicht einlesen. Das Makro geht nicht mehr in die while-schleife hinein.
Gruß
Claudia
AW: Wert von EOF(1) verändern
05.02.2005 13:41:33
EOF(1)
Hallo Claudia!
Mein Makro funktioniert auch tausend mal!
Hast du vieleicht ein Problem mit dem Pfad zur Textdatei?
Gruß Sepp
P.S.: Rückmeldung nicht vergessen!
AW: Wert von EOF(1) verändern
05.02.2005 13:59:35
EOF(1)
Hallo Sepp,
bei mir geht es nicht erfindet zwar die Datei, ich hab sie auch einmal hineingeladen. Anschliessend hab ich die Daten gelöscht und die Excel-datei gespeichert. Anschliessend hab ich sie noch einmal geöffnet und sie hat nichts mehr ausgelesen.
Ich stelle mal eine Mappe hoch vielleicht siehst du ja den fehler
https://www.herber.de/bbs/user/17497.zip
Gruß Claudia
Anzeige
Pfadangabe zur Datei
Kurt
hi,
Josef hat 100%ig recht
gib den Pfad zur Textdatei venünftig an und du wirst sehen es funktioniert
...und Tschüss Kurt
DANKE!!
05.02.2005 16:45:14
Claudia
Hallo,
danke an euch ich war zu blind um das Problem zu lösen.
Jetzt geht es.
@Claudia! Zusatzinfo.
05.02.2005 17:55:04
Josef
Hallo Claudia!
Kleine Zusatzinfo zur "Open" Methode.
Wenn "Open" das angegebene File nicht findet, wird es automatisch erstellt!
Dadurch waren in deinem Fall, keine daten vorhanden, die ausgelesen werden konnten.
Bis dann, Sepp
AW: @Sepp Zusatzinfo.
Kurt
hi Sepp,
sorry aber das stimmt in diesem Fall nicht !
Zitat Excel-Hilfe:
Wenn die durch Pfadname angegebene Datei nicht existiert, wird sie angelegt, sobald eine Datei im Modus Append, Binary, Output oder Random geöffnet wird
...und Tschüss Kurt
Anzeige
Du hast natürlich recht! o.T.
05.02.2005 22:08:44
Josef
Gruß Sepp
AW: Wert von EOF(1) verändern
EOF(1)
Hallo Claudia,
ohne jetzt Deinen kompletten Code geprüft zu haben,
Du setzt intZeile = 1 innerhalb der Do While.
Später prüfst Du ob in den Zellen was steht.
Beim 2. Durchlauf steht da dann doch schon was, oder?
Gruß Jens
AW: Wert von EOF(1) verändern
05.02.2005 12:25:25
EOF(1)
Hallo Jens,
hast recht aber das ist nicht das Problem es wird nur unnütz überprüft.
Gruß Claudia

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige