Avatar billede texas2 Nybegynder
16. september 2001 - 11:13 Der er 6 kommentarer og
2 løsninger

Splitte linie

Hvordan splitter jeg en linie, som denne : \"navn, adresse, telefon\"

Sådan at jeg får indholdet over i et array :

splittet(0,0) = \"navn\"
splittet(0,1) = \"Adresse\"
splittet(0,2) = \"Telefon\"

De forskellige \"komponenter\" i linien er adskilt med komma.
Avatar billede prof2 Nybegynder
16. september 2001 - 11:15 #1
I ASP-VBScript kan man:

splittet = split(strTekst,\",\")

hvor strtekst er navn, adresse, telefon

Prøv!
Avatar billede texas2 Nybegynder
16. september 2001 - 11:22 #2
Følgende giver en \"type mismatch\" fejl :

splittet = split(strTekst,\",\")

Hvor splittet er af datatypen string
Avatar billede prof2 Nybegynder
16. september 2001 - 11:33 #3
splittet skal være et array... Men det virker sikkert ikke i VB!
Avatar billede kaffe Nybegynder
16. september 2001 - 11:44 #4
Det virker fint i VB:

Denne tager indholdet af text1.text og lægger det over i en listbox.

Option Explicit

Dim arrSplit() As String

Private Sub Command1_Click()
  Dim intCount As Integer
  arrSplit = Split(Text1.Text, \",\")
  For intCount = 0 To UBound(arrSplit)
    List1.AddItem arrSplit(intCount)
  Next intCount
End Sub
Avatar billede prof2 Nybegynder
16. september 2001 - 11:48 #5
Det er også det jeg har skrevet jo...
Avatar billede kaffe Nybegynder
16. september 2001 - 11:59 #6
Du skrev: \"Men det virker sikkert ikke i VB!\"
og det gør det....
Avatar billede cellaneous Nybegynder
16. september 2001 - 13:24 #7
tror nok at split blev indført i vb6
Avatar billede sjh Nybegynder
16. september 2001 - 16:55 #8
Ja split er ikke i vb5

Split til vb5

\'-------------------------------- Module1/Form1 --------------------------------
Public Function Split(ByVal Expression As String, Optional Delimiter As String = \" \", _
                      Optional Limit As Long = -1, _
                      Optional Compare As VbCompareMethod = vbBinaryCompare) As Variant


Const AvgSize  As Integer = 10
Dim ArrayIncr  As Long
Dim j          As Long
Dim k          As Long
Dim StrPos()    As Long
Dim StrLen()    As Long
Dim ExprLen    As Long
Dim nElements  As Long
Dim RetArray    As Variant
    Split = Empty
   
    ExprLen = Len(Expression) + 1
    If ExprLen = 0 Then Exit Function
    If StrComp(Right$(Expression, Len(Delimiter) + 1), _
      Delimiter, Compare) = 0 Then
        Expression = Left$ _
            (Expression, ExprLen - Len(Delimiter))
        ExprLen = ExprLen - Len(Delimiter)
    End If
    ArrayIncr = ExprLen / AvgSize
    If ArrayIncr < 10 Then ArrayIncr = 20
    Select Case Limit
    Case Is > 0
    Case 0, Is < -1
        Exit Function
    End Select

    If Len(Delimiter) = 0 Then
        Split = Array(Expression)
    End If

    ReDim StrPos(1 To ArrayIncr)
    ReDim StrLen(1 To ArrayIncr)
   
    k = 1
    j = InStr(k, Expression, Delimiter)
    If j = 0 Then
        Split = Array(Expression)
        Exit Function
    Else
        While j > 0
            nElements = nElements + 1
            StrPos(nElements) = k
            StrLen(nElements) = j - k
            k = j + Len(Delimiter)
            j = InStr(k, Expression, Delimiter)
            If nElements = UBound(StrPos) Then
                ReDim Preserve _
                    StrPos(1 To UBound(StrPos) + ArrayIncr)
                ReDim Preserve _
                    StrLen(1 To UBound(StrLen) + ArrayIncr)
            End If
        Wend
        ReDim RetArray(nElements)
        For j = 1 To nElements
            RetArray(j) = _
                Mid$(Expression, StrPos(j), StrLen(j))
        Next j
        Split = RetArray
    End If
End Function
\'-------------------------------- Module1/Form1 --------------------------------


\'------------------------------------ Form1 ------------------------------------
Private Sub Form_Load()
arrSplit = Split(\"Tekst1,Tekst2,Tekst3,\", \",\")
  For intCount = 1 To UBound(arrSplit)
    List1.AddItem arrSplit(intCount)
  Next intCount
End Sub
\'------------------------------------ Form1 ------------------------------------

Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester