Avatar billede axkris Nybegynder
06. juli 2004 - 09:14 Der er 7 kommentarer og
2 løsninger

Lav bogstaver til tal?

Hej

Jeg skal bruge et script, som omsætter bogstaver til tal - alt efter bogstavets placering alfabetet - f.eks.:

Fra:
abceg

Til:
12357
Avatar billede vbcoder Nybegynder
06. juli 2004 - 09:26 #1
ethvert tegn er identificeret vha en numerisk værdi i en tabel

denne værdi kan findes vha

<% response.write (asc("a")) %>

lige som ethvert tegn kan udskrives vha denne numeriske værdi

<% response.write (chr(65)) %>

når du har denne værdi kan du fratrække værdien minus 1 og du vil så have bogstavets placering i rækkefølgen

<%
dim ascValue
dim pos

ascValue = asc("a")
pos = ascValue - (ascValue - 1)

response.write ( chr(ascValue) & " har position " & pos & " i alfabetet."
%>

Der gælder nogle andre regler for æøå da de ikke ligger sammen med de øvrige bogstaver.

Nu kan du komme lidt videre
Avatar billede vbcoder Nybegynder
06. juli 2004 - 09:31 #2
du kan også lave en tabel

dim ary(28)

ary(1) = "a"
ary(2) = "b"
ary(3) = "c"
.
.
.
.
ary(26) = "æ"
ary(27) = "ø"
ary(28) = "å"

på den måde får du placeringen i alfabetet med det samme
Avatar billede vbcoder Nybegynder
06. juli 2004 - 09:38 #3
i det øverset eksempel skal værdien der fratrækkes være 64 da A har værdien 65

<% response.write(AlphaPosition("a")) %>

<%
function AlphaPosition(char)

dim ascValue
dim pos
dim tempChar

tempChar = ucase(tempChar)
ascValue = asc(tempChar)
pos = ascValue - 64

AlphaPosition = pos

%>
Avatar billede vbcoder Nybegynder
06. juli 2004 - 09:47 #4
<%
function AlphaPosition(char)
' funktionen returnerer et givent tegns placering
' i et dansk alfabet der har 29 bogstaver
' og ikke 28 som der står i sangen

  dim ascValue
  dim pos
  dim tempChar
 
  tempChar = ucase(Char)
 
  Select case tempChar
  case "Æ"
    pos = 27
  case "Ø"
    pos = 28
  case "Å"
    pos = 29
  case else
    ascValue = asc(tempChar)
    pos = ascValue - 64
  end select
 
  AlphaPosition = pos

end function
%>
Avatar billede axkris Nybegynder
06. juli 2004 - 10:52 #5
Ok, men hvilken af kode-eksemplerne er bedst?
Avatar billede axkris Nybegynder
06. juli 2004 - 10:58 #6
Jeg prøver den sidste ;)
Avatar billede vbcoder Nybegynder
06. juli 2004 - 10:58 #7
tja - den sidste tror jeg

med et loop kan du udskrive alle pos i en streng
Avatar billede vbcoder Nybegynder
06. juli 2004 - 11:11 #8
<%

dim counter
dim testString

testString = "abcdefghijklmnopqrstuvxyzæøå"

for counter = 1 to len(testString)

  response.write(mid(testString,counter,1) & " alfapos " & AlphaPosition(mid(testString,counter,1)) & "<br>")

next

%>
Avatar billede axkris Nybegynder
06. juli 2004 - 11:44 #9
Takker mange gange - det virker jo så smukt :-D
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