» Poradna » Programy

Jak spustit script z OpenOffice tak aby vrátil aktuální hodn

 |   | 

Pracuju v OpenOffice Calc a jelikož neumí řešit některé věci (integrování, derivace, symbolickou algebru), tak si pomáhám programem Maxima. Abych to nemusel řešit zvlášť, potřeboval bych propojit OO Calc s Maximou tak, aby pracovali společně. Zatím jsem to vyřešil tak, že jsem si vytvořil makro, které obsahuje příkaz Shell("maxima -b enum",0), který provede vše potřebné (program pro maximu je v souboru enum). Po toto vše funguje. Problém je ten, že příkaz Shell nevrací výsledek výpočtu. Tak jsem to vyřešil tak, že Maxima výsledek uloží do souboru answ a OO Calc si jej hned v tom samém makru přečte a to vrátí hodnotu do dané buňky.
A teď to přijde: vypadá to, že OO Calc si přečte obsah souboru dříve než se tam vloží, takže vidím vlastně minulý výpočet, což je pro mě nepoužitelné. Zkoušel jsem to obejít tak, že jsem volal funkci vícekrát, ale ona si pamatuje stále minulou odpověď a nehodlá načíst soubor znovu dokud nezměním zadání. Pak si načte teprve výsledek a pak provede výpočet, takže výsledek je sice platný, ale ne aktuální. Je opět starý a jsem zase kde jsem byl.

Máte nějaké nápady?

Mohlo by vás také zajímat

Odpovědi na otázku

 |   | 

zkoušels fórum na openoffice.cz ? Tam mi zatím vždy ku spokojenosti poradili.

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   | 

Dík za radu, to jsem nezkoušel, ale než jsem podal dotaz sem, tak jsem jej přečetl.

Ale přišel jsem na to sám!
Stačilo si znovu a hodně pomalu přečíst nápovědu k funkci Shell. Totiž čtu rychle a ledabyle a plno věcí si domýšlím, takže tam ani nejsou a si myslím, že to tak je.

Takže změna volání příkazu (důležitý čtvrtý parametr True):

Shell("maxima",0,"-b enum",True)

a už se čeká na změnu souboru a vše chodí jak má.
Já vždycky, když na něco nemůžu přijít, zadám dotaz a pak na to přijdu sám.
Díky všem za účast.javascript:WebForm_DoPostBackWithOptions(new%20WebForm_PostBackOptions("ctl02$1074_1029$ctl00$lbtnSave",%20"",%20true,%20"",%20"",%20false,%20true))

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   | 

Tak jsem napsal do buňky A1 výpočet plochy jednotkové kružnice pomocí integrálu: 2*float(integrate(sqrt(1-x*x),x,-1,+1))
A do buňky A2: =maxima(A1)
A v buňce A2 se mi objevilo: 3.141592653589793

A když jsem dal do políčka A1: solve(x^2-276*x/209+91/209=0,x)
Tak se mi v buňce A2 objevilo bezchybné řešení kvadratické rovnice: [x = 13/19, x = 7/11]

No super, jsem genius! A OpenOffice už umí integrovat, derivovat atd...

Souhlasím  |  Nesouhlasím  |  Odpovědět

Související témata: Calc, Maxima, Výsledek, Shell, Integrování