Předvánoční slevová akce Java týden
Využij předvánočních slev a získej od nás 20 % bodů zdarma! Více zde
Pouze tento týden sleva až 80 % na Java e-learning!

Diskuze: PC-Fand 4.2 (Pascal)

Aktivity (1)
Avatar
virlupus.soft
Redaktor
Avatar
virlupus.soft:5. srpna 23:40

Zdravím všechny Pascalisty, pokud existují. Už nějaký ten rok se pokouším dát dohromady staré zdrojáky a vyluštit je a hlavně přepsat z MS-DOS do něčeho více-bitového. Společnost Alis s.r.o Česká Lípa uvolnila kód, po tolika letech.

Zkusil jsem: Zkoušel jsem převod jejich datových souborů v Pythonu a Javě, udělat celý interpret, ale sám to fakt nedám.

Chci docílit: Chtěl bych celý tento DB systém obnovit a dát mu kabát pro dnešní OP. Zde je kód: http://virlupus.cz/…c/pcfand.zip a zde na gitu: https://github.com/alisoss/pcfand

 
Odpovědět
5. srpna 23:40
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:6. srpna 9:02

Jak to? Pokud mas dost casu, tak ty pas, soubor po souboru asi snadno prepises na python, nebo, ja bych volil spis php. A muzes pouzit preci i delphi. To bys mel temer bez prace. A nebylo by lepsi najit nejakou uz hotovou alternativu?
Koukam treba na sort, protoze mne zajimalo, jaky pouzivaji algoritmus a ty jo, dobre oni, tlaci to do assembleru, takze to bude super rychle.
https://github.com/…pas/Sort.pas
Tak ten sort nahrad nativnim sortem jazyka.

Poslys, a ve free pascalu ti to nejede? Nebo, pres dosbox v tp6?

u nas se treba pouzivalo na db fox pro. A stare dbf soubory umi otevirat excel. Nevim, proc chces psat vlastni sql?

Editováno 6. srpna 9:05
 
Nahoru Odpovědět
6. srpna 9:02
Avatar
Martin Dráb
Redaktor
Avatar
Odpovídá na Peter Mlich
Martin Dráb:6. srpna 20:59

Na GitHubu mají odstavec, který věci asi dost komplikuje:

Z důvodu úpravy práce s HEAPem (shora a zezdola stack, uprostřed heap), využití paměti grafické karty a realizace konstruktu "long jump" podle vzoru z jazyka C++ byly upraveny některé runtime knihovny Borland Pascalu. Z tohoto důvodu je sice možné zdrojáky PC FANDu přeložit, ale výsledná aplikace nepůjde spustit.

To vypadá na úpravy hodně specifické pro DOS, které třeba mimo reálný režim procesoru nedávají smysl. Tady nepomůže ani FPC pro DOS, protože ten nejede v reálném režimu, co si pamatuji.

Tohle by mohlo všechno dost zkomplikovat.

Nahoru Odpovědět
6. srpna 20:59
2 + 2 = 5 for extremely large values of 2
Avatar
virlupus.soft
Redaktor
Avatar
virlupus.soft:6. srpna 21:08

Martin: Vím, že to nejde kompilovat ani pod TP7 v dosu... spíše mi jde to celý předělat a možná i pascal vynechat. Pak k výsledku udělat převodník exitujících programů. Prostě to celý hodit do Javy, C++, Python, prostě aby to jelo na více než 16-ti bitech. Zdroják je jen návod.

 
Nahoru Odpovědět
6. srpna 21:08
Avatar
virlupus.soft
Redaktor
Avatar
Odpovídá na Peter Mlich
virlupus.soft:7. srpna 0:16

Peter, žádná kompilace tohoto zdroje nejede. Originál jede pod dosbox: http://virlupus.cz/…c/FAND42.zip. Cílem není to znovu kompilovat pro konzolovou aplikaci, ale udělat okenní aplikaci třeba pod Qt, JavaFx, PyQt ... etc.
Vím, že tam dost věcí jedou ve strojáku, o to je horší číst, co básník tím chtěl říct. Vím, že grafiky, tiskáren a jiných nízkoúrovňových akci si nemusím všímat.

 
Nahoru Odpovědět
7. srpna 0:16
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:7. srpna 10:26

