Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze: PC-Fand 4.2 (Pascal)

Aktivity
Avatar
Virlupus
Tvůrce
Avatar
Virlupus:5.8.2019 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.8.2019 23:40
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:6.8.2019 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.8.2019 9:05
 
Nahoru Odpovědět
6.8.2019 9:02
Avatar
Martin Dráb
Tvůrce
Avatar
Odpovídá na Peter Mlich
Martin Dráb:6.8.2019 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.8.2019 20:59
2 + 2 = 5 for extremely large values of 2
Avatar
Virlupus
Tvůrce
Avatar
Virlupus:6.8.2019 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.8.2019 21:08
Avatar
Virlupus
Tvůrce
Avatar
Odpovídá na Peter Mlich
Virlupus:7.8.2019 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.8.2019 0:16
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:7.8.2019 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.8.2019 10:27
 
Nahoru Odpovědět
7.8.2019 10:26
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:7.8.2019 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.8.2019 10:42
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:7.8.2019 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.8.2019 10:47
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:7.8.2019 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.8.2019 10:51
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:7.8.2019 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.8.2019 10:54
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:7.8.2019 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.8.2019 11:08
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:7.8.2019 11:16

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

 
Nahoru Odpovědět
7.8.2019 11:16
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:7.8.2019 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.8.2019 19:09
Avatar
Virlupus
Tvůrce
Avatar
Virlupus:9.8.2019 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.8.2019 0:31
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:9.8.2019 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.8.2019 7:44
Avatar
Virlupus
Tvůrce
Avatar
Virlupus:9.8.2019 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.8.2019 21:20
Avatar
Iniptor
Člen
Avatar
Odpovídá na Virlupus
Iniptor:23.9.2019 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.9.2019 17:20
Avatar
Iniptor
Člen
Avatar
Odpovídá na Virlupus
Iniptor:23.9.2019 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.9.2019 21:14
Avatar
Virlupus
Tvůrce
Avatar
Odpovídá na Iniptor
Virlupus:25.9.2019 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.9.2019 22:33
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:26.9.2019 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.9.2019 9:03
Avatar
Roman
Člen
Avatar
Roman:27.9.2019 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.9.2019 11:48
Avatar
Odpovídá na Virlupus
Jiří Nekolný:5.10.2019 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.10.2019 3:16
Avatar
Virlupus
Tvůrce
Avatar
Odpovídá na Jiří Nekolný
Virlupus:5.10.2019 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.10.2019 12:03
Avatar
Virlupus
Tvůrce
Avatar
Odpovídá na Jiří Nekolný
Virlupus:5.10.2019 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.10.2019 12:44
Avatar
Odpovídá na Virlupus
Jiří Nekolný:5.10.2019 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.10.2019 14:44
Avatar
Iniptor
Člen
Avatar
Odpovídá na Jiří Nekolný
Iniptor:5.11.2019 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.11.2019 11:12
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:5.11.2019 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.11.2019 13:10
 
Nahoru Odpovědět
5.11.2019 13:08
Avatar
Virlupus
Tvůrce
Avatar
Odpovídá na Iniptor
Virlupus:6.11.2019 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.11.2019 20:05
Avatar
Jan Špaňhel:25.9.2020 20:55

Zdravím všechny příznivce FANDu. Po 3/4 roční práci mám PC FAND přepsaný do Visual C++ 2019. Zdaleka tam nefunguje vše, a už vůbec ne spolehlivě, ale je možné tam některé úlohy spustit. K možnosti pracovat s indexovými soubory vedla opravdu strastiplná cesta, plná utrpení v podobě assembleru. Nicméně to nějak funguje. To, co nefugnuje vůbec, je zápis / úprava .T00 souborů, textový editor, generování reportů a spousta dalšího. Nicméně je to jen začátek.
Nevím, jestli to má vůbec smysl, jestli by to měl zájem někdo využít. Pokud ano, tak na tom snad budu dál pokračovat.
V tuto chvíli můžu říct, že autorský tým PC FANDu odvedl neskutečnou práci. Nechápu, že někdo v Pascalu dokázal napsat něco tak obsáhného a spolehlivě funčkního. Ta práce s pamětí, assemblerem a v podstatě každým jedním bajtem je neskutečná. Velmi poučná. My, dnešní vývojáři, se máme jako v bavlnce, to se nedá s tou hrůzou, kterou zažívali naši předchůdci, vůbec srovnat.
Našel by se někdo, kdo by měl zájem o testování této přepsané verze? Případně zájem o pomoc s dalším vývojem (sqlite, jiné SQL, XML, JSON, SOAP, ...)?
Napište mi případně na spanhel (zavináč) spanhel (tečka) eu. Díky

 
Nahoru Odpovědět
25.9.2020 20:55
Avatar
Odpovídá na Virlupus
Jaroslav Janoušek:24.10.2020 1:10

Virlupus, programoval som PcFAND v rokoch 1991 až 1998 kým sa dalo až po Win98. Jeho logika bola úchvatná. Predtým som programoval sálový počítač v Pascale a v súčinnosti s IMAGE2000, ktorý obsahoval FORTRAN knižnicu, ale sa dalo ju "vcucnúť" resp. "obaliť" Pascalovskou hlavičkou a používať v Pascale. Potom prišli prvé personálne počítače a TurboPascal. Hľadal som spôsob ako aplikácie preniesť na PC a naprogramovať tam. Pritom som sa dostal k riešeniu v podobe PcFANDu. Kúpil som si ho za cca 500Kčs a používal aj po roku 2000. Na začiatku to vyzeralo to tak, že využijem jeho schopnosť deklarovať databázové štruktúry a potom využijem Pascalovskú knižnicu na svoju aplikáciu, ktorú vytvorím v Pascale. Ale ako sa ukázalo, jeho PcFAND script bol super! Na všetko čo som potreboval od databázy dostať sa dalo použiť to čo poskytoval PcFAND. Dnes uvažujem, že pre svoje potreby vytvorím niečo podobné v Jave tak, aby sa dala databáza prenášať aj pod Linux. No rozšíril by som DBS o nové typy položiek, pre prácu s fotografiami a filmom. Preniesť "ducha" PcFANDu do modernej verzie DBS.

 
Nahoru Odpovědět
24.10.2020 1:10
Avatar
Jaroslav Janoušek:24.10.2020 1:43

Tiež patrím do generácie po 60ke. Programoval som v Assambleri dokonca aj databázové aplikácie v čase keď dáta sa ukladali priamo na sektory adresou STOPA, HLAVA a SEKTOR na 8 palcové diskety. Dnes si myslím dajú obísť veci v assambleri ktorý mal význam v rýchlosti a potrebe RAM pamäte. Programoval som aj v C++ a Jave, ale chcel by som vás priatelia inšpirovať programovacím prostredím https://processing.org/download/ v ktorom sa dá objektovo programovať v Jave ale trochu podobnej JavaScriptu. Pozrite si to.

 
Nahoru Odpovědět
24.10.2020 1:43
Avatar
Jára Franke
Člen
Avatar
Odpovídá na Jan Špaňhel
Jára Franke:24.11.2020 17:49

Držím palce, fand se stal mým osudem. V devadesátkách jsem s jeho pomocí postavil řadu pomocných prográmků pro různé agendy úřadu práce, které ofiko program neuměl a po odchodu do privátní sféry jsem si bez něj nedovedl představit zase nadstavby pro náš IT systém. Největší projekt tehdy byla podniková banka, na kterou jsem byl patřičně hrd a pyšen. Dodnes si s fandem hraju a mám v něm i receptář na hubnoucí dietu včetně tabulek jednotlivých potravin s nutričními i kalorickými hodnotami, či jednoduchý program pro kalkulaci zájezdů, co pořádám pro kamarády a pár dalších maličkostí. Mrzí mě, že nic podobně jednoduchého a přehledného není k dispozici na moderních strojích a domnívám se, že by se nápad mohl chytit.

 
Nahoru Odpovědět
24.11.2020 17:49
Avatar
Odpovídá na Virlupus
Jaroslav Janoušek:6. března 21:10

