Avatar billede zetn Nybegynder
10. april 2006 - 19:37 Der er 14 kommentarer

Store begyndelses bogstaver

Hej, jeg er ved at lave et system, hvor det indtastede navn skal begynde med stort. Det er både fornavn og efternavn i ét felt.

Denne kode virker kun på fornavnet:

strTemp = "fornavn efternavn"
strTemp = ucase(left(strTemp,1)) & lcase(right(strTemp,len(strTemp)-1))

Response.write strTemp

Nogen der kan hjælpe?
Avatar billede cyberkox Nybegynder
10. april 2006 - 20:09 #1
Du ka jo splitte fornavn og efternavn vha af split:

strTemp = "fornavn efternavn"

navn = split(strTemp, " ")

strTemp = ucase(left(navn(0),1)) &lcase(right(navn(0),len(navn(0))-1))&" "& ucase(left(navn(1),1)) &lcase(right(navn(1),len(navn(1))-1))
response.write strTemp
Avatar billede cyberkox Nybegynder
10. april 2006 - 20:14 #2
Hvis der så fx findes et mellemnavn, ka du jo bare tilføje dette i den strTemp:

strTemp = ucase(left(navn(0),1)) &lcase(right(navn(0),len(navn(0))-1))&" "& ucase(left(navn(1),1)) &lcase(right(navn(2),len(navn(2))-1))&" "& ucase(left(navn(2),1)) &lcase(right(navn(2),len(navn(2))-1))
Avatar billede eagleeye Praktikant
10. april 2006 - 20:15 #3
Er det til udskrift der skal stå med stort eller skal det gemmes med stort?

<% str = "fornavn efternavn"  %>

<div style="text-transform: capitalize"><%=str%></div>
Avatar billede eagleeye Praktikant
10. april 2006 - 20:16 #4
Hvis det skal rettes og gemmes vil et spilt på mellemrum og så loop igennem det array så alle navne får stort begyndelse bogstav om der er 2,3,4 eller flere.
Avatar billede zetn Nybegynder
10. april 2006 - 20:17 #5
Hej cyber,

Her er det så bare nødvendigt, at efternavnet SKAL skrives ind. Men hvis en bruger glemmer dette kommer der fejl.

Jeg har i forvejen denne kode:

Function StorBogstav(Streng)
name = Streng
    If name <> "" then
    Sname = split(name," ")
    for i=0 to ubound(Sname)
    SMellemrum=SMellemrum+1
    fBNname = left(ucase(Sname(i)),1)
    nBNname = len(Sname(i))-1
    aBNname = right(lcase(Sname(i)),nBNname)
    StorBogstav = StorBogstav & fBNname & aBNname & " "
next
    StorBogstav = RTrim(StorBogstav)
end if
End Function

som egentlig virker fint, men af en eller anden underlig årsag kommer denne fejl nogle gange. Så hvis man fx prøver at indtaste det samme igen, virker det typisk.

The page cannot be displayed
There is a problem with the page you are trying to reach and it cannot be displayed.

--------------------------------------------------------------------------------

Please try the following:

Click the Refresh button, or try again later.

Open the filserver home page, and then look for links to the information you want.
HTTP 500.100 - Internal Server Error - ASP error
Internet Information Services

--------------------------------------------------------------------------------

Technical Information (for support personnel)

Error Type:
Microsoft VBScript runtime (0x800A0005)
Invalid procedure call or argument: 'right'
new_order.asp, line 32


Browser Type:
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)

Page:
POST 0 bytes to new_order.asp

Linien: aBNname = right(lcase(Sname(i)),nBNname)
Avatar billede zetn Nybegynder
10. april 2006 - 20:17 #6
Det er kun ét navn ad gangen.
Avatar billede zetn Nybegynder
10. april 2006 - 20:22 #7
Man kunne vel lave det sådan her:

strTemp = "fornaAavn sasSdsa"

navn = split(strTemp, " ")

for i=0 to ubound(navn)

strTemp = ucase(left(navn(i),1)) &lcase(right(navn(i),len(navn(i))-1)) & "&nbsp;"

