txt zeilenweise einlesen?

Fichmopp

Grünschnabel
Hoi Leude,

ich weiß nich obs irgendwo einfache tuts für diese Aufgabe gibt, aber dieser Weg ist mir einfach lieber.. ;)

Also
Ich will eine txt zeilenweise auslesen und beispielsweise in verschiedene Textboxen einlesen...
Wie geht das??

thx
 
so müsste es eigentlich funzen:

Private Sub command1_click()
Open Pfad for input as #1
do
line input #1, variable
'variable verwerten
Loop while not EOF(#1)
End sub

habe es jetzt nicht ausprobiert, sondern nur so aus dem kopf geschrieben

cu tirolausserfern
 
prob

Hoi,

thx aber es wird nur eine Zeile ausgelesen..

Kann ich mit einem Befehl auf eine bestimmte Zeile zugriefen

mfg mopp
 
eigentlich sollte es nicht nur eine zeile auslesen ( deswegen die do - loop schleife). Du könntest natürlich nach jeder zeile überprüfen, welchen inhalt die variable hat.

cu tirolausserfern
 
Versuch das doch mal mit einem FSO (File System Object). Da hat man mehr Möglichkeiten. Ich hab da mal ein kleines Beispiel zusammengestellt, alles was du brauchst sind 4 Textfelder und eine .txt Datei in deinem Projektordner mit dem Namen test.txt die mit 4 Zeilen Text gefüllt ist.

Hier der Code:

Option Explicit
Const ForReading = 1 ' Konstanten für Dateizugriff
Const ForWriting = 2
Const ForAppending = 3

Private Sub Form_Load()
Dim fso ' FileSystemObject
Dim textfile ' Dateiobjekt
Dim test() As String 'Stringarray für die einzelnen Zeilen
Dim i As Integer ' Indexvariable
i = 0

'Das FSO wird gesetzt
Set fso = CreateObject("Scripting.FileSystemObject")
'Das Dateiobjekt wird auf die Datei gesetzt
Set textfile = fso.OpenTextFile(App.Path & "\test.txt", ForReading)

'Schleife bis EOF(End Of File)
Do While textfile.AtEndOfStream <> True
ReDim Preserve test(i) 'Dynamisches vergrössern des Arrays
test(i) = textfile.ReadLine ' eine Zeile lesen
i = i + 1 'Index erhöhen
Loop

textfile.Close 'Datei wieder schließen

Text1.Text = test(0) 'Daten in Textfelder schreiben
Text2.Text = test(1)
Text3.Text = test(2)
Text4.Text = test(3)



End Sub
 
Quatsch!
es wird nur eine zeile ausgelesen weil du die eigenschaft "multiline" deiner textbox auf false stehen hast,
also multiline = true

so funzzszt*g*
 
Servus ...

also es gibt noch die Möglichkeit :

Voraussetzung ist eine ListObjekt

Open Pfad for Input as #1
Do While Not EOF(1)
Line Input #1, variable
List1.additem variable
Loop
End sub

gruß xtrem
;-]
 
also des mit dem zeilenweise auslesen funktioniert soweit
nun würde ich gerne einzelne ausschnitte aus einer zeile an variablen übergeben, zb:

ich heiße paul und bin 35 jahre alt
ich heiße wutz und bin 11 jahre alt
...

also die zeilen sind immer identisch aufgebaut (name und alter haben immer die gleiche länge) und der name und das alter sollen nun an variablen übergebn werden...

ich hoffe das mir jemand helfen kann...schonmal thx im vorraus

mfg
 
Ok, ich gehe davon aus,dass du:

Dim Zeile as String

hast...dann machst du:

Dim Stuecke() As String
Stuecke = Split(Zeile,Chr$(32))

um die Zeile in Einzelstücke zu teilen. Hierbei wird Chr$(32) (Leerzeichen) als Punkt zum Trennen angegeben...

Auf die einzelnen Elemente kannst du z.B. so zugreifen:

Dim nC As Integer
for nc=0 to ubound(Stuecke)
Debug.Print Stuecke(nC)
next nC

Achja, dabei ist es übrigens egal, wie lang die Teilstücke sind und ob die Längen gleich sind, getrennt wird an Hand des Strings, den du als 2. Parameter der Split() Funktion übergibst...

VB6 übrigens *g*
 
BIG THX celvin
anfänglich hab ichs überhaupt nicht gecheckt (tu ich jetzt wohl immer noch nicht:-) ) aber nachdem ich nen bissel rumgespielt hab wusste ich wenigstens für was die variablen stehen...
und was soll ich sagen, es funztt einwandfrei...;-)

mfg
 

Neue Beiträge

Zurück