unosc.prg

(Апликација, Југославија)

Најкраће речено, гонич за маске. Филозофија ГенерАла, као и Салетовог генератора пре њега, је била да код за маску не мора и не треба да садржи све, него да оно што је заједничко за све маске буде у једном делу кода, а оно што спада у појединачну маску у другом. Да се избегне понављање кода и онда исправка на сто места.

Е сад где смо се то разликовали. Код њега је за сваки посао који маска има да уради (да нацрта оквир и текст, да нацрта поља, да отвори себи табеле, да овери слог пре уписа или брисања, да освежи вредности при преласку на други слог итд итд) била у засебном ситном прг фајлу, што ће рећи да је име маске могло да има највише 6 слова, јер су преостала два била _ (подвлака) и још једно слово. Код мене је све то било у једном фајлу, у ствари убрзо је било и код њега, то сам му исправио још крајем 1989. јер је у нпр. материјалном у неким фирмама умео да наређа по 1600 фајлова у директориј где је апликација, што се под Досом 3.1, на икс те машинама тадашњим, читало редом, па је налажење фајла који треба отворити умело да потраје - ем их треба поотварати и по двадесетак, ем се споро налазе јер их има много.

Овај гонич сам почео да чачкам још од његове верзије, а тек новембра 1992. сам у коментаре почео да убацујем и датуме. Није да сам још тада мислио да ћу ово писати, него сам видео по разним комадима кода од којекуд да је то ред, а после сам укапирао и зашто то ваља.

Упоредо са овим, тачније у пару са њим, се развијао и opisfmm4, скроз прерађена верзија Салетовог opisfmt, генератора тог кода по маскама. Морало је тако, јер што један направи, други мора да тера. Зашто opisfmt? Е... његов генератор је испрва користио црталицу за маске из диБејза 3 плус (што би рекао Биг Ћале, „ем дибејз, па још три, па још и плус!“), јер фокс пре ФП1.02 није имао своју, а у диБејзу се то звало „формат фајл“, јер је ето, унос био форматиран. И то је имало два фајла, један је био штогод бинаран и памтио где шта дође; други је био код, са баш наредбама за цртање оквира, текста, поља. Он би тај текст увлачио у табелу (увек се звала radna.dbf, без обзира на намену и садржај), па би кроз њу пролазио ред по ред, сецкао онај код и из тога извлачио где шта дође на екрану, што би трпао у opisfmt.dbf, мета табелу са именом поља, редоследом, позицијом, кодом за валидацију и приступ, што је, по добром обичају у фоксу, могло да се реши двојако - као једноредни израз чија би вредност била тачно или нетачно, или као код у више редова, од чега би се изгенерисала функција која би такву вредност враћала. Сале је стављао 0 или 1 у суседно поље па би тако знао које је од та два, а ја сам ту већ бројао редове па тако знао.

Кад је 1991. изашао Фокспро, прерадио сам opisfmm4 (тада још opisfmt, opisfm2 и још неке варијанте) да чита шта овај избаци из своје црталице (што су они звали екранима, ми маскама, што је обоје убрзо застарело), што је био текст фајл са пољима размакнутим табовима, много лакше за чешљање.

Испочетка (пролеће 1994.) сам имао неколико верзија, што се до краја свело на две - за појединачне слогове, нпр за матичне табеле, и за линијски унос, тј за документе са ставкама. Код линијског уноса је било зајебано око навигације горе-доле, јер је требало истовремено омогућити и то, и проверавати да не пробије изнад врха документа кад иде навише, и да направи празан слог кад крене наниже од последњег, и да не направи два празна, и да уредно подигне оне испод кад обрише неки... што се поприлично закомпликовало. Решио сам то тако што сам имао на екрану само један слог са стварним контролама, тада званим поља (што се после показало нетачно, поље је оно у табели, ово је нешто на екрану кроз шта се уноси вредност која ће се после у то поље уписати, ал' тада још нисмо имали име за то), а остало је била напросто само слика тог реда, од тренутка кад је био тамо, тај се стално шетао. „Са колико лоптица ради жонглер? Са једном или ниједном, остале су у ваздуху“. Коликогод да ми и данас такво мамуљање изгледа сулудо и извор могућих багова, у ствари је испало сасвим поуздано и са најмање проблема.

Код за обе врсте маски је штанцовао исти opisfmm4, напросто би за групне тј. линијске изгенерисао два-три комада кода више.

Постојао је и додатни прозор на дну екрана, где би стајало кратко упутство за Ф тастере, што се мењало према контексту. Ако је маска била у режиму прегледа (нпр. унет је кључ већ постојећег слога, онда ево ти па види шта има под тим слогом), добијало би се 'F1 помоћ │ F5 исправка од 1. поља │ F6 исправка од ##. поља │ F2 брисање │ ESC повратак у унос' за линијски; обичан није имао F6. Ако је било на уносу, 'F1 помоћ │ F3 понавља да/не │ F4 понавља једном │ ESC повратак'.

То са F3 и F4 је измислио Сале, али га је решио врло заобилазно - ова два тастера (као и следећа два) је дефинисао као активне тастере за скривени мени, а у том скривеном менију би дефинисао да у бафер тастатуре угура неке специјалне знаке, које би онда овај протумачио као знак за излазак из уноса, погледао који је то знак, па ако је неки од тих, не би изашао него би урадио шта треба. Мени је већ било лакше, нисам морао да се сналазим са оним што је фокс 1.2 умео, већ је био изашао Фокспро, где је везивање кода за тастер било уграђено, радило је и без трикова.

F3 је укључивао или искључивао понављање вредности из претходног слога за било које поље, што је умело да буде згодно кад се уноси гомила суседних података, нпр. датум на документу. F4 би то урадио само једном, за текуће поље - а те претходне вредности је овај програм такође чувао негде.

Згодна је била и вишејезичност - сви стрингови који се појављују су били дефинисани на почетку, на енглеском, мађарском, српском (латиница по кодној страни 852), ћирилицом (по Јус 015), те чак и јуски. Један од тих стрингова се звао C_konju, а садржавао је опомену да бекап није урађен већ седам дана.


Спомиње се: 20-XI-1992., 04-V-1993., 31-V-1994., 06-VI-1994., 05-VII-1994., 10-IX-1994., 02-I-1995., 19-I-1995., 10-II-1995., 24-II-1995., 16-IX-1995., 24-IX-1995., 06-V-1996., 29-IX-1996., 03-VI-1997., 21-V-1999., Александар Расков (Сале), ГенерАл, Жива Вилин (Биг Ћале), јуски, фокс, на енглеском