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

#1 Re: Writer » Vysvětlivky » 3. 8. 2022 11:40:24

Samozřejmě zapomněl.

Petr_K napsal(a)

6) Postupně v jednotlivých hlavách vyhledám čísla odstavců a vložím kotvy vysvětlivek (makrem).
7) Zkontroluji počet odstavců v příslušném souboru vysvětlivek a přiřadím jednotlivé texty (makrem).

Každý odstavec ,ať má nebo nemá vysvětlivku, má přiřazenou kotvu vysvětlivky, takže čísla vysvětlivek slouží jako čísla odstavců. Každá Hlava je číslována od 1 do x, takže očíslování veršů je stejné jako původní a původní čísla mohu smazat.
Katitoly s hlavami nesouvisí, jak jsem vysvětlil dříve, takže formátování může vypadat takto:

Nadpis2
Hlava 1.
1. verš
.
.
x. verš
Hlava 2.
1.verš
2. verš
Nadpis1
Nadpis2
Nadpis3
Nadpis4
3. verš
.
.
x. verš
Nadpis3
Hlava 3.
1. verš
.
.
x. verš
Nadpis3
x+1. verš
.
.
x+n. verš
Hlava 4.
1.verš
.
.
x. verš
Nadpis2
Nadpis3

atd.

Je to pěkný guláš.

#2 Re: Writer » Vysvětlivky » 3. 8. 2022 11:09:17

neutr napsal(a)

Takže popřemýšlejte co opravdu potřebujete. Často se stává, že po dokončení podle zadání autor napíše – „teď mne napadlo, že by bylo lepší …" a začíná se nové kolečko domluvy – ne-domluvy a to i opakovaně.
     Začněte konkrétní představou o struktuře, kterou musíte upravit a myslím, že od úplného začátku, tedy na „zelené louce". Je možné vytvořit makro, které podle příznaků strukturu vytvoří. Nevím sice zda se tak dá vytvořit úplně vše, co bude potřeba protože doposud potřebu neznám, ale myslím, že to lze vyřešit elegantně (a hlavně rychle) za určitých předpokladů, které bych následně upřesnil.

Ano, máte pravdu. Většinou vyvíjím program za chodu a není to dobré. Vynasnažím se zformulovat představu:
Starozákonních knih je 46.
1) Každou knihu bych chtěl mít jako zvláštní soubor odt a všechny je pak propojit v hlavním dokumentu.
2) Při vytváření souborů odt vycházím ze souboru pdf, ze kterého vyexportuji text.
3) Tento textový soubor rozdělím na jednotlivé knihy a soubory vysvětlivek, z nichž je každý určen názvem knihy ke které patří a Hlavou jejíž vysvětlivky obsahuje.
Př.: Vysvetlivky_Genesis_Hlava1.odt (pro soubor [knihu] Genesis.odt) po úpravě txt souboru vysvětlivek do formátu odt.
4) Kvůli přehlednosti má každá kniha se svými soubory vysvětlivek vlastní adresář.
5) Upravím knihu (např. Genesis.txt) tak, že každý verš je označen číslem s mezerou před a za ( 1 ), opravím chyby v textu, zformátuji nadpisy, odstavce atd. a vytvořím ze souboru txt formát odt.
6) Postupně v jednotlivých hlavách vyhledám čísla odstavců a vložím kotvy vysvětlivek (makrem).
7) Zkontroluji počet odstavců v příslušném souboru vysvětlivek a přiřadím jednotlivé texty (makrem).
8) Shromáždím jednotlivé knihy (soubory odt) v hlavním dokumentu.
To je moje představa. Doufám, že jsem na nic nezapomněl.

#3 Re: Writer » Vysvětlivky » 2. 8. 2022 20:30:56

Dobrý večer,
pan dr. Hejčl popisuje rozdělení na kapitoly takto:

Jednotlivé kapitoly rozdělil pak
na verše pařížský (později ženevský) knihtiskař Robert E(s)tienne, a to
ve vydání Vulgáty z roku 1555.
Jest litovati, že toto rozdělení na hlavy není na každém místě
správné. Celistvý děj bývá někdy roztržen, jindy obsahuje jedna ka-
pitola více logicky ohraničených a samostatných celků, verše souvislostí
patřící ke kapitole předcházející jsou přiřazeny ke kapitole následující 2)
a naopak. Totéž v míře ještě větší jest říci o rozdělení na verše. Již
papež Sixtus V. se pokusil odstraniti tento nedostatek, avšak rozdělení
toto bylo již tak zakořeněno, že jeho snaha nepronikla. My ve svém
překladě ponecháváme sice toto rozdělení, označujeme kapitoly i verše
obvyklým způsobem, ale rozdělujeme text dle logického zaokrouhlení
na větší a menší oddíly a odstavce.

To znamená, že číslování veršů v každé hlavě je od jedničky, ale kapitoly jsou jiné a obsahují někdy jednu a kousek hlavy nebo více hlav.Číslování průběžné proto není možné.
Postup pro makro:
1) Očíslovat verše hlavy hlavního souboru
2) Zkontrolovat odpovídající soubor vysvětlivek pro danou hlavu na počet vysvětlivek
3) Vkládat odpovídající texty vysvětlivek do hlavního souboru
Soubor vysvětlivek otvírám jako skrytý, ale nedaří se mi vložit text vysv. do hlavního souboru. Začal jsem na tom pracovat teď večer a už na to nemám kapacitu. Tak až zítra. Makro od vás mi běží dobře a zapisuje do hlav. souboru, ale vadilo mi to problikávání.
Děkuji za ochotu a pomoc.

#4 Re: Writer » Vysvětlivky » 2. 8. 2022 10:55:24

Neutr:
Tak jsem na to snad přišel.

Ve své přílišné aktivitě jsem přepsal obsah položky .Name:

args101(0).Name = "FootnoteAnchorText"
args101(0).Value = cv
dispatcher.executeDispatch(Doc1_2, ".uno:InsertEndnote", "", 0, args101())

na

args101(0).Name = "EndnoteAnchorText"
args101(0).Value = cv
dispatcher.executeDispatch(Doc1_2, ".uno:InsertEndnote", "", 0, args101())

Když jsem přepsal "EndnoteAnchorText" nazpět  na "FootnoteAnchorText", vypadá to, že to čísluje správně.

#5 Re: Writer » Vysvětlivky » 2. 8. 2022 08:58:29

Dobrý den,

neutr:
ve vkládání textu vysvětlivek jsem díky Vám pokročil,šlape to, až na malé detaily, které teď nechci řešit.

Problém je ale s vkládáním znaků (čísel) kotev, kde macro (.uno:InsertEndNote) čísluje automaticky, podle ThisComponent.Endnotes.Count. Zkoušel jsem oDoc=ThisComponent, ale oDoc.EndNotes.Count nelze přepsat, je jen pro čtení.
Jak zrušit to automatické číslování?.

#6 Re: Writer » Vysvětlivky » 31. 7. 2022 14:44:16

Děkuji, už jsem se do toho pustil.
Asi mě to chvíli dá smile

#7 Re: Writer » Vysvětlivky » 30. 7. 2022 21:50:43

Nejvíce času trávím obecnou úpravou dokumentů (nečitelná slova pro OCR, formátování nadpisů atd.). Takže vkládání vysvětlivek můžu začít od začátku.
Nyní jsem zjistil, proč jsem OCR nepoužil. Soubor pdf již obsahuje text a ten je lepší než ten, který vytvořil můj Fine Reader. Proto jsem ho okulárem z pdf exportoval jako txt, s tím, že potřebné opravy a formátování provedu ručně. Stejně si již dlouho říkám, že bych si měl přečíst bibli celou smile.
Petr_K

#8 Re: Writer » Vysvětlivky » 30. 7. 2022 10:48:43

Dobrý den,
nevím, jestli bych tyto věci, které nesouvisí s libreoffice neměl řešit e-mailem s Vámi soukromě. Ale zkusím to stručně objasnit.

Situace je trošku jiná.

Bible kralická je tzv. protestantská bible, t.j. překládaná protestanty a ti do svého překladu vysvětlivky nevkládají. Proč, to je určitě na jinou diskuzi.

Tato bible, co s ní pracuji já je od katolického biblisty dr. Jana Hejčla z roku 1917. Je volně stažitelná na stránkách http://librinostri.catholica.cz/.

V příspěvku #7 jsem to zamotal. Spojil jsem FootNote a EndNote. Vždy šlo pouze o vysvětlivky (EndNote).
Důvodů proč chci vysvětlivky na konci dokumentu a ne jako poznámky pod čarou na stránce či na konci kapitoly je více. Hlavní je ten, aby nepřekáželi v textu.

