Dateiinhalt komplett in Variable übergeben

05/09/2007 - 18:03 von muench-matthias | Report spam
Hallo!!

wie kann ich innerhalb einer funktion den Inhalt eines .txt oder .htm
auslesen und in eine Variable übergeben??

ich kenn nur Open "C:\Textdatei.txt" For input As #1...

aber da wird ja nur eine Zeile gelesen!!

bràuchte das mehr allgemein... weil die zeilenanzahl sich stàndig
àndert...


Vielen dank schon mal im Voraus!!!


Matthias
 

Lesen sie die antworten

#1 Peter Götz
05/09/2007 - 18:43 | Warnen spam
Hallo Matthias,

wie kann ich innerhalb einer funktion den
Inhalt eines .txt oder .htm auslesen und in
eine Variable übergeben??

ich kenn nur Open "C:\Textdatei.txt" For input As #1...

aber da wird ja nur eine Zeile gelesen!!



Nö, da wird keine Zeile gelesen, sondern es wird
lediglich die Datei geöffnet.

Wenn Du eine Textdatei von Anfang bis Ende
als String in eine entspr. Variable einlesen möchtest,
dann würde das z.B. so aussehen:


Dim FN As Integer
Dim FileName As String
Dim LineBuffer As String
Dim FileBuffer As String

FileName = "H:\Verzeichnis\Datei.txt"

FN = FreeFile
' Datei öffnen
Open FileName For Input As #FN

' Der Reihe nach Zeile für Zeile einlesen
Do Until EOF(FN)
Line Input #FN, LineBuffer
FileBuffer = FileBuffer & LineBuffer & vbCrLf
Loop

' und Schliessen der Datei nicht vergessen.
Close #FN


Die Variable FileBuffer enthàlt nach Ausführung des
Codes den Inhalt der Datei "H:\Verzeichnis\Datei.txt".


Du kannst eine Datei aber auch als reine Binàrdatei
behandeln und in einem Rutsch in ein ByteArray
einlesen. Das würde dann so aussehen:

Dim FN As Integer
Dim FileName As String
Dim bArray() As Byte
Dim strBuffer As String

FileName = "H:\Verzeichnis\Datei.txt"

FN = FreeFile
' Datei öffnen
Open FileName For Binary As #FN

' ByteArray passend zur Dateilànge dimensionieren
ReDim bArray(LOF(FN) - 1)

' ... und alle in der Datei enthaltenen Bytes
' in einem Rutsch ins ByteArray einlesen.
Get #FN, , bArray

' Datei wieder schliessen
Close #FN

' Wenn die gelesene Datei eine Textdatei ist,
' dann könnte der Inhalt des ByteArrays so an
' eine Stringvariable übergeben werden, um
' wieder lesbaren Text zu erhalten:
strBuffer = StrConv(bArray, vbUnicode)


Gruß aus St.Georgen
Peter Götz
www.gssg.de (mit VB-Tipps u. Beispielprogrammen)

Ähnliche fragen