Fórum pro uživatele kancelářského balíku OpenOffice | LibreOffice
 

#1 26. 12. 2017 13:45:13

MilanUhrak
Člen
Registrace: 1. 11. 2005
Příspěvků: 36

Reference na uživatelovou složku Dokumenty

Zdravím ...

Založil jsem sešit, ve kterém vytvářím slovník. Součástí sešitu je makro, které převede sešit na csv, tak, aby ho akceptoval převaděč do formátu StarDict.


V makru to mám proto, že výchozí nastavení převodu ooCalc do csv  převaděči nevyhovuje, čili to nastavení dělám v makru a také proto, že převaděč vyžaduje určité sekvence oddělující významové roviny (např. \n) které se sice do řádku v sešitu dají vložit, ale znepřehledňují syrový text, takže v sešitě používám _^_ ( _jako mezera ), a makro to pak převede ..  no a navíc .. jedno kliknutí na tlačítko  a slovník je vyexportovaný .. jaká to je lebeda smile


Sešit mi visí na cloudu, upravuji ho ze 3  různých lokací ( jako vzdálený soubor ), pod několika uživatelskými jmény ( podle toho , kde zrovna sedím ) a prozatím jen v Linuxu.


Rád bych soubor csv ukládal do /home/**user**/Dokumenty/slovnik/slovnik.csv . To tam mám zatím natvrdo, čili můžu převádět jen pod jedním uživatelem, a pak výsledek nahrát na cloud, ale zajímalo by mně, zda je nějaká možnost, jak v makru získat cestu k uživatelovým dokumentům obecně.


Pro použití v Linuxu jsem právě našel možnost

	output_file_name = "~/Dokumenty/slovnik/slovnik.csv"
	fh = FreeFile  ' Establish free file handle    https://forum.openoffice.org/en/forum/viewtopic.php?t=34074
	Open output_file_name For Output As #fh         ' Open file (writing mode)

- tedy použití linuxácké substituce "tilda" jako odkazu na domovskou složku, ale jak toto dosáhnout ve windows ? Nebo jak toho dosáhnout obecně ? protože pokud je metoda pro win a lin rozdílná, přichází zákonitě dotaz : Jak zjistím, pod jakým systémem zrovna jedu (v makru, samozřejmě) ?

Děkuji všem za případnou pomoc.

Milan

Offline

#2 26. 12. 2017 15:05:05

neutr
Člen
Registrace: 8. 3. 2007
Příspěvků: 2,697

Re: Reference na uživatelovou složku Dokumenty

Enviroment a podle toho tu tildu nebo tečky - nebo absolutní sdresu.


Pokud je Váš problém vyřešen, označte prosím svůj příspěvek za "VYŘEŠENÝ"
Zlepšíte tak orientaci na fóru při vyhledávání řešení problémů
JAK OZNAČIT TÉMA ZA VYŘEŠENÉ

Offline

#3 6. 7. 2018 10:21:21

kamlan
Člen
Registrace: 15. 9. 2016
Příspěvků: 45

Re: Reference na uživatelovou složku Dokumenty

Chápu to správně že potřebujete zjistit adresář nastavený v Nástroje/ Možnosti.../ LibreOffice/ Cesty?


Sub pracovniAresar
    dim info, adresar
    info=CreateUnoService("com.sun.star.util.PathSettings") 'různý info Libre
    adresar=info.Work 'pracovní adresář nastavený v Nástroje/ Možnosti.../ LibreOffice/ Cesty
    msgbox adresar
End Sub

Offline

#4 6. 7. 2018 23:59:22

lp.
Člen
Registrace: 24. 9. 2009
Příspěvků: 791

Re: Reference na uživatelovou složku Dokumenty

Taky jde (linux, win)

    oPathSub = CreateUnoService( "com.sun.star.util.PathSubstitution" )
    HomeDir = oPathSub.getSubstituteVariableValue("$(home)")
    output_file_name = HomeDir & "/Dokumenty/slovnik.csv"

