Vyzrajte nad řetězcovými proměnnými v ASP – zíkladní funkce

18. července 2000

Při tvorbě webové aplikace se zcela jistě nevyhnete zpracování řetězcových proměnných. V tomto článku se dozvíte, jak vyzrát na řetězce nejenom v ASP, ale také třeba ve Visual Basic Scriptu na straně klienta.

Na úvod malé vysvětlení, co to vlastně řetězce jsou. Řetězec je několik ASCII znaků za sebou. Ve Visual Basic Scriptu se řetězce zapisují do uvozovek. Ve své podstatě je řetězec vlastně cokoliv, co je zapsáno mezi uvozovkami. Zvláštním případem řetězců je prázdný řetězec. Prázdný řetězec je řetězec, který neobsahuje žádný znak. A k čemu tedy řetězce slouží? Do řetězcových proměnných ukládáme textové informace – například e-mailovou adresu atd.

V dnešním článku se dozvíte o základních funkcích pro zpracování řetězců. Znalosti zde získané si v dalších dílech ještě prohloubíte.

Oříznutí řetězce
Při zpracování řetězce, který zadává uživatel, se často stává, že řetězec obsahuje mezery na začátku, na konci nebo dokonce z obou stran. Při zpracování je pak takové formátování řetězce na závadu. A jak si pomoci a řetězec si upravit do požadované podoby?

Od toho tu máme funkce Trim, LTrim a RTrim. Jak je již název funkcí napovídá, funkce LTrim ořízne mezery zleva a RTrim zprava. Funkce Trim ořízne mezery z obou stran:

novyreteyec=Trim(retezec)
novyreteyec=LTrim(retezec)
novyreteyec=RTrim(retezec)

Délka řetězce
Při zpracování řetězce často potřebujeme znát délku zadaného řetězce. Tento požadavek hravě splní funkce Len, která převezme jako parametr řetězec a vrátí jeho délku:

delka=len(retezec)

Příklad 1
V tomto příkladu máte možnost zadat do formuláře text a po odeslání formuláře obdržíte vložený text a délku vloženého textu:

<%if Request.Form(„priklad“)<>1 then%>
<form method=post action=“<%=Request.ServerVariables(„script_name“)%>#priklad1″ id=form1 name=form1>
<INPUT type=“hidden“ name=priklad value=“1″>
Zde vložte text: <INPUT type=“text“ name=text><br>
<INPUT type=“submit“ value=“Submit“ id=submit1 name=submit1>
</form>
<%else
response.write(„Byl zadán řetězec : <b>“&Request.Form(„text“)& „</b> a jeho delka je <b>“&len(Request.Form(„text“))&“</b> znaků“)
end if%>


<%if Request.Form("priklad")<>1 then%>

#priklad1″> Zde vložte text:

<%else response.write("Byl zadán řetězec : „&Request.Form(„text“)& „ a jeho delka je „&len(Request.Form(„text“))&“ znaků“) end if%>


Naplnění řetězce znakem
Visual Basic Script obsahuje funkce String a Space, které slouží k naplnění řetězce určitým počtem znaků či mezer.

retezec=space(pocet)
retezec=string(pocet,znak)

Jak je již z názvů funkcí patrné, funkce Space naplní řetězec zadaným počtem mezer a funkce String naplní řetězec zadaným počtem zadaných znaků.

Kopie řetězce z řetězce
Pro zpracování a analýzy řetězců jsou mimo jiné určeny funkce Mid, Left a Right. Funkce Mid umožňuje z řetězce vykopírovat definovaný počet znaků od libovolné pozice:

retezec=mid(analazovany_retezec,odkud[,delka])

Jak jste si jistě všichni, všimli parametr delka funkce Mid je nepovinný. Pokud tento parametr není uveden, funkce Mid vrací řetězec od zadané pozice až do konce analyzovaného řetězce.

Funkce Left vrací řetězec o zadané délce od počátku analyzovaného řetězce.

retezec=Left(analazovany_retezec,delka)

Funkce Right vrací řetězec o zadané délce od konce analyzovaného řetězce.

retezec=Right(analazovany_retezec,delka)

Funkce, která spočítá počet mezer v řetězci
Na závěr si ukážeme, jak využít funkce popsané v tomto článku k analýze a modifikaci zadaného řetězce. Pomocí funkce Len, Mid a za asistence cyklu For-Next postupně projdeme celým řetězcem a spočítáme mezery v řetězci:

function pocetmezer(retezec)
   dim delka,pozice,mezery
   delka = len(retezec)
   for pozice = 1 to delka
      if mid(retezec,pozice,1) = chr(32) then
         mezery = mezery+1
      end if
   next
   pocetmezer = mezery
end function
Response.Write (PocetMezer(„Active Server Pages and Visual Basic Scripting“))


<% function pocetmezer(retezec) dim delka,pozice,mezery delka = len(retezec) for pozice = 1 to delka if mid(retezec,pozice,1) = chr(32) then mezery = mezery+1 end if next pocetmezer = mezery end function Response.Write (PocetMezer("Active Server Pages and Visual Basic Scripting")) %>


Jak sami vidíte, funkce spočítá mezery a vrátí jejich počet. Nevěříte-li, zkuste si sami zadat text do formuláře.


<%if Request.Form("priklad")<>2 then%>

#priklad2″ id=form1 name=form1> Zde vložte text:

<%else response.write("Byl zadán řetězec : „&Request.Form(„text“)& „ a obsahuje „&pocetmezer(Request.Form(„text“))&“ mezer“) end if%>


A to je pro dnešek vše. A co nás čeká příště? Naučíme se hledat zadaný řetězec uvnitř zdrojového řetězce a dozvíte se také jak v řetězci nahradit řetězec jiným a také se naučíme odstranit zbytečné mezery z textu.

Starší komentáře ke článku

Pokud máte zájem o starší komentáře k tomuto článku, naleznete je zde.

Štítky: Články

Mohlo by vás také zajímat

Nejnovější

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *