Tí, ktorí prispievajú do rôznych časopisov (papierových či internetových), alebo píšu romány sa ešte stále stretávajú s tým, že sú odmeňovaní podľa počtu normostrán, napísaných znakov ale bez medzier a pod. Podobne, pri rôznych súťažiach je požadované, aby napr. román mal minimálne toľko a toľko normostrán. Žiaľ, OpenOffice.org nám ponúka v bežnej štatistike iba základné údaje o počte znakov a vyššie uvedené možnosti nemá.
Okrem toho niekedy (napr. pri rozdeľovaní dlhého textu na viacero kratších pokračovaní) potrebujeme spočítať uvedené veci iba pre vybranú časť textu, resp. naraz aj pre celý text aj pre označený text. Preto si dnes uvedieme makro, ktoré nám dokáže spočítať počet slov, počet všetkých znakov, počet všetkých znakov bez medzier, počet normostrán zo všetkých znakov a počet autorských hárkov z normostrán a to naraz ako pre celý dokument, tak aj pre vybranú časť textu (pokiaľ nejakú označíme).
Hoci by sme pre vlastné počítanie niektorých znakov (v našom prípade to budú medzery) mohli teoreticky použiť aj náhradu znaku za ten istý znak, je to nepraktické (zbytočne by sme vykonávali náhradu). Preto si zadefinujeme vlastnú funkciu pre počítanie znakov, kde nebudeme používať štandardnú metódu pre nahrádzanie, ale pre vyhľadávanie.
Vzhľadom na to, že makrá sú, ako obvykle, čiastočne okomentované, nebudeme ich už viac rozoberať a uvedieme si priamo ich zdrojové texty. Ešte podotýkam, že v zozname makier ich mám uložené v osobitnom module „Pocitanie_znakov“ a pre vlastné spočítanie sa volá procedúra „Pocitanie_znakov“. Tím, ktorí budú túto procedúru používať často (u mňa je to každodenná náležitosť a vlastne vôbec nepoužívam počítanie znakov, ktoré má OpenOffice.org štandardne k dispozícii), odporúčam jej umiestnenie na niektorom paneli nástrojov.
public medzery, medzery_regularne as string ' Oddeľovacie znaky medzi slovami
public oddelovac_slov as string ' Znak, ktorý ukončuje slovo
public nepocitane_znaky as string ' Znaky, ktoré sa nikdy nepočítajú
public normo_strana as single ' Počet znakov na normostranu
public autorsky_harok as single ' Počet normostrán na jeden AH
dim Dokument, Hladaj, vyber as object
REM Inicializácia premenných
sub init_znaky
medzery=chr(&H20)+chr(&HA0)+chr(&H09) ' Space, Hard space, Tab
' Definícia medzier pre vyhľadávanie pomocou regulárnych výrazov
medzery_regularne="("+chr(&H20)+"|"+chr(&HA0)+"|"+chr(&H09)+")"
oddelovac_slov=medzery+chr(&H0A)+chr(&H0D) ' Medzery, CR, LF
' Napr. Frídek-Místek sú dve slova, preto tu je aj pomlčka ' alebo lomítko a bodka napr. pre http odkazy
oddelovac_slov=oddelovac_slov+"-"+"/"+"."
' alebo lomitko a bodka napr. pre http odkazy
nepocitane_znaky=chr(&H0A)+chr(&H0D) ' CR, LF
' Ak sa zmení norma, alebo niekto potrebuje tieto údaje počítať inak, môže si zmeniť tieto čísla
normo_strana=1800 ' Počet znakov na normostranu je 1800
autorsky_harok=16 ' Počet normostrán na autorský hárok je 16
Dokument=ThisComponent
Hladaj=Dokument.createSearchDescriptor()
vyber=dokument.getCurrentSelection() ' aktuálny vyber
end sub
REM Funkcia spočíta počet výskytov reťazca Co
function Spocitaj_hladanim(Co as string, Regularne, Cele_slova, Velke_pismena as Boolean) as long
dim nasiel as object
dim kolko as long
Hladaj.searchString=Co
Hladaj.SearchRegularExpression=Regularne
Hladaj.SearchWords=Cele_slova
Hladaj.SearchCaseSensitive=Velke_pismena
kolko=0
' Vyhľadanie prvého výskytu hľadaného reťazca
nasiel = Dokument.findFirst(Hladaj)
' Pokiaľ sa reťazec našiel, tak
Do While NOT isNull(nasiel)
if len(nasiel.String)>0 then
kolko=kolko+1
end if
' Vyhľadanie ďalšieho výskytu hľadaného rečazca
nasiel = Dokument.findNext(nasiel.End, Hladaj)
Loop
Spocitaj_hladanim=kolko
end function
rem Procedúra pre spočítanie znakov a slov v celom dokumente a vo výberoch
Sub Pocitanie_znakov
init_znaky
' Štatistické údaje o celom dokumente
dim vsetky_znaky, vsetky_slova, vsetky_znaky_bez as long
dim vsetky_normo, vsetky_normo_bez, vsetky_AH, vsetky_AH_bez as single
' Štatistické údaje o výbere
dim vyber_pocet, vyber_znaky, vyber_znaky_bez, vyber_slova as long
dim vyber_normo, vyber_normo_bez, vyber_AH, vyber_AH_bez as single
dim riadok as string
dim vyber_ktory, dlzka_riadku, i as long
dim slovo as boolean
dim znak, CR, real_format as string
CR=chr(&H0D)
' Formát pre zobrazenie počtu nájdených a vypočítaných údajov (na dve desatinné miesta)
real_format= "##########0.00"
' Údaje pre celý dokument
' Celkový počet slov
vsetky_slova=dokument.WordCount
' Celkový počet znakov
vsetky_znaky=dokument.CharacterCount
' Celkový počet znakov bez medzier
vsetky_znaky_bez=vsetky_znaky-Spocitaj_Hladanim(medzery_regularne, true, false, false)
' Výpočet normostrán, AH a to s medzerami aj bez nich pre celý dokument
vsetky_normo=vsetky_znaky/normo_strana ' počet normostrán
vsetky_normo_bez=vsetky_znaky_bez/normo_strana ' počet normostrán bez medzier
vsetky_AH=vsetky_normo/autorsky_harok ' počet autorských hárkov
vsetky_AH_bez=vsetky_normo_bez/autorsky_harok ' počet AH bez medzier
' Údaje pre vybrané časti textu
' Počet výberov (naraz môžeme označiť viacero nezávislých častí textu)
vyber_pocet=vyber.getCount()
vyber_slova=0 ' počet slov
vyber_znaky=0 ' počet znakov s medzerami
vyber_znaky_bez=0 ' počet znakov bez medzier
' Pre všetky výbery
for vyber_ktory=0 to vyber_pocet-1
' Text príslušného výberu
riadok = vyber.getByIndex(vyber_ktory).getString()
dlzka_riadku=len(riadok)
' Tvorba slova pre počítanie ich počtu
slovo=false ' slovo neobsahuje ešte žiadny znak
' Pre všetky znaky z príslušného výberu
for i=1 to dlzka_riadku
znak=mid(riadok, i,1) ' spracovávame i-ty znak z textu
if instr(oddelovac_slov, znak)=0 then
' znak nie je oddeľovač slov, t.j. je časťou slova
slovo=true ' slovo určite obsahuje nejaký znak
Elseif slovo then
' znak je oddeľovač slova a slovo obsahovalo nejaký znak – zvyšuje sa počet slov
vyber_slova=vyber_slova+1
' Slovo bolo ukončené – znovu začíname tvoriť ďalšie
slovo=false
endif
if instr(nepocitane_znaky, znak)=0 then
' znak sa nenachádza v zozname nepočítaných znakov, t.j. počítame ho
vyber_znaky=vyber_znaky+1
if instr(medzery, znak)=0 then
' znak nie je medzera, počítame ho teda aj medzi všetky ostatné znaky
vyber_znaky_bez=vyber_znaky_bez+1
endif
endif
next i
next vyber_ktory
' ak sme na konci posledného slova nemali oddeľovač,
' tak toto slovo ešte nemáme započítané v celkovom počte slov
if slovo then
vyber_slova=vyber_slova+1
endif
' Výpočet normostrán, AH a to s medzerami aj bez nich pre vybranú časť dokumentu
vyber_normo=vyber_znaky/normo_strana
vyber_normo_bez=vyber_znaky_bez/normo_strana
vyber_AH=vyber_normo/autorsky_harok
vyber_AH_bez=vyber_normo_bez/autorsky_harok
' Využijeme premennú "znak" na vytvorenie výstupného formulára
znak="Počet všetkých slov: "+vsetky_slova+CR+CR
znak=znak+"Počet všetkých znakov: "+vsetky_znaky+CR
znak=znak+"Počet všetkých normostrán: "+format(vsetky_normo, real_format)+CR
znak=znak+"Počet všetkých autorských hárkov: "+format(vsetky_AH, real_format)+CR+CR
znak=znak+"Počet všetkých znakov bez medzier: "+vsetky_znaky_bez+CR
znak=znak+"Počet všetkých normostrán bez medzier: "+format(vsetky_normo_bez, real_format)+CR
znak=znak+"Počet všetkých autorských hárkov bez medzier: "+format(vsetky_AH_bez, real_format)+CR+CR+CR
znak=znak+"Počet slov vo výbere: "+vyber_slova+CR+CR
znak=znak+"Počet znakov vo výbere: "+vyber_znaky+CR
znak=znak+"Počet normostrán vo výbere: "+format(vyber_normo, real_format)+CR
znak=znak+"Počet autorských hárkov vo výbere: "+format(vyber_AH, real_format)+CR+CR
znak=znak+"Počet znakov vo výbere bez medzier: "+vyber_znaky_bez+CR
znak=znak+"Počet normostrán vo výbere bez medzier: "+format(vyber_normo_bez, real_format)+CR
znak=znak+"Počet autorských hárkov vo výbere bez medzier: "+format(vyber_AH_bez, real_format)
msgbox(znak, 0,"Počítanie slov a znakov")
End Sub
Na budúce: Znovu sa vraciame k formátovaniu dokumentu, alebo rôzne drobnosti, ktoré sa nám môžu zísť pri praktickej práci.
Makrá v OpenOffice.org 6/III. – Počítanie znakov.
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í.
Oznamy
Gmail končí s funkciou „Odoslať ako“ pre cudzie e-mailové adresy. Čo to znamená pre vás?
Google oznámil, že v januári 2027 zruší v Gmaile funkciu „Odoslať ako“ (Send as) pre e-mailové adresy od iných poskytovateľov. Ak ste si ...
Oznamy
Večerná „prestávka“ pre server VIP033
Neustále pracujeme na tom, aby vaše weby bežali hladko, rýchlo a bezpečne. Technológie idú míľovými krokmi vpred a my v Inet.sk s nimi dr...
Novinky
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...
Oznamy
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...
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.
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í.
Slovenská
firma
Nepatríme pod žiadnu nadnárodnú spoločnosť, sme malá rodinná firma.
Dlhoročné
skúsenosti
Na slovenskom trhu pôsobíme už viac ako 20 rokov, sme overená značka.
Spokojní
zákazníci
Naši zákazníci sú ako naša rodina, preto nám verí už viac ako 1250 klientov.
Maximálna
bezpečnosť
Chránime Vás pred útokmi i SPAMom. U nás sú Vaše dáta v bezpečí.
Ochotná
podpora
Zakladáme si na individuálnom prístupe, preto Vám vždy radi pomôžeme.
Férová
cena
Cena pri obnove je rovnaká ako pri objednávke. Nezdražujeme po prvom roku a bez skrytých poplatkov.
Pravidelné
zálohovanie
Vaše dáta zálohujeme každý deň, dostupné sú aj zálohy z pred niekoľkých mesiacov.
Prehľadný
Admin Panel
Máme rýchly a prehľadný Admin Panel, ktorý zvládne používať naozaj každý.
Správa
používateľov
Spravujte svoje projekty bez akýchkoľvek obáv s kolegami alebo externými partnermi.
Vernostné
zľavy
Verní klienti u nás automaticky získavajú 15 % zľavu na každú ďalšiu objednávku.
Bez
obmedzení
Neobmedzujeme počet databáz, e-mailov, ftp a ani prenos dát.
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.
"S firmou Inet.sk sme veľmi spokojní, vrelo ju odporúčam. Profesionálny a ústretový prístup pána Slančíka, seriózne jednanie a rýchla implementácia našich požiadaviek, 100% spokojnosť. Všetky služby od webhostingu cez výrobu stránky až po detailný servis počas chodu tu máme pod jednou strechou."
Ing. Jozef Brázdik
BB motors, s.r.o.
"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.
"Pri migrácii našej stránky sme sa stretli s maximálnou podporou a profesionálnym prístupom. Inet.sk nám nielen pomohol celý proces zvládnuť bez komplikácií, ale tiež poskytol odborné poradenstvo, ktoré zabezpečilo hladký prechod. Ich hosting je rýchly a najmä stabilný, rovnako oceňujeme aj ich priateľskú komunikáciu."
Peter Kasan
Svet-mineralov.sk
"Proces migrácie bol zrealizovaný hladko a efektívne, pričom všetky kroky boli vykonané precízne a bez výpadkov. Inet.sk poskytol spoľahlivé a profesionálne riešenie, ktoré zjednodušilo správu domén a optimalizovalo ich prevádzku. Oceňujeme ich stabilnú infraštruktúru a kvalitné hostingové služby."
Lukáš Kazík
LKStudio.sk
"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.