(mj. lze volit $(user), $(work), $(home)

Offline

#5 7. 7. 2018 12:07:37

neutr
Člen
Registrace: 8. 3. 2007
Příspěvků: 2,697

Re: Reference na uživatelovou složku Dokumenty

Ono jde asi o trošku něco jiného :

MilanUhrak napsal(a)

Rád bych soubor csv ukládal do /home/**user**/Dokumenty/slovnik/slovnik.csv . To tam mám zatím natvrdo, čili můžu převádět jen pod jedním uživatelem, a pak výsledek nahrát na cloud, ale zajímalo by mně, zda je nějaká možnost, jak v makru získat cestu k uživatelovým dokumentům obecně.

     Je to už delší čas a autor se neozval. Ale z výše uvedené citace vyplývá jakási podružná skutečnost, že ač jde o umístění na cloudu (kam se dostane každý a umí si to uložit podle návodu) má autor zájem uložit soubor podle svých představ a nespoléhat na uživatele.
     Ať je motivací cokoliv - například skrývání foldrů, musí se nejprve makro aktivovat tak, že se zadá "otevřít" stažený soubor. To znamená nejspíš komplikaci s otevřením hned při stažení do temporay, nebo uložení jinam (například stažené).
     Potom je otázkou zda hodlá autor původní instalaci smazat a ponechat pouze tu která se vytvořila regulérně podle autorových potřeb. Jak se uživatel dozví jak nakolíkovat správnou aplikaci? Takže když se nad tím zamyslíme, tak je to buď zralé na šablonu, nebo rozšíření s tím, že se funkcionalita volá prostřednictvím systému - tedy buď z maker LibreOffice, nebo MojeMakraStandard nad všemi moduly.


     Jiná by byla problematika když by chtěl instalovat na lokální stroje prostřednictvím sítě (nejspíš intranetu) "na dálku". Ale i tak bych to viděl komplikovanější nežli vytvořit rozšíření které může obsahovat vše - ovládací prvky v hlavním nebo kontextovém menu, výchozí šablonu a zdroj databáze slovníku. Rozšíření může být na cloudu uzamčeno proti nepovolaným. Obslužná makra nebudou bůh ví co ale mohou být určena specificky pro Win i Unix.
     To se dělá právě nejlépe na jednom místě výhybkou při startu buď jako Test Enviroment, nebo jak uvádí "lp.". Ale stačí to zjistit i strojeným jednoduchým makrem například ConvertFromUrl(Doc.Url) a najít typ lomítka - nejlépe cyklem a podle toho identifikovat verzi.


     Autor neuvádí zda jde o LO, nebo AOO, pouze testuje OS. To že by mělo jít o LO uvádí až kamlan jako domněnku po půl roce. Já k tomu jen dodám, že dnes jsou už mezi LO a AOO tak velké rozdíly, že se musí verzovat ještě pro AOO. Mimo toho existují problémy rozdílů mezi verzemi LO 32 a 64 bitů.
     Problematik bude více. Dá se čekat, že při používání překladových cizojazyčných prostředků se dá systém zblbnout tak, že spadne a ztratí data. Takže překlady by neměly být ve stejném dokumentu, ale možná že šlo autorovi o jiný typ slovníku - například pro kontrolu větné skladby, slohu aj.


     V každém případě to už má autor buď vyřešené, nebo to vzdal. Vše vlastně evokoval kamlan což je chvályhodné, ale mnoho tazatelů dostane co hladali a už se neozve natož aby uvedl, že je vyřešeno. Potom to vypadá že se řešení stále hledá. Kdysi toto dělal Dan Sedláček jako moderátor. Označil za vyřešené, nebo oslovil autora a pak poznačil. Ty doby jsou pryč.


Pokud je Váš problém vyřešen, označte prosím svůj příspěvek za "VYŘEŠENÝ"
Zlepšíte tak orientaci na fóru při vyhledávání řešení problémů
JAK OZNAČIT TÉMA ZA VYŘEŠENÉ

Offline

Zápatí