[VB/rätselhafte split-funktion]

Hallo,

unter VB gibst eine Funktion namens

Split (Expression as string, [Delimiter],[Limit as long = -1], [Compare as CompareMethod = vbBinaryCompare])

Weiß jemand, wie man diese Funktion (ich denke sie ist zum teilen von strings) benutzt? Sie tauch nämlich in keiner Doku auf (weder online-help, noch handbuch).

Das hauptproblem ist wohl der rückgabewert.
Ich habe versucht es strings & variant-arrays zuzuweisen, aber nada.

string = split („h,h“,",")[1]

funktioniert auch nicht.

Im Moment benutze ich einen eigene trennfunktion, aber daran leidet natürlich die geschwindigkei (sie wird SEEHHR oft aufgerufen)

Danke für eure Hilfe,

Markus

Weiß jemand, wie man diese Funktion (ich
denke sie ist zum teilen von strings)
benutzt? Sie tauch nämlich in keiner Doku
auf (weder online-help, noch handbuch).

Guter Tip: keine Undokumentierten Funktionen verwenden.

Im Moment benutze ich einen eigene
trennfunktion, aber daran leidet
natürlich die geschwindigkei (sie wird
SEEHHR oft aufgerufen)

Wenn Du InStr und Mid verwendest, muesstest Du eine recht schnelle Funktion hinbekommen.

Hi Markus,
ich habe mir die MSDN installiert, und da ist die Split-Funktion sehr wohl drinnen.

Ebenso findest Du eine Hilfe hier:
http://msdn.microsoft.com/library/devprods/vs6/vbasi…

greets from MichL (Vienna)

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

Hi Markus,
ich habe mir die MSDN installiert, und da
ist die Split-Funktion sehr wohl drinnen.

Ebenso findest Du eine Hilfe hier:
http://msdn.microsoft.com/library/devprods/vs6/vbasi…

greets from MichL (Vienna)

Also, das hilft mir nicht weiter. Hier was ich schon alles versucht habe.

dim v(2) as variant, s(2) as string, ss as string
dim st as string
st = „h h“
v()=split(st)
s()=split(st)
v=split(st)
s=split(st)
Resultat: Fehlermeldung Zuweisunng an Array nicht möglich.
ss = split(st)[1] gibt einen Syntaxfehler

Ich weiss nicht weiter. Am liebsten wäre mir ein Verwendungsbeispiel.

tx

Anbei, das gewünschte Beispiel.
Greets from MichL (Vienna)

*******************************************

Dim strArray() As String
Dim strText As String
Dim strDelim As String
Dim intCnt As Integer

strText = „Anna,Berta,Ceasar,Doris,Emil,Franz,Gustav,Heinrich“
strDelim = „,“

strArray = Split(strText, strDelim)

For intCnt = 0 To UBound(strArray)
Debug.Print „strArray(“ & intCnt & ") = " & strArray(intCnt)
Next intCnt

Dim strArray() As String !!!

Hey danke, das ist also der Knackpunkt. Man benutzte ein undimensioniertes Array.
Wenn man im deinem Beispiel anstatt strArray() strArray(10) schreibt funktioniert es nämlich nicht mehr!

Dann hätte ich noch die Frage wie ich ein Array das mit dim array(x) oder redim array(x) spezifiziert wurde wieder so hinkriege das es mit split funktioniert?
redim (0) oder so? oder redim ()?
Weißt du´s?

Grüße, Holli

Hi,
Du kannst schreiben:

1.)
ReDim strArray(100)
strArray = Split(…

2.)
Dim strArray()
.
.
ReDim strArray(100)
strArray = Split(…

3.)
Dim strArray()
strArray = Split(…

In allen 3 Fällen wird das Array automatisch dimensioniert.

Ist ein Array mit
Dim strArray(100)
deklariert, kann es nicht mehr „umdimensioniert“ werden - auch von Dir nicht!!

Das ist der Grund, warum Split() so nicht funktioniert. Split() dimensioniert das Array() automatisch um. Daher kannst Du Dir vor dem nächsten Aufruf von Split() das
ReDim strArray(0)
schenken.

greets from MichL (Vienna)

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