[VB/rätselhafte split-funktion]

Von: , Frage gestellt am Mi, 10. Nov 1999

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

6 Antworten zu dieser Frage

  1. Antwort von nach 4 Stunden hilfreich
    Re: [VB/rätselhafte split-funktion]

    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.

  2. Antwort von nach 17 Stunden hilfreich
    Re: [VB/rätselhafte split-funktion]

    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]

    • Antwort von nach einem Tag hilfreich
      Re^2: [VB/rätselhafte split-funktion]

      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

      • Antwort von nach 4 Tagen hilfreich
        Re^3: [VB/rätselhafte split-funktion]

        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

        • Antwort von nach 4 Tagen hilfreich
          Re^4: [VB/rätselhafte split-funktion]

          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

          • Antwort von nach 4 Tagen hilfreich
            Re^5: [VB/rätselhafte split-funktion]

            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]

Keine passende Antwort gefunden? Jetzt eigene Frage stellen!