Archív Inet.sk Pôvodný autor: Július Pastierik
10. 11. 2005 o 00:00 3801x

Makrá v OpenOffice.org IV. – vymazávanie medzier

V dnešnom dieli nášho seriálu o makrách v OpenOffice.org si naprogramujeme prvú verziu makra pre vymazávanie viacnásobných medzier. Toto makro bude základom pre veľa ďalších, pomocou ktorých budeme formátovať dokument.
Makrá v OpenOffice.org IV. – vymazávanie medzier

Určite sa aj vám stalo, že pri písaní zadáte omylom viac medzier (a vzhľadom na to, že osobne píšem veľmi veľa, môžem iba potvrdiť, že je to naozaj častý preklep). Tento problém sa síce dá riešiť aj pomocou funkcie „Nájsť a nahradiť“, ale ak píšete veľa, je to pomerne nepraktické. Preto si naprogramujeme makro, ktoré to bude robiť automaticky za nás. Zároveň si na tomto makre postupne ukážeme rôzne funkcie programovacieho jazyka StarOffice Basic.

Programujeme v StarOffice Basic

Nové makrá môžeme do OpenOffice.org vkladať priamo tak, že si už známym postupom, o ktorom sme písali minule (menu „Nástroje-Makrá-Usporiadať makrá…-OpenOffice.org Basic…“) otvoríme dialógové okno pre správu makier. Tu prejdeme na modul, kde chceme vložiť naše makro a stlačíme tlačidlo „Upraviť“.

Štandardne v každom module vytvára na začiatku OpenOffice.org prázdne makro s názvom „Main“:

REM ***** BASIC *****

Sub Main

End Sub 



S kľudným svedomím môžeme toto makro vymazať, pretože ho nebudeme používať. Teraz napíšeme nasledovné makro s tým, že poznámky a prázdne riadky, samozrejme, nemusíme písať, sú uvedené iba pre lepšiu zrozumiteľnosť a prehľadnosť:

sub Dvojita_Medzera
rem makro zameni dvojitu medzeru za jednoduchu

dim Dokument, Vymena as object ' Objekty pre spristupnenie aktualneho dokumentu a pre vymeny
dim Kolko as Long ' Pocet vymien

Dokument=ThisComponent ' Priradenie aktualneho dokumentu

Vymena=Dokument.createReplaceDescriptor() ' Vytvorime objekt pre zamenu

Vymena.SearchString="  " ' Budeme vyhladavat dve medzery
Vymena.ReplaceString=" " ' a zamienat ich za jednu

Kolko=Dokument.replaceAll(Vymena) ' Prevedieme vymenu. Metoda ReplaceAll vracia pocet vymien

rem vypiseme si pocet zamien
msgbox("Nahradených "+Kolko+" dvojnasobnych medzier.",0,"Viacnásobné medzery")
end sub 



Prejdeme do pôvodného dokumentu (nemusíme ukončovať modul „Basic“, stačí, ak prepneme iba okno), kde máme na odskúšanie napísaný text s viacnásobnými medzerami a spustíme vytvorené makro „Dvojita_Medzera“. Ak sme všetko naprogramovali správne, na konci sa dozvieme počet prevedených zámen dvojitých medzier.  

V prípade bezchybného chodu zatvoríme následne modul „Basic“, inak musíme hľadať a opravovať chyby.

Teraz sa pozrime na naše makro podrobne a rozoberme si príkaz za príkazom (teda okrem poznámok).

sub Dvojita_Medzera

Naše makro sme nazvali „Dvojita_Medzera“. Názvy sa budeme snažiť dávať také, aby sme podľa nich ľahko rozpoznali, o čo sa vlastne jedná.

dim Dokument, Vymena as object

Definovali sme dve premenné typu object. Niektorí autori používajú také názvy premenných, kde prvé písmeno vyjadruje aj jej typ (napr. v našom prípade oDokument, oVymena). Je to dobrá pomôcka, ktorú však osobne nepoužívam.
Premenná „Dokument“ je určená pre prístup k aktuálnemu dokumentu. Druhá premenná „Vymena“ je určená pre prevedenie vlastnej zámeny dvojitých medzier za jednoduché.

dim Kolko as Long

Do číselnej premennej „Kolko“ si uložíme počet výmien.

Dokument=ThisComponent

Priradenie aktuálneho dokumentu do premennej „Dokument“. Týmto sme získali k tomuto dokumentu prístup.

Vymena=Dokument.createReplaceDescriptor()

Pre výmenu v aktuálnom dokumente (premenná „Dokument“) musíme vytvoriť objekt pre nahrádzanie, ktorý priradíme do premennej „Vymena“.

Vymena.SearchString="  "

