Archív Inet.sk Pôvodný autor: Július Pastierik
09. 10. 2008 o 00:00 2897x

Makrá v OpenOffice.org 12/2008

V dnešnom pokračovaní seriálu o makrách v OpenOffice.org si ukážeme makro pre import a export používateľských slovníkov z a do textových súborov.
Makrá v OpenOffice.org 12/2008

 

Pokiaľ používate operačný systém MS Windows, viete, že jeho súčasťou je aj slovník „custom.dic“, ktorý sa ukladá v obyčajnom textovom formáte. Žiaľ, tento slovník nie je v tomto tvare použiteľný pre OpenOffice.org a preto nezostáva nič iné, ako slová, ktoré obsahuje, nanovo vložiť do niektorého z používateľských slovníkov.

Toto však nemusíme robiť manuálne, ale môžeme si na to naprogramovať makro. Pravdaže, makro nebudeme robiť tak, aby pracovalo iba s týmto slovníkom, ale naprogramujeme ho tak, aby sme mohli importovať ľubovoľný slovník v textovom formáte, kde sú slová zadané v riadkoch.

Zároveň, keď už importujeme slovníky, prečo ich aj neexportovať, teda spätne neuložiť do textového súboru, ktorý môžeme ľahko preniesť na iný počítač alebo zálohovať na CD médium.

Návrh dialógu - priradenie makra k tlačidlu

Aby sme mohli vyberať slovník, s ktorým chceme robiť import alebo export a zároveň, aby sme mohli vybrať príslušný textový súbor, vytvoríme si v makre dialóg so vstupným poľom pre názov textového súboru (vrátane tlačidla pre jeho výber), zoznamom používateľských slovníkov a, samozrejme, tlačidlami pre spustenie importu alebo exportu. Pravdaže, k príslušným tlačidlám je potrebné na záložke „Udalosti“ priradiť príslušné makrá. Aby sme vedeli, že import a export prebehol úspešne, vložíme si tam aj prázdne textové pole, do ktorého budeme vypisovať priebeh spracovania. Celé makro aj s dialógom uložíme do knižnice „dictionary_IO“.

Nastavenie slovníka a textového súboru

Na záver ešte upozornime, že jeden používateľský slovník v OpenOffice.org môže obsahovať maximálne 2000 slov. Pri vlastnom importe sa do neho nevloží slovo, ktoré sa v ňom už nachádza (toto zabezpečuje priamo OpenOffice.org) a OpenOffice.org nevyhlási chybu, ak sa pokúsime naimportovať viac slov – zdá sa, akoby ich importoval, ale v skutočnosti ich do súboru nevloží. Toto však v makre riešiť nebudeme a ponecháme iba na používateľovi, aby si prípadný väčší vstupný súbor rozdelil na menšie podľa svojho vlastného uváženia, prípadne to necháme ako „domácu úlohu“.

Priebeh exportu

REM Import/Export používateľských slovníkov
private dialog_IO as object

Sub Import_Export_slovnikov
 dim pom_zoznam, zoznam, slovniky as object
 
 DialogLibraries.LoadLibrary("dictionary_IO") ' Otvorenie knižnice
 dialog_IO=CreateUnoDialog (DialogLibraries.dictionary_IO.Dialog_dictionary_IO) ' Sprístupnenie dialógu
 
 ' Načítanie zoznamu slovníkov
 pom_zoznam=createUnoService("com.sun.star.linguistic2.DictionaryList") ' sprístupnenie zoznamu slovníkov
 zoznam=pom_zoznam.GetDictionaries ' zoznam slovníkov
 slovniky=dialog_IO.getControl ("zoznam_slovnikov") ' prístup k zoznamu slovníkov v dialógu
 ' Vloženie názvov slovníkov do zoznamu v dialógu
 for i=LBound(zoznam) to UBound(zoznam)
  slovniky.AddItem(zoznam(i).Name, slovniky.ItemCount)
 next i
 slovniky.Text=slovniky.Items(0) ' Zobrazenie prvej položky
 ' Vlastný Import/Export
 dialog_IO.Execute()
 ' Vymazanie dialógu
 dialog_IO.dispose()
 
End Sub

