En del sajter har ju bilder som bokstäver, med andra ord, de har en a.gif som ett A, b-gif som ett B och så vidare för att kunna skriva ut text från en databas och göra vissa textfält coolare.
En kod man kan använda är tex
<%
Function Smiley(text)
text = server.HTMLEncode(text)
text = Replace(text,vbCrLf,"<br>")
text = Replace(text,"a","<img src=""a.gif"">")
osv...
Mina frågor är tre:
1, finns det nåt enklare sätt att göra detta på än att skriva in hela alfabetet?
2, Var kan jag hitta en lista på alla specialkoder för tecken som Å, Ä, Ö och paranteser och liknande?
3, Finns det nåt sätt man kan göra för att radbryta om ett ord är för långt? (som det är nu hamnar alla bokstäver som är för långt på nästa rad, men jag vill att hela det ordet skall radbrytas)
(fast det ska inte vara mellanslag mellan & och t.ex ouml;)
Resten kan jag dessvärre inte svaret på, men tyckte det var bra att du tog upp det :) Jag är också intresserad utav svar på dina frågor :) *Håller tråden under bevakning*
Just nu är jag tyvärr för trött för att "bygga vidare" på Erik Juhlins kod, men jag tror nog att det här ska funka för alla problem. :)
str = "Här kan man ju då skriva en text som är över femtio tecken lång, för att demonstrera hur det fungerar."
str = LCase(str)
For i = 1 To Len(str) Step 50 ' 50 = Antalet bokstäver innan radbyte
strTemp = strTemp & Mid(str, i, 50) & vbCrLf
Next
arr = Split(strTemp, vbCrLf)
For i = 0 To UBound(arr)
For j = 1 To Len(arr(i))
strLetter = Mid(arr(i), j, 1)
Select Case strLetter
Case "å"
strImage = "aring.gif"
Case "ä"
strImage = "auml.gif"
Case "ö"
strImage = "ouml.gif"
Case Else
If Asc(strLetter) => 97 AND Asc(strLetter) <= 122 Then strImage = strLetter & ".gif"
End Select
If strImage <> "" Then
Response.Write("<img src=""" & strImage & """>")
Else
Response.Write(strLetter)
End If
strImage = ""
Next
Response.Write("<br>" & vbCrLf)
Next
Den där koden gör bara om a-ö till bilder, om du vill ha andra tecken är det bara att lägga till dem i Select Case-satsen. Du fattar säkert hur, eller hur? ;)
<span style="white-space: nowrap">
<% str = "Här kan man ju då skriva en text som är över femtio tecken långé|:/=, för att demonstrera hur det fungerar.123456 ()>-+"
str = LCase(str)
For i = 1 To Len(str) Step 32 ' 32 = Antalet bokstäver innan radbyte
strTemp = strTemp & Mid(str, i, 32) & vbCrLf
Next
arr = Split(strTemp, vbCrLf)
For i = 0 To UBound(arr)
For j = 1 To Len(arr(i))
strLetter = Mid(arr(i), j, 1)
Select Case strLetter
Case "å"
strImage = "images/letters/aring.gif"
Case "ä"
strImage = "images/letters/auml.gif"
Case "ö"
strImage = "images/letters/ouml.gif"
Case "!"
strImage = "images/letters/utrop.gif"
Case "?"
strImage = "images/letters/fraga.gif"
Case "#"
strImage = "images/letters/number.gif"
Case "."
strImage = "images/letters/punkt.gif"
Case ","
strImage = "images/letters/komma.gif"
Case "+"
strImage = "images/letters/plus.gif"
Case "-"
strImage = "images/letters/streck.gif"
Case "<"
strImage = "images/letters/hakvanster.gif"
Case ">"
strImage = "images/letters/hakhoger.gif"
Case "("
strImage = "images/letters/parantesvanster.gif"
Case ")"
strImage = "images/letters/paranteshoger.gif"
Case "["
strImage = "images/letters/hakparantesvanster.gif"
Case "]"
strImage = "images/letters/hakparanteshoger.gif"
Case "0"
strImage = "images/letters/0.gif"
Case "1"
strImage = "images/letters/1.gif"
Case "2"
strImage = "images/letters/2.gif"
Case "3"
strImage = "images/letters/3.gif"
Case "4"
strImage = "images/letters/4.gif"
Case "5"
strImage = "images/letters/5.gif"
Case "6"
strImage = "images/letters/6.gif"
Case "7"
strImage = "images/letters/7.gif"
Case "8"
strImage = "images/letters/8.gif"
Case "9"
strImage = "images/letters/9.gif"
Case "é"
strImage = "images/letters/accente.gif"
Case "/"
strImage = "images/letters/snedstreck.gif"
Case "\"
strImage = "images/letters/backslash.gif"
Case "%"
strImage = "images/letters/procent.gif"
Case "*"
strImage = "images/letters/star.gif"
Case "'"
strImage = "images/letters/accent.gif"
Case "="
strImage = "images/letters/likamed.gif"
Case ":"
strImage = "images/letters/kolon.gif"
Case ";"
strImage = "images/letters/semikolon.gif"
Case "|"
strImage = "images/letters/raktstreck.gif"
Case """"
strImage = "images/letters/citat.gif"
Case Else
If Asc(strLetter) => 97 AND Asc(strLetter) <= 122 Then strImage = "images/letters/" & strLetter & ".gif"
End Select
If strImage <> "" Then
Response.Write("<img src=""" & strImage & """>")
Else
Response.Write(strLetter)
End If
strImage = ""
Next
Response.Write("<br>" & vbCrLf)
Next%></span>
Fel: ingen skillnad från tidigare, alltså att den radbryter mitt i ord, och jag vill att hela ord skall vara intakta - ordet "fungerar" skall alltså inte brytas så att det står "funger" på ena raden och "ar" på andra raden...