Gå til innhold

Anbefalte innlegg

Skrevet

Hei lurer på åssen jeg kan ta ut et bestemt ord/settning fra en textbox.

 

textboxen ser slik ut:

 

operativsystem = windows xp, ram = 2GB

 

Så i en annen textbox skal det kun stå 2GB etter jeg har trykket på en button.

 

Har hørt at jeg må bruke split funksjon, men finner ikke ut av åssen det blir brukt

Videoannonse
Annonse
Skrevet (endret)

Split-funksjonen har tre interessante parametere - tekst som skal oppdeles, tegn det skal oppdeles etter samt maksimalt hvor mange oppdelinger som kan forefinnes. Eksempelvis vil Split("hello world", " ") gi en array med elementene {"hello", "world"} (bemerk at avgrensingstegnet forsvinner i resultattabellen).

 

I ditt tilfelle ville jeg nok, ettersom tekstformatet ser mistenkelig ut som en tekstrepresentasjon av en Hash-tabell, laget en funksjon til å hente ut all informasjon og legge den i et dertil egnet objekt (så som en Collection):

Private Sub Form_Load()

 

    Dim Hash As Collection

 

    ' Last inn fra tekstboks i ditt tilfelle

    Set Hash = GetHash("operativsystem = windows xp, ram = 2GB")

   

    MsgBox Hash(1)      ' Via indeks (1-basert)

    MsgBox Hash("ram")  ' Via nøkkel

 

End Sub

 

Public Function GetHash(Text As String) As Collection

 

    Dim sData As String, aTupples, Element, i As Long

 

    ' Det ser ut til at du forsøker å deserialisere et hash-objekt, der de ulike verdi- og

    ' nøkkelsettene er avgrenset av kommategnet. For å oppnå dette uten eksterne komponenter,

    ' kan vi først skape en array av alle tupplene og dernest laste dem inn i en Collection.

    aTupples = Split(Text, ",")

   

    ' Hash-objektet vi vil returnere

    Set GetHash = New Collection

   

    ' Gå gjennom alle verdisettene

    For i = LBound(aTupples) To UBound(aTupples)

   

        ' Del opp etter erlik-tegnet med maksimalt to-oppdelinger

        Element = Split(aTupples(i), "=", 2)

       

        ' Dersom erlik-tegnet mangler, bruker vi et tomt element.

        If UBound(Element) = 0 Then

            GetHash.Add vbEmpty, Trim(Element(0))

        Else

            GetHash.Add Trim(Element(1)), Trim(Element(0))

        End If

   

    Next

 

End Function

Endret av aadnk

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...