txt zeilenweise einlesen?

@ DANIEL

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.

und wie muss ich den code umgestalten, wenn ich die zeilenanzahl in der text-datei variabel gestalten will, weil ich z.b. immer wieder neue einträge hinzufüge?

und wie krieg ich das ganze in eine combo-box?

dankeschöön :)
 
Die einfachste Methode?
Code:
 Dim FFile As Integer, vDatei As String, vInhalt As String, vZeilen() As String
 
 vDatei = "C:\Text.txt"
 FFile = FreeFile
 vInhalt = Space(FileLen(vDatei))
 Open vDatei For Binary As FFile
  Get FFile, , vInhalt
 Close FFile
 vZeilen = Split(vInhalt, vbNewLine)
Jetzt hast du den Inhalt der Textdatei im Array vZeilen() (die erste Zeile hat dne index 0) und kannst die Zeilen direkt ansprechen. Die Zeilenanzahl kannst du mit
Code:
Anzahl = UBound(vZeilen) + 1
ermitteln. Jetzt kannst du das ganze mit einer Schleife in eine ComboBox bringen:
Code:
For cnt = 0 To UBound(vZeilen)
 Combo1.Add vZeilen(cnt)
 'Wenn du nur einen Teil brauchst, kannst du die Zeilen wie in den vorigen Posts beschrieben nochmal splitten und nur den Teil reinschreiben
Next cnt


Der Doc!
 
Zuletzt bearbeitet:
Hast du denn auch eine ComboBox namens "Combo1" auf deiner Form? Oder hast du vielleicht bei der ComboBox einen Index eingestellt?
 
hab das eben nochmal gecheckt....
combobox heisst Combo1 und kein index

EDIT:
kann es sein, dass es heissen muss

Combo1.AddItem

EDIT 2:
ja, es muss heissen Combo1.AddItem :)
 
Zuletzt bearbeitet:
hätte da nochmal nen nachschlag....

wie muss ich den code ändern, wenn ich mehrere comboboxen (mit index) habe, die aber alle auf die gleiche text-datei zugreifen sollen?
 
Erst mal sorry, hab den Code aus dem Kopf geschrieben, da ich kein VB zum testen hatte hab ich den Additem-Fehler nicht bemerkt. Wird aber nicht mehr vorkommen.

Wenn du den Inhalt der Textdatei in mehrere, indizierte Boxen bringen willst, brauchst du nur in der Schleife eine zweite Schleife einfügen:
Code:
For cnt = 0 To UBound(vZeilen)
 For boxen = 0 to 5 'bei z.B. 5 Comboboxen
  Combo1(boxen).AddItem vZeilen(cnt)
 Next boxen
Next cnt
Es gäbe noch die Möglichkeit, das ganze über eine Controls-Auflistung in die Boxen einzufügen, das wäre aber nur dann sinnvoll, wenn du keine Indizes hast (also in deinem Fall nicht wirklich notwendig).


Der Doc!
 

Neue Beiträge

Zurück