V objekte „Vymena“ nastavíme do jeho vyhľadávacej časti reťazec, ktorý chceme nahradiť. V našom prípade sú to dve medzery. Reťazce uzatvárame medzi dve úvodzovky. Pozor na častú chybu začiatočníkov, pokiaľ si pripravujú zdrojový text v externom editore – ako si môžete všimnúť, programové úvodzovky nie sú totožné s bežnými slovenskými a českými textovými úvodzovkami a preto je potrebné ich skontrolovať. 



Na priloženej zosnímanej obrazovke si môžete všimnúť tento rozdiel. To isté platí aj pre apostrof, ktorý označuje poznámku.

Vymena.ReplaceString=" "

V objekte „Vymena“ nastavíme do jeho nahrádzajúcej časti reťazec, za ktorý chceme vymeniť hľadaný text. V našom prípade je to jedna medzera uzatvorená, ako inak, do úvodzoviek.

Kolko=Dokument.replaceAll(Vymena)

Pretože sme si v objekte „Vymena“ pripravili všetko, čo potrebujeme pre našu zámenu, môžeme túto previesť zavolaním metódy „ReplaceAll“, ktorá je prístupná v každom aktuálnom dokumente (my ho máme sprístupnený pomocou premennej „Dokument“). Táto metóda zároveň vracia počet zámen, ktorý si uložíme do premennej „Kolko“.

msgbox("Nahradených "+kolko+" dvojnasobnych medzier.", 0, "Viacnásobné medzery")

Určite sme zvedaví, koľko takýchto preklepov robíme a preto si zobrazíme ich počet. Na tento účel použijeme systémovú procedúru „msgbox“. V zátvorke sa nachádzajú tzv. parametre, ktoré sú oddelené čiarkou. Prvý z nich je reťazec: "Nahradených "+kolko+" dvojnasobnych medzier.". Je to vlastný vypisovaný text. Druhý parameter je číslo nula: 0. Ním určujeme aké tlačidlá sa majú zobraziť. Nebudme sa teraz zaoberať ostatnými hodnotami, pretože tie majú význam pri vstupe a preto iba pripomeňme, že hodnota 0 znamená zobrazenie tlačidla „OK“. Posledný parameter je znovu reťazec: "Viacnásobné medzery". Použije sa ako názov tohto okna.

end sub

Týmto príkazom sme ukončili makro „Dvojita_Medzera“.

Ako vidíte, postavili sme týmto makrom základ pre naozaj veľa makier, kde je potrebná zámena jedného reťazca za iný. Priamo v tomto tvare sa dá použiť napr. pre makro, pomocou ktorého budeme zamieňať tri bodky „...“ za „trojbodku“ „…“, t.j. príslušné riadky (parametre procedúry „msgbox“ si zmeňte sami) budú vyzerať takto:

Vymena.SearchString="..."
Vymena.ReplaceString="…"

Hoci sa nám makro pre výmenu dvojitých medzier zdá dobré, nehodí sa nám pre také opravy, keď ako preklep nebudeme mať iba dve medzery, ale viac (vtedy ho totiž musíme spúšťať opakovane dovtedy, kým sa vyskytujú dvojité medzery). Tieto (a ešte aj iné nedostatky) však budeme odstraňovať až v niektorých z budúcich dielov tohto seriálu, keď sa zoznámime s príkazmi jazyka StarOffice Basic.

Na budúce: Aké príkazy má vlastne StarOffice Basic, alebo trinásta komnata sa začína otvárať …

Novinky a inšpirácie

Z nášho blogu

Prečítajte si novinky, inšpirácie a dôležité informácie zo sveta webhostingu a technológií.

Novinky na Inet.sk (09 / 2026) Novinky
09. 09. 2026

Novinky na Inet.sk (09 / 2026)

Posledné mesiace sme v Inet.sk nevenovali len stabilite serverov, ale najmä počúvaniu vašich reálnych skúseností z každodennej praxe. Výs...

Čítať viac
Plánovaná údržba v datacentre (20.09.2026) Oznamy
07. 09. 2026

Plánovaná údržba v datacentre (20.09.2026)

Stabilita a nepretržitá dostupnosť vašich webov je pre nás kľúčová. Aby sme tento štandard nielen udržali, ale neustále zvyšovali, naši p...

Čítať viac
Aktualizujte ihneď svoj Wordpress - Kritická zraniteľnosť (CVE-2026-63030) Oznamy
31. 08. 2026

Aktualizujte ihneď svoj Wordpress - Kritická zraniteľnosť (CVE-2026-63030)

Bezpečnostný tím WordPressu vydal núdzovú bezpečnostnú záplatu pre kritickú chybu označenú ako CVE-2026-63030. Táto zraniteľnosť dosiahla...

Čítať viac

Podpora klientom

Máte ďalšie otázky?

