Avatar billede no_doubt Nybegynder
29. marts 2008 - 16:08 Der er 14 kommentarer og
1 løsning

opdele streng

Jeg har værdien Mark Mikkelsen_16 i et felt, jeg vil gerne have klippet _16 fra, samt kun skrive initialerne altså MM

Hvordan gør jeg det ?
Avatar billede thesurfer Nybegynder
29. marts 2008 - 16:14 #1
Så skal strenge først deles ved tegnet "_", og derefter ved " "..

Hvad skal der ske, hvis man nu hedder "Mads Michael Mikkelsen"?
Avatar billede thesurfer Nybegynder
29. marts 2008 - 16:17 #2
Du kan bruge noget i stil med:

dim navn, anavne, ini, i

navn = "Mark Mikkelsen_16"
navn = left(navn, instr(navn, "_") - 1) ' indeholder nu kun "Mark Mikkelsen"

anavne = split(navn, " ")

ini = ""
for i = Lbound(anavne) to UBound(anavne)
ini = ini & UCase(left(anavne(i), 1)
next

Det burde få følgende resultat:

Mark Mikkelsen -> MM
Mark Michael Mikkelsen -> MMM
Avatar billede no_doubt Nybegynder
29. marts 2008 - 16:17 #3
Uha, ja...øhh havde ikke tænkt over efternavn.

Men øhh vil gerne nøjes med 2 initialer...
Avatar billede thesurfer Nybegynder
29. marts 2008 - 16:18 #4
Rettelse (manglede et ")"):

dim navn, anavne, ini, i

navn = "Mark Mikkelsen_16"
navn = left(navn, instr(navn, "_") - 1) ' indeholder nu kun "Mark Mikkelsen"

anavne = split(navn, " ")

ini = ""
for i = Lbound(anavne) to UBound(anavne)
ini = ini & UCase(left(anavne(i), 1))
next
Avatar billede no_doubt Nybegynder
29. marts 2008 - 16:19 #5
feltet hedder v1 hvordan får jeg det udskrevet initialerne
Avatar billede thesurfer Nybegynder
29. marts 2008 - 16:21 #6
Ah.. hvis det kun er fornavn og efternavn, kan man gøre sådan her:

navn = v1
navn = left(navn, instr(navn, "_") - 1) ' indeholder nu kun "Mark Mikkelsen"

anavne = split(navn, " ")

if ubound(anavne) = 0 then
' der er kun et fornavn, som f.eks. Björk eller Madonna osv..
ini = UCase(left(anavne(0),1)
else
' der er flere navn, dvs, fornavn og efternavn osv..
ini = UCase(left(anavne(0), 1)) & UCase(left(anavne(ubound(anavne)), 1))
end

response.write "Initialerne for " & navn & " er: " & ini
Avatar billede thesurfer Nybegynder
29. marts 2008 - 16:22 #7
Det var da utroligt.. jeg har glemt endnu en ")".. :-)

Sådan:

navn = v1
navn = left(navn, instr(navn, "_") - 1) ' indeholder nu kun "Mark Mikkelsen"

anavne = split(navn, " ")

if ubound(anavne) = 0 then
' der er kun et fornavn, som f.eks. Björk eller Madonna osv..
ini = UCase(left(anavne(0),1))
else
' der er flere navn, dvs, fornavn og efternavn osv..
ini = UCase(left(anavne(0), 1)) & UCase(left(anavne(ubound(anavne)), 1))
end

response.write "Initialerne for " & navn & " er: " & ini
Avatar billede thesurfer Nybegynder
29. marts 2008 - 16:25 #8
Og så skal der også stå "end if":

navn = v1
navn = left(navn, instr(navn, "_") - 1) ' indeholder nu kun "Mark Mikkelsen"

anavne = split(navn, " ")

if ubound(anavne) = 0 then
' der er kun et fornavn, som f.eks. Björk eller Madonna osv..
ini = UCase(left(anavne(0),1))
else
' der er flere navn, dvs, fornavn og efternavn osv..
ini = UCase(left(anavne(0), 1)) & UCase(left(anavne(ubound(anavne)), 1))
End If

response.write "Initialerne for " & navn & " er: " & ini
Avatar billede thesurfer Nybegynder
29. marts 2008 - 16:26 #9
Jeg har lige fået følgende resultat med koden fra 29/03-2008 16:25:32:

Initialerne for Mark Michael Mikkelsen er: MM
Avatar billede no_doubt Nybegynder
29. marts 2008 - 16:29 #10
Jeg får :

Microsoft VBScript runtime  error '800a0005'

Invalid procedure call or argument: 'left'

/plan/default2.asp, line 175
Avatar billede thesurfer Nybegynder
29. marts 2008 - 16:30 #11
Det er sikker fordi der mangler et "_", som i "_16", hvilket du sagde der ville være.. :-)
Avatar billede thesurfer Nybegynder
29. marts 2008 - 16:31 #12
Rettet - Den checker nu om der er "_" i navnet:

navn = v1
If InStr(navn, "_") Then navn = left(navn, instr(navn, "_") - 1) ' indeholder nu kun "Mark Mikkelsen"

anavne = split(navn, " ")

if ubound(anavne) = 0 then
' der er kun et fornavn, som f.eks. Björk eller Madonna osv..
ini = UCase(left(anavne(0),1))
else
' der er flere navn, dvs, fornavn og efternavn osv..
ini = UCase(left(anavne(0), 1)) & UCase(left(anavne(ubound(anavne)), 1))
End If

response.write "Initialerne for " & navn & " er: " & ini
Avatar billede no_doubt Nybegynder
29. marts 2008 - 16:31 #13
Årh jeg er en tosse...sorry, det virker
Avatar billede thesurfer Nybegynder
29. marts 2008 - 16:32 #14
Jeg smider et svar :-)
Avatar billede thesurfer Nybegynder
29. marts 2008 - 16:40 #15
Takker for points :-)
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