Tak, ale, pokud ti jde o nacteni dbf souboru, to vyssi jazyky umi. Pokud ten soubor ma jinou strukturu, tak napsat si konvertor asi nebude problem.
Nebo potrebbujes, aby nejake super specialni zapisy z toho jazyka delali totez, co v tom programu? Protoze jinak cely problem spociva jen v tom, udelat konvertor, ktery to nasouka do databaze a pak uz nad tim pracujes s sql prikazy. Jinymi slovy, prepsat dbf soubor na serii sql prikazu CREATE TABLE tabulka a INSERT INTO tabulka. 95% z toho tim padem muze jit do haje. Zajima te jen cast read from file.

Tim dbf myslim nejaky typ fand-databaze. Ale mozna skutecne pouzili format souboru d-base-format

Editováno 7. srpna 10:27
 
Nahoru Odpovědět
7. srpna 10:26
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:7. srpna 10:42

https://www.root.cz/…-nastup-sql/
Tady pisou, ze byli pokusy o prepis do javy. Mozna by bylo dobre kontaktovat ty tymy.
Take pisou, ze autori se pokusili to prepsat pod odbc sql driver. Ale, ze tehdy byl nestabilni. Mozna maji zdrojove kody.
Mozna by bylo dobre, kontaktovat autory, aby ti poslali strukturu databazovych souboru.

 
Nahoru Odpovědět
7. srpna 10:42
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:7. srpna 10:47

Jinak si myslim, ze by nebyl problem to cele prepsat. Vcetne tech funkci, ktere zapisuji do souboru. Chce to jen cas na nastudovani, co ten asm kod vlastne delal. A cloveka. Ja praci mam. Jestli nejsi ochoten preplatit zamestnavatele, tak nezajem se v tom drbat :) Jak jsem rikal, na zlinsku to nejspis nikdo neupozival, tady se jelo na fox-pro.
Z toho popisu vyplyva, ze to v podstate umelo jen editovat databazi, tabulky. Coz umi kdejaky db-manager, treba phpmyadmin.

 
Nahoru Odpovědět
7. srpna 10:47
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:7. srpna 10:51

https://it-slovnik.cz/pojem/pc-fand
Pisi, ze je mozne stahnout i applikace. Coz by mozna bylo lepcejsi. Ty pouzivaji prikazy toho fandu a jenom by se to prepsalo na sql prikazy. A cely pc fand by se tim obesel.

 
Nahoru Odpovědět
7. srpna 10:51
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:7. srpna 10:54

https://aaapoptavka.cz/…fand-liberec
Poptávka: export dat z aplikace vytvořené v PCFAND, Liberec
Taky zajimave, firma se na to asi specializuje.

 
Nahoru Odpovědět
7. srpna 10:54
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:7. srpna 11:08

Tady mozna par odkazu z googlu.
http://www.abclinuxu.cz/…x/show/51395
http://velkedlazdeni.dlazka.cz/…ysledky2.htm
https://www.prokonzulta.cz/…-naklady.htm
https://vufind.techlib.cz/…rd/000014378 - literatura by se mohla hodit, kdybys delal klon.
http://aleph.nkp.cz/…00942103.htm
https://list.hw.cz/…/330827.html
https://katalog.cnb.cz/…ities/197667 - cnb mozna ma nejake moduly pro export do dbf

U nas se totiz pouzival T602 jako editor. a pro db prave fox-pro. ucetnictvi nevim, to bych se musel zeptat rodicu. Ale pc fand tu proste nikdo nezna :) Ale pak hodne firem preslo na MRP ucetnictvi. Mozna by ti jejich programatori poradili. Asi delali prevod z cizich systemu.

 
Nahoru Odpovědět
7. srpna 11:08
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:7. srpna 11:16

Tohle je mozna struktura tabulek pc-fand-databaze
https://github.com/…s/ACCESS.PAS

 
Nahoru Odpovědět
7. srpna 11:16
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:7. srpna 19:09

Takhle. Vybral sis nelehky ukol. Lide, kteri ovladaji starsi ASM a vi, jak se nektere prikazy chovaji, tem je dnes 60. Eventuelne bych tomu dokazal porozumet treba ja, 40, protoze jsem to pouzival. Ale spis se jedna o 50-60 lete, kteri maji vnoucata a jejich priority budou tim smerem. cili, zadarmo to asi nikdo resit nebude. 100-300 000 do toho asi investovat nechces.
Na vyvoji toho sw se podilelo nekolik lidi, stalo to tak tehdy 500.000 (10-20 let). Pri dnesnich cenach 5 mil. Jinymi slovy, drbani se v tak starem kodu bude pekne mastne. Chces vlastne vyvinout cely ten sw.

Cili, ja vidim 2 moznosti.
Bud vytahnes sql tabulky z toho sw a ovladaci sw si dopises pro individualni aplikaci (nema smysl kopirovat jakysi fand programovaci jazyk).
A nebo je treba prepsat funkci po funkci. Klidne treba javascriptem. Tabulky mu dodas treba jako csv (text/excel). Kdybys neco z toho mel hotove a jen si nevedel s nekterym asm kodem rady, tak na forku ti nekdo odpovi. Zkusmo muzes nejaky soubor predelat. Asm prikazy ti reknu, co delaji. Pripadne se da googlem najit tabulka. I zde jsou nejake clanky o asm s tabulkami instrukci. Dokud tam neni prikaz INT cislo, tak je to v pohode. INT 10 je zavolej funkce pro vykresleni na obrazovku. INT jine cislo je treba prace s mysi. Coz by tez nekde na wiki nebo jinde mohlo byt popsane :)

https://www.shsu.edu/…terrupt.html
The interrupt routines 10h - 1Fh are software interrupts which can be called by application programs to perform various I/O operations and status checking
Interrupt 10h -- Video: The BIOS interrupt 10h routine is the video driver
Interrupt 11h -- Equipment Check: returns the equipment configuration
Interrupt 13h -- Disk I/O
Interrupt 16h -- Keyboard
Interrupt 17h -- Printer I/O
Funguje to tak, ze do asm promennych ulozis data, adresy pameti, kde mas data. Zavolas INT a on ty data odesle treba na disk, tiskarnu a pod.
Pascal toto resi vlastnimi funkcemi nejaka_funkce() {asm kod}, ale ukazalo se, ze jsou asi o 60% pomalejsi. Pro bezne veci to stacilo. Ale kdyz jsi potreboval rychle operovat s diskem a pod, lepsi bylo pouzit primo asm prikazy.

 
Nahoru Odpovědět
7. srpna 19:09
Avatar
virlupus.soft
Redaktor
Avatar
virlupus.soft:9. srpna 0:31

Peter: Abychom si rozuměli. Nechci převádět dat z fandu chci celý fand. Což programovatelné databázové prostředí, založené na Pascalu. Umí i Prolog. DBF používá jen jako externí datovou jednotku, jinak má svůj vlastní formát, který umím dekódovat a převést do libovolné databáze. Dost si pamatuji i z ASM pro Z80 i pro 8080 dokonce jsem se učil 8680 intel pro DOS i Linux.
Tedy opravdu nechci nějaké SQL, ale spolupráci na předělání celého programu i s uživatelským prostředím (samozřejmě také programátorským) do dnešní technologie. Assembler dnes už lze asi vynechat, protože stroje kolem roku 87 - 92 jeli na 40MHz a jednom vlákně, na tom bych neudělal bez ASM ani emulátor ZX Spectra.
Opravdu mi nejde jen data, ale o celé IDE což PC-FAND je.
Jednou se o to už někdo pokoušel v Delphi....nedodělal a to měl přímou podporu od autorů.
No pokud by spolupráce někam vedla, nějaká ta kačka by se našla:-D sice v řádu 10na pátou ne ale 10 na třetí by se dalo.
Sám jsem pod Fandem programoval a vím, co dovede a taky vím, že už nikdy nikdo neudělá lepší aplikační prostředí.
Zkusím se spojit s panem Tichým (jeden z autorů) - Tichý - Ježek učetnictví, třeba bude také pro tuto akci.