Nyní mám problém, že nemohu najít příkaz pro otevření a následně čtení druhého dokumentu – Vysvětlivky.odt.

Tedy příkazem

dim document   as object
dim dispatcher as object
document   = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")

na začátku makra si otevřít hlavní dokument, který upravuji a (jak doufám) podobným příkazem otevřít dokument Vysvětlivky.odt abych v něm mohl najít první odstavec, načíst jej do clipboardu či do proměnné, smazat jej v tomto dokumentu a vložit do hlavního dokumentu do vysvětlivky.

Snad jsem to příliš nezamotal a vysvětlil, že nejsem lupič smile.

Problém ocr je mi jasný, mám FineReader7, který již dávno poskytla firma zdarma. Běží mi na virtuálem, protože jako systém mám Linux Manjaro a ne Windows, ale to asi není tak důležité.

Petr_K

#9 Re: Writer » Vysvětlivky » 28. 7. 2022 10:37:40

Oprava:
ale když jsem na jejich místo chtěl napsat text (číslo),

#10 Re: Writer » Vysvětlivky » 28. 7. 2022 10:33:59

Dobrý den,
Děkuji za reakci na můj příspěvek.

Vašeho návrhu na poslání orig. txt se rád chopím a posílám vám na e-mail soubor Pokusný soubor.txt s vlastním textem a soubor Vysvětlivky_pom.odt s formátovaným textem vysvětlivek. Každá vysvětlivka je jeden odstavec. Prázdné odstavce jsou prázdné vysvětlivky, jejichž Anchor označuje číslo verše.

Jen ještě dotaz k Anchor vysvětlivek. Lze je hledat pomocí Ctrl H? Vypadá to jako nesmysl, ale když jsem na jejich místo napsat text (číslo), tak by mě to dost pomohlo.

Petr_K

#11 Re: Writer » Vysvětlivky » 26. 7. 2022 22:06:10

Dobrý večer,
omlouvám se za svou nekomunikaci. Párkrát jsem se podíval do diskuze a odpověď na můj poslední příspěvek žádná nebyla, tak jsem to přestal sledovat.
Opravdu, v makrech jsem začátečník a tak dělá jistě hrozné chyby.
Možná jsem nejasně formuloval o co mi jde. Originál knihy je ve formátu pdf. Takže vyexportuji text do souboru txt a ten upravuji ve writeru. Poznámky pod čarou jsou samozřejmě v textu a tak je přesunuji do jiného souboru odt. Takže v prvním souboru odt zůstane vlastní text s čísly veršů. Ty hledám a tam vkládám čísla vysvětlivek, které jsou zatím prázdné a v dalším kroku jejich text zkopíruji z druhého odt.
Na číslování jsem použil následující makro, protože cyklus FOR - NEXT použít nejde:

REM  *****  BASIC  *****

sub Vloz_vysvetl
rem ----------------------------------------------------------------------
rem define variables
dim document   as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document   = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")

rem ----------------------------------------------------------------------

dim i%,sVar%,prv%,psv%,cv$

 prv = InputBox ("Od verše:","Zadat počáteční číslo verše")
 psv = InputBox ("Do verše:","Zadat konečné číslo verše")

 sVar = MsgBox("Od verše: "+prv+"  do verše: "+psv,128 + 3,"Kontrola počtu veršů v Hlavě")

i = prv
cv = i

Search(dispatcher,document)

rem ----------------------------------------------------------------------
dim args101(0) as new com.sun.star.beans.PropertyValue
args101(0).Name = "FootnoteAnchorText"
args101(0).Value = cv

dispatcher.executeDispatch(document, ".uno:InsertEndnote", "", 0, args101())

rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:PageUp", "", 0, Array())

IF i >= psv Then GoTo Konec
i = i + 1
cv = i

Search(dispatcher,document)

rem ----------------------------------------------------------------------
dim args102(0) as new com.sun.star.beans.PropertyValue
args102(0).Name = "FootnoteAnchorText"
args102(0).Value = cv

dispatcher.executeDispatch(document, ".uno:InsertEndnote", "", 0, args102())

rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:PageUp", "", 0, Array())

IF i >= psv Then GoTo Konec
i = i + 1
cv = i

Search(dispatcher,document)