Nezúfajte, pripravili sme pre Vás jednoduché odpovede na najdôležitejšie otázky, ktoré od našich klientov dostávame.

Zistiť viac

Naše výhody

Prečo si nás vybrať?

Našim klientom ponúkame až 30-dňovú záruku vrátenia peňazí.

Sme skutočný slovenský webhosting

Slovenská
firma

Nepatríme pod žiadnu nadnárodnú spoločnosť, sme malá rodinná firma.

Na nás sa môžete kedykoľvek spoľahnúť

Dlhoročné
skúsenosti

Na slovenskom trhu pôsobíme už viac ako 20 rokov, sme overená značka.

Maximálna bezpečnosť

Maximálna
bezpečnosť

Chránime Vás pred útokmi i SPAMom. U nás sú Vaše dáta v bezpečí.

Prozákaznícka podpora

Ochotná
podpora

Zakladáme si na individuálnom prístupe, preto Vám vždy radi pomôžeme.

Kvalita a dobrá cena

Výborný pomer
cena / výkon

Ponúkame kvalitné a stabilné služby za rozumnú cenu bez skrytých poplatkov.

U nás sa Vám nič nestratí

Pravidelné
zálohovanie

Vaše dáta zálohujeme každý deň, dostupné sú aj zálohy z pred niekoľkých mesiacov.

Svižný Admin Panel nájdete len u nás

Prehľadný
Admin Panel

Máme rýchly a prehľadný Admin Panel, ktorý zvládne používať naozaj každý.

Naši prví zákazníci sú stále s nami

Spokojní
zákazníci

Naši zákazníci sú ako naša rodina, preto nám verí už viac ako 1000 klientov.

Správa používateľov

Správa
používateľov

Spravujte svoje projekty bez akýchkoľvek obáv s kolegami alebo externými partnermi.

Máme zľavy pre verných klientov

Vernostné
zľavy

Verní klienti u nás automaticky získavajú 15 % zľavu na každú ďalšiu objednávku.

My Vás nebudeme obmedzovať

Bez
obmedzení

Neobmedzujeme počet databáz, e-mailov, ftp a ani prenos dát.

Hosting pre WordPress

WordPress
na 1 klik

Nainštalujte si obľúbené redakčné systémy rýchlo a jednoducho.

Referencie

Spokojní zákazníci

Pozrite sa, čo o nás povedali naši klienti. Neváhajte a pridajte sa k nám ešte dnes.

"Mal som možnosť vyskúšať rôzne webhostingy, ale nakoniec som sa rozhodol všetky moje stránky zveriť Inet.sk. Webhosting zvláda jednoduché, ale aj veľmi náročné stránky a magazíny. Podporuje najnovšie technológie a má veľmi prehľadnú a jednoduchú správu domén. Komunikácia s technickou podporou Inet.sk je vynikajúca a za mňa môžem túto firmu iba doporučiť."

Richard Horný
Final Vision, s. r. o.

"Mám u Inet.sk zaparkovanú jednu doménu a mám pocit, že tam zaparkujem aj všetky ostatné domény, ktoré mám, pretože po dlhoročných skúsenostiach s rôznymi inými firmami, mi Vaše služby vyhovujú zatiaľ najviac. Odporúčam kvôli dobrej konektivite a primeranej cene + rýchly support."

Ladislav Kéry
vypnutieimobilizera.sk

"Po rokoch skúšania dodávateľov na poli webhostingových služieb sme našli svojho spoľahlivého a stabilného partnera tu. Stabilita, ochota, znalosť, dobrá cena a rýchle vyriešenie prípadných problémov - to je pre nás Inet.sk."

Jaroslav Mráz
Allycom, s.r.o.

"Máme u Vás doménu a hosting. So službami sme nadmieru spokojní. Z Vašej strany máme pozitívne skúsenosti ako sú: rýchle jednanie, znalosť v problematike, ochota pomôcť, stabilita, zavádzanie noviniek, ak ich klient vyžaduje a dobrá cena. Za nás môžeme Inet.sk len odporučiť. Ďakujeme."

Mgr. Zuzana Valovičová
BL servis, s.r.o.

Auto 100
Bystricoviny
eCall Slovakia
Filip Jančík
Frost
Merkury Broker
Mi:Su Design
Mesto Nitra
Pro Clienta
Schneider Lekáreň
Vego Marketing
Mesto Zlaté Moravce

Všetky ceny sú uvádzané bez DPH
© 2006 - 2026, Inet.sk, s. r. o., Všetky práva vyhradené

Na našej stránke používame "cookies". Vďaka nim sledujeme návštevnosť, prispôsobujeme reklamu a používateľské nastavenia, čo zlepšuje Váš zážitok z našej stránky. Súhlasíte s ich spracovaním?
Vlastné nastavenia cookies