Home


Aktualizováno 28.03.13 10:39:15
*******************************
*************
28.03.2013
Protože existence dynamické podmínky po návratu z podřízeného formuláře
působila přechod na první položku a ztrátu vyplněných údajů, přidána
inteligence, která přechod na první položku potlačí v případě, že
se dynamická podmínka po návratu do formuláře nezměnila. Není tedy
třeba hledat znovu jinou vyhovující větu.
****************
16.03.2013
Na funkci kalendář je aplikována funkce .translate, takže měsíce
je možno poslovenštit. Např.

.open pom.txt
.edt
Duben
April

Červen
Jún

.ddt
.close
.translate 1,pom.txt
****************
08.03.2013
Ještě s dynamickou podmínkou vznikl problém s podmínkou po CO?,
neboť dynamická podmínka se chápe jako globální a tak po třeba
pc 1 dynamicky uživatel po CO? a pc 505 dostane odpověď nenalezen!

Proto jsem do toho doplnil aparát, který si zapamatuje původní
globální podmínku obsaženou ve VST a po otázce CO? ji automaticky
obnoví nebo jinak řečeno, poslední dynamickou podmínku nahradí
původní globální podmínkou.
*****************
05.03.2013
Oživen institut dynamicke podmínky na příkladu:

.es
cislo=1
%vst
de:1,hk,dp:2,bp,rf.
uziv
{r0|sh,1,1,22,80,<201>,<113>," Pořízení "," F1-HELP "}
.pr(xo 1 2 0 "Číslo"r;
xo 1 7 0 "Název"r;
xo 1 38 0 "Město"r;)
.bco
.eco
{2,2,18,78,<201>}
<271>,<272>,<273>,<274>,<275>
.pr(xo 1 1;pc r;
xo 1 6;naz r;
xo 1 37;mes r;
)
pc
co,hk.
/
.bpr
.bco
.if(qk!=0) qa=30001; qk=0;
.if(ql && !pc) pc=ql
.eco
.epr
.bpr
.se(qd '$F6')
.bco
qk+=gsb("VSTF6")
qk=[cislo]
ql=qk
q[2][1:10]:="pc "+prnt(qk,3,"");
qa=0
.eco
.epr
/
.pr()
%
.exit
.vstf6:
.xyzn cislo,4,21,2,"0000"
.return

Na F6 vlezeme do procedury, uživatel zadá číslo a po návratu se
vyberou věty podle textové podmínky vytvořené dynamicky v q[2].
V případě neexistence věty se do pc dosadí zadaná hodnota.
*****************
13.02.2013
Ekosoft chtěl, aby rozvoj submenu v PDMEN nevylezl napravo z okna,
ve kterém se rozvinula vodorovná lišta. Zatím jsem to udělal
pouze pro ně. Otázkou je, zda by to měl být standard nebo jen
na přání - tj. nějaký přepínač.
******************
07.02.2013
Na základě problému jednoho uživatele, že po aplikaci aparátu XML a nutnosti
dát třeba di:50, jsou pak v normální RDA identifikátory po ZUZ RDAXML do RDA
dlouhé také 50 znaků, lze doporučit:

_mode di:50.
%zuz
xmlrda
test
;
//
%
pip test.rda/df<* test má identifikátory 50 znaků *>
_mode di:12.
%zuz
test
(=) test
;
//
%
pip test.rda/df

Pak v test.rda budou identifikátory pouze 12 znaků dlouhé.
******************
05.12.2012
Protože jsem dostal v poslední době několik dotazů, jak zrealizovat pomocí
.readhttp dotaz na údaje z konkrétního serveru, pak nejjednoduší postup
je následující:

V prohlížeči ručně doklikám až k zobrazení požadované informace. Pak v
horním řádku je vidět celý dotaz, který naberu do clipbordu. Pak
z něj oddělím jméno serveru a za lomítkem je dotaz, který dám na
pozici souboru. Např.