Tedy cíl je. Celé prostředí jak je uvést do prostředí oken - Windows a Qt, nebo Java FX, s tím, že jazyk bude nativní k prostředí (Java, C++, Python ještě nevím přesně )a pro stávající aplikace bude k dispozici převodník.

 
Nahoru Odpovědět
9. srpna 0:31
Tento výukový obsah pomáhají rozvíjet následující firmy, které dost možná hledají právě tebe!
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:9. srpna 7:44

10 na 3 je pro studenta nebo nadsence. Rikam, lidi, co to programovali maji 50-60 let. Nikdo mladsi do toho nevrtal. Mozna ten delfista. Takze nadsence asi nesezenes. Student o to tezky nezajem.

Ja osobne bych sel do html/css/js + php/mysql jako komunikator s diskem pro zapis souboru. Ano, musis pro uzivatele nainstalovat php server. Otazka je, zda to chces provozovat uzivatelum? Zda by proste nestacil tvuj server na data.
Js by dokazalo editovat vice lidi.
Ten komunikator lze udelat i pythonem nebo cimkoliv jinym. Provozoval bych ho jako web-services. url?service=u­ser_insert&na­me=peter&surna­me=mlich.
Js by pak fandove prikazy prekladal na url a volal ajax.
Musel bys vyresit, aby nekdo nepovrhoval data. A nebo vubec. To zavisi od toho, zda to chces provozovat jen jako nadsenec nebo ne. Nebo, treba, abys dokazal spoustet stare fand-programy.

 
Nahoru Odpovědět
9. srpna 7:44
Avatar
virlupus.soft
Redaktor
Avatar
virlupus.soft:9. srpna 21:20

Jen chci aby staré programy běžely i dnes ve stejně přívětivém prostředí pro uživatele i programátora. Žádný web, ale nativní aplikace, kompletní, ale ne v DOSu, DosEmu, DosBoxu atd.
Peter: už mi je taky tolik jako těm co to tvořili:-D

 
Nahoru Odpovědět
9. srpna 21:20
Avatar
Iniptor
Člen
Avatar
Odpovídá na virlupus.soft
Iniptor:23. září 17:20

Hurá, vítám pokus o resuscitaci PC Fandu. Kdysi jsem komunikoval s panem Kristiniakem z Košic, který opravdu vytvořil Win-Fand. Jenže bohužel po čase přestal komunikovat a ukázalo se, že za to může zatracená smrtka, která si ho vzala, jak to tak bývá, v té nejméně vhodné chvíli. Kde skončila jeho několikaroční práce, nevím, ale fungovalo to - zvládlo to normálně staré RDB úlohy provádět. Protože jsem v PC Fandu udělal kdysi dost programů, moc jsem mu fandil, testoval jeho verze.... Bylo mi to strašně líto, jak jeho osobně, tak té práce, tak PC Fandu. Produkt PC Fandu podobný s jednoduchým deklarativním textovým programováním i vazeb mezi soubory, podle mne neexistuje. Kdykoliv dělám něco složitějšího v excelu, hledám duplicity a nedodržení formátu, protože "tabulka" je tabulkou jen zdánlivě a obsahuje pitomosti, které znemožňují importy, toužím po tom, aby se PC Fand zase vrátil na scénu - v něm bych si s takovými problémy poradil podstatně lépe. Taky toho přes VDOS ještě semtam leccos udělám, ale není to ono, když se třeba nedá používat normální CtrlC-CtrlV atd.

Doufám, že uspějete - myslím, že ideální cesta by byla přes Delphi, tak to aspoň dělal, pokud vím, pak Kristiniak, blahé paměti. Kéž by se ten jeho projekt dal získat, ale on si to strašně hlídal, všechny testovací verze byly omezené, dobře věděl, že Win Fand má i velký komerční potenciál, i když staré aplikace postupně dosluhují.

 
Nahoru Odpovědět
23. září 17:20
Avatar
Iniptor
Člen
Avatar
Odpovídá na virlupus.soft
Iniptor:23. září 21:14

Našel jsem WinFand pana Kristiniaka - ověřovací, v podstatě už pod win chodivou verzi. Stačí si vrátit datum a jede to. Zde: http://leteckaposta.cz/284823846

 
Nahoru Odpovědět
23. září 21:14
Avatar
virlupus.soft
Redaktor
Avatar
Odpovídá na Iniptor
virlupus.soft:25. září 22:33

Iniptor: Tuhle verzi jsem také někde našel. Stále vedu v archivu orig. Fand 4.2 i s převodníky textů. Kdysi jsem začal dělat, celý systém v Pascalu. Ale narazil jsem na svou neschopnost, a začal se učit jak se vlastně dělají kompilátory....A Kdybych se dnes měl vrátit k Pascalu, tak jedině LAZARUS a nikdy Delphy...Bude s tím moc práce, a vlastně jsem na začátku.
Moc bych ocenil trochu pomoci. Zatím, mám jen kostru překladače (interpret) pro P sekce... chtěl bych to mírně upravit aby F soubory pracovaly jako SQLite, ale přitom snadno převoditelné, třeba jedním příkazem F00<->SQL, Ale nutno zachovat strukturu kapitol E....
Prostě souhlas... neexistuje lepší než FAND byl, WinFand... to byl dobrý pokus.... ale zdrojáky jsou v .... tedy zase od začátku... bohužel.

 
Nahoru Odpovědět
25. září 22:33
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:26. září 9:03

Zdrojaky by se dali vytahnout z potomku. Cim pozdeji, ale, tim mensi sance, ze neco ziskas :) Kdyz si vzpomenes X let po smrti. Ty pc, kde to ma, uz mozna nenajedou. Taky to ma mozna v delphi 3 a z toho to vytahnout do nejake 9 muze byt problem. No, a pak ty pc a diskety uz mohli skoncit na srotaku. Koho by zajimali veci, ktere jedou na W95, ktere na W10 neumi kazdy spustit :)

 
Nahoru Odpovědět
26. září 9:03
Avatar
Roman
Člen
Avatar
Roman:27. září 11:48

Nez investovat do znovuzrozeni zastaraleho neni lepsi prepsat aplikace? Nedavno jsem vytvarel novy program, ktery nahrazoval stary fandovsk. Zpetne reakce jsou jen pozitivni - uzivatele si moc chvali pohodlnejsi ovladani, intuitivnejsi rozhrani atd. Jo a muzu pohodlne koukat na web a pracovat.

 
Nahoru Odpovědět
27. září 11:48
Avatar
Odpovídá na virlupus.soft
Jiří Nekolný:5. října 3:16

Koukám že nejenom já stůňu po fandu a také mi připadl zajímavý python. O spolupráci bych měl zájem.

 
Nahoru Odpovědět
5. října 3:16
Avatar
virlupus.soft
Redaktor
Avatar
Odpovídá na Jiří Nekolný
virlupus.soft:5. října 12:03

Zatím to ve fázi luštění originálních zdrojáků a rozmýšlení co tím author chtěl říct, protože je tam strojáku. Ten stroják chápu, protože to pracovalo v DOSu a s vlastní grafikou a také některé rutiny se tím značně urychlí.

 
Nahoru Odpovědět
5. října 12:03
Avatar
virlupus.soft
Redaktor
Avatar
Odpovídá na Jiří Nekolný
virlupus.soft:5. října 12:44

Možná by byla i cesta z úplně jiné strany. Najít si pouze jejich datové struktury a podle syntaktických diagramů zpracovat vlastní interpret.
Je fakt, že Python mi připadá nejschůdnější, už je proto, že se udělat dost funkcí v "céčku" a navíc PyQt je poměrně jednoduchý grafický kit pro zpracování prostředí.
Původní pascalovské konstrukce pak lze snadno transpilovat přímo do Pythonu, pro zpětnou kompatibilitu a čeština samozřejmě do UTF8.

 
Nahoru Odpovědět
5. října 12:44
Avatar
Odpovídá na virlupus.soft
Jiří Nekolný:5. října 14:44

Zachraňte FAND.
Všem, kteří programovali ve FANDu schází modernější náhrada, ti co ho nepoužívali nechápou proč.
Kdyby bylo cokoliv stejně rychlé a efektivní pro programování v hromadném zpracování dat, už bych to využíval. Kdo by chtěl vidět ukázkový systém ve FANDU, ať zkusí jednoduché účetnictví od firmy Tichý a spol. www.ucto2000.cz, které je stále funkční a vynikající.
Programoval jsem ve FANDU od jeho 8bitové verze a tak připomenu, jak a proč vznikl.
Tehdy se účetnictví zemědělských podniků zpracovávalo ve výpočetních střediscích Agrodatu. Data se děrovala na děrnou pásku v podnicích a kabelovým přenosem doručovala ke zpracování (Šup pásku do kabely a jelo se.) Zpět podniky obdržely kontrolní sestavy a po odkontrolování se provedlo konečné zpracování.
Někdy koncem osmdesátých let se objevily první mikropočítače a osmipalcové diskety s úžasnou kapacitou 256 kB. Data se začala předávat na disketách a bylo potřeba, aby měly co nejmenší velikost. Z toho vznikla potřebná struktura dat základních čtyřech typů F, A, N a D.
F - čísla, se kterými se počítá,
A - alfanumerická data typu string,
N - numerická data, se kterými se nepočítá -typu číselník
D - datum.
Datové soubory měly pevnou strukturu, kterou znal jak odesílatel, tak příjemce.( Na rozdíl od dbf souborů si je nenesly s sebou.)
Záznamy se zpracovávaly sekvenčně (v té době jak jinak). Diskety však umožnily přistupovat k datům přímo a tak na začátek souboru přibyl údaj o délce jednoho záznamu.

Tím se z délky souboru po odečtení úvodních bytů a pevné délky záznamu dalo zjistit kolik záznamů soubor obsahuje.

Rychlý přístup k datům byl vyřešen tak, že se záznamy nejprve ukládaly setříděné a soubor se prohledával metodou půlení intervalů.
Praxe ukázala, že je často potřeba hledat podle různých klíčů a tak k základnímu datovému souboru přibyl indexový soubor, ve kterém je klíčový údaj spojen s údajem o umístění, myslím nějakou formou B-stromu. Tedy menší indexový soubor se prohledal a v něm bylo nalezena pozice datového záznamu a data byla načtena na první přístup. Pokud programátor povolil, mohl být klíčový údaj duplicitní a soubor se prohledával kombinací idexového a sekvenčního prohledávání. V indexovém souboru mohlo být stromů více, podle množství klíčů.
Tím odpadla potřeba přetřiďování souboru před prohledáváním.

Nové záznamy se z časových důvodů do neindexovaného souboru zadávaly na konec. Bylo však možné vložit záznam na jakékoliv místo, jen to bylo bylo časově náročnější.
U indexovaných souborů se údaj zadával vždy na konec.
Odstranění záznamu bylo téměř vždy náročnější, protože na uvolněné místo se musel zbytek souboru připojit. U indexovaných souborů ke každému záznamu přibyl na první pozici 1 byte,který indikoval, zda je záznam platný či nikoliv. Tím se výmaz záznamu omezil na přepsání pouze tohoto bytu, což je mnohem rychlejší. Vymazané záznamy se odstraňovaly v případě akce, která stejně zpracovala všechny záznamy, kdykoliv to mohl vyvolat programátor.

Praxe vyvolala potřebu zaznamenat delší texty rozdílné délky a tak přibyl soubor volných textů. V základním datovém souboru se pro nalezení tohoto textu ukládá pouze jeho adresa o velikosti několika bytů. Volný text mohl mít nejprve délku 64 kB, později bylo toto omezení odstraněno. Do množiny typů tedy přibyl údaj typu T - volný text. Přibyl také údaj typu R - reálné číslo v pohyblivé řádové čárce. (Upřímně nevím, jestli jsem ho někdy použil.)

Údaje pro jeden logický soubor mohou být tedy uloženy až ve třech fyzických souborech
se stejným jménem a odlišených jen příponou.
soubor.000 - základní datový soubor
soubor.t00 - soubor volných textů
soubor.x00 - příslušný indexový soubor

Datová struktura tedy vznikala v době kdy kraloval DOS a šestnácti bitové počítače. Pro kódování textů se nejprve využívalo prvních 128 bytů a texty byly bez diakritiky. Pak vzniklo oblíbené kódování kamecikých, latin2 a posléze Windows (CP1250)
Fand umí pracovat jen bez diakritiky a nebo v kódech kamenický nebo latin2. Data pro export umí převést do CP1250. A to je vše.
Při revitalizaci fandu by se zřejmě daly doplnit i další kódové stránky ale co s UTF-8, které má pro ukládání jednoho znaku různou délku?
Údaje typu A by se daly ukládat v latin a program by pracoval s unicode. Před načtením a před uložením by se musely provádět konverze dat.
Také by šlo přidat další údaj typu U - unicode v délce 16 bitů na znak s pevnou délkou - podstatný nárůst velikosti datových i indexových souborů.
Nebo by rozsah údaje A:20; neudával počet znaků v řetězci, ale maximální délku v bytech. V češtině by se mohlo vejít dvacet, ale také jen třeba 10 znaků.
Také by se dala použít jiná datová struktura, ale byl by to ještě FAND?
Tak kterou cestou se vydat?

 
Nahoru Odpovědět
5. října 14:44
Avatar
Iniptor
Člen
Avatar
Odpovídá na Jiří Nekolný
Iniptor:5. listopadu 11:12

Zdá se mi, že dobrou strategií by mohlo být nejdřív revitalizovat PC Fand tak, aby v něm mohly být načteny a provozovány dosavadní projekty. Tím se získají na ověřování poslední zbytky dříve veliké uživatelské obce v ČR a SR. Ve chvíli, kdy se projekt dostane do fáze, že ho vezmou vážně tvůrci Účta a začnou spolupracovat, naděje na dokončení výrazně vzroste.

To znamená ale nejdřív zachovat staré deklarace, tj. údaj typu A by byl normální ASCII char do 255. Vždyť i excel má char a unichar.

No a pak přidat soubory (kapitoly F) s příponou .U a .UX - unicode a indexové unicode. Tak jako už teď jsou ve fandu kapitoly F s příponou dbf.

Nové programové RDB se samozřejmě musí rozšířit, názvy souborů už nemohou být jen 8 znaků. Původní RDB by se do FreeFandu daly načíst, ale pak jen uložit v nové deklaraci psané v UTF-8, nativní kódování musí být už všude v UTF-8.

Asi by tam opravdu musela probíhat konverze dat ze starých do nových, protože jinak by musely všechny funkce běžet dvojmo, a to je moc práce. Jenže rychlost konverze třeba volných textů, které mohou být ohromné, vždyť volný text jsou i "datové" programové soubory... No snad už je výkonnost počítačů zase o hodně dál.

Když by FreeFand dokázal pracovat se starými datovými soubory, bylo by ohromně snadné ověřování - prostě se ta samá velká datová úloha provede na stejných počátečních datech ve starém PC Fandu pod VDosem a ve FreeFandu - a pak se jen porovnají "bajt po bajtu" výsledné datové soubory po akci. Takže se dá skvěle využít jedoucích projektů.

