Spezielle Zeile in Textdatei auslesen

MotoxX

Grünschnabel
Hi,
Ich möchte gerne eine spezielle Zeile aus einer Textdatei auslesen. Dazu lasse ich vorher per zufallsgenerator eine Zahl ermitteln, zum Beispiel 4 und dann zum Beispiel nur die Zeile 4 einer Textdatei auslesen. Wie das mit dem Zufallsgenerator weiß ich, aber wie geht das, das mein Programm nur die benötigte Zeile einliest und kann ich vorher irgendwie feststellen lassen, wieviel Zeilen die Textdatei enthällt?

Vielen Dank für die Hilfe
MotoxX
 
Soviel ich weiss sind Textdateien nicht strukturiert, aber bitte korrigieren wenns nicht stimmt. Um eine bestimmte Zeile auslesen zu können musst du Record um Record einlesen bis du die gewünschte Zeile hast.

Das gleich prinzip auch beim Zählen der Zeile, zuerst mal den ganzen Text durchrammeln.
 
Wenn du z.B. die fünfte Zeile willst liest du alles vom vierten bis zum fünften Zeilenumbruch. Zum Suchen kannst du die Konstante vbCrLf verwenden.
 
Hallo,
probier mal folgendes:

Public Function ReadLine(Quelle As String, Zeile As Long) As String
'ließt aus einer Datei eine Zeile aus

Dim nA
Dim nZahl As Long

nA = Split(ReadFile(Quelle), vbCrLf)
nZahl = UBound(nA)

'Wenn Zeile größer Zeilenzahl dann .....
If Linie - 1 > nZahl Then
ReadLine = "ERROR"
Exit Function
End If

ReadLine = nA(Zeile - 1)
End Function

'Textdatei auslesen
Public Function ReadFile(FileName As String) As String
Dim Buffer As String
Dim nFNr As Long

nFNr = FreeFile

Open FileName For Binary Shared As #nFNr
Buffer = String$(LOF(1), 0)
Get #1, , Buffer
Close #1
ReadFile = Buffer
End Function
 
Danke für die Hinweise.
Ich habe heute rausgefunden, dass es viel einfacher geht. Man verwendet einefach eine Zählschleife. Wenn ich zum Beispiel die fünfte Zeile ausgelesen haben möchte, dann geht das wie folgt:

For n = 1 to 5
input #DatNr, Variable
Next

Danach kann ich die Variable abfragen und siehe da, es ist der Eintrag aus der fünften Zeile.

Schönen Tag noch
MotoxX
 
Zurück