http://adisreg.mfcr.cz/cgi-bin/adis/idph/int_dp_prij.cgi?id=1&pocet=1
&fu=&OK=+Search+&ZPRAC=RDPHI1&dic=46353151

Zpracujeme na:

.readhttp "adisreg.mfcr.cz","cgi-bin/adis/idph/int_dp_prij.cgi?id=1&pocet=1
&fu=&OK=+Search+&ZPRAC=RDPHI1&dic=46353151","odp.htm",5
start odp.htm

Přitom odřádkování v dotazu být nesmí - zalomení je pouze kvůli rozumné šířce
řádku ve změnách.
******************
13.12.2012
Dokončil jsem aktualizace dokumentace k wr572 a wr58 a začal s aktualizací
dokumentace k wr581. Když jsem to dnes nahrubo procházel, překvapila mně
ve změnách řada věcí, které jsem v tomto roce udělal, a na jejichž existenci
jsem již úplně zapomněl!
*****************
17.11.2012
Doplněno číslo verze pro Win 8 a to číslo 15. Zároveň upozorňuji na
obecnější ".test $os", které nepodléhá časové erozi.
*****************
17.11.2012
Opraveny dva problémy v analýze XML struktury.
*****************
12.11.2012
Do detekce obrazků a zobrazení a PDF přidán obrázek PNG - ukládají se
do tohoto typu QR kódy. Je to velmi nahrubo - chodí pouze pro
truecolor obrázky a jeden bit na pixel.
*****************
30.10.2012
Včera jsem zakoupil Win8 Pro, abych zjistil, co na nás Microsoft vymyslel.
Když přepnete z dlaždic na plochu, tak to vypadá jako předešlé Windows,
až na to, že okna nemají kulaté rohy ani duhové lišty. Vše jednobarevné
a hranaté. Asi se to dá někde přepnout, nicméně expresní nastavení dopadne
takto. Pár věcí je skryto, takže např. vypnutí systému jde asi přes tři rohy.

Co je podstatné, WR572 a výše pod tím běží. Přirozeně se mohou vyskytnout
nějaké problémy u konkrétní aplikace, ale to ukáže až život.
****************
27.09.2012
Při úvahách o využití prstíku ve WR jsem si uvědomil, že jsme vcelku
zanedbali třetí - střední tlačítko myši. Přirozeně je třetí tlačítko
u myší s kolečkem dáno stlačením kolečka.

Proto u příkazu .wait můžete nyní použít událost cd a cu - central
down a central up, u .test $key dostanete 16382 pro central down a
32768 pro central up.

V editoru nyní po stisku středního tlačítka můžete přirozeně pohybovat
textem nahoru a dolů a vlevo a vpravo.
*********************
23.09.2012
Nyní nám již nastupují dotykové obrazovky původně instalované
v iPonech a navigacích ap. Microsoft reaguje připravovanými Win8,
které by měly být rovněž orientované na dotykové obrazovky.
Sám jsem si před 14 dny dotykový monitor pořídil, abych to
ošahal. Kromě implemenatce vlastního dotyku, vidím veliký problém
(a nejen ve WR) v tom, že vlivem stále vyššího rozlišení obrazovek
jsou tlačítka, zaškrtávací elementy, šoupáky velmi malé a těžko
je tak se do nich prstem nebo třeba i perem trefovat.

Proto vidím jako první krok směrem k dotykovým obrazovkám, umožnit
velikost těchto prvků ve WR nějakým způsobem řídit. Tomu se budu nějaký
čas věnovat.

Jinak Win7 v sobě mají zabudovánu jakousi implementaci doteků a
v některých aplikacích je použití doteků docela příjemné a rozhodně
více intuitivní, než použití myši.

Reakce aplikačních programů jsou ale nejednotné. Např Visual Studio 9.0,
ve kterém momentálně pracuji, dotykem obrazovky v textovém editoru
mohu posouvat text prstem nahoru a dolu, zatímco ve Visual Studiu 11.0
se označuje tažení prstu text. První způsob je mně bližší.
*********************
10.09.2012
Vzhledm k tomu, že ND nám končí 31.12.2070, zavedl jsem datum
SD (Super Datum) uložené na 4 bytech bez omezení. Interně se
převádí na DT s nulovou složkou času. Odtud je třeba vyvodit,
ve kterých funkcích lze SD používat.
********************
27.08.2012
Předchozí příkládek je rozšířen o podmínku - viz upravený
www.redap.cz/arixml.zip.

%ari
!
bookstore
bookstore\book\author\vek\age 45 ;
bookstore\book\author\name:="Název knížky zde"
bookstore\book\author\vek\age=50
//
%
*******************
19.08.2012
Pro představu si pusťte příkládek www.redap.cz/arixml.zip, ve kterém je

.open bookr.xml
.edt
<?xml version="1.0" encoding="UTF-8"?>
<bookstore>
<book category="COOKING"/>
<book category="COOKING">
<author>
<vek>
<age>35</age>
<age>45</age>
</vek>
</author>
</book>
<book category="COOKING">
<author>
<name>Jirka je mladý chlapec</name>
</author>
</book>
</bookstore>
.close
%xml
!
bookr.xml
bookstore
%
%ari
!
bookstore
;
bookstore\book\author\name:="Název knížky zde"
bookstore\book\author\vek\age=50
//
%
inf bookstore

Zde je ukázka zatím nepodmíněného aritmetického bloku nad
větou XMLRDA.
*****************
17.08.2012
Již delší dobu pracuji na poměrně obtížném problému typu

bookstore\book\author\name:="Autor knížky"

T.j. provést změnu ve struktuře XMLRDA. Pro hrubé vysvětlení, proč se
jedná o obtížný úkol si je nutno uvědomit, že v book nemusí být vůbec
autor uveden - je třeba tedy doplnit autor+name, nebo je autor a není
name - doplníme name, nebo je i name - musíme změnit jeho hodnotu.

Dále položka name se může v book vyskytovat třeba 10x - musíme opravit
všechny výskyty, položka autor se může též vyskytovat několikrát a v
některé name je a v některé obecně nebude. Dále book se může v rámci
bookstore vyskytovat několikrát.

XMLRDA je seznamová struktura, každá položka má jistou délku a délka
nadřízené položky je dána součtem její délky a všech podřízených položek.
Proto při změně délky listu, je třeba opravit délky všech nadřízených
položek/uzlů.

Dále je dost obtížné ve struktuře provádět navigaci za účelem, zda
v konkrétním uzlu se vyskytuje name nebo ne a po vyhodnocení a eventuální
opravě přejít v dalším kroku správně k následujícímu uzlu - nic nevynechat.

Po zvládnutí prvního kroku - nepodmíněného aritmetického příkazu,
je třeba rozchodit podmíněný aritmetický příkaz - tj. opravit jméno
třeba jen určitého autora, nebo v určitých knihách ap.
*****************
14.07.2012
V GRD nyní při editaci položky šipkou dolů nebo nahoru přejdeme
do věty pod nebo nad editovanou položkou a zůstávme ve stejném
sloupci.

Ve VST po šipka nahoru resp. dolů při editaci položky v režimu DE nezůstaneme
v editačním režimu jako dříve, ale přejdeme pouze na vstup do předcházející
resp. následující položku ve stejném sloupci.
*****************
04.07.2012
Nyní lze v EML odkázat i na uzel. Pokud nastavíme v PTB qa=2,
pak se celý uzel vynechá.
*****************
19.06.2012
Do EML přidán přepínač ZK (začátek a konec), vyžadující
dva PTB před PTB spojené s přepínačem KB. Prvním vytiskneme
vlastní záhlaví XML - tisk "<?xml version="1.0" encoding="UTF-8"?>"
se potlačí a druhým vlastní konec XML.
*******************
15.06.2012
Rozpracovávám kolektivní zadání ze školení v Plzni na rozšíření
instrukce EML o podmíněné tiskové bloky. Podařilo se zatím
zprovoznit některé prvky. Vstup book.xml:

<?xml version="1.0" encoding="UTF-8"?>
<bookstore>
<book category="COOKING">
<ntitle lang="543">12345</ntitle>
<title lang="en">Everyday Italian</title>
<author>
<name>Giada De Laurentiis</name>
<age>25</age>
</author>
<date>11/11/2005</date>
<year>2005</year>
<price>30</price>
</book>
<book category="CHILDREN">
<title lang="en">Harry Potter</title>
<author>
<name>J K. Rowling</name>
<age>35</age>
</author>
<date>11/30/2005</date>
<year>2005</year>
<price>29.99</price>
</book>
<book category="WEB">
<title lang="en">Learning XML</title>
<author>
<name>Erik T. Ray</name>
<age>45</age>
</author>
<date>11/11/2005</date>
<year>2003</year>
<price>39.95</price>
</book>
</bookstore>

Převedo do XMLRDA pomocí:

%xml
!
book.xml
bookstore
%

.open knihy.rsd
.edt
knihy&
category re 00008 000
title re 00016 000
lang re 00002 000
author re 00019 000
year re 00004 000
price re 00005 000
$
.close

cpo knihy

%zuz
ex.
bookstore
knihy<*Normální rda*>
bookstore\book.
;
//
%

Zkoušeno:

.enable quiet
%eml
kb.
bookstore><*XML RDA*>
knihy<*Normální RDA*>
title!
bookstore\book\title.
book.bak

bookstore\book\name
.bpr
.se(bookstore\book\category- "cooking")
.begin
.co(qa=1)
.pr()
.else
.pr(bookstore\book\category m 0;xt "- Cooking" r;)
.end
.epr

bookstore\book\price
.bpr
.pr(knihy.price m 0;xt "Lb" r;)
.epr
/
%
edi book.bak

Z příkladu je vidět možnost připojit k XMLRDA nějakou
RDA podle "dynamického klíče" - hodnota se mění pro
každou book! Možnost nahradit hodnotu v XMLRDA hodnotou
z RDA a obecně údaj modifikovat. U položek bez PTB se
provede standardní výstup.

Jestliže v PTB nastavíte hodnotu QA=1, pak se položka
na výstup nedostane.

Výsledek:

<?xml version="1.0" encoding="UTF-8"?>
<bookstore>
<book category="COOKING">
<date>11/11/2005</date>
<year>2005</year>
<price>30 Lb</price>
<ntitle lang="543">12345</ntitle>
<title lang="en">Everyday Italian</title>
<author>
<name>COOKING - Cooking</name>
<age>25</age>
</author>
</book>
<book category="CHILDREN">
<date>11/30/2005</date>
<year>2005</year>
<price>29.99 Lb</price>
<title lang="en">Harry Potter</title>
<author>
<age>35</age>
</author>
</book>
<book category="WEB">
<date>11/11/2005</date>
<year>2003</year>
<price>99 Lb</price>
<title lang="en">Learning XML</title>
<author>
<age>45</age>
</author>
</book>
</bookstore>

Příklad je ilustrativní a v praxi asi nesmyslný.
**********************
Na základě návrhu ing. Skoumala zprovozněna náhrada _vstbegin takto:

Po staru:

_vstbegin par
(obdobi(no:8:0))!
!
.gpr(obdobi.
obdobi #######
)
/
.pr()
%
_vst par
_list par
_vstclose par

Navrhovane reseni s VST a NULL:

_openr par (obdobi(no:8:0)) null
%vst
!
par=
.gpr(obdobi.
obdobi #######
)
/
.pr()
%
_list par
_close par
********************
14.06.2012
Do EML přidán přepínač ID umožňující z několika XMLRDA vět udělat jeden
celek. Nejlépe příkladem:

%xml
sk.
book.xml
bookstore
book
%

%eml
id.
bookstore
book.bak
bookstore<*ID1 název tagu celku*>
book<*ID2 název tagu jedné věty*>
%

Výsledkem je, že book.bak by měl být totožný s book.xml. Doplníme do
výříznuté skupiny book dvě úrovně, které vypadly po přepínači SK.
********************
03.06.2012
Ve VST se pomocí centrovací značky "." dá nyní "přilepit" k předcházejícímu
formuláři jeho horní levý roh k levému dolnímu rohu předcházejícího
formuláře. Formuláře tedy na sebe bezprostředně navazují.
********************
01.06.2012
Nad soubory ZPP bylo možno doposud provádět buď vytažení konkrétního souboru
nebo všech souborů. Nyní je možno i

pip pom\=zal.zpp/dc:1 pouze chybějící soubory ve stromu pom\

pip pom\=zal.zpp/dc:2 chybějící a novější soubory ve stromu pom\
*********************
27.05.2012
Do PIPu doplněn přepínač

pip ident.txt=xmlrda.rda/id

kdy to z xmlrda naplní ident.txt úplnýmy jmény položek tabulky - úplné
jméno je ve smyslu hierarchie zanoření. Např.

pip idn.txt=bookstore.rda/id

dá:

\bookstore\book\category
\bookstore\book\author
\bookstore\book\date
\bookstore\book\year
\bookstore\book\price
\bookstore\book\ntitle
\bookstore\book\ntitle\lang
\bookstore\book\title
\bookstore\book\title\lang

Zde je to ještě relativně jednoduché, ale v případě 5 i 6 úrovní se
úplné jméno velmi těžko rekonstruuje.

Dále protlačen aritmetický příkaz typu

normalni_polozka=xmlrda_polozka

nebo

normalni_polozka:=xmlrda_polozka

to vede k snadnějšímu vytěžení XML struktur. Např. od ing. Skoumala
uveden přiklad na získání xml popisu organizace:

.open #9 dotaz.txt
.data #9 ico=10137700
.close #9

del odpoved.xml
.onerr #; .readhttp "wwwinfo.mfcr.cz","cgi-bin/ares/darv_std.cgi"!"dotaz.txt","odpoved.xml"
del dotaz.txt
.dstxt
.onerr #; .openr8 odpoved.xml
.if(error) "Server nepracuje nebo není připojení k webu!"; .read $key; .exit;

Nyní data vytěžíme:

pip idn.txt=odpoved.rda/id
.; Získali jsme úplná jména položek pro tvorbu následujícího ZUZ

_mode di:40.
%zuz
odpoved
(&ico(bc:8:0),ulice(re:30:0),cislo(re:6:0)) ico
;
ico=Ares_odpovedi\Odpoved\Zaznam\ICO
cislo=Ares_odpovedi\Odpoved\Zaznam\Identifikace\Adresa_ARES\Cislo_domovni
q[1]:6=ce(cislo,0)
ulice:=Ares_odpovedi\Odpoved\Zaznam\Identifikace\Adresa_ARES\Nazev_ulice|" "+q[1]
//
%
inf ico
*********************
25.05.2012
Lokální přepínáč CA ve VST spojený s procedurou a indikací trojúhelníčku
za položkou. Nyní se procedura spustí i po aktivaci funkce HELP - původně
pouze po kliknutí myší na trojúhelníček.
*********************
25.05.2012
Na základě dohody na školení v Plzni, je nadále _mode di:x. považováno
za minimální délku identifikátoru (implicitně 12). Tím se mají omezit
problémy s přejmenováním.
*********************
21.05.2012
Na základě školení v Plzni možnost redukce vět v %MNU po zadání
podmínky po Alt D (přepínač VB) doplněna i pro nové menu
ve VST. Zde bez přepínače tzv. "natvrdo".
*********************
14.05.2012
Přidána funkce rand(od,do), kde od<do a do<2**31. Vrací náhodnou
hodnotu v intervalu (od,do).
*********************
12.05.2012
Do XML přidán přepínač RE - všechny položky jsou pak RE jako ve WR58.
*********************
02.05.2012
Dost dlouho jsem se trápil s příkazem .sendmail v 64 bitových
Windows se 64 bitovým WR58. Postupně jsem dospěl k závěru,
že funkce MAPILogon zde nefunguje, takže jsem ji vyřadil
pro 64 bitové WR.