rem ----------------------------------------------------------------------
dim args103(0) as new com.sun.star.beans.PropertyValue
args103(0).Name = "FootnoteAnchorText"
args103(0).Value = cv

dispatcher.executeDispatch(document, ".uno:InsertEndnote", "", 0, args103())


rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:PageUp", "", 0, Array())

IF i >= psv Then GoTo Konec
i = i + 1
cv = i

Search(dispatcher,document)

rem ----------------------------------------------------------------------
dim args104(0) as new com.sun.star.beans.PropertyValue
args104(0).Name = "FootnoteAnchorText"
args104(0).Value = cv

dispatcher.executeDispatch(document, ".uno:InsertEndnote", "", 0, args104())


rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:PageUp", "", 0, Array())

IF i >= psv Then GoTo Konec
i = i + 1
cv = i

Search(dispatcher,document)

rem ----------------------------------------------------------------------
dim args105(0) as new com.sun.star.beans.PropertyValue
args105(0).Name = "FootnoteAnchorText"
args105(0).Value = cv

dispatcher.executeDispatch(document, ".uno:InsertEndnote", "", 0, args105())


rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:PageUp", "", 0, Array())

IF i >= psv Then GoTo Konec
i = i + 1
cv = i

Search(dispatcher,document)

rem ----------------------------------------------------------------------
dim args106(0) as new com.sun.star.beans.PropertyValue
args106(0).Name = "FootnoteAnchorText"
args106(0).Value = cv

dispatcher.executeDispatch(document, ".uno:InsertEndnote", "", 0, args106())


rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:PageUp", "", 0, Array())

IF i >= psv Then GoTo Konec
i = i + 1
cv = i

Search(dispatcher,document)

rem ----------------------------------------------------------------------
dim args107(0) as new com.sun.star.beans.PropertyValue
args107(0).Name = "FootnoteAnchorText"
args107(0).Value = cv

dispatcher.executeDispatch(document, ".uno:InsertEndnote", "", 0, args107())


rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:PageUp", "", 0, Array())

IF i >= psv Then GoTo Konec
i = i + 1
cv = i

Search(dispatcher,document)

rem ----------------------------------------------------------------------
dim args108(0) as new com.sun.star.beans.PropertyValue
args108(0).Name = "FootnoteAnchorText"
args108(0).Value = cv

dispatcher.executeDispatch(document, ".uno:InsertEndnote", "", 0, args108())


rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:PageUp", "", 0, Array())

IF i >= psv Then GoTo Konec
i = i + 1
cv = i

Search(dispatcher,document)

rem ----------------------------------------------------------------------
dim args109(0) as new com.sun.star.beans.PropertyValue
args109(0).Name = "FootnoteAnchorText"
args109(0).Value = cv

dispatcher.executeDispatch(document, ".uno:InsertEndnote", "", 0, args109())


rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:PageUp", "", 0, Array())

IF i >= psv Then GoTo Konec
i = i + 1
cv = i

Search(dispatcher,document)

rem ----------------------------------------------------------------------
dim args110(0) as new com.sun.star.beans.PropertyValue
args110(0).Name = "FootnoteAnchorText"
args110(0).Value = cv

dispatcher.executeDispatch(document, ".uno:InsertEndnote", "", 0, args110())


rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:PageUp", "", 0, Array())

IF i >= psv Then GoTo Konec
i = i + 1
cv = i

Search(dispatcher,document)

rem ----------------------------------------------------------------------
dim args111(0) as new com.sun.star.beans.PropertyValue
args111(0).Name = "FootnoteAnchorText"
args111(0).Value = cv

dispatcher.executeDispatch(document, ".uno:InsertEndnote", "", 0, args111())


rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:PageUp", "", 0, Array())

IF i >= psv Then GoTo Konec
i = i + 1
cv = i

Search(dispatcher,document)

rem ----------------------------------------------------------------------
dim args112(0) as new com.sun.star.beans.PropertyValue
args112(0).Name = "FootnoteAnchorText"
args112(0).Value = cv

dispatcher.executeDispatch(document, ".uno:InsertEndnote", "", 0, args112())


rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:PageUp", "", 0, Array())

IF i >= psv Then GoTo Konec
i = i + 1
cv = i

Search(dispatcher,document)

rem ----------------------------------------------------------------------
dim args113(0) as new com.sun.star.beans.PropertyValue
args113(0).Name = "FootnoteAnchorText"
args113(0).Value = cv

