Home


Aktualizováno 22.08.21 13:12:27
*****************
20.08.2021
Vyskytl se problém při čtení CSV dat - mezi uvozovkami byl pouhý LF. Přidal jsem
přepínač LF do instrukce CSV, který LF zlikviduje.
*****************
06.06.2021
Měl jsem problém s kompatibilitou u wr591 co se týče 8/16 bitovými soubory.
Občas se vytvořil 16 bitový soubor tam, kde bych čekal původní 8 bitový
soubor. Využil jsem tedy init5w a místo +M5 zadám -M5 a pak veškeré textové
soubory jsou 8 bitové.

Přirozeně cílový stav by měl být všechny soubory 16 bitové. Bohužel nižší
verze je neakceptují - WR590 by měla být v tomto smyslu výjimka.
*****************
25.05.2021
V direct_mail je nyní nezávislý zadaný port na volbě SSL/TSL.
Ukázalo se, že tvorba ZPP nefunguje pod 64 bitovým WR. Opraveno.
*****************
20.05.2021
V .direct_mail je možno použít místo metody SSL i metodu TLS pro zabezpečené
připojení.
*****************
16.05.2021
U příkazu .lnextn chybí informace, že v $strlen je velikost souboru, v $filerr
redapovské datum ('$filerr%d10') a v $stav je čas.
*****************
15.05.2021
Pokud se do proměnné typu DT zadala "." doplnilo se pouze datum.
Přidal jsem tedy i čas.
*****************
14.05.2021
Ve wr590x64 a níže se špatně dělila čísla pokud přesnost byla na
8 desetinných míst.
*****************
05.05.2021
U CSV je v příruče vadný popis přepínače re a re:2. Správně

re - všude místo RV se použije typ RE

re:2 všude u nehomogeních sloupců se použije typ RE, jinak se
vynechají řádky narušující typ DD, ND, DT.

re:2 však dle tothoto popisu doposud nefungovalo!
*****************
25.04.2021
Předchozí příkládek jsem sice uchodil, ale nenapadlo mne, k čemu by
to bylo užitečné, takže jsem to shodil pod stůl. Stejnou práci
s definovaným výsledkem můžete dostat z plochy se čtyřmi položkami
menu.
****************
15.04.2021
Narazil jsem na zajímavý testovací příkládek:

.win1(1,1,30,100,,,"nahoře","dole")
.subwin({0,0,80,30},{0,30,80,60},{0,60,80,100},{80,0,100,100})
.getwin(3)
.grdtxt(1,r1|mx|mh|et,-1,-1,20,1099,"aaaa","tbn.lst")
.getwin(2)
.grdtxt(1,r1|mx|mh|et,-1,-1,20,1099,"aaaa","tbn.lst")
.getwin(1)
.grdtxt(1,r1|mx|mh|et,-1,-1,20,1099,"aaaa","tbn.lst")
.getwin(4)
.grdtxt(1,r1|mx|mh|et,-1,-1,20,1099,"aaaa","tbn.lst")
.read $key

kdy ve čtyřech suboknech hlavního okna se zobrazuje tbn.lst
pomocí .grdtxt. Ve wr591 mně to naběhne, dá se přejít myší
do libovolného okna a pak to do jiného již nejde.
Chtěl jsem se podívat do příručky, jak to "autor" myslel. Nicméně
v příruče v seznamu příkazů .subwin i .getwin je, ale chybí
popis. WR590 upadne během spouštění. Asi jsem to v minulosti
zavrhl.
****************
11.04.2021
Problém s CMP/CRT se podařil překonat, nicméně je jasné, že přechodem
na 8 bitů KOI, se ztrácí možnosti 16 bitového kódu. Bude tedy nutno
zvážit, zda kromě zachování kompatibility, připustit i nekompatibilní
překlad na úrovni 16 bitů.
****************
Ve wr591 jsem narazil na značnou překážku. WRCMP jsem kdysi
uchodil jako kompatibilní s nižšími verzemi, což prakticky
znemožňuje interpretaci CMP/CRT v 16 bitovém prostředí.
****************
10.04.2021
Úpravy pro XML se v jedno bodě nepříznivě projevily u normální
dynamické definici RDA.
****************
30.03.2021
.grdtxt(... v případě neexistence souboru upadlo - nyní napíše
řádně chybu. Dále po výběru řádku nic nepředalo, nyní ve $strlen
je číslo řádku a v $eof je buď 'n' pro výběr řádku nebo 'y'
při opuštění ESC. V tomto případě je číslo řádku 0.
****************
29.03.2021
Nicméně výsledek byl špatný. Zavedl jsem ještě ex:3 - přepisuj pouze
z podřízených vět a našel ztrácení první věty a potlačil tahání
předchozího obsahu. Pak po úpravě wr590 i wr591 funguje:

%zuz
ex:3,ps.
bookstore#
bookstore\book\age/xage.
(category(re:20:0),name(re:30:0),age(re:2:0),xage(re:2:0)) book
bookstore\book.
bookstore\book\vek\age.
;
//
%
inf book

Vět je správně 8 - před úpravou 7 a ve větičkách jsou pouze údaje,
které v jednotlivých book jsou.
****************
Pokud máme XML

.open bookr.xml
.edt
<?xml version="1.0" encoding="UTF-8"?>
<bookstore>
<book category="COOKING1"/>
<book category="COOKING2">
<author>
<vek>
<age>45</age>
<age/>
<age/>
<age/>
<age/>
<age>50</age>
</vek>
</author>
</book>
<book category="COOKING3">
<author>
<name>Jirka je mladý chlapec</name>
<age>46</age>
</author>
</book>
</bookstore>
.close
%xml
.
bookr.xml
bookstore.rda
%

Pak vytěžení opakovaného age lze:

%zuz
ex,ps.
bookstore#
bookstore\book\age/xage.
(category(re:20:0),name(re:30:0),age(cc:99:0),xage(cc:99:0)) book
bookstore\book.
bookstore\book\author\vek\age.
;
//
%
**************
28.03.2021
Teď již to na 2x age zapláče, ale je zřejmé, že v tomto případě je nutno

%zuz
.
bookstore#
bookstore\book\age/nic.
(category(re:20:0),name(re:20:0),age(cc:99:0)) book
;
//
%

nebo

%zuz
.
bookstore#
bookstore\book\vek\age/nic.
(category(re:20:0),name(re:20:0),age(cc:99:0)) book
;
//
%

nebo


nebo

%zuz
.
bookstore#
bookstore\book\age/xage.
(category(re:20:0),name(re:20:0),age(cc:99:0),xage(cc>99:0)) book
;
//
%
**************
28.03.2021
Dost dlouho jsem se trápil se zápisem dynamické definice:

(book) <jmeno>

pro XML definici:

bookstore!&
bookstore
book
category^ re 00008 058
author
name re 00024 058
age dd 00004 000
vek
age dd 00004 000
$

Neprocházelo v žádné verzi. Správně? je

vek.rda
category re 8 58
name re 22 58
age dd 4 0
age dd 4 0
$

? proto, že age 2x by nemělo projít.
**************
23.03.2021
Chvíli jse se trápil se zprovozněním .grdtxt(...), protože naprosto selhávalo.
Dle příručky bylo vše O.K. Nakonec jsem zjistil, že v příkladech v příručce
v rámci zobrazení vypadly oddělovače <Ctrl T>. Takže normální řádek
zakončený CRLF se neakceptoval jako sloupec - žádný sloupec neexistoval.
To jsem nyní napravil, že z koncového CRLF udělám v takovém případě
<CTRL T>CRLF a jeden sloupec je na světě.

To samé jsem musil zabudovat do WR591 s tou oběměnou, že soubor
může být v UTF16 nebo KOI08.
**************
22.03.2021
Ve wr590 připuštěny délky vět větší než 2**15 a to až do velikosti 2**16.
**************
19.03.2021
Mám zde řadu příkladů z různých reklamací v minulosti. Zkouším je na
WR591 a eventuálně i na WR590. Někdy se objeví problémy i ve WR590,
takže hledám a napravuji. Až tento proces dokončím, pak wr591 vystavím
zatím jako demo pro eventuální vyzkoušení.

Je skutečností, že každý uživatel si kromě příkazů v globálním průniku
oblíbí i netradiční příkazy a obraty, takže ne vše mohu postihnout
v této fázi. Sebekriticky přiznávám, že na některé obraty hledím
s nedůvěrou a musím hledat v příruče, abych se ujistil, že je to legální.
Trapné je pouze to, že jsem to v šerém dávnověku naprogramoval a zcela
jsem na to zapomněl.
***************
14.03.2021
Vzhledem k tomu, že se nyní často vyskytuje případ, kdy Windows
negenerují duální jména 8.3 pro dlouhá jména pročistil jsem
.enable/disable long_name a .enable/disable long_name2.

Nejprve je třeba zdůraznit, že při startu WR se testuje schopnost
Windows generovat jména 8.3. Pokud tomu tak není, interně
se nastaví .enable long_name2.

Nyní tedy:

.enable long_name2 generuje vnitřně ještě .enable long_name
.disable long_name vnitřně generuje i .disable long_name2
po .disable_long_name2 zůstává .enable long_name