Aktuální stav
Moderátor: spainhell
Re: Aktuální stav
Verze 0.32:
- podařilo se mi opravit volání exit procedur v datovém editoru (pokud bylo pole označené, že po jeho opuštění se má něco zavolat, nic se nedělo).
- podařilo se zprovoznit aditivní změny
- došlo k opravě lexikálního třídění (indexy)
- bylo opraveno přidávání stránky do indexového souboru
Upraveno 14.9.2021:
Jak jsem zjistil, práce s indexy pořád nefunguje správně. Práce s nimi není jednoduchá, pokaždé to zabere dost času. Ale zaměřím se primárně na to.
Před stažením souboru si přečtěte pokyny https://pcfand.org/viewtopic.php?f=1&t=16
- podařilo se mi opravit volání exit procedur v datovém editoru (pokud bylo pole označené, že po jeho opuštění se má něco zavolat, nic se nedělo).
- podařilo se zprovoznit aditivní změny
- došlo k opravě lexikálního třídění (indexy)
- bylo opraveno přidávání stránky do indexového souboru
Upraveno 14.9.2021:
Jak jsem zjistil, práce s indexy pořád nefunguje správně. Práce s nimi není jednoduchá, pokaždé to zabere dost času. Ale zaměřím se primárně na to.
Před stažením souboru si přečtěte pokyny https://pcfand.org/viewtopic.php?f=1&t=16
Re: Aktuální stav
Dnes jsem zase spálil několik hodin laborováním s indexy. A nějak se to ve mně začíná mlátit. Jak přesně ty indexy fungují, to asi nikdy nezjistím.
Tak přemýšlím "nahlas", jak dál.
Teoreticky můžu použít zdrojáky k ODBC, udělat nad nimi API a pak to "zadrátovat" do CppFandu. Bude problém se sdílením a kompatibilitou s původním PC FANDem. Znamená to úplně přepsat práci se soubory v CppFandu.
Můžu zkusit přejít na SQLite, bude to hodně práce a nebude to už vůbec kompatibilní s PC FANDem. Jen si nedokážu představit editaci F kapitol a přímý přepis změn do databáze.
Nebo můžu pokračovat dál v pokusech o rozchození původní implementace. Je to prostě zdlouhavé. Většinou to dělám tak, že mám vedle sebe spuštěné 2 stejné úlohy, jednu v PC Fandu, druhou v CppFandu. Pak dělám binární porovnání výsledků a tím se snažím přijít na to, co se tam vlastně děje a v jakém formátu to má být.
Když už jsem totálně v koncích, tak využívám debug původních zdrojáků z Alisu a sleduji, co je přesně v proměnných a v paměti. Ale asi si dokážete představit, jak to jde pomalu.
No nechám to utřepat a pak se rozhodnu, kudy se vydám.
Tak přemýšlím "nahlas", jak dál.
Teoreticky můžu použít zdrojáky k ODBC, udělat nad nimi API a pak to "zadrátovat" do CppFandu. Bude problém se sdílením a kompatibilitou s původním PC FANDem. Znamená to úplně přepsat práci se soubory v CppFandu.
Můžu zkusit přejít na SQLite, bude to hodně práce a nebude to už vůbec kompatibilní s PC FANDem. Jen si nedokážu představit editaci F kapitol a přímý přepis změn do databáze.
Nebo můžu pokračovat dál v pokusech o rozchození původní implementace. Je to prostě zdlouhavé. Většinou to dělám tak, že mám vedle sebe spuštěné 2 stejné úlohy, jednu v PC Fandu, druhou v CppFandu. Pak dělám binární porovnání výsledků a tím se snažím přijít na to, co se tam vlastně děje a v jakém formátu to má být.
Když už jsem totálně v koncích, tak využívám debug původních zdrojáků z Alisu a sleduji, co je přesně v proměnných a v paměti. Ale asi si dokážete představit, jak to jde pomalu.
No nechám to utřepat a pak se rozhodnu, kudy se vydám.
Re: Aktuální stav
Verze 0.33:
- byla úplně překopána práce s indexovými soubory
- nebylo to příliš testováno, ale veškeré pokusy byly 1:1 se stavem .X00 souborů z PC FANDu 4.2
Před stažením souboru si přečtěte pokyny https://pcfand.org/viewtopic.php?f=1&t=16
- byla úplně překopána práce s indexovými soubory
- nebylo to příliš testováno, ale veškeré pokusy byly 1:1 se stavem .X00 souborů z PC FANDu 4.2
Před stažením souboru si přečtěte pokyny https://pcfand.org/viewtopic.php?f=1&t=16
Re: Aktuální stav
Aktuálně pracuji na možnosti spustil úlohu z ladícího režimu, včetně kompilace. Už funguje alespoň něco:
Re: Aktuální stav
Verze 0.34:
- možnost výběru tiskárny a možnost spuštění tisku (částečně rozchozeno)
- provedeny další úpravy ve zpracování indexů
- možnost spustit projekt z ladícího režimu
- možnost založit / otevřít katalog
Před stažením souboru si přečtěte pokyny https://pcfand.org/viewtopic.php?f=1&t=16
- možnost výběru tiskárny a možnost spuštění tisku (částečně rozchozeno)
- provedeny další úpravy ve zpracování indexů
- možnost spustit projekt z ladícího režimu
- možnost založit / otevřít katalog
Před stažením souboru si přečtěte pokyny https://pcfand.org/viewtopic.php?f=1&t=16
Re: Aktuální stav
Postupně se mi daří opravova další části kódu, namátkou např. metoda checkfile, nějaké převody mezi malými a velkými písmeny, porovnávání s parametrem "u", chybně implementovaný příkaz gotoxy atp.
Zajímavým oříškem bylo generování indexových souborů, pokud úplně chyběly. Při překročení určité velikosti se volaly metody Merge a z ní pak ještě Merge2Chains. Ty nebyly vůbec připravené, ale posledních pár dnů jsem na tom pracoval.
Ještě to není úplně na 100%, ale snad se to blíží do finále. V CppFandu je dostatek paměti a proto se při vytváření těchto souborů inicializovaly stránky o velikosti 64 kB. V originál PC Fandu 4.2 (testováno s Účto 2021, soubor POSTY.000) se vytvářejí (kvůli množství zbývající paměti) stránky o velikosti 32 kB. Proto jsem také vynutil vytváření 32 kB stránek v index. souborech, hlavně z důvodu, abych mohl porovnat, jak vypadá vygenerovaný X00 soubor z PC Fandu a z CppFandu. Ještě nejsou úplně "na byte" přesné, ale to je jen otázka času.
Když to dobře půjde, vydám tento nebo příští týden další verzi.
Zajímavým oříškem bylo generování indexových souborů, pokud úplně chyběly. Při překročení určité velikosti se volaly metody Merge a z ní pak ještě Merge2Chains. Ty nebyly vůbec připravené, ale posledních pár dnů jsem na tom pracoval.
Ještě to není úplně na 100%, ale snad se to blíží do finále. V CppFandu je dostatek paměti a proto se při vytváření těchto souborů inicializovaly stránky o velikosti 64 kB. V originál PC Fandu 4.2 (testováno s Účto 2021, soubor POSTY.000) se vytvářejí (kvůli množství zbývající paměti) stránky o velikosti 32 kB. Proto jsem také vynutil vytváření 32 kB stránek v index. souborech, hlavně z důvodu, abych mohl porovnat, jak vypadá vygenerovaný X00 soubor z PC Fandu a z CppFandu. Ještě nejsou úplně "na byte" přesné, ale to je jen otázka času.
Když to dobře půjde, vydám tento nebo příští týden další verzi.
Re: Aktuální stav
Verze 0.35:
- opravena práce s indexy
- opravena práce se soubory volných textů
- úpravy v textovém editoru
- opravena metoda copyfile
- značný refactoring stávajícího kódu
Před stažením souboru si přečtěte pokyny https://pcfand.org/viewtopic.php?f=1&t=16
- opravena práce s indexy
- opravena práce se soubory volných textů
- úpravy v textovém editoru
- opravena metoda copyfile
- značný refactoring stávajícího kódu
Před stažením souboru si přečtěte pokyny https://pcfand.org/viewtopic.php?f=1&t=16
Re: Aktuální stav
Verze 0.36:
- opraveno načítání sekce #A v kapitole F, pokud nebyla ukončena středníkem
- opraveno načítání parametrů editace
- učiněny neúspěšné pokusy o zamykání souborů pro sdílení
- upravena metoda CopyFile (ještě ale není kompletní)
- opravena metoda AutoReport
- opravena metoda Merge
- opravena práce s duplicitním indexovým klíčem
Před stažením souboru si přečtěte pokyny https://pcfand.org/viewtopic.php?f=1&t=16
- opraveno načítání sekce #A v kapitole F, pokud nebyla ukončena středníkem
- opraveno načítání parametrů editace
- učiněny neúspěšné pokusy o zamykání souborů pro sdílení
- upravena metoda CopyFile (ještě ale není kompletní)
- opravena metoda AutoReport
- opravena metoda Merge
- opravena práce s duplicitním indexovým klíčem
Před stažením souboru si přečtěte pokyny https://pcfand.org/viewtopic.php?f=1&t=16
Re: Aktuální stav
Verze 0.37:
- opravena práce s kapitolami F při použití LIKE
- opraveno vyhodnocování podmínek v auto reportech
- opraveno kopírování údaje typu T (mezi soubory, i z/do pracovního souboru)
- opravena metoda pro porovnávání řetězců
- opravena metoda pro vyhledávání x-tého výskytu znaku v řetězci
- zprovozněna řádková kalkulačka (Ctrl + F5)
- opravena práce s Journal
- vyřešeny memory leaky při práci s indexy
- refactoring kódu
Před stažením souboru si přečtěte pokyny https://pcfand.org/viewtopic.php?f=1&t=16
- opravena práce s kapitolami F při použití LIKE
- opraveno vyhodnocování podmínek v auto reportech
- opraveno kopírování údaje typu T (mezi soubory, i z/do pracovního souboru)
- opravena metoda pro porovnávání řetězců
- opravena metoda pro vyhledávání x-tého výskytu znaku v řetězci
- zprovozněna řádková kalkulačka (Ctrl + F5)
- opravena práce s Journal
- vyřešeny memory leaky při práci s indexy
- refactoring kódu
Před stažením souboru si přečtěte pokyny https://pcfand.org/viewtopic.php?f=1&t=16
Re: Aktuální stav
Verze 0.38:
- opravena metoda puttxt
- opraveno zobrazování help stránek (není kompletní)
- dopsány metody ImportTxt a ExportTxt - netestováno
- implementována emulace příkazu IntTSR(22, 512, 0) - vrácení stavu přeřazovacích kláves
- opraveno načítání F kapitoly, která obsahuje 'journalOf'
- značný refactoring kódu
Před stažením souboru si přečtěte pokyny https://pcfand.org/viewtopic.php?f=1&t=16
- opravena metoda puttxt
- opraveno zobrazování help stránek (není kompletní)
- dopsány metody ImportTxt a ExportTxt - netestováno
- implementována emulace příkazu IntTSR(22, 512, 0) - vrácení stavu přeřazovacích kláves
- opraveno načítání F kapitoly, která obsahuje 'journalOf'
- značný refactoring kódu
Před stažením souboru si přečtěte pokyny https://pcfand.org/viewtopic.php?f=1&t=16