Makrá v OpenOffice.org 10/2008

Július Pastierik  /  14. 08. 2008, 00:00

V poslednom pokračovaní makier pre prípravu slov do slovenského slovníka si ukážeme, ako pripravené slovo zapíšeme do výstupného súboru.

Na koniec seriálu makier, ktoré sú určené pre prípravu slov do slovenského slovníka už iba spomeňme, že v makre sme definovali aj také prefixy, ktoré nie sú súčasťou definičného súboru (do, na, nad...). Preto tieto prefixy musíme manuálne pridať k základnému slovu a tak dokážeme pripraviť jediným volaním viacero slov do slovníka.

function otvor_subor_sk_SK_odt (oSubor) as boolean
 dim cesty as object
 dim url as string
 dim novy as boolean
 
 cesty=CreateUnoService("com.sun.star.util.PathSettings")
 
 url=cesty.Work+"/sk_SK.odt"
 novy=not FileExists(url)
 if novy then
  url="private:factory/swriter"
 endif
 oSubor=StarDesktop.loadComponentFromURL(url, "_blank", 0, Array())
 otvor_subor_sk_SK_odt=novy
end function

sub uloz_subor_sk_SK_odt (oSubor, novy)
 dim cesty, dispatcher as object
 dim url as string
 
 if novy then
  cesty=CreateUnoService("com.sun.star.util.PathSettings")
  url = cesty.Work+"/sk_SK.odt"
  oSubor.storeAsUrl(url, Array())
 else
  oSubor.store()
 endif
 'oSubor.dispose()
end sub

function daj_flagy as string
 dim pom as string
 pom=""
 if oDialog_slovnik.model.pfx_F.State=1 then pom=pom+"F"
 if oDialog_slovnik.model.sfx_mz.State=1 then pom=pom+"z"
 if oDialog_slovnik.model.sfx_Z.State=1 then pom=pom+"Z"
 if oDialog_slovnik.model.sfx_U.State=1 then pom=pom+"U"
 if oDialog_slovnik.model.sfx_D.State=1 then pom=pom+"D"
 if oDialog_slovnik.model.sfx_K.State=1 then pom=pom+"K"
 if oDialog_slovnik.model.sfx_M.State=1 then pom=pom+"M"
 if oDialog_slovnik.model.sfx_S.State=1 then pom=pom+"S"
 if oDialog_slovnik.model.sfx_V.State=1 then pom=pom+"V"
 if oDialog_slovnik.model.sfx_A.State=1 then pom=pom+"A"
 if oDialog_slovnik.model.sfx_C.State=1 then pom=pom+"C"
 if oDialog_slovnik.model.sfx_H.State=1 then pom=pom+"H"
 if oDialog_slovnik.model.sfx_B.State=1 then pom=pom+"B"
 if oDialog_slovnik.model.sfx_J.State=1 then pom=pom+"J"
 if oDialog_slovnik.model.sfx_L.State=1 then pom=pom+"L"
 if oDialog_slovnik.model.sfx_O.State=1 then pom=pom+"O"
 if oDialog_slovnik.model.sfx_mo.State=1 then pom=pom+"o"
 if oDialog_slovnik.model.sfx_Q.State=1 then pom=pom+"Q"
 if oDialog_slovnik.model.sfx_Y.State=1 then pom=pom+"Y"
 if oDialog_slovnik.model.sfx_I.State=1 then pom=pom+"I"
 if oDialog_slovnik.model.sfx_P.State=1 then pom=pom+"P"
 if oDialog_slovnik.model.sfx_X.State=1 then pom=pom+"X"
 if oDialog_slovnik.model.sfx_E.State=1 then pom=pom+"E"
 if oDialog_slovnik.model.sfx_W.State=1 then pom=pom+"W"
 if oDialog_slovnik.model.sfx_T.State=1 then pom=pom+"T"
 if oDialog_slovnik.model.sfx_R.State=1 then pom=pom+"R"
 if oDialog_slovnik.model.sfx_mb.State=1 then pom=pom+"b"
 if oDialog_slovnik.model.sfx_c_c.State=1 then pom=pom+"č"
 daj_flagy=pom
end function

