Zerlegung Stringketten

Tassi

Grünschnabel
Hallo Leutz,

da programmiert man wieder den halben Tag und schon kommen die nächsten Problemen. Vielleicht kann mir ja hier jemand nen Tip geben. Ich habe eine Liste oder String mit z.B folgendem Inhalt "Oberfräse:Bosch:1992". Diese Zeichenkette soll getrennt werden, Separator ist ":" und die drei Teilstrings sollen in einzelne Strings abgespeichert werden, damit ich sie z.B in eine Access Datenbank weiterverarbeiten kann. Die einzelnen Stringlängen können natürlich verschiedene Längen haben. Hoffe einer kann mir weiter helfen. Wünsche euch allen noch frohes Schaffen.


Gruß
Tassi
 
Code:
liste = Split("Oberfräse:Bosch:1992", ":")
Die Variable liste ist dabei ein Array mit den einzelnen Teilstrings. Mit einer Schleife kannst du diese Teile dann der Reihe nach in ein Recordset-Objekt einfügen.
 
Das ja mal ne schnelle Hilfe, jetzt habe ich allerdings irgendwelche Fehler:
Habe mal eben den ganzen Müll rausgenommen

----------------------------------------------------------
Dim sText As String
Dim sDelimiter As String
Dim Text(3) As String

sText = "Oberfräse:Bosch:1992"
sDelimiter = ":"


Text(i) = Split(sText, sDelimiter)

------------------------------------------------------------
eigentlich wollte ich doch jetzt die
Text(1) = Oberfräse
Text(2) = Bosch
Text(3)=1992 herausbekommen, aber die Schleife etc. pp brachten nicht den gewünschten Erfolg. Wo liegt den da der Denkfehler jetzt.
 
Mit Text(i) würdest du den gesplitteten String ja dem Element an Index i (was übrigens dem Script nach nicht definiert ist) innerhalb des Arrays zuweisen. Split gibt aber ein ganzes Array zurück, also müsste der Code so aussehen:
Code:
Dim sText As String
Dim sDelimiter As String
Dim Text(3) As String

sText = "Oberfräse:Bosch:1992"
sDelimiter = ":"


Text = Split(sText, sDelimiter)
 
Juup habe es mal so ausprobiert und es scheint zu funktionieren:

-----------------------------------------------------------------------------------------------
Dim i As Integer
Dim Feld(3) As String
On Error Resume Next

For i = 1 To 3
Feld(i - 1) = Split(Text1.Text, ":")(i - 1)
Next

MsgBox " " & Feld(0) & " - " & Feld(1) & " - " & Feld(2)
End Sub

------------------------------------------------------------------------------------------------
Damit kommt in der MessageBox das gewünschte Ergebnis herraus. Hoffe das hilft anderen dann auch mal weiter wenn sie ein ähnliches Problem haben
 
Hallo Zusammen,

ein Array fängt in VB immer mit dem Index 0 an, außer man
setzt Option Base auf 1 (glaub ich).


Dim sText As String
Dim sDelimiter As String
Dim Text(2) As String

sText = "Oberfräse:Bosch:1992"
sDelimiter = ":"


Text() = Split(sText, sDelimiter,,vbTextCompare)

Msgbox Text(0) & "-" & Text(1) & "-" & Text(2)
 
ein Array fängt in VB immer mit dem Index 0 an, außer man setzt Option Base auf 1 (glaub ich).
Richtig, ist ein weit verbreiteter Irrtum. Standardmässig gibt man bei der Deklaration eines Arrays nicht die Anzahl sondern den höchsten Index an.
 

Neue Beiträge

Zurück