response.write strTemp
next
Avatar billede eagleeye Praktikant
10. april 2006 - 20:25 #8
Jesp lige rettet lidt til:


strTemp = "fornaAavn sasSdsa"
navn = split(strTemp, " ")
strTemp = ""
for i=0 to ubound(navn)
  strTemp = strTemp & ucase(left(navn(i),1)) &lcase(right(navn(i),len(navn(i))-1)) & " "
next
strTemp = trim(strTemp)
response.write strTemp
Avatar billede zetn Nybegynder
10. april 2006 - 20:33 #9
Tak for hjælpen, det virker!

Smid et svar...
Avatar billede zetn Nybegynder
10. april 2006 - 20:38 #10
Nå, får samme problem nu. Det virker fint på Internettet, men når det testet på det netværk hvor det skal køre, får jeg følgende fejl:

Error Type:
Microsoft VBScript runtime (0x800A0005)
Invalid procedure call or argument: 'right'
new_order.asp, line 12


:strTemp = strTemp & ucase(left(navn(i),1)) &lcase(right(navn(i),len(navn(i))-1)) & " "

Det tyder på samme fejl som ved den anden kode. Hvad kan dette skyldes?
Avatar billede eagleeye Praktikant
10. april 2006 - 21:14 #11
Det kunne tyde på right bliver kaldet med en negativ værdi eller 0. Det kan være fordi den ikke får navnet rigtigt ind i strTemp.
Avatar billede zetn Nybegynder
04. maj 2006 - 19:28 #12
Hej igen, undskyld den lange svartid.

Får stadigvæk fejlen en gang i mellem. Der kan godt gå et stykke tid, før den kommer. Kan det have noget at gøre med, at der sidder ca. 20 brugere der benytter systemet?

Koden hvor fejlen kommer:

'Retter til stort begyndelses bogstav
strTemp = replace(Request.Form("name"),"'","''")
navn = split(strTemp, " ")
strTemp = ""
for i=0 to ubound(navn)
  strTemp = strTemp & ucase(left(navn(i),1)) &lcase(right(navn(i),len(navn(i))-1)) & " "
next
strTemp = trim(strTemp)

strAdr = replace(Request.Form("street"),"'","''")
navn = split(strAdr, " ")
strAdr = ""
for i=0 to ubound(navn)
  strAdr = strAdr & ucase(left(navn(i),1)) &lcase(right(navn(i),len(navn(i))-1)) & " "
next
strAdr = trim(strAdr)

strBy = replace(Request.Form("city"),"'","''")
navn = split(strBy, " ")
strBy = ""
for i=0 to ubound(navn)
  strBy = strBy & ucase(left(navn(i),1)) &lcase(right(navn(i),len(navn(i))-1)) & " "
next
strBy = trim(strBy)


strsBy = replace(Request.Form("scity"),"'","''")
navn = split(strsBy, " ")
strsBy = ""
for i=0 to ubound(navn)
  strsBy = strsBy & ucase(left(navn(i),1)) &lcase(right(navn(i),len(navn(i))-1)) & " "
next
strsBy = trim(strsBy)


'Gemmer inputs i sessions

Session("name")        = strTemp
Session("street")    = strAdr
Session("number")    = replace(Request.Form("number"),"'","''")
Session("letter")    = replace(Request.Form("letter"),"'","''")
Session("floor")    = replace(Request.Form("floor"),"'","''")
Session("side")        = replace(Request.Form("side"),"'","''")
Session("zip_code") = replace(Request.Form("zip_code"),"'","''")
Session("city")        = strBy
Session("scity")    = strsBy
Session("phone")    = replace(Request.Form("phone"),"'","''")
Session("amount")    = replace(Request.Form("amount"),"'","''")

Nogen ide?

Mvh.
Jacob
Avatar billede eagleeye Praktikant
04. maj 2006 - 21:11 #13
Fejlen kommer den ikke hvis en person skriver et bogstav som mellemnavn eks:

Anders A Andersen


Så vil:  len(navn(i))-1  give 0.
Avatar billede zetn Nybegynder
05. maj 2006 - 12:26 #14
Hej igen,

Fejlen kan komme af helt alm. navne som anders andersen.
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