sub Vyber_textovy_subor
 ' Túto funkciu priradíme k tlačidlu pre výber súboru
 dim pom_dialog as object
 ' Štandardný systémový dialóg pre otvorenie súboru
 pom_dialog=CreateUnoService("com.sun.star.ui.dialogs.FilePicker")
 pom_dialog.SetMultiselectionMode (False)
 pom_dialog.Title="Výber textového súboru"
 if pom_dialog.Execute() = 1 then
  'Ak sme vybrali súbor, tak nastavímne jeho názov a cestu do IO dialógu
  dialog_IO.getControl("textovy_subor").Text=ConvertFromURL(pom_dialog.Files(0))
 endif
end sub

Sub Import_slovnika
 ' Túto funkciu priradíme k tlačidlu Import
 dim pom_zoznam, slovnik as object
 dim pom_nazov, nazov, naz_slovnik, slovo as string
 
 pom_zoznam=createUnoService ("com.sun.star.linguistic2.DictionaryList") ' sprístupnenie zoznamu slovníkov
 isubor=FreeFile
 pom_nazov=dialog_IO.getControl("textovy_subor").Text
 nazov=ConvertToURL(pom_nazov)
 ' Ak súbor neexistuje, nie je z čoho importovať
 if not FileExists (nazov) then
  msgbox "Súbor '"+pom_nazov+"' neexistuje."
  exit sub
 endif
 open nazov for Input as isubor
 naz_slovnik=dialog_IO.getControl("zoznam_slovnikov").Text ' Názov vybraného slovníka
 slovnik=pom_zoznam.GetDictionaryByName(naz_slovnik) ' Sprístupnenie zadaného slovníka
 
 ipovodne=slovnik.Count ' Pôvodný počet slov v slovníku
 i=0
 while not EOF (isubor)
  Line Input #isubor, slovo ' Načítanie slova z tetxového súboru
  slovnik.Add(slovo, False, "") ' Vloženie slova do slovníka
  i=i+1
  dialog_IO.getControl("popis_vysledku").Text = "Importovaných "+i+" slov." ' Priebežné zobrazovanie importu
 wend
 i=slovnik.Count-ipovodne ' Skutočne importovaný počet slov do slovníka (nový počet mínus pôvodný počet)
 dialog_IO.getControl("popis_vysledku").Text = "Import "+i+" slov ukončený." ' Oznam o ukončení importu
 close #isubor
 
End Sub


Sub Export_slovnika
 ' Túto funkciu priradíme k tlačidlu Export
 dim pom_zoznam, slovnik as object
 dim pom_nazov, nazov, naz_slovnik, slovo as string

 pom_zoznam=createUnoService("com.sun.star.linguistic2.DictionaryList") ' sprístupnenie zoznamu slovníkov
 isubor=FreeFile
 pom_nazov=dialog_IO.getControl("textovy_subor").Text
 nazov=ConvertToURL(pom_nazov)
 ' Ak súbor existuje, má sa prepísať?
 if FileExists (nazov) then
  if msgbox("Súbor '"+pom_nazov+"' existuje. Prepísať?",4,"")<>6 then
   ' Nestlačilo sa tlačidlo "Áno", neexportujeme
   exit sub
  endif
 endif
 if nazov="" then
  msgbox "Nie je zadaný súbor pre export."
  exit sub
 endif
 isubor=FreeFile
 open nazov for output as isubor
 
 naz_slovnik=dialog_IO.getControl("zoznam_slovnikov").Text ' Názov vybraného slovníka
 slovnik=pom_zoznam.GetDictionaryByName(naz_slovnik) ' Sprístupnenie zadaného slovníka
 ' Budeme exportovať všetky slová
 for i = LBound(slovnik.Entries) to UBound(slovnik.Entries)
  ' Zápis slova do exportného súboru
  print #isubor, slovnik.Entries(i).DictionaryWord
  dialog_IO.getControl("popis_vysledku").Text = "Exportovaných "+i+"/"+slovnik.Count+" slov." ' Priebežné zobrazovanie exportu
 next i
 dialog_IO.getControl("popis_vysledku").Text = "Export "+slovnik.Count+" slov ukončený." ' Oznam o ukončení exportu
 ' Zatvorenie exportovaného zoznamu
 close #isubor

End Sub

Export ukončený

 

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
Nespíme na vavrínoch, pozrite si našu úrodu nových webov Novinky
01. 07. 2026

Nespíme na vavrínoch, pozrite si našu úrodu nových webov

Prvých šesť mesiacov roka 2026 preverilo našu kreativitu aj technické nasadenie. Naše servery nezaznamenali len nárast prevádzky, ale aj ...

Čí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.

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