dispatcher.executeDispatch(document, ".uno:InsertEndnote", "", 0, args113())


rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:PageUp", "", 0, Array())

IF i >= psv Then GoTo Konec
i = i + 1
cv = i

Search(dispatcher,document)

rem ----------------------------------------------------------------------
dim args114(0) as new com.sun.star.beans.PropertyValue
args114(0).Name = "FootnoteAnchorText"
args114(0).Value = cv

dispatcher.executeDispatch(document, ".uno:InsertEndnote", "", 0, args114())


rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:PageUp", "", 0, Array())

IF i >= psv Then GoTo Konec
i = i + 1
cv = i

Search(dispatcher,document)

rem ----------------------------------------------------------------------
dim args115(0) as new com.sun.star.beans.PropertyValue
args115(0).Name = "FootnoteAnchorText"
args115(0).Value = cv

dispatcher.executeDispatch(document, ".uno:InsertEndnote", "", 0, args115())


rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:PageUp", "", 0, Array())

IF i >= psv Then GoTo Konec
i = i + 1
cv = i

Search(dispatcher,document)

rem ----------------------------------------------------------------------
dim args116(0) as new com.sun.star.beans.PropertyValue
args116(0).Name = "FootnoteAnchorText"
args116(0).Value = cv

dispatcher.executeDispatch(document, ".uno:InsertEndnote", "", 0, args116())


rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:PageUp", "", 0, Array())

IF i >= psv Then GoTo Konec
i = i + 1
cv = i

Search(dispatcher,document)

rem ----------------------------------------------------------------------
dim args117(0) as new com.sun.star.beans.PropertyValue
args117(0).Name = "FootnoteAnchorText"
args117(0).Value = cv

dispatcher.executeDispatch(document, ".uno:InsertEndnote", "", 0, args117())


rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:PageUp", "", 0, Array())

IF i >= psv Then GoTo Konec
i = i + 1
cv = i

Search(dispatcher,document)

rem ----------------------------------------------------------------------
dim args118(0) as new com.sun.star.beans.PropertyValue
args118(0).Name = "FootnoteAnchorText"
args118(0).Value = cv

dispatcher.executeDispatch(document, ".uno:InsertEndnote", "", 0, args118())


rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:PageUp", "", 0, Array())

IF i >= psv Then GoTo Konec
i = i + 1
cv = i

Search(dispatcher,document)

rem ----------------------------------------------------------------------
dim args119(0) as new com.sun.star.beans.PropertyValue
args119(0).Name = "FootnoteAnchorText"
args119(0).Value = cv

dispatcher.executeDispatch(document, ".uno:InsertEndnote", "", 0, args119())


rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:PageUp", "", 0, Array())

IF i >= psv Then GoTo Konec
i = i + 1
cv = i

Search(dispatcher,document)

rem ----------------------------------------------------------------------
dim args120(0) as new com.sun.star.beans.PropertyValue
args120(0).Name = "FootnoteAnchorText"
args120(0).Value = cv

dispatcher.executeDispatch(document, ".uno:InsertEndnote", "", 0, args120())


rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:PageUp", "", 0, Array())

IF i >= psv Then GoTo Konec
i = i + 1
cv = i

Search(dispatcher,document)

rem ----------------------------------------------------------------------
dim args121(0) as new com.sun.star.beans.PropertyValue
args121(0).Name = "FootnoteAnchorText"
args121(0).Value = cv

dispatcher.executeDispatch(document, ".uno:InsertEndnote", "", 0, args121())


rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:PageUp", "", 0, Array())

IF i >= psv Then GoTo Konec
i = i + 1
cv = i

Search(dispatcher,document)

rem ----------------------------------------------------------------------
dim args122(0) as new com.sun.star.beans.PropertyValue
args122(0).Name = "FootnoteAnchorText"
args122(0).Value = cv

dispatcher.executeDispatch(document, ".uno:InsertEndnote", "", 0, args122())


rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:PageUp", "", 0, Array())

IF i >= psv Then GoTo Konec
i = i + 1
cv = i

Search(dispatcher,document)

rem ----------------------------------------------------------------------
dim args123(0) as new com.sun.star.beans.PropertyValue
args123(0).Name = "FootnoteAnchorText"
args123(0).Value = cv

