Programovanie makier v LibreOffice: Textové reťazce (1)

LibreOffice V tomto článku sa budeme venovať základnej práci s textovými reťazcami. Najprv sa pozrieme na prevod znaku na číslo a obrátene. V druhej časti článku sa zahryzneme do vlastnosti textových reťazcov a ukážeme si na túto tému zaujímave makra.  

Číselná hodnota znakov

Každý znak má číselnú hodnotu v ACII tabuľke. Napríklad znak ačíselnú hodnotu 97.

Jazyk Basic obsahuje dva funkcie, ktoré zabezpečujú prevod medzi znakom a číselnou hodnotou.

1. príklad: Využitie funkcii pre prevod medzi znakom a číselnou hodnotou.

Sub prevod   REM začiatok procedúry
znak = InputBox("Zadajte znak")   REM vstup od užívateľa
cislo = Asc(znak)   REM prevod zo znaku do číselnej podoby
Print "Číselná hodnota zadaného znaku: "&cislo   REM vypísanie na obrazovku
cislo = InputBox("Zadajte číselnú hodnotu znaku")   REM vstup od užívateľa
znak = Chr(cislo)   REM prevod z číselného podoby do znaku
Print "Zadaná číselná hodnota je znak: "&znak  REM vypísanie na obrazovku
End Sub   REM koniec procedúry

Výsledok:

Zadáme znak Zadáme znak

Prevod na číselnú hodnotu Prevod na číselnú hodnotu

03Okno.Zadáme číselnú hodnotu Zadáme číselnú hodnotu

Prevod na znak Prevod na znak

Rozbor programu:

Funkcia Asc prevedie znak na číselnú hodnotu, Funkcia Chr prevedie číselnú hodnotu na znak.

2. príklad: Ešte raz funkcia Chr

Sub prevod   REM začiatok procedúry
cislo1 = InputBox("Zadajte prvé číslo")   REM prvý vstup od užívateľa
cislo2 = InputBox("Zadajte druhé číslo")   REM druhý vstup od užívateľa
Print "Zadané prvé číslo: " & cislo1 & Chr(09) & "Zadane druhe číslo: "& cislo2   REM experiment s funkciou Chr 
End Sub   REM koniec procedúry

Výsledok:

Zadáme prvé číslo Zadáme prvé číslo

Zadáme druhé číslo Zadáme druhé číslo

Výsledok Výsledok

Rozbor makra:

Makro vypíše na obrazovku najprv prvý textový reťazec, potom funkcia Chr premení hodnotu 09 na znak, ktorý sa vykoná. Konkrétne v ASCII tabuľke číslo 09 má hodnotu klávesa Tab.

Vlastnosti textových reťazcov

Poďme si urobiť makro, ktoré zistí pár informácii o textovom reťazci.

3. príklad: Makro, ktoré zistí niektoré informácie o reťazci

Sub vlastnostiTextovehoRetazca   REM začiatok procedúry
Text = InputBox("Zadajte text")   REM vstup 
DlzkaRetazca = Len(Text)   REM využitie funkcie Len
MsgBox "Dlzka retazca je: " & DlzkaRetazca   REM výpis
PrvyZnak = Left(Text, 1)   REM využitie funkcie Left
MsgBox "Prvy znak v reťazci z ľava je: "& PrvyZnak
PosledneZnaky = Right(Text, 3)   REM využitie funkcie Right
MsgBox "Posledne tri znaky v reťazci sú: "& PosledneZnaky
TretiZnak = Mid(Text, 3, 1)   REM využitie funkcie Mid
MsgBox "Treti znak v retazci je: " & TretiZnak
ciselnaHodnota = Val(Text)   REM využitie funkcie Val
MsgBox "Ciselna hodnota textu je: " & ciselnaHodnota
End Sub   REM koniec procedúry

Výsledok:

Zadanie textového reťazcami Zadanie textového reťazcami

Veľkosť textového reťazca Veľkosť textového reťazca

Vykonanie príkazu Left Vykonanie príkazu Left

Ďalej už nechám na vás.

Rozbor makra:

V makre využívame funkcie Left, Right, Mid a Val. Funkcia Left vyhľadáva znaky v reťazci z ľava.

Zoberme si z makra Left(Text, 1), čiže prvý parameter označuje reťazec, v ktorom bude funkcia vyhľadávať znaky a druhý parameter je číslo, ktoré udáva počet znakov, ktoré funkcia Left označí.

Funkcia Right označuje znaky sprava. Význam parametrov funkcie je rovnaký ako u funkcii Left.

Prvý parameter vo funkcii Mid je vstupný reťazec. Druhý parameter je poloha prvého znaku, odkiaľ má začať funkcia označovať (ale pozor, počítanie je z ľava!). Tretím parametrom funkcie Mid je počet znakov, ktoré chceme označiť.

Veľmi zaujímavá je i funkcia Val. Ona vracia číselnú hodnotu v texte. Čo je ale záludne na tejto funkcii si ukážeme na príklade:

4. príklad: Priblíženie funkčnosti funkcie Val

Sub funkciaVal   REM začiatok procedúry
MsgBox Val("Dnes je krásne horúco")   REM experimenty s funkciou Val
MsgBox Val("25 krásnych rokov spolu")
MsgBox Val("30 litrov vody a 15 kilo muky")
End Sub   REM koniec procedúry

Výsledok:

Prvý výsledok Prvý výsledok

Druhý výsledok Druhý výsledok

Tretí výsledok Tretí výsledok

Rozbor makra:

V prvom riadku máme MsgBox Val("Dnes je krásne horúco") a výsledok je nula. Funkcia Val začína z ľava a aby vrátila číslo, musia byť prvé znaky číselne.

V druhom riadku máme MsgBox Val("25 krásnych rokov spolu") a výsledkom je číslo 25. V treťom riadku máme MsgBox Val("30 litrov vody a 15 kilo muky") a zobrazí sa len číslo 30! Akonáhle, skonči číslo, ďalej funkcia netestuje. V tomto prípade dôjde po číslovku 0 a keďže ďalším znakom je medzerník, ukončí sa funkcia.

(Jako ve škole) Průměr: 4,00 | Hodnotilo: 8
 

Přidat názor

 

Nejsou podporovány žádné značky, komentáře jsou jen čistě textové. Více o diskuzích najdete v nápovědě. Diskuzi můžete sledovat pomocí RSS kanálu.

 
EDU Trainings
Eduard Boldižár

Eduard Boldižár

Som redaktorom stránky astrotech.cz. Mám 24 rokov. Čas trávim v IT škole. Medzi moje záľuby patrí astronómia, sci-fi literatúra a programovanie.

 

Public Relations

IPv4 zastarává, i tak si však zaslouží kvalitní zabezpečení

Znáte souvislost mezi doménami a typickými IP adresami? Není od věci si uvědomit, že zatímco domény jsou určeny pro zjednodušení hledání webové stránky na internetu, IP adresy slouží primárně pro výpočetní techniku, konkrétně pro přesné vyhledání konkrétního serveru nebo počítače.

Pokračování ...


AIMTEC
SAM v kostce 2019
 
 
woo jaw demo hz