Katalog ASP odkaz∙: Hledßte informace o ASP? Zkuste nßÜ nov² katalog odkaz∙ na ASP weby. Vφce zde...
TextLink.cz
VyÜlo: 22.11.2000 Rubrika: ASP - ZdrojovΘ k≤dy

Jak p°evΘst text do jeho grafickΘ podoby?
V ASP lze p°evΘst jednotlivΘ znaky textu do obrßzk∙, ukß₧eme jak je to jednoduchΘ. Vφce v Φlßnku...

Jist∞ jste se ji₧ setkali se situacφ, kdy bylo pot°eba p°evΘst n∞kolik znak∙(Φφsel) z textovΘ podoby do grafickΘ, kterß zajistφ jednotnΘ zobrazenφ vÜem nßvÜt∞vnφk∙m.

Pro tento p°φpad jsem vytvo°il script, kter² si naΦte data ke zpracovßnφ a potΘ je znak po znaku p°elo₧φ do upravenΘ podoby, kterß zajistφ zobrazenφ grafickou formou.

Tento zdrojov² k≤d zajistφ v²Üe zmi≥ovanΘ funkce(translate.asp):

<%
Dim strText, strAktualText, intPozice, strDelkaText, intVyskaObrazku, intSirkaObrazku
intPozice = 1

strText = Request.QueryString("strText")
If strText = "" Then

strText = "abcdefghijklmnopqrstuvwxyz1234567890"

End if

strDelkaText = Len(strText)
intVyskaObrazku = 10
intSirkaObrazku = 10

For intPozice = 1 to strDelkaText

strAktualText = Mid(strText, intPozice, 1)
If strAktualText = " " Then

strAktualText = "Mezera"

End If

Response.Write("<img src=" & strAktualText & ".gif height=" & intVyskaObrazku & " width=" & intSirkaObrazku & " alt=" & strAktualText &">")

Next
%>

Jak to funguje?

Je to velice jednoduchΘ. Na zaΦßtku se pomocφ Dim nadefinujφ prom∞nnΘ. Nßsleduje p°evzetφ obsahu hlaviΦky strText.(╪et∞zec, kter² se zadß jako hodnota za nazev_stranky.asp?strText=). DalÜφm krokem je otestovßnφ, zda-li v °et∞zci strText n∞co je. Pokud ano, p°eskoΦφ se lokßlnφ pln∞nφ. Jestli₧e ne, naplnφ se °ez∞zec strText defaultnφ hodnotou.

Funkce Len zjistφ dΘlku °et∞zce a ulo₧φ jφ do prom∞nnΘ strDelkaText. DalÜφ °ßdky nadefinujφ v²slednou v²Üku a Üφ°ku obrßzku. KonkrΘtn∞ se jednß o prom∞nnΘ intVyskaObrazku a intSirkaObrazku.

DalÜφ krok je cyklus For, kter² b∞hß do tΘ doby, ne₧ nastane konec °et∞zce(dΘlka), kterou jsme si ulo₧ili do strDelkaText.

Nynφ se dostßvßme k nejhodnotn∞jÜφ Φßsti k≤du. Jednß se o p°φkaz Mid, kter² vy°φzne z °et∞zce strText od pozice intPozice jeden znak a v²sledek ulo₧φ do prom∞nnΘ strAktualText.

Poslendφm krokem je vypsßnφ v²sledku, kter² jsme si zajistili. V tomto p°φpad∞ nßm poslou₧φ p°φkaz Response.Write.

Ukßzkov² v²stup

netdayMezera00415

Tento obrßzek vygenerovala tato strßnka.

Jak to zdokonalit?

Nap°φklad vytvo°it si jistou nadstavbu, kterΘ zadßte °et∞zec a z druhΘ strany dostanete grafickou podobu.

(soubor Default.asp)

<p>
<form action="translate.asp" method="GET">
Text: <input type="text" name="strText" size="30">
<input type="submit" value="Odeslat">
</form>
</p>
<p>
Text m∙₧e obsahovat tyto znaky:<br>
abcdefghijklmnopqrstuvwxyz1234567890 a mezera<br>
Ostatnφ znaky budou Üpatn∞ interpretovßny.
</p>

Toto je jednoduch² formulß° s jednφm okΘnkem strText. Po stisknutφ tlaΦφtka Odeslat se pomocφ metody GET p°enese jeho obsah na strßnku translate.asp, kterou jsme si popsali v²Üe(provede vlastnφ p°evod do grafickΘ podoby).

Kde toto vyu₧φt?

Mo₧nostφ se nask²tß opravdu velkΘ mno₧stvφ.

ZajistΘ se tento zp∙sob hodφ jako grafickΘ poΦφtadlo. Dßle se Vßm p°edchozφ °ßdky budou hodit p°i r∙zn²ch nadpisech, kterΘ pot°ebujete Φasto m∞nit(nep°φklad generovat z databßze) a nemß tedy cenu je neustßle vytvß°et znova. PotΘ je tato funkce neoceniteln²m pomocnφkem.

Kde si to zkusit?

VeÜkerΘ p°φklady naleznete na http://www.netday.cz/web/examples/imgtext/.

ZdrojovΘ k≤dy jsou na sta₧enφ zde.

Co by se na tom dalo zlepÜovat?

Tuto verzi, kterou jsem Vßm zde ukßzal je vhodnΘ p°ed dalÜφm pou₧itφm jeÜt∞ trochu poupravit. Mßm namysli p°edevÜφm fonty(obrßzky), kterΘ se zobrazujφ.

Dßle nap°φklad dopln∞nφ znak∙ jako -,%&#$ a podobn∞.

DalÜφ vyleopÜenφ je zjednoduÜenφ vÜech °ßdk∙ a vlo₧enφ do funkce ImgText.

<%
Function ImgText(strText)
Dim strAktualText, intPozice, strDelkaText, intVyskaObrazku, intSirkaObrazku
intPozice = 1

If strText = "" Then

strText = "abcdefghijklmnopqrstuvwxyz1234567890"

End if

strDelkaText = Len(strText)
intVyskaObrazku = 10
intSirkaObrazku = 10

For intPozice = 1 to strDelkaText


strAktualText = Mid(strText, intPozice, 1)
If strAktualText = " " Then

strAktualText = "Mezera"

End If

Response.Write("<img src=" & strAktualText & ".gif height=" & intVyskaObrazku & " width=" & intSirkaObrazku & " alt=" & strAktualText &">")

Next

End Function
%>

<%=ImgText("netday")%>

JakΘ mß toto °eÜenφ v²hody? Funkci ImgText() vlo₧φte na zaΦßtek strßnky a kdykoliv v jejφm pr∙b∞hu m∙₧ete tuto funkci zavolat pomocφ <%=ImgText(Text)%>

JeÜt∞ Vßm nenφ n∞co jasnΘ? Zkuste se zeptat v komentß°φch k Φlßnku.

Zden∞k Cendra
ceskywap@ceskywap.cz



   Souvisejφcφ Φlßnky
TextLink.cz