dispatcher.executeDispatch(document, ".uno:InsertEndnote", "", 0, args123())


rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:PageUp", "", 0, Array())

IF i >= psv Then GoTo Konec
i = i + 1
cv = i

Search(dispatcher,document)

rem ----------------------------------------------------------------------
dim args124(0) as new com.sun.star.beans.PropertyValue
args124(0).Name = "FootnoteAnchorText"
args124(0).Value = cv

dispatcher.executeDispatch(document, ".uno:InsertEndnote", "", 0, args124())


rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:PageUp", "", 0, Array())

IF i >= psv Then GoTo Konec
i = i + 1
cv = i

rem ----------------------------------------------------------------------
dim args125(0) as new com.sun.star.beans.PropertyValue
args125(0).Name = "FootnoteAnchorText"
args125(0).Value = cv

dispatcher.executeDispatch(document, ".uno:InsertEndnote", "", 0, args125())


rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:PageUp", "", 0, Array())

IF i >= psv Then GoTo Konec
i = i + 1
cv = i

Search(dispatcher,document)

rem ----------------------------------------------------------------------
dim args126(0) as new com.sun.star.beans.PropertyValue
args126(0).Name = "FootnoteAnchorText"
args126(0).Value = cv

dispatcher.executeDispatch(document, ".uno:InsertEndnote", "", 0, args126())


rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:PageUp", "", 0, Array())

IF i >= psv Then GoTo Konec
i = i + 1
cv = i

Search(dispatcher,document)

rem ----------------------------------------------------------------------
dim args127(0) as new com.sun.star.beans.PropertyValue
args127(0).Name = "FootnoteAnchorText"
args127(0).Value = cv

dispatcher.executeDispatch(document, ".uno:InsertEndnote", "", 0, args127())


rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:PageUp", "", 0, Array())

IF i >= psv Then GoTo Konec
i = i + 1
cv = i

Search(dispatcher,document)

rem ----------------------------------------------------------------------
dim args128(0) as new com.sun.star.beans.PropertyValue
args128(0).Name = "FootnoteAnchorText"
args128(0).Value = cv

dispatcher.executeDispatch(document, ".uno:InsertEndnote", "", 0, args128())


rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:PageUp", "", 0, Array())

IF i >= psv Then GoTo Konec
i = i + 1
cv = i

Search(dispatcher,document)

rem ----------------------------------------------------------------------
dim args129(0) as new com.sun.star.beans.PropertyValue
args129(0).Name = "FootnoteAnchorText"
args129(0).Value = cv

dispatcher.executeDispatch(document, ".uno:InsertEndnote", "", 0, args129())


rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:PageUp", "", 0, Array())

IF i >= psv Then GoTo Konec
i = i + 1
cv = i

Search(dispatcher,document)

rem ----------------------------------------------------------------------
dim args130(0) as new com.sun.star.beans.PropertyValue
args130(0).Name = "FootnoteAnchorText"
args130(0).Value = cv

dispatcher.executeDispatch(document, ".uno:InsertEndnote", "", 0, args130())


rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:PageUp", "", 0, Array())

IF i >= psv Then GoTo Konec
i = i + 1
cv = i

Search(dispatcher,document)

rem ----------------------------------------------------------------------
dim args131(0) as new com.sun.star.beans.PropertyValue
args131(0).Name = "FootnoteAnchorText"
args131(0).Value = cv

dispatcher.executeDispatch(document, ".uno:InsertEndnote", "", 0, args131())


rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:PageUp", "", 0, Array())

Konec:
end sub

Function Search(dispatcher,document)

rem dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")

dim args1(21) as new com.sun.star.beans.PropertyValue