sub zapis_definiciu
 dim vysledok, slovo, pomslovo, sufixy as string
 dim dokument, kurzor, oDoc as object
 dim novy as boolean
 
 slovo=trim(oDialog_slovnik.model.Slovo_slovnika.Text)
 vysledok = ""
 if slovo<>"" then
  sufixy=daj_flagy
  vysledok=sufixy
  if oDialog_slovnik.model.pfx_N.State=1 then vysledok="N"+vysledok
  if vysledok<>"" then vysledok="/"+vysledok
  vysledok=slovo+vysledok
  novy=otvor_subor_sk_SK_odt(dokument)
  
  ' Základné slovo
  kurzor=dokument.currentcontroller.getViewCursor()
  kurzor.gotoEnd(false)
  if novy then
   kurzor.setstring("# verzia: 0.5.7-b2"+chr$(13))
   kurzor.gotoEnd(false)
  endif
  kurzor.setstring(vysledok+chr$(13))
  kurzor.gotoEnd(false)
  
  ' Pre všetky prefixy
  
  vysledok=sufixy
  if oDialog_slovnik.model.spfx_do.State=1 then
   pomslovo="do"+slovo
   if oDialog_slovnik.model.spfx_ne_do.State=1 then
    vysledok="N"+vysledok
   endif
   if vysledok<>"" then vysledok="/"+vysledok
   vysledok=pomslovo+vysledok
   kurzor.setstring(vysledok+chr$(13))
   kurzor.gotoEnd(false)
  endif
  vysledok=sufixy
  if oDialog_slovnik.model.spfx_na.State=1 then
   pomslovo="na"+slovo
   if oDialog_slovnik.model.spfx_ne_na.State=1 then
    vysledok="N"+vysledok
   endif
   if vysledok<>"" then vysledok="/"+vysledok
   vysledok=pomslovo+vysledok
   kurzor.setstring(vysledok+chr$(13))
   kurzor.gotoEnd(false)
  endif
  vysledok=sufixy
  if oDialog_slovnik.model.spfx_nad.State=1 then
   pomslovo="nad"+slovo
   if oDialog_slovnik.model.spfx_ne_nad.State=1 then
    vysledok="N"+vysledok
   endif
   if vysledok<>"" then vysledok="/"+vysledok
   vysledok=pomslovo+vysledok
   kurzor.setstring(vysledok+chr$(13))
   kurzor.gotoEnd(false)
  endif
  vysledok=sufixy
  if oDialog_slovnik.model.spfx_o.State=1 then
   pomslovo="o"+slovo
   if oDialog_slovnik.model.spfx_ne_o.State=1 then
    vysledok="N"+vysledok
   endif
   if vysledok<>"" then vysledok="/"+vysledok
   vysledok=pomslovo+vysledok
   kurzor.setstring(vysledok+chr$(13))
   kurzor.gotoEnd(false)
  endif
  vysledok=sufixy
  if oDialog_slovnik.model.spfx_ob.State=1 then
   pomslovo="ob"+slovo
   if oDialog_slovnik.model.spfx_ne_ob.State=1 then
    vysledok="N"+vysledok
   endif
   if vysledok<>"" then vysledok="/"+vysledok
   vysledok=pomslovo+vysledok
   kurzor.setstring(vysledok+chr$(13))
   kurzor.gotoEnd(false)
  endif
  vysledok=sufixy
  if oDialog_slovnik.model.spfx_po.State=1 then
   pomslovo="po"+slovo
   if oDialog_slovnik.model.spfx_ne_po.State=1 then
    vysledok="N"+vysledok
   endif
   if vysledok<>"" then vysledok="/"+vysledok
   vysledok=pomslovo+vysledok
   kurzor.setstring(vysledok+chr$(13))
   kurzor.gotoEnd(false)
  endif
  vysledok=sufixy
  if oDialog_slovnik.model.spfx_pre.State=1 then
   pomslovo="pre"+slovo
   if oDialog_slovnik.model.spfx_ne_pre.State=1 then
    vysledok="N"+vysledok
   endif
   if vysledok<>"" then vysledok="/"+vysledok
   vysledok=pomslovo+vysledok
   kurzor.setstring(vysledok+chr$(13))
   kurzor.gotoEnd(false)
  endif
  vysledok=sufixy
  if oDialog_slovnik.model.spfx_pri.State=1 then
   pomslovo="pri"+slovo
   if oDialog_slovnik.model.spfx_ne_pri.State=1 then
    vysledok="N"+vysledok
   endif
   if vysledok<>"" then vysledok="/"+vysledok
   vysledok=pomslovo+vysledok
   kurzor.setstring(vysledok+chr$(13))
   kurzor.gotoEnd(false)
  endif
  vysledok=sufixy
  if oDialog_slovnik.model.spfx_spolu.State=1 then
   pomslovo="spolu"+slovo
   if oDialog_slovnik.model.spfx_ne_spolu.State=1 then
    vysledok="N"+vysledok
   endif
   if vysledok<>"" then vysledok="/"+vysledok
   vysledok=pomslovo+vysledok
   kurzor.setstring(vysledok+chr$(13))
   kurzor.gotoEnd(false)
  endif
  vysledok=sufixy
  if oDialog_slovnik.model.spfx_roz.State=1 then
   pomslovo="roz"+slovo
   if oDialog_slovnik.model.spfx_ne_roz.State=1 then
    vysledok="N"+vysledok
   endif
   if vysledok<>"" then vysledok="/"+vysledok
   vysledok=pomslovo+vysledok
   kurzor.setstring(vysledok+chr$(13))
   kurzor.gotoEnd(false)
  endif
  vysledok=sufixy
  if oDialog_slovnik.model.spfx_spo.State=1 then
   pomslovo="spo"+slovo
   if oDialog_slovnik.model.spfx_ne_spo.State=1 then
    vysledok="N"+vysledok
   endif
   if vysledok<>"" then vysledok="/"+vysledok
   vysledok=pomslovo+vysledok
   kurzor.setstring(vysledok+chr$(13))
   kurzor.gotoEnd(false)
  endif
  vysledok=sufixy
  if oDialog_slovnik.model.spfx_u.State=1 then
   pomslovo="u"+slovo
   if oDialog_slovnik.model.spfx_ne_u.State=1 then
    vysledok="N"+vysledok
   endif
   if vysledok<>"" then vysledok="/"+vysledok
   vysledok=pomslovo+vysledok
   kurzor.setstring(vysledok+chr$(13))
   kurzor.gotoEnd(false)
  endif
  vysledok=sufixy
  if oDialog_slovnik.model.spfx_vy.State=1 then
   pomslovo="vy"+slovo
   if oDialog_slovnik.model.spfx_ne_vy.State=1 then
    vysledok="N"+vysledok
   endif
   if vysledok<>"" then vysledok="/"+vysledok
   vysledok=pomslovo+vysledok
   kurzor.setstring(vysledok+chr$(13))
   kurzor.gotoEnd(false)
  endif
  vysledok=sufixy
  if oDialog_slovnik.model.spfx_vy_y.State=1 then
   pomslovo="vý"+slovo
   if oDialog_slovnik.model.spfx_ne_vy_y.State=1 then
    vysledok="N"+vysledok
   endif
   if vysledok<>"" then vysledok="/"+vysledok
   vysledok=pomslovo+vysledok
   kurzor.setstring(vysledok+chr$(13))
   kurzor.gotoEnd(false)
  endif
  vysledok=sufixy
  if oDialog_slovnik.model.spfx_z.State=1 then
   pomslovo="z"+slovo
   if oDialog_slovnik.model.spfx_ne_z.State=1 then
    vysledok="N"+vysledok
   endif
   if vysledok<>"" then vysledok="/"+vysledok
   vysledok=pomslovo+vysledok
   kurzor.setstring(vysledok+chr$(13))
   kurzor.gotoEnd(false)
  endif
  vysledok=sufixy
  if oDialog_slovnik.model.spfx_za.State=1 then
   pomslovo="za"+slovo
   if oDialog_slovnik.model.spfx_ne_za.State=1 then
    vysledok="N"+vysledok
   endif
   if vysledok<>"" then vysledok="/"+vysledok
   vysledok=pomslovo+vysledok
   kurzor.setstring(vysledok+chr$(13))
   kurzor.gotoEnd(false)
  endif
  uloz_subor_sk_SK_odt (dokument, novy)
 endif
end sub

sub Skontroluj_slovo

 DialogLibraries.LoadLibrary("SK_SK_Slovnik")
 
 oDialog_slovnik=CreateUnoDialog(DialogLibraries.SK_SK_Slovnik.Dialog_slovnik)
 
 if not nacitana_definicia then
  nacitana_definicia=Slovnik_init.citaj_definiciu
 endif
 if nacitana_definicia then
  Slovnik_init.slovnik_init(oDialog)
  if oDialog_slovnik.Execute()=1 then
   zapis_definiciu
  endif
 endif

 oDialog_slovnik.dispose()
 
end sub

 

Neprehliadnite: