Skočiť na obsah Skočiť na menu

Inet.sk - internetový denník

internetový denník

Makrá v OpenOffice.org – programovo lokalizované dialógové okná (4)

V poslednom pokračovaní návodov o jazykovo lokalizovaných makrách si uvedieme zvyšné funkcie a procedúry pre makro, ktoré spočítava znaky v dokumente a vo vybranej textovej oblasti.


 

Naposledy sme si uviedli iba procedúru, pomocou ktorej sme jazykovo lokalizovali dialógové okno zo súborov a vypisovali spočítané slová, znaky a ich prepočet na normostrany a autorské hárky. Makro by však nebolo úplné bez ostatných funkcií a definícií premenných, ktoré preto dnes uvádzame.

dim medzery, medzery_regularne as string ' Oddeľovacie znaky medzi slovami
dim oddelovac_slov as string ' Znak, ktorý sa považuje za ukončovač slova
dim nepocitane_znaky as string ' Znaky, ktoré sa nikdy nepočítajú
dim normo_strana as single ' Počet znakov na normostranu
dim autorsky_harok as single ' Počet normostrán na jeden AH

dim Dokument, Hladaj, vyber as object

sub init_znaky
 medzery=chr(&H20)+chr(&HA0)+chr(&H09) ' Space, Hard space, Tab
 medzery_regularne="("+chr(&H20)+"|"+chr(&HA0)+"|"+chr(&H09)+")"
 oddelovac_slov=medzery+chr(&H0A)+chr(&H0D) ' Medzery, CR, LF
 oddelovac_slov=oddelovac_slov+"-"+"/"+"." ' Ak je potrebne pocitat napr. Firedk-Mistek za dve slova, potom aj pomlcka
 ' alebo lomitko a bodka napr. pre http odkazy
 nepocitane_znaky=chr(&H0A)+chr(&H0D) ' CR, LF
 normo_strana=1800 ' Počet znakov na normostranu
 autorsky_harok=20 ' Počet normostrán na autorský hárok
 Dokument=ThisComponent
 Hladaj=Dokument.createSearchDescriptor()
 vyber=dokument.getCurrentSelection() ' aktuálny vyber
end sub

REM 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
 nasiel = Dokument.findFirst(Hladaj)
 Do While NOT isNull(nasiel)
  if len(nasiel.String)>0 then
   kolko=kolko+1
  end if
  nasiel = Dokument.findNext( nasiel.End, Hladaj)
 Loop
 Spocitaj_hladanim=kolko
end function

function Jazyk_OOo as string
 dim ConfigProvider, MasterKey as object
 dim NodePath(0) as new com.sun.star.beans.PropertyValue
 dim jazyk as string
 
 NodePath(0).Name = "nodepath"
 NodePath(0).Value = "org.openoffice.Setup/L10N/"
 
 ConfigProvider = createUnoService("com.sun.star.configuration.ConfigurationProvider")
 MasterKey = ConfigProvider.createInstanceWithArguments("com.sun.star.configuration.ConfigurationAccess", NodePath())
 Jazyk_OOo = MasterKey.getByName("ooLocale") '"sk", "cs", ...
end function

REM Prevod reálneho čísla na reťazec (2 desatinné miesta)
function single_2_string (cislo as single) as string
 dim pom, cela, desatinna as string
 dim kde as long
 
 if cislo>0.10 then ' Pri menších číslach zaokrúhlime na 0, lebo funkcia str() potom dáva exponenciálny tvar E-02
  pom=trim(str(cislo))
 else
  pom="0,00"
 endif
 
 kde=Instr(pom,",") ' Vyhľadáme desatinnú čiarku
 if kde=0 then
  kde=Instr(pom,".") ' Ak nie je desatinná čiarka, vyhľadáme desatinnú bodku
 endif
 cela="0"
 desatinna="00"
 if kde>0 then
  cela=left(pom,kde-1) ' Vybranie celej časti, je desatinná čiarka
 else
  cela=pom ' Vybranie celej časti, nie je desatinná čiarka
 endif
 if kde>0 then ' Ak je desatinná čiarka, tak spracujeme desatinnú časť
  kde=len(pom)-kde
  if kde>0 then
   desatinna=right(pom,kde) ' Vybranie desatinnej časti
  endif
 endif
 kde=len(desatinna)
 select case kde ' Nastavenie desatinnej časti na dve desatinné miesta
  case 0
   desatinna="00"
  case 1
   desatinna=desatinna+"0"
  case else
   desatinna=left(desatinna,2)
 end select
 
 single_2_string=cela+","+desatinna ' Výsledný reťazec (nastavujeme desatinnú čiarku)
end function

 

Je Vaša doména voľná?

Platená reklama

Textová reklama

Ako začať podnikať na internete? Nechajte si poradiť. Aký má byť obsah kvalitne www stránky? Tvorba www stránok, Tvorba webu, Redakčný systém - CMS, Prieskumy o nakupovaní na internete, Pôžičky

Newsletter


Copyright © 2002 - 2012 Inet.sk, s. r. o.Všetky práva vyhradenéNeprešlo jazykovou úpravouISSN 1336-1899

Využívame kvalitný webhosting za rozumnú cenu od Webhosting Inet.sk


Bilancia skrývky Fotokniha Fotografie Osobnosti.sk