args1(0).Name = "SearchItem.StyleFamily"
args1(0).Value = 2
args1(1).Name = "SearchItem.CellType"
args1(1).Value = 0
args1(2).Name = "SearchItem.RowDirection"
args1(2).Value = true
args1(3).Name = "SearchItem.AllTables"
args1(3).Value = false
args1(4).Name = "SearchItem.SearchFiltered"
args1(4).Value = false
args1(5).Name = "SearchItem.Backward"
args1(5).Value = false
args1(6).Name = "SearchItem.Pattern"
args1(6).Value = false
args1(7).Name = "SearchItem.Content"
args1(7).Value = false
args1(8).Name = "SearchItem.AsianOptions"
args1(8).Value = false
args1(9).Name = "SearchItem.AlgorithmType"
args1(9).Value = 1
args1(10).Name = "SearchItem.SearchFlags"
args1(10).Value = 65536
args1(11).Name = "SearchItem.SearchString"
args1(11).Value = "( )[:digit:]{1,}( )"
args1(12).Name = "SearchItem.ReplaceString"
args1(12).Value = ""
args1(13).Name = "SearchItem.Locale"
args1(13).Value = 255
args1(14).Name = "SearchItem.ChangedChars"
args1(14).Value = 2
args1(15).Name = "SearchItem.DeletedChars"
args1(15).Value = 2
args1(16).Name = "SearchItem.InsertedChars"
args1(16).Value = 2
args1(17).Name = "SearchItem.TransliterateFlags"
args1(17).Value = 1073743104
args1(18).Name = "SearchItem.Command"
args1(18).Value = 0
args1(19).Name = "SearchItem.SearchFormatted"
args1(19).Value = false
args1(20).Name = "SearchItem.AlgorithmType2"
args1(20).Value = 2
args1(21).Name = "Quiet"
args1(21).Value = true

dispatcher.executeDispatch(document, ".uno:ExecuteSearch", "", 0, args1())

End Function

Připadá mi to strašně krkolomné, ale funguje to. Doufám, že až se v Basicu trochu zorientuji, tak to udělám "hezčí". Zatím vůbec netuším co znamenají různě číslované args(x).
K hledání čísel: požívám regulární výraz [:digit:]{1,}, který hledá jedno a vícečíselná čísla.

Neutr: Děkuji vám za trpělivost a za každou pomoc jsem moc vděčný, i když leckdy Váš příspěvek úplně nepochopím, doufám, že zatím smile.

Petr_K

#12 Re: Writer » Vysvětlivky » 23. 7. 2022 10:11:44

Tak problém byl v tom, že jsem chtěl podruhé definovat

dim args4(0) as new com.sun.star.beans.PropertyValue

args4(0).Name = "FootnoteAnchorText"

Petr_K

#13 Re: Writer » Vysvětlivky » 23. 7. 2022 08:46:05

Děkuji Vám za odpověď,

pokusím se stručně vylíčit, o co mi jde.

Pokouším se převést starší část bible do formátu odt. Bible je rozdělena na kapitoly (Hlava 1 atd.) a každá Hlava má své číslování veršů od 1 do x. V originále je skutečně každá poznámka k verši na stránce kde je daný verš, ale při čtení to dost ruší. Proto si myslím, že by bylo lepší dát poznámky jako vysvětlivky na konec knihy popř. do jiného souboru. Číslování vysvětlivek jsem prováděl ručně, ale to je značně náročné, hlavně na čas.

Teď k makru:
Tady je celý i s hledáním místa, kam se má odkaz na vysvětlivku vložit:

sub Hledani
rem ----------------------------------------------------------------------
rem define variables
dim document   as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document   = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")

rem ----------------------------------------------------------------------
dim args1(21) as new com.sun.star.beans.PropertyValue
dim i%
dim cv$
i = 1
For i = 1 to 15
rem i = i + 1
cv = i

rem Print cv,C
args1(0).Name = "SearchItem.StyleFamily"
args1(0).Value = 2
args1(1).Name = "SearchItem.CellType"
args1(1).Value = 0
args1(2).Name = "SearchItem.RowDirection"
args1(2).Value = true
args1(3).Name = "SearchItem.AllTables"
args1(3).Value = false
args1(4).Name = "SearchItem.SearchFiltered"
args1(4).Value = false
args1(5).Name = "SearchItem.Backward"
args1(5).Value = false
args1(6).Name = "SearchItem.Pattern"
args1(6).Value = false
args1(7).Name = "SearchItem.Content"
args1(7).Value = false
args1(8).Name = "SearchItem.AsianOptions"
args1(8).Value = false
args1(9).Name = "SearchItem.AlgorithmType"
args1(9).Value = 1
args1(10).Name = "SearchItem.SearchFlags"
args1(10).Value = 65536
args1(11).Name = "SearchItem.SearchString"
args1(11).Value = "( )[:digit:]{1,}( )"
args1(12).Name = "SearchItem.ReplaceString"
args1(12).Value = ""
args1(13).Name = "SearchItem.Locale"
args1(13).Value = 255
args1(14).Name = "SearchItem.ChangedChars"
args1(14).Value = 2
args1(15).Name = "SearchItem.DeletedChars"
args1(15).Value = 2
args1(16).Name = "SearchItem.InsertedChars"
args1(16).Value = 2
args1(17).Name = "SearchItem.TransliterateFlags"
args1(17).Value = 1073743104
args1(18).Name = "SearchItem.Command"
args1(18).Value = 0
args1(19).Name = "SearchItem.SearchFormatted"
args1(19).Value = false
args1(20).Name = "SearchItem.AlgorithmType2"
args1(20).Value = 2
args1(21).Name = "Quiet"
args1(21).Value = true

