String aus TextFile teilen

Hallo,
ich lese aus einer Datei folgenden String aus
101310028 101 101260051-9.11+12+18
und möchte diesen nun in 5 Variablen teilen: (ich klammer mal)

(101310028) (101) (101260051)-(9).(11+12+18)
Var1 var2 var3 var4 var5

wie kann ich sowas machen ?
die ersten beiden sind durch lehrzeichen getrennt.
danach bis zum Bindestrich, bis zum Punkt und alles hinterm Punkt
kann ich punkt, leerzeichen und bindestrich als trennlinie benutzen ?

mfg jonny

Hallo Joe,

ich lese aus einer Datei folgenden String aus
101310028 101 101260051-9.11+12+18
und möchte diesen nun in 5 Variablen teilen: (ich klammer mal)

(101310028) (101) (101260051)-(9).(11+12+18)
Var1 var2 var3 var4 var5

wie kann ich sowas machen ?
die ersten beiden sind durch lehrzeichen getrennt.
danach bis zum Bindestrich, bis zum Punkt und alles hinterm
Punkt
kann ich punkt, leerzeichen und bindestrich als trennlinie
benutzen ?

Ja, aber nicht alle auf einmal. Ich würde erst den Bindestrich, dann den Punkt mit ‚Replace‘ ebenfalls in ein Leerzeichen verwandeln und dann den String mit ‚Split‘ zerlegen.

Beispiel:

Option Explicit

Private Sub Command1\_Click()
Dim i As Integer
Dim zl As String
Dim fld() As String
 zl = "101310028 101 101260051-9.11+12+18"
 zl = Replace(zl, ".", " ")
 zl = Replace(zl, "-", " ")
 zl = Replace(zl, " ", " ")
 zl = Replace(zl, " ", " ")
 zl = Replace(zl, " ", " ")
 fld = Split(zl, " ")
 'Nur noch zur Kontrolle ausgenen
 For i = LBound(fld) To UBound(fld)
 Me.Print fld(i)
 Next
End Sub

Gruß, Rainer

Hallo Joe.

Falls Dir die Split-Funktion nicht zur Verfügung steht, kannst Du es so machen:

Private Const Space As String = " "
Private Const Minus As String = "-"
Private Const Punkt As String = "."
 
Private DeinString As String
Private Var1 As String
Private Var2 As String
Private Var3 As String
Private Var4 As String
Private Var5 As String
 
Private Sub String\_Aufteilen()
 DeinString = "101310028 101 101260051-9.11+12+18"
 Var1 = Mid(DeinString, 1, InStr(1, DeinString, Space, vbTextCompare) - 1)
 Var2 = Mid(DeinString, Len(Var1) + 2, InStr(Len(Var1) + 2, DeinString, Space, vbTextCompare) - (Len(Var1) + 2))
 Var3 = Mid(DeinString, Len(Var1) + Len(Var2) + 3, InStr(Len(Var1) + Len(Var2) + 3, DeinString, Minus, vbTextCompare) - (Len(Var1) + Len(Var2) + 3))
 Var4 = Mid(DeinString, Len(Var1) + Len(Var2) + Len(Var3) + 4, InStr(Len(Var1) + Len(Var2) + Len(Var3) + 4, DeinString, Punkt, vbTextCompare) - (Len(Var1) + Len(Var2) + Len(Var3) + 4))
 Var5 = Mid(DeinString, Len(Var1) + Len(Var2) + Len(Var3) + Len(Var4) + 5)
End Sub

Viele Grüße
Carsten

Hi Rainer,
ausgegeben wird:
101310028 101 101260051
9
1+12+18

ich möchte aber alle in variablen schreiben:
Var1=101310028
Var2=101
Var3=101260051
Var4=9
Var5=11+12+18
ich werde mal weiter testen.
Frage: Ich werde mir mal einen VB Kurs raussuchen nur überlege ich ob ich VB6 Einsteiger oder VB.NEt einsteiger nehmen soll ?
ist der sprung von vb6 auf vb.net gross ? ich selber kann nur „etwas“ vb6.

mfg jonny

Dim i As Integer
Dim zl As String
Dim fld() As String
zl = textvar
zl = Replace(zl, „.“, " ") 'Punkt durch leerzeichen ersätzen
zl = Replace(zl, „-“, " ") 'Bindestrich durch leerzeichen ersätzen
zl = Replace(zl, " ", " ") 'Leerzeichen durch leerzeichen ersätzen?
zl = Replace(zl, " ", " ") 'Leerzeichen durch leerzeichen ersätzen?
zl = Replace(zl, " ", " ") 'Leerzeichen durch leerzeichen ersätzen?
fld = Split(zl, " ") 'fld teilt zl immer beim Leerzeichen ?
'Nur noch zur Kontrolle ausgenen
For i = LBound(fld) To UBound(fld)
List1.AddItem fld(i)
Next

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hi Joe,

