Acronis

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.

 
ABSL MP
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.

 
GFI Unlimited
 
 
woo jaw demo hz