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

Textdatei zeilenweise lesen

Textdatei zeilenweise lesen
22.03.2008 11:09:00
ioannis
Hallo zusammen,
ich versuche eine Textdatei zeilenweise zu lesen,
Line Input #1, Zeile
weist aber der variablen Zeile auf einmal die ganze Datei zu.
Hat jemand eine Idee warum, bzw. was man dagegen machen kann?
Ich bedanke mich in Voraus.
Freundliche Grüsse
Ioannis

15
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Textdatei zeilenweise lesen
22.03.2008 11:16:00
Martin
Hallo
Probier es mal so:
Do Until EOF(1)
Line Input #1, Textzeile
Loop
Close #1
Viele Grüße
Martin

AW: Textdatei zeilenweise lesen
22.03.2008 11:48:05
ioannis
Danke für die schnelle Antwort.
Mit oder ohne Schleife, funktioniert beides nicht, weil beim ersten Durchgang erkennt Line Input #1 nur eine Zeile.
Was mir gerade noch eingefallen ist, die ursprüngliche Datei kann ich nur mit Wortpad öffnen, nachdem ich dort speichere, kann ich sie mit dem Editor öffnen, und dann funktioniert die Schleife...
Die input Dateien sind aber immer im ursprünglichen Format...
Freundliche Grüsse
Ioannis

Anzeige
AW: Textdatei zeilenweise lesen
22.03.2008 11:54:24
Tino
Hallo,
lade doch mal solch eine ursprüngliche Datei
Gruß
Tino

AW: Textdatei zeilenweise lesen
22.03.2008 12:16:00
ioannis
Die Datei ist auf dem Server richtig erkannt, wenn man aber versucht, sie mit dem Editor zu öffnen, bekommt man einen Datensalat...
Gruß
Ioannis

AW: Textdatei zeilenweise lesen
22.03.2008 17:07:26
Volti
Hallo Ioannis,
wahrscheinlich hat Deine Textdatei den "falschen" Zeilenabschluss. Z.B. nur LF (line feed) = CHR$(10)
Den erkennen Word und Excel und andere Programme als Zeileanbschluss an, aber beim Einlesen Deiner Datei mit "Line input" wird der CR (carrige return) =CHR$(13) verlangt.
So "denkt" Deine Routine halt, es wäre nur eine Zeile.
Der CHR$(10) sollte durch CHR$(13) & CHR$(10) erstetzt werden.

Sub DatTest()
Open "D:\MyDatei.txt" For Binary As #1
MyString = Input(LOF(1), #1)
CLOSE #1
MyString = Replace(MyString, Chr$(10), Chr$(13)&CHR$(10))
Open "D:\MyDatei.txt" For Output As #1
Write #1, MyString
Close
End Sub


viele Grüße
Karl-Heinz Voltmann

Anzeige
AW: Textdatei zeilenweise lesen
22.03.2008 11:22:26
Tino
Hallo,
hier mal ein Beispiel.
Dim sFilename As String, sLine As String
Dim F As Long
sFilename = "C:\Text.txt" 'Pfad zur Datei
F = FreeFile
Open sFilename For Input As #F
While Not EOF(F)
Line Input #F, sLine
Wend
Close #F
Gruß
Tino

AW: Textdatei zeilenweise lesen
22.03.2008 12:02:00
ioannis
Hallo Tino,
funktioniert es leider auch nicht, weil die input Datei im "Wortpad" Format ist. Wie kann ich, mit VBA das Format in normalen Textformat ändern?
Freundliche Grüsse
Ioannis

AW: Textdatei zeilenweise lesen
22.03.2008 12:23:00
Tino
Hallo,
hiermit müsste es gehen.

Option Explicit
Sub Lese_TxT_Datei()
Dim strText As String
Dim lngFn As Long, AnZZ As Long, A As Long
Dim strPathAndFileName As String
Dim vntA As Variant
strPathAndFileName = "C:\TextTXT\50919.txt" 'Pfad zur Datei
lngFn = FreeFile
Open strPathAndFileName For Binary As lngFn 'öffne zum lesen
strText = Space(LOF(lngFn))
Get lngFn, 1, strText 'lese komplette Datei
Close lngFn
AnZZ = CountChar(strText, Chr(10))  'Zähle Zeile Trennzeichen
vntA = Split(strText, Chr(10)) 'Text trennen
For A = 0 To AnZZ
Cells(A + 1, 1) = vntA(A) 'einzelne Zeilen schreiben
Next A
Erase vntA 'Speicher freigeben
End Sub
Function CountChar(ByVal SourceString As String, ByVal strChar As String) As Long
CountChar = Len(SourceString) - Len(Replace(SourceString, strChar, ""))
End Function


Gruß
Tino

Anzeige
AW: Textdatei zeilenweise lesen
22.03.2008 12:40:00
ioannis
Ja, es hat geklappt.
Ziemlich aufwendig, über VBA :)
Ich bedanke mich nochmal...
Ioannis

AW: Textdatei zeilenweise lesen
22.03.2008 12:54:54
Tino
Hallo,
dies ist kein aufwendiger Code, da gibt es noch ganz andere.
Gruß
Tino

noch eine Möglichkeit
22.03.2008 14:08:18
Tino
Hallo,
wen du deinen Text nicht unbedingt Zeilenweise lesen willst,
geht es auch hiermit und ist wesendlich schneller.

Sub FileLesen()
Dim MeineTxtDatei As String
MeineTxtDatei = "C:\TextTXT\50919.txt" 'Pfad zur Datei
Application.ScreenUpdating = False
With ActiveSheet.QueryTables.Add(Connection:= _
"TEXT;" & MeineTxtDatei _
, Destination:=Range("A1"))
.Refresh BackgroundQuery:=False
End With
Application.ScreenUpdating = True
End Sub


Gruß
Tino

Anzeige
@Tino
22.03.2008 15:26:52
MichaV
Hi Tino,
wenn Du mit Split() ein Datenfeld erzeugst, dann kannst Du mit Ubound() die Anzahl der Elemente im Datenfeld ermitteln. Dann brauchst Du nicht aufwendig vorher die Anzahl der Trennzeichen zählen.
Und Erase mußt Du nicht machen, der Speicher wird nach Beendigung der Prozedur automatisch freigegeben.
Gruß- Micha
PS: Frohe Ostern!

AW: @Tino
22.03.2008 15:57:30
Tino
Hallo Micha,
ich benutze gern das Zählen der Zeichen, weil ich so besser
dass Zeilenumbruchszeichen erkennen kann.
Ich arbeite sehr oft mit Textdateien und dies ist für mich die einfachste Lösung.
Weil die Zeilen Zeilenweise gelesen werden sollten, war mein gedenke,
dass der Code noch weiter ausgebaut werden würde und daher fand ich es für
sinnvoll am ende den Speicher wieder freizugeben.
In der Regel habe ich es nicht drin.
Aber danke für die Info.
Gruß
Tino
Anzeige

246 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige