Home


Aktualizováno 14.05.12 16:23:03
*******************************
*********************
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.