Chtěl jsem poslat reklamaci Microsoftu, ale ve vývojářské
diskusi jsem narazil na článek, který moje tušení potvrzuje.

Takže, pokud si koupíte 64 bitové Offisy do 64 bitových Win7
64 bitový WR, tak původní verze WR58_x64 pojede. WR 32 bitové
ale nepojedou!

Pokud si stáhnete do Win7 x64 poštáka z Windows Live, tak ten je
32 bitový a WR 32 bitové s ním pojede, původní verze WR58_x64 ne.

Dokonce je tam trochu úsměvná rada, že podle pošťáka 32/64 si máte
v 64 bitových Windows sestavit 32/64 bitový WR.

Takže toto je první důvod, proč nasadit 64 bitový WinREDAP!
*********************
26.04.2012
Nebojte se mema! Setkal jsem se se čtením 500 řadků s 1040 čísly
přes postupné .parse řádku přes mezeru. Pracovalo to opravdu pomalu
(řádky měly 9-16 kB). Proto jsem navrhl jednoduchou změnu:

.enable quiet
_loadbig memo,"i.asc"
.; Odloupnutí 6 řádkové hlavičky a vytěžení počtu sloupců
.; a řádků
hlav@=memo[1:6]
sloup:=hlav[1:1]
.parse sloup " " pom sloup#
radky:=hlav[2:2]
.parse radky " " pom radky#
;'sloup' 'radky'
.; Náhrad mezer LF ve zbytku souboru
memo@=rp(memo[7:*]," ",char(10),1)
_savebig memo,"i.txt"
.; Uložení nyní již jedno číslo na řádku
.; Načtení 500x1040 řádků cca 10 x rychlejší než .parse
.nostop
.openr i.txt
n=1
.do(n<=radky)
m=0
.do(m<sloup)
.read rad
.if($eof) .break
.end_do m++
;'n' 'm'
.end_do n++
*********************
20.04.2012
Protože při dekopozici je relativně pracné vytahovat z globální
hierarchické RSD jednotlivé podmožiny údajů, zavedl jsem licenci,
že např.:

pip client.rsd=vysl.rda/df

pokud ve vysl.rda se vyskytuje uzel "client", pak do clent.rsd se
přepíší všechny listy z položky client. Uzly se ignorují.
*********************
17.04.2012
Příklad v dekomp.zip přepracován s ohledem na provedené změny a doplněn
příklad SYNT.cmd - provádějící z rozložené struktury XML na RDA zpět
strukturu XML.

www.redap.cz/dekomp.zip
*********************
16.04.2012
Detekcí čísel a datumů a prefixů jsem aparát XML značně rozhodil. Po
mnoha korekcích se zdá práce s XML ve wr581 zase funkční.
*********************
14.04.2012
Po .setprnd se nahazují proměnné

$exstat a $stav s významem jako u .test $prn a v $poc1 je uživatelem
nastavená orientace papíru u tiskárny a v $poc2 formát papíru.

Uživatelskou orientaci papíru a formát papíru vrací nyní i .test $prn,
neboť tyto hodnoty může uživatel nastavit i pomocí menu WR.

Jestliže ale pomocí la:x nastavíte orientaci tisku nebo formát papíru,
tak hodnoty nastavené uživatelem se přepíší podle la:x.
********************
10.04.2012
Je připuštěn převod RE->DT pokud je v RE řetězec v následujících
tvarech:

DD.MM.RRRR HO:MI
DD.MM.RRRR HO:MI:SE
DD.MM.RRRR HO:MI:SE.D

Lze psát v aritmetice instrukcí přímo dt=re.
********************
Hledal jsem důvod odchylky při výpočtu mezi wr571 a wr581 a mohu konstatovat,
že s float point to počítá lépe:

n:6=15.40860-0.004688*204
;'n' - dá 14.452248
_mode fp:0. vypnout floatpoint
n:1=15.40860-0.004688*204
;'n' - dá 14.4 - špatně
_mode fp. zapnout float point
n:1=15.40860-0.004688*204
;'n' - dá 14.5 - dobře
********************
01.04.2012
Jednak jsem částečně protlačil prefixy v XML - nevadí nyní v instrukci
XML a CPO. Např.

<msg:Sender>
<iissp:IC>99999999</iissp:IC>
<iissp:SubjectName>Účetní jednotka</iissp:SubjectName>
<iissp:ResponsiblePerson>

Zde jsou prefixy msg a iissp - oddělené dvojtečkou od identifikátorů.
Prefixy se ukládají a zpětně je je možno zviditelnit pomocí

pip abc.rda/df
pip abc.rsd=abc.rda/df

Jednak mírně pracuji na "Float aritmetice". Řada věcí chodí, zasekl jsem se
parametrech funkcí a kolik vlastně by to mělo mít desetinných míst. Původní
nápad jsem opustil - úpravu stávajicího plus, krat, del a začal pro
interní výpočty využívat hardwareovou float point aritmetiku. Po qa:-1=...
se v qa nechá float point výsledek - nepřevede se na DD2. Pro účetnictví
to není úplně vhodné, nicméně se stále počítá na cca 16 platných cifer,
takže zaokrouhlený výsledek by měl být téměř na 100% ve shodě c celočíselnou
aritmetikou DD2, resp C2. Spouští se momentálně v init5w záměnou AR na F4.
Takže celočíselně se počítá od 10**-18 (čísla <1) do 10**18 (celá čísla),
ale s přibývajícími desetinnými místy klesá maximální hodnota. U float pointu
je rozsah:

2.2250738585072014E-308 až 1.7976931348623158E+308

Stále s přesností na cca 16 cifer.
*****************
10.03.2012
Loni ing. Jirsa narazil při výpočtech na chybný výpočet, pokud funkce
nebyla ve výrazu jako první a parametr funkce obsahoval výraz. To
jsem se loni pokusil napravit a odstřelil jsem chodivou část
aritmetiky. Proto jsem to vrátil do původního stavu, který nereklamoval
kromě ing. Jirsy nikdo nereklamoval - problém odjakživa.

Nyní jsem se k tomu vrátil a po několika marných pokusech to rozchodit,
jsem dospěl k závěru, že partii výpočtu funkčních parametrů je nutno
od základu přepracovat. To jsem učinil ve WR581.

Zároveň jsem při pokusech narazil na letitý problém spojený s výpočty
držích přesnost podle levé strany.

n:0=1.2*1.2*1.2 dá 1
n:0=10*1.2*1.2*1.2/10 dá 2

Proto jsem se nyní dal do opravy této filosofie s tím, že na pravé straně
se snažím udržet maximální přesnost při výpočtech a k zaokrouhlení dojde
až při závěrečném přesunu do výsledné proměnné. Pak

n:0=1.2*1.2*1.2 dá 2
n:0=10*1.2*1.2*1.2/10 dá 2

Bude to ve WR581 a nebude to kompatibilní s předchozím stavem. Pokud by se
někdo domníval, že mu to uškodí ve staršičh programech, ať se ozve.
*****************
Ing. Jirsa mně upozornil na možnost v Adobe Reader 9, zvolit uložit
PDF jako text, což se může hodit při získání dat z PDF.
*****************
27.02.2012
V instrukci XML doplněna detekce datumů a čísel. Doposud ve vygenerované
RDF byly pouze typy RE.
**************
22.02.2012
V souvislosti s XML a různorodostí formátů dat mně napadla licence:

dat 47d 123;

kde 47 je oddělovač mezi DD/MM/RRRR a

1 je den
2 je měsíc
3 je rok 4 místný
4 je den bez vedoucí 0
5 je měsíc bez vedoucí 0
6 je rok 2 místný

takže

dat 47d 621; vystoupí RR/MM/DD

dat 45d 526; vystoupí MM-DD-RR, kde např. u 09-23-12 se vedoucí 0
nahradí mezerou

Oddělovač za datumem bude B - tedy nic.

Pokud se na základě Vašich zkušeností zdá licence neúplná, prosím,
dejte urychleně vědět.
*****************
19.02.2012
Jednak lze podmínku:

bookstore\book\title "Learn" || bookstore\book\author "Gia","Row" &&
bookstore\book\price "30.00" ;

zkrátit na

bookstore\book\title "Learn" || \author "Gia","Row" &&
\price "30.00" ;

tj. pokud začneme s obráceným lomítkem před identifikátorem,
pak se začátek hierachie doplní z předcházejícího identifikátoru.

Dále pak jsem v ZUZ připustil uvést přímo na vstupu <soubor>.xml:

%zuz
ex.
book.xml
knihy
bookstore\book.
bookstore\book\title "Every" || \author "Erik","Row" && \price "29.99" ;
//
%
inf knihy

Takže pro vytažení konkrétní řady knih ušetříme volání instrukce XML.
***************
17.02.2012
C2 a DD aritmetika snad již šlape tak jak má. Dále se mně podařilo
konečně protlačit funkčnost výběrových podmínek pro XML, zatím
bez logických závorek. Např. na relaci BOOK je funkční:

%inf
book
bookstore\book\category "WEB" ;
%
%inf
book
bookstore\book\title "Learn" ;
%
%inf
book
bookstore\book\title "Learn" || bookstore\book\author "Gia","Row" &&
bookstore\book\price "30.00" ;
%
%inf
book
bookstore\book\title "Learn" && bookstore\book\author "Row" ;
%

a eventuálně ZUZ vytáhne pouze vyhovující knihy:

%zuz
ex.
book
knihy
bookstore\book.
bookstore\book\title "Every" || bookstore\book\author "Erik","Row" &&
bookstore\book\price "29.99" ;
//
%
inf knihy

Dlouho jsem se pokoušel podmínky zrealizovat pomocí třístavového VM
u každého údaje a uzlu, než jsem dospěl k závěru, že je nutno pracovat
se čtyřstavovým VM.

Připomínám, že XML zdroj pro BOOK vypadá:

<?xml version="1.0" encoding="UTF-8"?>
<bookstore>
<book category="COOKING">
<title lang="en">Everyday Italian</title>
<author>Giada De Laurentiis</author>
<year>2005</year>
<price>30.00</price>
</book>
<book category="CHILDREN">
<title lang="en">Harry Potter</title>
<author>J K. Rowling</author>
<year>2005</year>
<price>29.99</price>
</book>
<book category="WEB">
<title lang="en">Learning XML</title>
<author>Erik T. Ray</author>
<year>2003</year>
<price>39.95</price>
</book>
</bookstore>
***************
30.01.2012
Na základě příkladu od RNDr. Květoně z ČHMÚ, jsem konstatoval,
že ve wr58 a wr581 byla chyba v novém dělení, pokud alespoň jedno
číslo bylo záporné a mělo víc jak 9 platných cifer.
***************
17.01.2012
Pokouším se odladit podmínku na hierarchickou strukturu, což se
zatím moc nedaří. U každé hodnoty mám VM, takže cílová představa
je, že se z košaté struktury s opakovanými skupinami vytisknou
pouze vyhovující části dotazu.