Home


Aktualizováno 15.05.22 11:13:27
*****************
15.05.2022
S firmou JUMP jsem řešil problém "malého" clipboardu ve Windows. Místo cca 50000 řádků
nabraných v GRD do clipboardu se v Exelu objevilo pouze 722 řádků. Pak jsem zjistil, že
na 721 řádku jsou jakési hámoty a po opravě Excel nasál 5000 řádků. Po další opravě
se konec posunul ještě dále. Analýzou jsem zjitil, že záhadné znaky jsou v kódu
Kamenických, jejichž interpretaci jsme před lety zrušili. Pomohlo

cls
_openrw z Denik.rda
.do()
_read+ z
.if($eof) .break
z.text:=conv(z.text,21)
_write z -1
.end_do
_close z

Clipboard ve WR vzniká již delší dobu v UTF16 kódu a převod většiny znaků Kameníků
vede v naší převodní tabulce na nulové kódy - pro Excel konec clipboardu.
*****************
06.04.2022
RD <dir> neskončí s chybou, pokud <dir> neexistuje.
*****************
06.12.2021
.direct_mail explicitne nevracel výsledek operace - doplněno $filerr=1 O.K. jinak 0.
Totéž ve wr591.
*****************
06.12.2021
V GRD nefungovala editace UT položky. Opraveno i ve WR591.
******************
04.12.2021
Chvíli jsem se zabýval .direct_mail-em. Problém byl v tom, že čeština přes naše obvyklé
adresy byla O.K., přes gmail.com K.O. Postupně jsem si uvědomil, že Windows 1250 je
u nás česká, v Rusku ruská, v Holandsku holandská atp. Ing. Novák detekoval, že Google
používá místo problematických písmen sekvence &#xxx;, kde xxx je kód znaku v UTF16.

Takže nyní instrukce HTM všechny čeké znaky takto překóduje a vše funguje jak u nás,
tak přes gmail.com. Dá se tedy říci, že výstup z HTM obsahuje pouze znaky anglické
abecedy. Totéž zrealizováno i ve WR591 - zde jsem musil ale vypnout výstup v UTF16,
protože servery tomu prostě narozumí - akceptují pouze 8 bitové zprávy.
******************
26.11.2021
V dynamické definici lze sloučit dvě různá RDA s tím, že obecně v definici vzniknou
"dvojáky" názvů položek. Tuto situaci jsem letos ošetřil chybovou hláškou a takovou
definici prohlásil za neplatnou. Na návrh ing. Skály jsem místo zneplatnění definice
předsunul před opakujíci se identifikátory znak podtržítko, takže je pak k oběma
položkám přístup. Například NAZEV a _NAZEV.
*****************
18.11.2021
Zdá se že jsem úspěšně upgradeoval XP na Win7 64 bitů. Abych se v tom vyznal, je nadále
původní WR590 a WR591[D] doplněn na konci o x32, takže můžete mít

WR590x32.exe
WR590x64.exe

analogicky i WR591x32.exe a WR591x64.exe.
*****************
05.11.2021
Vzhledem k tomu, že mně staré dobré WinXP přestávaly sloužit - nečitelná digitálně
podepsaná pošta a na většině webových stránek jsem v Chromu dostal zprávu "Vaše hodiny
jdou napřed!", tak jsem se rozhodl přejít na 64 bitové Win10.

I nastaly problémy s generací. Moje médium bylo staré, takže několik hodin automatických
aktualizací. Pak jsem do toho přidal driver Gigabajt VGA stažený z webu - rozbilo to
zobrazení tlačítka start a různé úpravy systému zobrazily prázdné okno. Pokud jsem
v něm jezdil myší tak se objevovaly a i mizely různé zprávy.

Takže jsem si řekl, že to opravím přeinstalcí. To mně oznámilo, že médium je staré
a je třeba udělat opravu z webu. To běželo cca 24 hodin a výsledek byl totožný.
Takže jsem si stáhl nabízené médium s Win10 poslední stav *.ISO. To ale mělo cca 5.6 GB
a na média, která vlastním se to nevešlo. I objednal jsem DL DVD a podařilo se
vytvořit instalační disk. Generace běžela a v jedné chvíli se to tvrdě chtělo připojit
na Internet. Musil jsem vytáhnout 10 m Ethernet kabelu a z modemu to natáhnout do
PC. pak se to pohnulo - zřidilo mně to účet Microsoft a jakýsi PIN pro přihlašování.
Pak po růžnych hláškách "Už to bude ještě chvilku", "Musíme ještě něco nastavit", atp.
se instalace po cca hodině dokončila.

Následoval neúspěšný test vzít šuplík s HDD z jednoho PC a vrazit ho do druhého PC
se stejným procesorem AMD - nenastartovalo se to. XP to nikdy nevadilo a tak jsem mohl
v Praze vytáhnout šuplík a na chalupě ho vrazit do podobného PC a pokračoval v práci.

No možná to nebudu potřebovat. Takže jsem to začal testovat a zjistil jsem, že je třeba
mezi jednotlivými kroky si dát šálek kávy (náběh jednotlivých programů). Tak to bylo něco,
za byste mně asi s REDAPem ukamenovali.

Tož jsem vygeneroval Win8.1 a stáhl jsem si instalaci obsahujíci Windows Live Mail. Bohužel
instalace vždy upadla. Nakonec jsem vygeneroval Win7 64 bitů, pošta se pěkně nainstalovala
a funguje. Šuplík se dá přehodit mezi PC bez ztráty kytičky. Odezvy jsou prakticky
stejné jako v XP.

Narazil jsem s oblíbeným PKZIPem 16 bitů a jedním služebním programem 100 let starým
též 16 bitů. PKZIP jsem nahradil ZIP32, který jsem v minulosti sestavil a služební
program jsem předělal na 32 bitů.

Dost dlouho jsem se trápil s vytvoření dávky na 64 bitový WR. Nicméně se zdá, že
tyto práce mají smysl.

Když ty Win10 tak mizerně běhají (hardware mám z roku 2010 - frekvence 2.7 GHz), co nám
přinesou Win11?
*****************
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