Ještě v této fázi, kdy datové struktury zatím zůstávají beze změny, by bylo skvělé zařadit spolupráci s datovými formáty tabulek v excelu - tj.skutečně tabulek, které mají popis v hlavičce a jinak to pak jsou datové věty. Existuje totiž spousta programů (účetních a jim podobných, docházkové systémy apod), které mají export dat do csv nebo xlsx - jenže ten, kdo data třeba z účetnictví takto dostává, je obvykle exportuje proto, že je potřebuje nějak kontrolovat a dál zpracovávat jinak, než to dovoluje původní program. V excelu to sice jakž takž jde, ale je to strašně pracné, snadno se tam udělají fatální chyby, no prostě to není databázový program. (Stejně tak by bylo skvělé zvládat importy do nového FreeFandu přes různá ODBC.) Tímhle by se totiž postupně začala rozrůstat obec i úplně nových uživatelů, vychytaly by se dětské nemoci - a snad by se tím našli další lidé, kteří by na vývoji FreeFandu začali spolupracovat i programátorsky. Asi by bylo nejlepší mít přímo F kapitolu s příponou .csv, kde by v záhlaví deklarace byl specifikován oddělovač a jestli je hlavička v prvním řádku, to by pro začátek stačilo...

No a pak, až by byl zvládnut starý PC Fand, by se teprve začalo s texty v UTF-8, jde o údaje typu A,N,T - takže třeba U,M,W (Utf, nuMeric, Word) ...no a u volných textů je otázka, zda do nich časem nezařadit práci s rtf.... Ale to už je velmi daleko, kéž by se povedla alespoň ta první fáze tak, aby ještě bylo na co (na koho) navazovat - pořád ještě je koho se ptát, pan Tichý (tvůrce Účta) se svou ženou Blankou jsou lidé, kteří byli v původním Pc-Fandovském týmu...

Možnost přenést to do Pythonu vypadá lákavě, je to jazyk, který "jede"...

 
Nahoru Odpovědět
5. listopadu 11:12
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:5. listopadu 13:08

Problem neni v to to preprogramovat, ale, kdo to zaplati. Zadarmo se s tim nikdo drbat nebude. A muj strizlivy odhad, pul roku prace po 8h po 400 kc/h je 250/2 * 8 * 400 = 400.000. Pokud tyhle penize nejsi schopen obetovat, nema smysl uvazovat o tom, ze by nekdo chtel zprovoznit vsechny funkce toho sw. Aspon treba pro mne by to znamenalo kompletne ten kod prostudovat a prepsat do jineho jazyka nebo aspon do QT/cpp, protoze u nas se to nepouzivalo, tak ani nemam tuseni, k cemu je to dobre.
Prvni vysledky bych mohl mit tak po 2-3 mesici a pak by se videlo, co jeste treba spravit...

Editováno 5. listopadu 13:10
 
Nahoru Odpovědět
5. listopadu 13:08
Avatar
virlupus.soft
Redaktor
Avatar
Odpovídá na Iniptor
virlupus.soft:6. listopadu 20:05

Dost dobrý nápady... celkem se shodují s prvotní myšlenkou. Pokud to projde jako GNU GPL a komunitní projekt, tak se snad zbavíme i toho 1.5mega nákladů. Zatím mám zpracováno řešení datových souborů v C++, aby to bylo čitelné... vím, žádná hitovka. Pascal sice umím číst, ale šílené konstrukce už v něm nedám....

Mnoho souborů je zde už zbytečných, protože Woknenní systémy nemusí řešit grafiku a editory... Prostě čtu původní zdrojáky a zjištuji, co je fakt nezbytné a co lze vynechat....Je to moc stránek textu:-(

http://virlupus.cz/…src/FAND.zip je tam i jeden projekt, na kterém jsem z velké části dělal:-(

 
Nahoru Odpovědět
6. listopadu 20:05
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 28 zpráv z 28.