VISUAL BASIC Práce s řetězci Použitá literatura: Kvoch: Visual Basic 4
CO JE TO ŘETĚZEC Datový typ String Řetězec libovolných znaků ASCII tabulky 0-127 - standardní ASCII 128 - 255 - v závislosti na národním prostředí Dva typy řetězců: řetězec variabilní délky řetězec pevné délky
- řetězec variabilní délky String (dim jmeno as string) max. asi 65 000 znaků u 16bitové aplikace (216, asi 16 stran textu) max. 2 miliony znaků u 32bitové aplikace lépe využívá paměť než řetězec pevné délky
- řetězec pevné délky String *n (dim jmeno as string*20) n je celé kladné číslo od 1 do asi 65 000 Při kratším řetězci je doplněno mezerami. Vhodné při zpracovávání databází - položky stejné délky. Zabírá paměť pořád stejnou, i když v něm nic není. Rychlejší manipulace než u variabilního řetězce.
Zápis řetězců Řetězce se zapisují do uvozovek Dim st as string .... st = "Ahoj"
Řetězcové operátory Výsledek operace řetězcového operátoru je řetězec (hodnota typu řetězec). Zřetězení (+) Zřetězení (&)
Zřetězení (+) zřetězení řetězců (řetězcových proměnných). "abc" + "def" dá výsledek "abcdef"
Zřetězení (&) spojení i jiných operandů Dim cislo as Integer Dim msg As string ..... cislo = 10 msg = "počet=" print msg, cislo Vytiskne: počet= 10
Řetězcové funkce - obecně funkce manipulující s hodnotami řetězcových datových typů přípona $ znamená, že výsledná hodnota bude typu string.
Řetězcové funkce - String$(počet, kód) String$(počet,řetězec) vrací řetězec, který obsahuje počet znaků s ASCII kódem kód. String$(5,65) vrátí "AAAAA" String$(počet,řetězec) vrací řetězec, který je složen z počet prvního znaku řetězce řetězec. String$(5,"Beta") vrátí "BBBBB" Space$(počet) vrací řetězec s počtem počet mezer.
Řetězcové funkce - Left$(řetězec,délka) Right$(řetězec,délka) Mid$(řetězec,začátek[,délka]) vrací části řetězce řetězec o délce délka. Left zleva, Right zprava, Mid zprostředka od začátek Left$("abcdef",3) vrátí "abc" Right$("abcdef",4) vrátí "cdef" Mid$("abcdef",3,2) vrátí "cd" Mid$("abcdef",3) vrátí "cdef"
Ořezávání Len(řetězec) - vrací délku řetězce LTrim$, RTrim$, Trim Len("abcdef") vrátí 6 LTrim$, RTrim$, Trim odřezává levé, pravé, obojí mezery v řetězci Ltrim$(" abc ") vrátí "abc " Rtrim$(" abc ") vrátí " abc" Trim(" abc ") vrátí "abc"
Převod na malá/velká písmena Lcase$(řetězec), Ucase$(řetězec) vrátí řetězec převedený na malá, velká písmena respektuje národní prostředí nastavené ve Windows jmeno = "František Vomáčka" Lcase$(jmeno) - vrátí "františek vomáčka" Ucase$(jmeno) - vrátí "FRANTIŠEK VOMÁČKA"
Konverzní funkce 1/3 Konverze mezi jednotlivými datovými typy Asc(řetězec) vrací numerickou hodnotu ASCII kódu prvního znaku řetězce Chr$(kód) vrací jednoznakový řetězec podle ASCII tabulky
Konverzní funkce 2/3 Val(řetězec) konvertuje hodnoty řetězcového typu (řetězec číslic) na hodnoty numerického typu povoleny jsou mezery a prefixy soustav vyhodnocení vstupního řetězce končí ve chvíli, kdy se narazí na první nečíselný znak.
Konverzní funkce 3/3 Str$(výraz) konvertuje numerický výraz na řetězec znaků (číslic) návratový řetězec začín mezerou - pokud je výraz kladný znaménkem "-" - pokud je výraz záporný vrácený řetězec je max 17 znaků dlouhý, včetně znaménka a desetinné tečky.
Zadání úlohy Sestavte program na vyhodnocení rozhlasových hitparád. Hlasování posluchačů probíhá prostřednictvím SMS zpráv. V naší úloze to bude zapsání do TextBoxu. Posluchači dávají hlas písničce, která se jim líbí, prostřednictvím SMS ve tvaru FPOP číslo -20 písniček v hitparádě CZ12 číslo -12 písniček v hitparádě Výsledkem programu bude tabulka, která vypíše čísla písniček a počet jim došlých hlasů