dispatcher.executeDispatch(document, ".uno:ExecuteSearch", "", 0, args1())

rem ----------------------------------------------------------------------
dim args4(0) as new com.sun.star.beans.PropertyValue

args4(0).Name = "FootnoteAnchorText"
args4(0).Value = cv
Print "Proměnná args4(0).Value je typu "+TypeName(args4(0).Value)+" a má hodnotu: "+args4(0).Value

dispatcher.executeDispatch(document, ".uno:InsertEndnote", "", 0, args4())


rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:PageUp", "", 0, Array())

Next i

end sub

Proměnná args4(0).Value je string a vložit do ní číselnou proměnnou "i" se mi nepodařilo, proto jsem použil string proměnnou "cv". Vypisuji si typ proměnné args4(0).Value a její hodnotu a vše je zdánlivě správně a přesto to při druhém průchodu hodí zmíněnou chybu. Nevím, jak funguje funkce .uno:InsertEndnote a nevím, kde bych o ní něco našel.
Příkaz

Print "cv = "+cv

podle mě nic nepřičítá, ale pro výpis na obrazovku spojuje text s hodnotou proměnné.

Tak snad jsem na nic nezapomněl.

Neutr: Dovolil jsem si Vám poslat pokusný soubor odt s textem i makrem.

Za případné odpovědi předem děkuji.

Petr_K

#14 Re: Writer » Vysvětlivky » 21. 7. 2022 18:15:21

Dobrý den,
ještě příspěvek k resetování vysvětlivek v nové kapitole.

Rozhodl jsem se vytvořit si makro, které se při spuštění zeptá na konečné číslo vysvětlivky v kapitole a pomocí cyklu For - Next plní integer proměnnou i a následně její hodnotu přiřadí string proměnné cv.
potom provede:

Print "cv = " + cv
args4(0).Name = "FootnoteAnchorText"
args4(0).Value = cv
dispatcher.executeDispatch(document, ".uno:InsertEndnote", "", 0, args4())

Poprvé to funguje a vytvoří se vysvětlivka č. 1 podruhé mi to vypíše chybu:
BASIC - chyba při běhu.
Vyskytla se výjimka
Type: com.sun.star.lang.IllegalArgumentException
Message: sequence element is not assignable by given value! /build/libreoffice-still/src/libreoffice-7.2.7.2/stoc/source/corereflection/crarray.cxx:172.
a vysvětlivka má místo č. 2 znak i.
Ve výpisu print však vidím 2.

Jsem s makry začátečník a tak prosím o pomoc.

Děkuji.

Petr_K

#15 Re: Writer » Vysvětlivky » 8. 8. 2020 07:50:16

Děkuji za odpovědi.

V knize, kterou si převádím do souboru odt, je v každé kapitole nové číslování veršů a ke každému verši jsou poznámky od několika autorů. Proto jsem chtěl číslování veršů spojit s číslem poznámky. Odlišeny by byly číslem kapitoly.  Navíc bych rád do poznámek průběžně zasahoval a je popř. rozšiřoval. Také výsledný soubor potřebuji převést do formátu mobi, abych jej mohl číst ve čtečce. Tam převod souboru s vysvětlivkami funguje dobře.

Co jsem se chtěl dozvědět jsem se dozvěděl: Číslování vysvětlivek nelze v každé kapitole resetovat.

Poznámky pod čarou vyzkouším.

Dotaz pokládám za Vyřešený.

#16 Re: Writer » Vysvětlivky » 6. 8. 2020 08:43:57

Dobrý den,

zajímalo by mne, zda lze v každé kapitole resetovat číslování vysvětlivek.

Děkuji.

Zápatí

Používáme FluxBB