Textpassagen getrennt durch Strichpunkt ; auslesen

olek

Mitglied
Servus @all

Habe bis jetzt immer ein Textfile geöffnet, und dieses Zeilenweise ausgelesen.
z.B. Open "hallo.txt" For Input As #2
Do While Not EOF(2)
Line Input #2, spfad
Loop
Close #2

Habe jetzt aber einen Text der durch Strichpunkt jeweils immer getrennt ist:
test1;test2;test3;test4 usw.
Wie kann ich nun in VB z.B. nur den test2 oder nur den test3 usw. auslesen und als
Variable abspeichern?

PLS Help.

DANKE für jeden Tipp von Euch!

Cya Alex
 
Hallo olek,

das geht der VB Split Funktion

Code:
Dim text() as String
Dim i        as Integer
text() = Split(spfad, ";", , vbTextCompare)
                 
For i = LBound(text()) To UBound(text())
    MsgBox(text(i))
Next i

Jens
 
Danke für den tollen Tipp!
Habe nun noch folgendes Problem:

Ich lese die 11 Zeile aus der Textdatei aus in der eben test1;test2;test3; usw. steht.
Das funktioniert auch.
Dann verwende ich dein Split und will nur z.B. test2 (also genau mittendrin) in eine Variable abspeichern
Diese Variable übergebe ich dann einem Textfeld in meinem Programm.

Bei deinem Programm öffnet sich eine MsgBox die alle Strings durchgeht.
Wie kann ich nun den ersten der ausgegeben wird abspeichern.
Dann den 2. usw.?
Daweil durchläuft die MsgBox ja alle Strings. Will aber jew. den ausgebenen String auch noch in eine Variable abspeichern.


Dim auslesen
Dim text() As String
Dim i As Integer

auslesen = ReadLine("C:\Musterdatei.txt", 11)

text() = Split(auslesen, ";", , vbTextCompare)
For i = LBound(text()) To UBound(text())
MsgBox (text(i))
Next i

Danke!

Cya olek
 
Hallo olek,

du musst ja keine Schleife durchlaufen.
Du kannst einfach Variablen deklarieren und
wenn du weißt wieviele Textspalten enthalten
sind diese so zuweisen.

Dim deineVariable as String
Dim deineVariable2 as String

deineVariable = text(0) --> erste Spalte
deineVariable2 = text(1) --> zweite Spalte

Jens
 
ich weiß ja nicht, ob's noch was bringt, aber einfacher wär's doch es so zu machen, dass man eine Visuelle Tabelle erstäält, mit einer Spalte und so viele Zeilen wie du brauchst..

dim VARIABLE(ANZAHL) as string

Variable(0)= text(0)

dann muss man nicht so viel Variablen deklarieren und man hat nicht sp vielarbeit.. außerdem bringts Übersicht!

edit:

mir ist grad eingefallen, dann kannst du auch eine Schleife erstellen:

Dim Zahl as Single

Do Until Zahl<ANZAHL
Variable(ZAHL)=Text(Zahl)
Zahl=Zahl+1
Loop

bin mir aber grad nicht sicher.. ;)
 
Zuletzt bearbeitet:
Zurück