ausgegeben wird:
101310028 101 101260051
9
1+12+18

das ist so nur möglich, wenn die scheinbaren Leerzeichen da keine sind. Zerlege den String mal und sieh mal nach, was das ist. Ein Leerzeichen ist Chr(32), aber es gibt wohl noch andere, die werden gelegentlich in MS-Office verwendet um Zeilenumbrüche an der falschen Stelle zu vermeiden.

ich möchte aber alle in variablen schreiben:
Var1=101310028
Var2=101
Var3=101260051
Var4=9
Var5=11+12+18

Genau so sieht es bei mir aus. :smile:

ich werde mal weiter testen.
Frage: Ich werde mir mal einen VB Kurs raussuchen nur überlege
ich ob ich VB6 Einsteiger oder VB.NEt einsteiger nehmen soll ?
ist der sprung von vb6 auf vb.net gross ? ich selber kann nur
„etwas“ vb6.

Ja, der Unterschied ist so groß, daß ich mit VB.Net gar nicht zurecht komme. Mit VB6 kenne ich mich inzwischen so leidlich aus.

mfg jonny

Dim i As Integer
Dim zl As String
Dim fld() As String
zl = textvar
zl = Replace(zl, „.“, " ") 'Punkt durch leerzeichen ersätzen
zl = Replace(zl, „-“, " ") 'Bindestrich durch leerzeichen
ersätzen
zl = Replace(zl, " ", " ") 'Leerzeichen durch leerzeichen
ersätzen?
zl = Replace(zl, " ", " ") 'Leerzeichen durch leerzeichen
ersätzen?
zl = Replace(zl, " ", " ") 'Leerzeichen durch leerzeichen
ersätzen?

Da habe ich zwei Leerzeichen durch ein Leerzeichen ersetzen. Frag mich nicht, warum ich da keine Schleife geschrieben habe. :smile:

fld = Split(zl, " ") 'fld teilt zl immer beim
Leerzeichen ?

Ja, Dein String wir in ein Array geschrieben, das Leerzeichen ist der Separator. Split teilt den String, fld ist das Array.

Gruß, Rainer

Hi,
Ich habe hier 2 Tabstops deshalb funktioniert fld = Split(zl, " ")
bei den ersten beiden nicht. wie entferne ich ein Tabstop ?
zl = Replace(zl, „Tabstop“, " ")

101310028 101 101260051
9
1+12+18

mfg jonny

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo,

Ich habe hier 2 Tabstops deshalb funktioniert fld = Split(zl,
" ")

ahhh, deshalb.

bei den ersten beiden nicht. wie entferne ich ein Tabstop ?

zl = Replace(zl, „Tabstop“, " ")

fast, mit dem richtigen Charakter.

zl = Replace(zl, Chr(9), " ")

Gruß, Rainer

Danke, Danke, Danke!!!
Alles bestens.
gibt es eine Möglichkeit die breite der Scrollbalken in einem List.Box zu verändern?
Und die scrollbalken von 4 List.boxen zu verknüpfen. Also wenn ich List.Box1 nach unten scrolle sollen 2,3 & 4 das auch machen.(und wenn das geht nöchte ich bei 2,3,4 den scrollbalken ausblenden.

Naja, aber das ist auch nicht soo wichtig !! DANKE !!

mfg jonny
wenn der kleine schläft melde ich mich wieder :stuck_out_tongue:
sollte jemand lange weile haben
http://www.wer-weiss-was.de/cgi-bin/www/service.fpl?..

http://www.wer-weiss-was.de/cgi-bin/forum/showarticl…

Hi Joe,

gibt es eine Möglichkeit die breite der Scrollbalken in einem
List.Box zu verändern?

nicht, daß ich wüßte. Mit nein sagen bin ich vorsichtig. :smile: Kann sein, aber ich kann’s nicht.

Und die scrollbalken von 4 List.boxen zu verknüpfen. Also wenn
ich List.Box1 nach unten scrolle sollen 2,3 & 4 das auch
machen.

Ja, schreib in das Scrollereignis der Listboxen:

List2.TopIndex = List1.TopIndex

(und wenn das geht möchte ich bei 2,3,4 den
scrollbalken ausblenden.

Wieder: Nicht, daß ich wüßte, ich kann’s nicht.

Gruß, Rainer

http://www.wer-weiss-was.de/cgi-bin/forum/showarticl…

*gg* hab ich gesehen, aber die Antwort braucht mehr als einen Moment, dafür bin ich gerade nicht fit genug.

Gruß, Rainer

Nabend Rainer.
habe im vbarchiv ne möglichkeit gefunden die scrollbalken auszublenden
http://www.vbarchiv.net/archiv/tipp_details.php?pid=…
falls nochmal jemand fragen sollte.

Danke!! bis später :stuck_out_tongue:
mfg jonny

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]