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

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

Bezpečnostné aktualizácie PHP: Chráňte svoj web pred hrozbami Oznamy
21. 10. 2026

Bezpečnostné aktualizácie PHP: Chráňte svoj web pred hrozbami

Vývojársky tím PHP vydal dôležité bezpečnostné záplaty pre všetky oficiálne podporované verzie PHP 8. Na našich serveroch sme nezaváhali ...

Čítať viac
Gmail končí s funkciou „Odoslať ako“ pre cudzie e-mailové adresy. Čo to znamená pre vás? Oznamy
01. 10. 2026

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

Čítať viac
Večerná „prestávka“ pre server VIP033 Oznamy
25. 09. 2026

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

Čítať viac
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

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.

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 1250 klientov.

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

Férová
cena

Cena pri obnove je rovnaká ako pri objednávke. Nezdražujeme po prvom roku a 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ý.

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