Avatar billede pezzo Nybegynder
14. september 2003 - 11:51 Der er 12 kommentarer og
1 løsning

Opdeling af adresse

Hej.

Hvis jeg nu har en adresse som eks. de to her:
Usserød Kongevej 85
Motorvejen 54

Jeg vil gerne have at den kan finde ud af at vejen hedder "Motorvejen" og det er nr. "54" - men skal den også gøre ved den anden - hvordan kan man gøde det ?
Avatar billede nielle Nybegynder
14. september 2003 - 12:07 #1
Pos = InStrRev(Adresse, " ")  ' Find det sidste blanktegn
Vej = Left(Adresse, Pos-1)
Nr = Right(Adresse, Len(Adresse)-Pos)
Avatar billede nielle Nybegynder
14. september 2003 - 12:09 #2
...men hvis du også gerne vil tage hensyn til at der kan være noget efter nummeret:

Usserød Kongevej 85 1th

- så dur denne metode desværre ikke.
Avatar billede eagleeye Praktikant
14. september 2003 - 12:30 #3
jeps da hus nummer faktsik både kan indeholde tal og bogstaver og være ganske lang:
Motorvejen 54B opgang 3A vær.5 th

Så mna man må lave noget som søger efter hvor husnr starter..:


str = "Motorvejen 54"
for i = 1 to len(str)
  if isnumeric(mid(str,i,1)) then
    husnrindex = i
    exit for
  end if
next
adr = trim(Left(str,husnrindex-1))
husnr = trim(Mid(str,husnrindex))

Response.Write adr & "<br>"
Response.Write husnr & "<br>"
Avatar billede nielle Nybegynder
14. september 2003 - 12:43 #4
Den "rigtige" løsning må nu være noget med et regulært udtryk. Jeg har desværre ikke lige tid til at kigge på det nu her i dag.
Avatar billede eagleeye Praktikant
14. september 2003 - 13:03 #5
Hvorfor mener du det er mere "rigtigt"?

Du kan bruge regular expression sådan her, den sætte ;; inde før husnumeret så man kan lave en split på strengen.:


Function deladr(ByVal str)
  if isNull(str) then Exit Function
  dim ReqEx
  Set RegEx = New RegExp
  RegEx.IgnoreCase = true
  regEx.Pattern = "^([a-zæøå\s]+)(\d+)([a-zæøå\d\s]*)"
  deladr = RegEx.Replace(str, "$1;;$2$3")
End Function

str = "Usserød Kongevej 85"
str = deladr(str)
adrArr = Split(str,";;")

adr = trim(adrArr(0))
husnr = trim(adrArr(1))
Response.Write adr & "<br>"
Response.Write husnr & "<br>"
Avatar billede pezzo Nybegynder
14. september 2003 - 13:09 #6
eagleeye > Hvis jeg bruger den du har der skriver den; "Type mismatch: 'RegEx.replace' "

Hvad betyder det`??
Avatar billede pezzo Nybegynder
14. september 2003 - 13:12 #7
Ups min fejl...
Avatar billede eagleeye Praktikant
14. september 2003 - 13:13 #8
ok :)
Avatar billede pezzo Nybegynder
14. september 2003 - 13:15 #9
Hvis jeg har adressen "Händelsvej 10 1.th" skriver den:

Subscript out of range: '[number: 1]'
Avatar billede pezzo Nybegynder
14. september 2003 - 13:15 #10
eagleeye > bruger den lige nu ihvertfald.. så kommer den med den fejl
Avatar billede eagleeye Praktikant
14. september 2003 - 13:22 #11
arh prøv lige at lave denne om:

regEx.Pattern = "^([a-zæøå\s]+)(\d+)([a-zæøå\d\s]*)"

Til:

regEx.Pattern = "([^\d]+)(\d+)([a-zæøå\d\s]*)"
Avatar billede eagleeye Praktikant
14. september 2003 - 13:23 #12
Faktisk så lav den om til:

regEx.Pattern = "([^\d]+)(\d+)(.*)"
Avatar billede pezzo Nybegynder
14. september 2003 - 13:24 #13
KANON DET VIRKER BARE NU :)

Tak....
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

Seneste spørgsmål Seneste aktivitet
I går 21:00 Libre Office Impress Af Frank i Andre styresystemer
I går 11:47 VB script Af Jenshentze i Word
I går 11:21 Popup ved opstart Af mort1 i Windows
04/0918:50 Slet lokal konto Af ErikHg i Windows
04/0916:05 Ændre tal i en celle Af xvid i Excel