08. april 2003 - 23:17Der er
14 kommentarer og 1 løsning
udskrive 1 char i et loop
Jeg er inde i et repeat loop som udskriver et ord af gangen fra en ordbog. Jeg vil gerne skrive et stort bogstav for hver gang der starter et nyt bogstav...
noget i retning af:
if thechar = "" or thechar <> char 1 of ordbog.Fields.Item("ord").Value then thechar = char 1 of ordbog.Fields.Item("ord").Value Response.Write(thechar)% end if
do while not xxx ' første bogstav char1 = left(str) ' hvis første bogstav er <> første bogstav fra sidste loop sættes 1. bogstav stort. if char1 <> oldchar1 then ' sæt første bogstav til uppercase str = upper(char1) & rigth(char1,len(char1)-1) end if oldchar1 = char1 response.write str loop
Microsoft VBScript runtime error '800a01c2' Wrong number of arguments or invalid property assignment: 'left' /p.asp, line 128
' første bogstav str = ordbog.Fields.Item("ord").Value char1 = left(str) ' hvis første bogstav er <> første bogstav fra sidste loop sættes 1. bogstav stort. if char1 <> oldchar1 then ' sæt første bogstav til uppercase str = upper(char1) & rigth(char1,len(char1)-1) end if oldchar1 = char1 response.write str%>
Nu udskriver den HELE ordet foran hver record! Den skal bare skrive A (én gang) og når B kommer til B (én gang) Kan i hjælpe mig på vej igen?
Nu ser det sådan ud.
repeat....
<% ' første bogstav str = ordbog.Fields.Item("ord").Value char1 = left(str,1) ' hvis første bogstav er <> første bogstav fra sidste loop sættes 1. bogstav stort. if char1 <> oldchar1 then ' sæt første bogstav til uppercase str = ucase(char1) & right(char1,len(char1)-1) end if oldchar1 = char1 response.write str%>
<% ' første bogstav str = ordbog.Fields.Item("ord").Value char1 = left(str,1) ' hvis første bogstav er <> første bogstav fra sidste loop sættes 1. bogstav stort. if char1 <> oldchar1 then ' sæt første bogstav til uppercase str = ucase(char1 else str = "" end if
TAK NU VIRKER DET! Jeg har dog tænkt over om det ikke kunne optimeres lidt på hastiheden. Men dette virkede ikke.
<% ' første bogstav str = ordbog.Fields.Item("ord").Value char1 = left(str,1) ' hvis første bogstav er <> første bogstav fra sidste loop sættes 1. bogstav stort. if char1 <> oldchar1 then ' sæt første bogstav til uppercase str = ucase(char1) response.write "<font size='7'>"&str&"</font><BR><BR>" else str = "" end if
wrong formuliering. Det virker ok men mit optimeringsforslag virker ikke. -> at jeg sætter response.write ind i if sætningen, for at reducere antal reponser.
Helt ærligt så tror jeg ikke det betyder noget med de servere vi har idag.
prøv evt dette: <% ' første bogstav str = ordbog.Fields.Item("ord").Value
char1 = left(str,1) ' hvis første bogstav er <> første bogstav fra sidste loop sættes 1. bogstav stort. if char1 <> oldchar1 then ' sæt første bogstav til uppercase response.write "<font size='7'>" & ucase(char1) & "</font><BR><BR>" else response.write " " end if
oldchar1 = char1 %>
Teoretisk set kan du, for at optimere, fjerne alle kommentarer da serveren jo læser al koden igennem ved afvikling....
Den første: 4/11/2003 8:32:10 Den sidste: 4/11/2003 8:32:11 Du har ret, det er kun 1 sek.
Synes godt om
Ny brugerNybegynder
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.