Nazdar priateľu.
Bol som pri zrode INFORMATIKY v Československu, keď sa objavili prvé mikroprocesory typu I 8080 a programovali sme v assembleri. To bolo niekedy v priebehu rokov 1983. V priebehu nasledovných 7 rokov sa postupne objavili prvé IBM PC. Pred nimi ešte nejaké 8 bitové stroje a objavil sa PCFAND, dBASE, FoxBase a s nimi DBF súbory. Ja som začal databázy na I8080 v assambleri, kde dáta sa ukladali do sektorov na floppy disku. Operačný systém počítača MVS (Malý vývojový systém) predstavovala knižka písaná v assambleri, kde som mohol využívať podprogramy toho "operačného systému" ako by boli v knižnici. Podprogram znamenal volanie call na danej adrese. Tak som začínal. Dva roky na to som preskočil na sálový počítač, kde som programoval databázy vo FORTRANE využívajúc funkcie databázového systému IMAGE 1000 (1000?presne už neviem) ktoré vykonávali operácie s databázou. Na sálovom počítači bol aj Fel Pascal, ktorý vedel pod seba zahrnúť FORTRAN knižnicu IMAGE tak sa dalo preskočiť na programovanie aplikácií v Pascal jazyku. ... prišiel svet IBM PC a s ním Turbo Pascal od Borlandu. A prišli DBS ako dBASE, FoxBase, Clipper, a ... PCFAND. Keď som chcel preniesť aplikácie zo sálového počítača na IBM PC, chcel som pokračovať v Pascale a dokonca som si na PC vytvoril náhradu funkcií, ktoré mi dával IMAGE. No do cesty sa mi dostal PCFAND s možnosťou Pascalu a jeho špeciálne schopnosti vytvárať OBJEKTOVÝ SPÔSOB DATABÁZY. Nakoniec som nikdy neurobil ani jeden program v Pascale, lebo sa ukázalo že script PCFANDU bol DOKONALÝ. Čo som potreboval naprogramovať som urobil v ňom.
Programoval som v ňom profesionálne do roku 2003 (aj pod Windows 98 - SUPER) od roku 1990. V 1993 (MS DOS a PC 386, 486, ...) roku som v ňom vytvoril aplikáciu tvorby a evidencie Jednotnej colnej deklarácie pre pracovisko Zahranično obchodnej spoločnosti VSŽ. Aplikácia pracovala v distribuovanej databáze, pracoviská aj 2km od seba, prepojené modemami na platforme MSDOS počítače 386 a 486 používajúce sieťový softvér LANTASTIC Z (používajúci modemy na sériovú komunikáciu). No unikát filozofie. Projekt o dvoch ľuďoch Vedúci pracoviska - hovoril čo potrebuje a 1 programátor - JA. Práca trvala 3 mesiace, každý mesiac jedna etapa skončená. Potom to už fungovalo a šiel cez neho VEŠKERÝ EXPORT VSŽ 7 rokov až do roku 2000. Vtedy sa strachom pos..ali, že projekt nezvládne prechod cez rok 2000 a prešli na SILNÝ IBM stroj ktorého projekt stál cca 1.5 milióna Kčs. Projekt PCFAND za tri roky mal v databáze 90tisíc JCD a vďaka nemu spoločnosť rozšírila službu zo 7 na cca 45 firiem, kde pôvodne 1 žena v smene nahradila pôvodne 4 ženy klepajúce na písacom stroji. Žiadnu neprepustili ale rozšírili službu bez toho aby sa ženy trápili kontrolami obsahu. Všetko kontroloval program. Z 90tisíc JCD som po rokoch našiel cca 12! preklepov nepodstatných údajov vo formulároch JCD.
PCFAND bol FANTASTICKÝ aj so schopnosťou spúšťať exe súbory, ktoré vytvoril niekto iný (takto mohol LANTASTIC vytáčať čísla telefónov a prepájať sa na vzdialené pracoviská, kde si cez ZDIELANÉ FOLDRE NA HARD DISKOCH prehadzovali EXPORTNÉ DÁTA).
V PROSTREDÍ PCFAND takto som dokázal v "databázovej" aplikácii vytvoriť neskôr pre žiakov programujúcich mikropočítače v assambleri vývojové prostredie, ktoré archivovalo zdrojové kódy, prekladalo programy a nakoniec ich aj napalovali na mikropočítače. Program kompilátor spúšťal ako exe program. Žiak to ovládal cez MENU DATABÁZOVEJ APLIKÁCIE! Program v jazyku scriptu PCFAND.

Neskutočné aplikácie sa dali vytvoriť. Preto ma mrzelo, že vývojári PCFANDu nevytvorili TÝM PRACOVNÍKOV, ktorí by ďalej pokračovali s IDEOU PCFANDU - ako OBJEKTOVEJ DATABÁZY. Princip objektového programovania prišiel neskôr, ale oni sa ku tomu veľmi priblížili.
Jeden pán z Košíc v tomto urobil veľa keď prehodil PCFAND na platformu Windows. Chyba! INDIVIDUALITA - TAJNOSTI - UMREL a NEZANECHAL PO SEBE POKRAČOVATEĽA!!! Projekty sa nedajú robiť bez IDEI UDRŽANIA VÝVOJA NAFURT!
********* A TERAZ KU VECI ************* Pozrel som sa na zdrojové texty *.PAS PCFANDU. Prvá CHYBA! Nestačí zverejniť ZDROJOVÉ TEXTY! Projekty sa robia cez Analýzy a Ideové návrhy. Myšlienky predchádzajú programovanie! Ľudia zabúdajú - JA TIEŽ!!! Po čase by som nevedel AKO SA VOLÁM!!! Ani Autori by dnes už asi nevedeli čo a prečo majú v programoch zakódované!
Moja IDEA BOLA - skúsiť naprogramovať IDEU ako PCFAND vytváral štruktúru databázy, ako preväzoval tabuľky ako vykonával aditívne zmeny naprieč tabuliek ako boli na seba reťazené.
Dnes stále žije FREE PASCAL a to čo pôvodne mal urýchľovať assambler, dnes už dokáže urýchliť HW 1000x rýchlejší než pôvodný HW.

 
Nahoru Odpovědět
6. března 21:10
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 33 zpráv z 33.