Avatar billede jeppejp Nybegynder
09. april 2002 - 14:53 Der er 6 kommentarer og
1 løsning

Behandling af tekst streng...

Jeg har en tekst streng der hedder:

1010101 "Jeppe" azsx "Juel" jkldas "Petersen" asd

Jeg vil gerne have Jeppe i en variabel der hedder navn, og juel i en der hedder mellemnavn og petersen i en der hedder efternavn...

Avatar billede ocp Nybegynder
09. april 2002 - 15:09 #1
brug "mid" og "instr" funktionerne.
Avatar billede theplayer.da.ru Nybegynder
09. april 2002 - 15:23 #2
sub main ()
Dim Navn, Mellemnavn, Efternavn

Navn = Jeppe
Mellemnavn = Juel
Efternavn = Petersen

Msgbox Navn + " " + Mellemnavn + " " + Efternavn

end sub


Mvh. DJM Secret
Avatar billede theplayer.da.ru Nybegynder
09. april 2002 - 15:25 #3
Sorry koden skal se så'n her ud:

Sub main()

Dim Navn, Mellemnavn, Efternavn

Navn = "Jeppe"
Mellemnavn = "Juel"
Efternavn = "Petersen"

MsgBox Navn + " " + Mellemnavn + " " + Efternavn


End Sub

Mvh. DJM Secret
Avatar billede jeppejp Nybegynder
09. april 2002 - 15:37 #4
Jeg er ikke helt klar over hvordan man bruger "mid" og "instr" funktionerne.
Avatar billede martin_moth Mester
09. april 2002 - 15:37 #5
I tilfælde af at navnene altid står i gåseøjne ("), og at der altid er et fornavn, mellemnavn og efternavn kan du gøre følgende:

Opret en form med en Text1 (tekstboks) og en CommandButton1 (knap)

Kopier følgende ind i formens kodevindue

Option Explicit
Dim TekstStreng As String
Dim Fornavn As String
Dim Mellemnavn As String
Dim Efternavn As String

Private Sub Command1_Click()
  Dim i As Integer
  Dim j As Byte
  Dim Position(1 To 6) As Integer
 
  j = 0
  TekstStreng = Text1.Text
 
  'Finder placeringen af de 6 gåseøjne
  For i = 1 To Len(TekstStreng)
  If Asc(Mid(TekstStreng, i, 1)) = 34 Then '34=charcode for gådeøjne
    j = j + 1
    Position(j) = i + 1
  End If
  Next i
 
  'Finder navnene
  Fornavn = Mid(TekstStreng, Position(1), Position(2) - Position(1) - 1)
  Mellemnavn = Mid(TekstStreng, Position(3), Position(4) - Position(3) - 1)
  Efternavn = Mid(TekstStreng, Position(5), Position(6) - Position(5) - 1)
 
  MsgBox "Fornavn: " & Fornavn & " mellemnavn: " & Mellemnavn & " efternavn: " & Efternavn
End Sub

Kør programmet, skriv

1010101 "Jeppe" azsx "Juel" jkldas "Petersen" asd

i tekstboksen, og tryk på knappen - det virker.

/Martin
Avatar billede aey Nybegynder
09. april 2002 - 15:37 #6
jeg tror gerne manden vil den anden vej, altså fra én til flere strenge...
i vbscript er der en funktionen der hedder split:

dim txt,array
txt="Hello World!"
array=Split(txt)

i a(0) ligger så "Hello" og i a(1) ligger "World!"

den findes nok også i visual basic... 2 sek.
Avatar billede aey Nybegynder
09. april 2002 - 15:43 #7
... fortsat
Split(streng, tegn hvor den skal opdele)

eks.
array=Split("dette er en text-streng", " ")
array(0) indeholder så "dette"
array(1) indeholder så "er"
osv.

NB. kun i VB6
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