PCPROG.3

26 Jul 1993 - 22 Apr 1994

Messages - clipper

clipper.407 dejanr, -> #405, snemcev
>> Btw, drastičNo ubrzanje se postiže i u petljama tipa: >> FOR i=1 TO Len(aNiz) >> Mnogo brže radi: >> nTo := Len(aNiz) >> FOR i=1 TO nTo Zbog toga bi trebalo onoga ko je pravio optimizacije u Clipper-u okačiti o... ;) To je bukvalno prva optimizacija koja se radi :(
clipper.408 ttop,
#include "commands.ch" ----------- Jel može ovo neko da zakači . Al hitno. :) Pozdrav, Ttop
clipper.409 d.petrovic, -> #391, cnenad
Ă> ŁŁŁ Zar nije zdravije da kod tolikog programa ode 150 K u Ă> ŁŁŁ overleje (rtlink i blinnker prilicno lepo rade sa overlejima) Ă> ŁŁŁ i ta memorija ostane za baze ?? Ă> Ă> Ovo sam cekao. Mislim da je vreme da se uhvatim u kostac i sa tim Ă> problemom. Moze li kratak kurs kako to izvesti ? Postoje dva načina: 1. Da pozoveš Rtlink ili Blinker bez menjanja default parametara i praviće ti overleje prilično lepo raspoređene. 2. Ako hoćeš da budeš siguran šta je gde smestio smestiš u .lnk fajl (ovo je za RtLink): OUTPUT R RESIDENT FILE RGM2MSF, MENU, DECTOBIN DYNAMIC FILE FUNKCIJE, PROCEDUR, RADMAG, INSTALL, IZVESTAJ, PRINT, CALCULAT LIBRARY NANFOR i dobiješ izvršni kod, jelte... koji startuješ sa: C:Đ>r <Enter> :))) P.S. Ovo je sve za kod pisan u kliperu, ako hoćeš da smestiš neki .asm ili .c program u overleje onda to ide u statičke overleje. Da objašnjavam ? :)
clipper.410 bulaja, -> #397, gari
│DBC.ZIP 168281 03-08-92 Data Base Communications- This program will └─── Ok, videcemo sta se moze uraditi :). Samo kazi mi sa kog je ovo BBS-a (ja se vise ne secam:), ClipBoard-a, Hekoma, Blinkera,..?
clipper.412 arazumenic, -> #402, nbatocanin
-> Dobro, ne mora baš ova poruka ;) Može i: "TO ŠTO PIŠEŠ OKAžI MAžKU O -> REP" ;) Ovakve ili slične poruke ostavljam tebi da ih ti ugradjuješ u svoje programe. -> Nemam vremena, ali mi se i dalje čini da može. Postoji razlika izmedju "čini mi se da može", "znam da može" i "radi". Ja sam probao i ne može, a i po ostalim porukama koje su proistekle iz mog pitanja, zaključujem da i drugi ne mogu da iskontolišu memoedit na način na koji sam želeo. -> Kakve to veze ima? Pogledaj poruku 11.369 i dalje.
clipper.411 arazumenic, -> #392, ndragan
-> Sve skupa, zašto ne središ stvar jednom valid funkcijom - da izbroji -> redove u memo polju, i da kaže "tekst je duži od 5 redova - skrati Eh, tako sam u samom startu rešio problem. Ali, želja mi je bila da u samom memoeditu uvedem ovo ograničenje. Saša
clipper.413 toma, -> #407, dejanr
■>>> nTo := Len(aNiz) ■>>> FOR i=1 TO nTo ■> ■> Zbog toga bi trebalo onoga ko je pravio optimizacije u Clipper-u ■> okačiti o... ;) To je bukvalno prva optimizacija koja se radi :( Ih pa nisu samo Srbi najpametniji. A šta ako unutar petlje ima jedno aadd(aNiz, "Šta sada!"). Nije baš isto, a?
clipper.414 d.petrovic, -> #408, ttop
moze :)
clipper.415 dejanr, -> #413, toma
>> Ih pa nisu samo Srbi najpametniji. A šta ako unutar petlje ima >> jedno aadd(aNiz, "Šta sada!"). Nije baš isto, a? Naravno da nije, o tome optimizacija mora da vodi računa - izvan petlje se vade konstante koje se u petlji ne menjaju. I, što jes jes, vodili su računa pa ostavili sve konstante :( PS U nekim jezicima se specijalno kod FOR petlje kaže da važe vrednosti koje su bile u trenutku nailaska na FOR, a posle ako i menjaš, to ne utiče na granice. To je u suštini ok kompromis, jer ako će se granice menjati, trebalo bi koristiti WHILE.
clipper.416 cnenad, -> #409, d.petrovic
ŁŁŁ .asm ili .c program u overleje onda to ide u staticke ŁŁŁ overleje. Da objasnjavam ? :) Sto se mene tice, ne znam C niti imam nameru da povezujem clipper sa C-om ali ako nekom drugom treba zasto da ne ?
clipper.419 snemcev, -> #408, ttop
>> Jel može ovo neko da zakači . Al hitno. :) Sudeći po nazivu, to može biti iz bilo kog paketa. Jel može nešto konkretnije?
clipper.418 snemcev, -> #407, dejanr
>> Zbog toga bi trebalo onoga ko je pravio optimizacije u Clipper-u >> okačiti o... ;) To je bukvalno prva optimizacija koja se radi :( Jeste i baš zato nisam dosad ni obraćao pažnju na to, al' od kad sam probao... neverovatno kako na takvu banalnost nisu mislili. Btw, jel neko voljan da pogleda u zvaničnoj dokumentaciji da li Clipper uopšte i sprovodi bilo kakvu optimizaciju?
clipper.417 snemcev, -> #406, stosic
>> Btw, gde su tvoji rezultati merenja? Za prepucavanje nisam raspoložen, a poruka je bila krajnje dobronamerna. Kraj diskusije.
clipper.420 stosic, -> #417, snemcev
>>Za prepucavanje nisam raspolozen... Nije rec o prepucavanju vec o nacinu odgovaranja na poruku. Za one koji su skoro nezainteresovani: //--------------------------------------------------- // Da li AEVAL() brze obradjuje nizove od FOR petlje? // Da, tako kaze Rick Spence. // // Zasto ovaj primer to ne potvrdjuje? // // Slucajnost? // Tako se ne meri vreme? // // Sta VI mislite? //--------------------------------------------------- #define ROW 1 #define COL 2 #define CHA 3 // Matrica EKRAN sadrzi jednu masku za ekran. // To je u ovom programu retko popunjena matrica, pa se za njeno cuvanje // formira nova. Matrica SADRZAJ_EKRANA cuva samo karaktere iz maske. // procedure test() local ekran[25][80] local sadrzaj_ekrana local element local i, j local sekunde // Generisanje maske // ekran[1][2] := "A" ekran[25][79] := "B" // AEVAL() na delu //---------------- sekunde := seconds() sadrzaj_ekrana := {} i := 0 aeval(ekran, { |x| i++, j := 0,; aeval(x, { |y| j++, iif( y <> nil, ; ( element := array(3), ; element[ROW] := i, ; element[COL] := j, ; element[CHA] := y, ; aadd(sadrzaj_ekrana,element) ), ; .f. ) ; } ) ; } ) ? "AEVAL() na delu : (sec)" + str( seconds() - sekunde ) // FOR petlja na delu //------------------- sekunde := seconds() sadrzaj_ekrana := {} for i := 1 to 25 for j := 1 to 80 if ekran[i][j] <> nil element := array(3) element[ROW] := i element[COL] := j element[CHA] := ekran[i][j] aadd(sadrzaj_ekrana,element) endif next next ? "FOR petlja na delu: (sec)" + str( seconds() - sekunde ) return
clipper.422 dr.grba, -> #406, stosic
>> Funkcija AEVAL() (po Rick Spence-u i nbatocanin-u) brze obradjuje >> nizove od FOR petlje. Kod je manje citljiv, ali valjda bar toliko Valjda je poznato da u gotovo svim prog. jezicima petlja tipa FOR...NEXT predstavlja najsporiju strukturu. U knjizi "Quick Basic 4.0: Selected Topics" Microosoft kaže nešto poput: "Pa koristite je, nema problema, radiće, jes' da je malo 50 puta sporija od drugih petlji, al' nema veze." >> >> Btw, drasticNo ubrzanje se postize i u petljama tipa: >> >> Btw, gde su tvoji rezultati merenja? Pre nego što se obojica raspalite, zamolio bih vasda malosmirite loptu i ne prepucavate se u konfu.
clipper.421 dr.grba, -> #405, snemcev
>> Mnogo brže radi: >> >> nTo := Len(aNiz) >> FOR i=1 TO nTo Naravno, ovo je česta zavrzlama za početnike. Teško im da shvate da trpanjem funkcijskog izraza u zaglavlje petlje teraju funkciju da se izvrši uvek ponovo i ponovo i ponovo... Dok se ovako promenljiva i samo inkrementira, što ne može brže...
clipper.423 dr.grba, -> #409, d.petrovic
>> P.S. Ovo je sve za kod pisan u kliperu, ako hoćeš da smestiš neki >> .asm ili .c program u overleje onda to ide u statičke overleje. Da >> objašnjavam ? :) Ajd' objasni. žini mi se da su statički overleji sa C kodom veliki žderači resursa. Tu baš nisam nešto valjano obavešten, a u dobrim knjigama sam, meni na dušu, preskakao ta poglavlja ):
clipper.424 stosic, -> #422, dr.grba
>> >> Funkcija AEVAL() (po Rick Spence-u i nbatocanin-u) brze obradjuje >> >> nizove od FOR petlje. Kod je manje citljiv, ali valjda bar toliko >> >> Valjda je poznato da u gotovo svim prog. jezicima petlja tipa FOR...NEXT >> predstavlja najsporiju strukturu. U knjizi "Quick Basic 4.0: Selected >> Topics" Microosoft kaze nesto poput: "Pa koristite je, nema problema, >> radice, jes' da je malo 50 puta sporija od drugih petlji, al' nema veze." Aman doktore, stani na loptu i procitaj poruku jos jednom. "U ovom primeru AEVAL() je SPORIJI od FOR petlje." >> Pre nego sto se obojica raspalite, zamolio bih vasda malosmirite loptu >> i ne prepucavate se u konfu. Mislim da prepucavanje ne dolikuje ovoj konf, kao ni repliciranje bez pokusaja da se da odgovori na postavljeno pitanje. Ostaj mi da zakljucim da je AEVAL() funkcija bauk.
clipper.425 dejanr, -> #418, snemcev
>> Btw, jel neko voljan da pogleda u zvaničnoj dokumentaciji da li Clipper >> uopšte i sprovodi bilo kakvu optimizaciju? U dokumentaciji se o tome ne govori, ali već po činjenici da nema čitavog niza switch-eva kojima bi se isključivali razni tipovi optimizacije (recimo MSC ima tušta i tma optimizacija, ali neke od njih umeju i da zabrljaju pa da od korektnog sorsa naprave neispravan program, tako da se pojedinačno mogu gasiti ako je neophodno) rekao bih da je ona ostavljena na prilično rudimentarnom nivou.
clipper.426 ematic, -> #418, snemcev
> Btw, jel neko voljan da pogleda u zvaničnoj dokumentaciji da li > Clipper uopšte i sprovodi bilo kakvu optimizaciju? Po nortonovim gajdama ;) jedina optimizacija koja se sprovodi, odnosno koja se pominje, je optimizacija logičkih izraza. Može i da se isključi svičem /z tako da kliper bude još gluplji, tup k'o Summer 87 ;))
clipper.427 d.petrovic, -> #414, d.petrovic
cudne li moje poruke..., nigde fajla :) commands.ch
clipper.428 ttop, -> #419, snemcev
> Sudeći po nazivu, to može biti iz bilo kog paketa. Jel može nešto > konkretnije? Ma d.petrovic bi trebao da mi zakači. A dotični "commands.ch" se spominje u njegovoj funkciji nInkey . :) A da, u pitanju je CLIPPER 5 .
clipper.429 bcetina, -> #406, stosic
>> ... (po Rick Spence-u i nbatocanin-u) ... Pa čekaj, zar to nije isto? :))
clipper.430 stosic, -> #429, bcetina
>>>> ... (po Rick Spence-u i nbatocanin-u) ... >> >>Pa cekaj, zar to nije isto? :)) Ne verujem da Spence prati ovu konf i da ce dati odgovor na 11.420 :)
clipper.431 .bale., -> #400, nbatocanin
> Nisam te baš najpreciznije razumeo. Ako misliš da je COMMIT naredba > za kontrolisan upis izmena na disk, varaš se (na žalost). Ako hoćeš > da kažeš da je potrebna neka nadgradnja/poboljšanje originalnog > Clipper-ovog sistema za pristup bazi podataka, slažem se. Pa rekoh ja da verovatno to Clipper sam ne radi, pa kad on ne radi, onda može aplikacija da radi dvofazni commit i oporavak od grešaka pri padu sistema. To je jednostavan algoritam i pouzdan kad nema keširanja upisa na disk. Da ne tupim sada... napisaću ga ako i dalje nisam jasam :)
clipper.433 nbatocanin, -> #418, snemcev
> Btw, jel neko voljan da pogleda u zvaničnoj dokumentaciji > da li Clipper uopšte i sprovodi bilo kakvu optimizaciju? Tri manje-više rudimentarne optimizacije: 1. Skraćivanje računanja logičkih izraza (.T. .OR. x -> .T.) 2. Eliminisanje koda koji se ne izvršava: IF .T. ; Proc() ; END IF -> Proc() 3. Izračunavanje konstantnih izraza x := 1 + 2 -> x := 3
clipper.432 nbatocanin, -> #412, arazumenic
> Ovakve ili slične poruke ostavljam tebi da ih ti > ugradjuješ u svoje programe. OK, nisam imao nameru da te vređam. Mislio sam da će ti moja poruka pomoći da rešiš problem.
clipper.434 gari,
****************************************************** * POMAGAJTE STOJI MI POSAO !!! :((((((((((((((((( * U sledecem primeru (prilagodjen za SEZAM) * program IZBACUJE kada drugi put pozove funkciju * Izracunaj() jer nesto nije u redu sa parametrima... ****************************************************** * CELU OVU PORUKU MOZETE PREVESTI SA: * clipper mess * rtlink fi mess ************************************************ bof() local t_niz1 := {1,2,3,4}, t_niz2 := {5,4,3,2,1}, ; t_brojac := 1, t_odgovor := 0 for t_brojac := 1 to 2 clear screen t_odgovor := Izracunaj( t_niz1 , t_niz2 ) @ 10,10 say alltrim(str(t_brojac)) + " put = " + ; alltrim(str(t_odgovor)) @ 20,10 say "Taster za nastavak..." inkey(0) next RETURN FUNCTION Izracunaj( t_niz_A , t_niz_B ) LOCAL retVred := 0, t_brojac := 0 for t_brojac := 1 to len( t_niz_A ) retVred += t_niz_A[t_brojac] next aadd( t_niz_A , retVred ) for t_brojac := 1 to len( t_niz_A ) retVred += t_niz_A[t_brojac] + t_niz_B[t_brojac] next RETURN retVred ************************************************ eof() *pozdrav, Gari *p.s. HITNO MI JE !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! *******************************************************
clipper.435 jtitov,
Da li nekome nesto znaci kad se kaze 'program dGE 4.1'? Pitao me jedan drugar u vezi toga, a ja ni A ni B...
clipper.436 gari, -> #435, jtitov
dGE 4.1 je biblioteka (po meni najbolja, mada ne koristim ni jednu) funkcija za rad sa grafikom u clipper-u. Kada vidis demonstraciju ostanes bez teksta. Imam je pa ako neko hoce "demo" verziju onda neka preko nekog ko dolazi u NS posalje dve diskete od 3,5"... pozdrav, Gari.
clipper.437 gari, -> #410, bulaja
BBS File Bank (619) 728 - 4318 ima VISE od 10.000 raznih file-ova za clipper!!! skinuo sam spisak fajlova pa ako Vas interesuje uploadovacu ga (dugacak oko 300K - samo clipper) Ako je neko slucajno pretplacen na isti neka mi ostavi poruku mozemo se dogovoriti O:) pozdrav, Gari.
clipper.438 jorad, -> #394, dr.grba
>> Evo šablona za Blinker (sa # se označavaju komentari): Drugar mi ima problema sa BLINKEROM pa me je zamolio da pitam, zna li ko u čemu je problem BLINKER : 1115 : bliovlmgr(S80VLMGR) : "_DOS_HOLD" : unresolved external
clipper.439 dejanr, -> #434, gari
Srećom, nije bilo teško: >> local t_niz1 := {1,2,3,4}, t_niz2 := {5,4,3,2,1}, ; Prvi niz ima četiri člana, drugi niz ima pet. Pozvao si potprogram, u njemu kažeš: >> aadd( t_niz_A , retVred ) Dakle, sada prvi niz ima pet članova kao i drugi. Pozvao si ponovo potprogram, i tu isto: >> aadd( t_niz_A , retVred ) Dakle, sada prvi niz ima šest članova, drugi i dalje pet. >> for t_brojac := 1 to len( t_niz_A ) Znači, petlja ide od 1 do 6 >> retVred += t_niz_A[t_brojac] + t_niz_B[t_brojac] Za i=6 referenciraš šesti elemenat drugog niza, i isti ne postoji, otuda greška. Da si probao da pregledaš rad programa u debageru, očes bi video u čemu je problem.
clipper.440 stosic, -> #434, gari
>> POMAGAJTE STOJI MI POSAO !!! :((((((((((((((((( >> program IZBACUJE kada drugi put pozove funkciju >> Izracunaj() jer nesto nije u redu sa parametrima... U drugom pozivu posle: " aadd( t_niz_A , retVred )" niz "t_niz_A" ima 6 elemenata, a "t_niz_B" - 5 . Posle pokusaja da citas 6-ti element iz "t_niz_B" sledi ti poruka: Error BASE/1132 Bound error: array access. Pozdrav, Boban
clipper.441 stosic, -> #439, dejanr
>> Srecom, nije bilo tesko: Pretece me :) Jeli je 11.420 tesko, nerazumljivo ...
clipper.442 stosic, -> #438, jorad
>>Drugar mi ima problema sa BLINKEROM pa me je zamolio da >>pitam, zna li ko u cemu je problem >> >>BLINKER : 1115 : bliovlmgr(S80VLMGR) : "_DOS_HOLD" : unresolved external Iz Blinker NG-a: Clipper Summer '87 If you get '__dos_hold' as an unresolved external then please check that you have the updated version of CLIPPER.EXE, CLIPPER.LIB and EXTEND.LIB from Nantucket (Summer '87). The original versions all have a date of 12-21-87 and a time of 12:00 am (which may not be displayed), while the updated versions have the same date, but a time of 2:00am. Blinker will work correctly only with the updated version, as there were a number of problems fixed in it. Jos jedan razlog da se predje na neku od verzija pod brojem 5. Pozdrav, Boban
clipper.443 ttop, -> #427, d.petrovic
> cudne li moje poruke..., nigde fajla :) Vala baš. :) Zahvaljujem majstore. P.S Nego da obratite pažnju. Fajl "commands.ch" je zipovan. :)
clipper.445 gari, -> #439, dejanr
## Srecom, nije bilo tesko: ## >> local t_niz1 := {1,2,3,4}, t_niz2 := {5,4,3,2,1}, ; ## Prvi niz ima cetiri clana, drugi niz ima pet. ## Pozvao si potprogram, u njemu kazes: ## >> aadd( t_niz_A , retVred ) ## Dakle, sada prvi niz ima pet clanova kao i drugi. ## Pozvao si ponovo potprogram, i tu isto: ## >> aadd( t_niz_A , retVred ) ## Dakle, sada prvi niz ima sest clanova, drugi i dalje pet. Postoji "mala" pojedinost: FUNCTION Izracunaj( t_niz_A , t_niz_B ) LOCAL retVred := 0, t_brojac := 0 prema tome t_niz_A i t_niz_B bi trebalo da budu deklarisane kao LOKALNE promenljive koje su sasvim nevidljive za SVE OSTALE procedure i funkcije sem ukoliko nije iz neke od njih pozvana ova funkcija pass by reference ( Izracunaj(@niz1,@niz2) )... sem toga u glavnom programu stoji: local t_niz1 := {1,2,3,4}, t_niz2 := {5,4,3,2,1} a prema tome bi trebalo da ta dva niza ostanu NEPROMENJENI jer su vidljivi SAMO u tom delu programa !!! ## Da si probao da pregledas rad programa u debageru, ## oces bi video u cemu je problem. Jesam pregledao sam i nije mi jasno da se niz u GLAVNOJ proceduri promenio iz pozivne funkcije iako je i u jednom i u drugom delu SVE definisano strogo kao LOCAL !!!!!! ...pitanje i dalje stoji... p.s. inace, sam uspeo da resim na sledeci nacin: definisao sam neki novi niz sa kojim operisem u f-ciji Izracunaj i na njega sam preneo parametre sa for...aadd()...next, jer ako se prenese sa := onda rezultat rada bude potpuno isti... (E TO MI NIJE JASNO !?)
clipper.446 dr.grba, -> #422, dr.grba
>> Pre nego što se obojica raspalite, zamolio bih vasda malosmirite └─────────┬─────┘ Al' mi radi spacebar ))): ──────────────────┘
clipper.447 v.nesic, -> #403, stosic
> Funkcija AEVAL() bi trebalo da brze obradjuje nizove od FOR petlje. Pa i obrađuje. Ono što si ti prikačio je klasičan primer gde ne treba koristiti aeval jer ti trebaju i promenljive koje predstavljaju broj indeksa. Znači, pri svakom prolasku uvećava se interna promeljiva funkcije aeval i tvoja brojačka promenljiva. Kada koristiš for uvećava se samo jedna koju koristiš u oba slučaja.
clipper.448 dejanr, -> #445, gari
Eh, pa Clipper je ipak Clipper a nije C ili pascal ;) Kada napišeš: t_odgovor := Izracunaj( t_niz1 , t_niz2 ) a docnije negde piše: FUNCTION Izracunaj( t_niz_A , t_niz_B ) onda u proceduri možeš da menjaš elemente nizova, da ih produžavaš i skraćuješ itd, i to će se "vratiti" u glavni program. Dakle, kada si u IZRACUNAJ dodao element u t_niz_A, to je važilo i za t_niz1 jer je za clipper to isti niz, preneo ga po imenu a ne po vrednosti.
clipper.449 ematic, -> #445, gari
> Jesam pregledao sam i nije mi jasno da se niz u > GLAVNOJ proceduri promenio iz pozivne funkcije > iako je i u jednom i u drugom delu SVE definisano > strogo kao LOCAL !!!!!! U kliperu se nizovi prenose po referenci. rtfm :))
clipper.450 stosic, -> #447, v.nesic
Najpre hvala, za javljanje. >>Ono sto si ti prikacio je klasican primer gde ne treba koristiti aeval >>jer ti trebaju i promenljive koje predstavljaju broj indeksa. Ovo mi se svidja. Torpedo na Jedrenjak u predelu AEVAL()-a. >>Znaci, pri svakom prolasku uvecava se interna promeljiva funkcije aeval >>i tvoja brojacka promenljiva. Kada koristis for uvecava se samo jedna >>koju koristis u oba slucaja. Na zalost nije, iako je zanimljivo (pogledaj primer). Opet je AEVAL() sporiji. Cini mi se da i kod merenja vremena nesto skripi. Da li je neko video PROFILER za Clipper? Svojevremeno sam pokusao da od programcica koji ide uz Blinker napravim nesto vise, ali nije islo. Vremena izvrsavanja delova koda, funkcija.. su se drasticno razlikovala posle svakog narednog startovanja programa. Evo i primera: **************** procedure test() local niz[4096] local t afill(niz, 1) niz[4096] := 2 t := seconds() amax1(niz) ? seconds() - t t := seconds() amax2(niz) ? seconds() - t return function amax1(n) local najveci := n[1] aeval(n, {|x| najveci := iif( x > najveci, x, najveci) }) return najveci function amax2(n) local najveci := n[1] local l := len(n) local i for i := 1 to l najveci := iif( n[i] > najveci, n[i], najveci) next return najveci
clipper.451 niklaus, -> #446, dr.grba
(:>>> Pre nego što se obojica raspalite, zamolio bih vasda malosmirite (:>>> └─────────┬─────┘ (:> Al' mi radi spacebar ))): ──────────────────┘ Ti meni jedan candybar, a ja tebi opravim spacebar... (; (:niklaus:)
clipper.452 snemcev, -> #447, v.nesic
>> Znači, pri svakom prolasku uvećava se interna promeljiva funkcije >> aeval i tvoja brojačka promenljiva. Kada koristiš for uvećava se samo >> jedna koju koristiš u oba slučaja. Internu promenljivu koju koristi kao index AEval prosleđuje kodnom bloku koji izvršava kao drugi parametar, tako da nema potrebe računati index koji već postoji.
clipper.453 bulaja, -> #437, gari
│BBS File Bank (619) 728 - 4318 ima VISE od 10.000 raznih file-ova za │clipper!!! skinuo sam spisak fajlova pa ako Vas interesuje uploadovacu │ga (dugacak oko 300K - samo clipper) Ako je neko slucajno pretplacen na │isti neka mi ostavi poruku mozemo se dogovoriti O:) └─── Salji spisak. Sto se pretplate tice, snacicemo se nekako (npr. mozemo se dogovoriti ako ti das Jupak:).
clipper.454 gari, -> #453, bulaja
││BBS File Bank (619) 728 - 4318 ima VISE od 10.000 raznih file-ova za ││clipper!!! skinuo sam spisak fajlova pa ako Vas interesuje uploadovacu ││ga (dugacak oko 300K - samo clipper) Ako je neko slucajno pretplacen na ││isti neka mi ostavi poruku mozemo se dogovoriti O:) │└─── │Salji spisak. Sto se pretplate tice, snacicemo se nekako (npr. mozemo se │dogovoriti ako ti das Jupak:). └──── Verovao ili ne ja sam koristio direktnu liniju i nikad nisam bio na Jupak-u (ukoliko mi neko to malo objasni vrlo rado cu i to) jer ja modem koristim samo da bih saznao sto vise o clipper-u... Uz poruku saljem spisak... pozdrav, Gari. clipper.zip
clipper.455 snemcev, -> #451, niklaus
>> Ti meni jedan candybar, a ja tebi opravim spacebar... (; Probao je on sam da opravi, pa je namestio to što je namestio. Ej, Grbo, jeftiniji ti je bio jedan candybar. ;))
clipper.456 snemcev, -> #454, gari
>>>> Salji spisak. Sto se pretplate tice, snacicemo se nekako (npr. mozemo se >>>> dogovoriti ako ti das Jupak:). >> >> Verovao ili ne ja sam koristio direktnu liniju i nikad nisam >> bio na Jupak-u (ukoliko mi neko to malo objasni vrlo rado cu i to) >> jer ja modem koristim samo da bih saznao sto vise o clipper-u... Al' zato ja imam Jupak, pa se možemo dogovoriti... ;) Ostatak u mail, OK.
clipper.457 v.nesic, -> #450, stosic
>>> Znaci, pri svakom prolasku uvecava se interna promeljiva funkcije aeval >>> i tvoja brojacka promenljiva. Kada koristis for uvecava se samo jedna >>> koju koristis u oba slucaja. > > Na zalost nije, iako je zanimljivo (pogledaj primer). Opet je AEVAL() sporiji. Šta nije? > Vremena izvrsavanja delova koda, funkcija.. su se drasticno razlikovala > posle svakog narednog startovanja programa. Verovatno zbog dinamičkih overleja.
clipper.458 v.nesic, -> #452, snemcev
> Internu promenljivu koju koristi kao index AEval prosleđuje kodnom bloku > koji izvršava kao drugi parametar, tako da nema potrebe računati index > koji već postoji. U primeru stoji: aeval(ekran, { |x| i++, j := 0 ... Dakle, postoje dva brojača interni funkcije aeval i promeljiva i. BTW, hvala za informaciju. Nisam znao za to.
clipper.459 stosic,
Sta je najaktuelnije od komercijalnog softvera za CA-Clipper5.2 ? Narocito me interesuje podrska za objektno programiranje. Koje su prednosti Class(y) u odnosu na o:Clip ?
clipper.460 dr.grba, -> #459, stosic
>> Narocito me interesuje podrska za objektno programiranje. I mene. Vlada mišljenje da ćemo u sledećoj generaciji Clippera (6.x?) dobiti potpunu i pravu podršku objektnom programiranju... Skrećem tvoju pažnju na biblioteku Netto u direktorijumu Clipper na Sezamu. Ona je predviđena za Clipper 5.2 i služi za prilično kvalitetnu podršku rada programa u mreži. Kako je prelazak na novu verziju/generaciju nekog programa uvek i valjana prilika da se dobije neki novi kvalitet, to ja sam predviđam upotrebu ove biblioteke u budućem razvoju svojih programa.
clipper.461 bulaja, -> #459, stosic
│Koje su prednosti Class(y) u odnosu na o:Clip ? └─── Zar neko ovde ima Class(y) za Clipper 5.01 ili 5.2? Koliko sam primetio po svetskim mrezama, Class(y) je najpopularnije objektno prosirenje Clippera, verovatno ima i najbolju podrsku (nove verzije i sl.)
clipper.462 arazumenic, -> #432, nbatocanin
-> OK, nisam imao nameru da te vređam. Mislio sam da će ti moja poruka -> pomoći da rešiš problem. Nisam to ni shavtio kao uvredu, već mi je želja bila da prekinemo sa tim raznoraznim porukama koje niko(?) nigde (?) ne bi stavio. Saša
clipper.463 nbatocanin, -> #450, stosic
> Na zalost nije, iako je zanimljivo (pogledaj primer). Opet > je AEVAL() sporiji. Evo ovako: AEval je u principu znatno brži od FOR ciklusa u smislu da brže pristupa elementima nekog niza. Tvoj primer daje bolje razultate za FOR zato što AEval radi više operacija u petlji: dok FOR jednostavno uradi poređenje, AEval *pozove funkciju* (kod blok), a to znači iskopira parametre na stek, ... i tek onda izvrši prethodni deo koda. Obično AEval skupi dovoljnu prednost da se pokriju ove dodatne operacije, ali ne uvek. Ne treba zaboraviti ni složenost podsistema za rad sa nizovima: probajte da zamenite mesta poziva amax1 i amax2 u primeru i dobićete sasvim druge rezultate (ali opet u korist FOR naredbe). Ako smanjite broj elemenata niza ili isključite keširanje diska (čitanje overleja), vreme se može promeniti i u korist AEval-a.
clipper.464 kranko,
Dobio sam Clipper 5.2 i uz njega jos neki TOOLBOX. Moze li mi neko reci cemu sluzi taj dodatak i za sta je podoban ? Da li postoji knjiga na nasem trzistu.
clipper.465 bulaja, -> #464, kranko
│Dobio sam Clipper 5.2 i uz njega jos neki TOOLBOX. Moze li │mi neko reci cemu sluzi taj dodatak i za sta je podoban ? └─── Mozes li nam reci sta tacno pise u tom ToolBox-u, tj. koji je njegov puni naziv? Moze biti npr. CA-Clipper Tools, Vern Six's ToolBox (ima ga i u Clipper dir-u) ili nesto trece. Ako se uz njega dobija neki NG, pogledaj i javi sta pise tamo.
clipper.467 dsisic,
Cao svima, postoji li neki nacin da dojem do Blinkera 2.01 i NG-a za isti?
clipper.468 gari, -> #467, dsisic
> postoji li neki nacin da dodjem do Blinkera 2.01 > i NG-a za isti? Postoji pogotovo ako imas Blinker 2.0 jer sa Sezam-a mozes skinuti patch za blinker 2.01... pozdrav, Gari. p.s. ako nemas 2.0 onda se raspitaj malo po Beogradu (ili odakle si vec) za neku demo verziju koja radi do kraja ovog veka ;)
clipper.469 nbatocanin, -> #462, arazumenic
> Nisam to ni shavtio kao uvredu, već mi je želja bila da > prekinemo sa tim raznoraznim porukama koje niko(?) nigde > (?) ne bi stavio. Naravno da nisam mislio da staviš _baš_ onu poruku. Ideja ostaje ista a poruka može da bude neka fina poput "PREKORAžILI STE LIMIT" i sl.
clipper.470 nbatocanin, -> #459, stosic
> Sta je najaktuelnije od komercijalnog softvera za > CA-Clipper5.2 ? Narocito me interesuje podrska za objektno > programiranje. Class(y), SIx driver, Flipper 6.0, Clip4Win, ... > Koje su prednosti Class(y) u odnosu na o:Clip ? Velike. Ima potpuniju implementaciju OOP-a i ne pravi razliku između originalnih Clipper-ovih i naknadno definisanih klasa.
clipper.471 cnenad, -> #194, ndragan
Hm, bese NDRAGAN poslao ovo 1.9.93. ŁŁŁ Elem, jedino se secam da radi sa petnaest cifara... kako se ŁŁŁ izgovara ono cudo sa osamnaest, pa da dodam malo koda u ŁŁŁ slovima.prg? Bese ovo: 100,000,000,000,000,000 ? Valjda stohiljadabiliona ili stobilijardi (ko voli da igra bilijar razumece :) ) ?! ŁŁŁ Juce sam nacuo da je avgustovska inflacija 1680%, sto dignuto ŁŁŁ na godinu znaci petnaest nula. Posle sam cuo da, kao, nije ŁŁŁ toliko nego 1860%. Za oktobar (nezvanicno) 2500 % a na godisnjem nivou cak 8,9 milijardi % Jes da je digresija od KLIPER-a al'ima dodirnih tacaka: @xx,xx say yyyyyy pict '999,999,999,999,999,999,999,999,999,999,999,999'
clipper.473 stosic, -> #463, nbatocanin
>AEval je u principu znatno brzi od FOR ciklusa... >Tvoj primer daje bolje razultate za FOR zato sto... >Ne treba zaboraviti ni slozenost podsistema za... Sve to ukazuje na potrebu za dobrim PROFILER-om.
clipper.472 stosic, -> #452, snemcev
>Internu promenljivu koju koristi kao index AEval prosleduje kodnom bloku >koji izvrsava kao drugi parametar, tako da nema potrebe racunati index >koji vec postoji. Slazem se (za J), moj propust. Samo, kako bi u datom slucaju (11.420) uklonio I iz {|x| i++, ... ?
clipper.474 stosic, -> #470, nbatocanin
> SIx driver, Clip4Win, ... Sta rade doticni? >>Koje su prednosti Class(y) u odnosu na o:Clip ? > > Velike. Ima potpuniju implementaciju OOP-a i ne pravi razliku izmedu > originalnih Clipper-ovih i naknadno definisanih klasa. Ima li neko Class(y).doc, ng ili slicno? Moze i u mail.
clipper.475 dejanr, -> #471, cnenad
>> Bese ovo: 100,000,000,000,000,000 ? Valjda stohiljadabiliona ili >> stobilijardi (ko voli da igra bilijar razumece :) ) ?! Pre par godina imali smo jednu Pitalicu na tu temu, kako se pišu slovima veeeeliki brojevi. Pokazalo se da naš pravopis tu ne daje odgovor, izgleda da niko o tome nije mislio. Za razliku od, recimo, Amerikaca koji su razradili nomenklaturu za jako velike brojeve, čak i veće od onog koji navodiš. I posle samo da se pitamo, zašto mi imamo ovoliku inflaciju, a ne oni? A lepo bi umeli sve iznose da nazovu :)))
clipper.476 kranko,
Zna li neko da li moze da se istampa NG u Clipper-u. Ako moze KAKO ? Pozdrav
clipper.478 cnenad, -> #475, dejanr
ŁŁŁ razradili nomenklaturu za jako velike brojeve, cak i vece od ŁŁŁ onog koji Kad smo vec kod toga, najveci broj za koji sam cuo naziv je GUGOL to jest broj koji ima u sebi 100 nula. Ima li veci ?
clipper.480 snemcev, -> #476, kranko
>> Zna li neko da li moze da se istampa NG u Clipper-u. >> Ako moze KAKO ? Imaš NG_PRINT, vrlo korisno programče u paketu sa VS_904 bibliotekom.
clipper.479 snemcev, -> #472, stosic
>> Slazem se (za J), moj propust. Samo, kako bi u datom slucaju (11.420) >> uklonio I iz {|x| i++, ... ? Jel može ceo kodni blok?
clipper.481 stosic, -> #476, kranko
> Zna li neko da i moze da se istampa NG u Clipper-u. U najnovijoj verziji Nanfor-a (imas ga na Sezamu) postoji ngprint.prg. Pozdrav, Boban
clipper.482 stosic, -> #479, snemcev
>>> Slazem se (za J), moj propust. Samo, kako bi u datom slucaju (11.420) >>> uklonio I iz {|x| i++, ... ? > >Jel moze ceo kodni blok? Znaci ne moze?
clipper.483 dr.grba, -> #476, kranko
>> Zna li neko da li moze da se istampa NG u Clipper-u. >> Ako moze KAKO ? Programom NGP(RINT). Ima ga u raznim ShareWare paketima, pa dajem sebi za slobodu da ga i sam okačim. U stvari, sad videh da ga je napravio Pepijn Smits, poznati autor Expand biblioteke. ngprint.zip
clipper.484 stosic, -> #481, stosic
Ispravka: ngprint.prg ide uz expand.lib.
clipper.485 bulaja,
**** new file **** R:\IBMPC\CLIPPER\*.* ---------------------- 52an00 arj 15306 Spisak nepravilnosti u CA-Clipper 5.2 CA has NOT released an Anomalies listing for Clipper, and has stated that they are not likely to do so. This Anomalies listing will be maintained until CA should decide to publish an anomalies list, and will be updated regularly. Although CA has released their own internal error listing, it DOES NOT contain all of the internall errors found in Clipper. Also, quite a few of the IE's listed in their listing are poorly explained. The IEs in this NG has been checked against CA's official listing. Where better but still acurate explanations have been found, these have been used instead of the official explanation from CA. Items in the IE list marked with "?" denote that although it has been encountered in Clipper 5.2, CA has not released an official explanation. Items in the IE list marked with "-" denote that although it has been encountered in Clipper 5.2, it has been explained by highly competent sources. It does not, however, appear in CA's official list of IEs.
clipper.486 bulaja,
**** new file **** R:\IBMPC\CLIPPER\*.* ---------------------- ie52ng arj 7990 Spisak internih gresaka CA-Clipper-a 5.2 (CA)
clipper.487 gari,
Uz ovaj fajl ide NG koji se instalira uz DGE za clipper 5... Nisam instalirao, a lepo me je pitao za: DB3, DB4, CLIP87, FOXBASE, FOXPRO, DBFAST, VULCAN, QS, FORCE, C, RC, DBCOMMON, DBXL,... Ukoliko nadjete jos neku biblioteku sa ovakvim funkcijama, ja Vam svima skidam kapu (a uz to i da rade na ovoliko raznovrsnih prog. jezika) pozdrav, Gari.
clipper.488 cnenad,
ŁŁŁ Zna li neko zasto zasto ne mozemo da se smeskamo? ŁŁŁ ŁŁŁ> @24,0 say "Pritisni Ctrl-ScrollLock dirku da dobijes ŁŁŁ> smile..." do while !(i:=INKEY()=K_CTRL_C) Malopre sam pregledao i sredjivao bazu SOR-a pa naletih na ovo (sve izvlacim neke stvarcice iznebuha a ?) a posto sam bas ovih dana ponovo namestio igricu SUPAPLEX u kojoj menjah fajl gde su zapisani predjeni nivoi setih se da dopisem kao odgovor na ovu poruku iz prosle konf. da za smajlije treba pritisniti valjda CTRL-A i CTRL-B. Jedan je beo a drugi crn smajli. Valjda zato nije sve radilo kako treba u ovom Bulajinom modulcicu ?
clipper.489 cnenad,
Iz prosle konf. ŁŁŁ pravio izvestaj pre godinu dana; otkako sam presao na 'Modify ŁŁŁ report' (FoxPro :), programi za stampe koji su tako pisani ŁŁŁ sveli su se sa prosecnih 6K na 1,5K. U vezi sa ovim posto mi trenutno nije potrebna neka bolja kontrola stampe imam pitanje za FRM datoteke radjene u DBASU IV koje kliper ne podrzava --------------- (mada me iznervira kad se napuni bafer stampaca prilikom stampe sa REPO FORM.. [na EPSONU LX-400 (valjda je tako) je radilo kako treba tj. cekao je nekih 10 sec. za ON-LINE signal stampaca kod zamene papira - promene strane npr.; dok kod LX-800 ili LQ-1070 cim zavrsi stampanje strane izbaci PRINTER OUT OF PAPER i nakon IGNORE dodje do prestampavanja nekoliko slova koja su vec odstampana tekstom koji bi trebao da bude u pocetku) (uf, ala zakomplikova) --------------- jer preko njih stampam sve izvestaje (jer generator tih izvestaja je jedno 1000 puta bolji i od kliperovog i od DBASE 3+) da li bi se one nekako mogle preraditi. Malo sam ih pregledao ali nisam nista zanimljivo otkrio. Ukoliko je neko zainteresovan, uz poruku je prikacen fajl u kome se nalaze FRM, FRG, FRO i PRF fajlovi koje formira DBASE-ov generator. Za stampu u DBASE-u je dovoljno da postoje PRF i FRO ali me interesuje da li se moze u kliperu iskoristiti FRM koji je prilozen pa ih zato saljem. nivmfrg.zip
clipper.490 cnenad,
evo jos nesto iz pc.os. - poruka od NBATOCANIN-a ŁŁŁ Nekoliko ljudi me je pitalo da li mogu moje programe sa ŁŁŁ Sezama da ugraduju u svoje aplikacije. U uputstvima za ... ŁŁŁ prodajete - puno srece pri tome! Necu vam zameriti i ako ŁŁŁ nesto izmenite. Ako negde napisete i poreklo ovog dela ŁŁŁ programa, bicu zahvalan i pocastvovan, mada nije obavezno. A u principu, ako si vec tako nesto dozvolio bio bi red da te i pomenu u dokumentaciji programa - cisto to smatram kao moralnu obavezu (ha, cuj moral !?!? - sta je to ?) onoga ko koristi tvoj kod)
clipper.491 cnenad, -> #489, cnenad
ŁŁŁ nalaze FRM, FRG, FRO i PRF fajlovi koje formira DBASE-ov ŁŁŁ generator. Za stampu u DBASE-u je dovoljno da postoje PRF i ŁŁŁ FRO ali me interesuje da li se moze u kliperu iskoristiti FRM ŁŁŁ koji je prilozen pa ih zato saljem. Nalazi se samo FRG. Naknadno sam izbacio FRM, PRF, I FRO jer se u njima nista ne vidi a ovaj FRG je generisao DBASE IV REPORT GENERATOR i lici mi na proceduru za stampu pa sam zato samo njega poslao.
clipper.492 dvesic,
Cao ! Da li je za update sa Clipper 5.2 na Clipper 5.2c dovoljan samo 52cus.exe ili je (kao sto se u readme kaze) potreban i PATCH.EXE ? Ako je potreban, gde se moze nabaviti ? Pozdrav, Vesa.
clipper.493 snemcev, -> #482, stosic
>>>>> Slazem se (za J), moj propust. Samo, kako bi u datom slucaju >>>>> (11.420) uklonio I iz {|x| i++, ... ? >>> >>> Jel moze ceo kodni blok? >> >> Znaci ne moze? Nisi me razumeo, a ni ja nisam bio baš jasan - hteo sam da kažem da napišeš ceo kodni blok, da se vidi kontekst famoznog I, pa ćemo onda da vidimo.
clipper.494 cnenad,
Interesuje me (i ranije sam pitao) da li je neko uspeo da resi problem ispisa realnog vremena (casovnik). Dobro znam da to ima u DBASE IV i FOX sa SET CLOCK TO X,Y i SET CLOCK ON, ali kako stoje stvari sa CLP ? Video sam ranije da je neko slao nesto radjeno u ASM za to ali je navodno imalo bagova (ili nesto nije bilo u redu). Priznacete da funkcija TIME() nije pogodna za to narocito ako ne dirate program nekih 10-15 minuta a vrednost funkcije ostaje ispisana onakva kakva je bila kad je pozvana.
clipper.495 dr.grba, -> #478, cnenad
>> Kad smo vec kod toga, najveci broj za koji sam cuo naziv je GUGOL >> to jest broj koji ima u sebi 100 nula. Ima li veci ? Pisao sam davno, u nekoj koferenciji o tome, prepisavši iz knjige "Kosmos" Karla Segana. Gugol je deset na stoti. A GUGOLPLEKS je deset na gugol stepen. Toliko je besmisleno velik... ...kada bi kugla prečnika petnaest milijardi svetlosnih godina bila ispunjena elektronima u stanju mirovanja, dakle bez praznog prostora, bilo bi ih jedva 10 na 3000 (ups! da li je 300 ili 3000, moram da pronađem, zaboravio sam...).
clipper.496 dr.grba, -> #490, cnenad
>> u principu, ako si vec tako nesto dozvolio bio bi red da te i >> pomenu u dokumentaciji programa - cisto to smatram kao moralnu >> obavezu (ha, cuj moral !?!? - sta je to ?) onoga ko koristi tvoj >> kod) Kada u mom demo programu CEK uključiš kalkulator, na dnu njegovog helpa je oznaka da je Nenad autor kalkulatora. To je najmanje što sam mogao da učinim za uslugu dobijenu korišćenjem istog.
clipper.497 bulaja, -> #492, dvesic
│Da li je za update sa Clipper 5.2 na Clipper 5.2c dovoljan samo │52cus.exe ili je (kao sto se u readme kaze) potreban i PATCH.EXE ? │Ako je potreban, gde se moze nabaviti ? └─── Potreban je i patch.exe. Ako ga nema u top 5.2c update paketu, onda ga sigurno ima u dogradnjama za verzije 5.2a i 5.2b (neka od njih je valjda jos na Sezamu:). Pogledacu danas da ubacim u odvojen patch.exe u dir, pa da se pobrisu ti stari update-ovi.
clipper.498 cnenad, -> #496, dr.grba
ŁŁŁ je oznaka da je Nenad autor kalkulatora. To je najmanje sto ŁŁŁ sam mogao da ucinim za uslugu dobijenu koriscenjem istog. Tacno tako, lepo od tebe !
clipper.499 snemcev,
Da li i kako u svojim programima koristite naredbu PACK? Da je korisna, jeste, al' je spora do zla boga.
clipper.500 vision, -> #499, snemcev
> Da li i kako u svojim programima koristite naredbu PACK? Da je korisna, > jeste, al' je spora do zla boga. Spora jes (kada se ima vise recorda). Kada se na primer odredjeni record trazi odredjenim field-om (indeksno ili ne), onda ja lepo taj kljuc samo mu promenim tekst, naprimer ako je kljuc tekst, onda napravim jedan 'REPLACE field_name with "Delete"', i naravno uradim i jedan DELETE. Iduci put kada se na primer index-uju baze, pre index-a uradim jedan PACK, i to je to. Reci ces da tada PACK je spor, ali sta ces bolje jednom nego 100 puta:).
clipper.501 dejanr, -> #499, snemcev
>> Da li i kako u svojim programima koristite naredbu PACK? Ja je maksimalno izbegavam. Recept je dat još u prvim danima Sezama - umesto da se slog briše, u neko polje po kome postoji indeks treba upisati neku "levu" vrednost koja tu nikako ne može da se pojavi. Posle kada se unosi novi slog sa seek može da se potraži ta vrednost i da se upiše podatak. Tek jako retko može se ukazati potreba da se ti podaci stvarno obrišu i da se uradi pack.
clipper.504 paki, -> #495, dr.grba
­> A GUGOLPLEKS je deset na gugol stepen. Toliko je besmisleno velik... K'o iMflacija ;)
clipper.505 gari,
> Uz ovaj fajl ide NG koji se instalira uz > DGE za clipper 5... > Nisam instalirao, a lepo me je pitao za: > DB3, DB4, CLIP87, FOXBASE, FOXPRO, DBFAST, > VULCAN, QS, FORCE, C, RC, DBCOMMON, DBXL,... > > Ukoliko nadjete jos neku biblioteku sa ovakvim > funkcijama, ja Vam svima skidam kapu (a uz to > i da rade na ovoliko raznovrsnih prog. jezika) E, da 3 puta ne uspe upload to vec prevazilazi moje zivce, pa saljem ponovo... ;>>>>>>>>>>>>>> pozdrav, Gari. dge_ng.zip
clipper.506 d.petrovic, -> #494, cnenad
Ă> Interesuje me (i ranije sam pitao) da li je neko uspeo da resi Ă> problem ispisa realnog vremena (casovnik). Dobro znam da to ima u Ă> DBASE IV i FOX Ostavio je nenad ovde funkciju za skeniranje tastature. Pogledaj malo unazad i ja sam je UL pre jedno mesec dana: conf li /t, treba da se zove ninkey.zip ili slično...
clipper.507 dr.grba, -> #494, cnenad
>> Video sam ranije da je neko slao nesto radjeno u ASM za to ali je >> navodno imalo bagova (ili nesto nije bilo u redu). Priznacete da >> funkcija TIME() Stvar stoji ovako: ako ne paziš sa tom ASM funkcijom, ili ti program padne u trap, jedino cold reboot rešava stvar. Ako želiš da imaš sat samo na poziv nekog tastera (kod mene Alt-T), upotrebi ovo: *************************************************** * proc TIMING vraca tekuci dan, datum i sat * prikladno za spice i za pozive **************************************************** proc timing() set century on // postavke za sat set cursor off set date german private t_i, t_k, t_bl, t_qtime, t_a, t_biper, t_poruka private t_por_col, t_xx, t_yy private danŠ7Ć // inizijalizacija naziva dana dan := š"Nedelja, ","Ponedeljak, ","Utorak, ","Sreda, ", ; "Cetvrtak, ", "Petak,", "Subota, "ć t_i = dow(date()) // pripremni racun t_k = int((19 - len(danŠt_iĆ))/2) // za centrirani izlaz t_bl = replicate(" ",t_k) // displeja t_xx = 10 // pozicija casovnika na ekranu t_yy = 20 save screen set color to w/n č t_xx-1,t_yy-5 clear to t_xx+4,t_yy+47 č t_xx-1,t_yy+2,t_xx+1,t_yy+42 box ; replicate(chr(220),3) + replicate(chr(222),2) + space(3) set color to n/w t_poruka := " Pritisni bilo koji taster ... " t_por_col := t_yy + 40 - len(t_poruka) č t_xx+3, t_por_col say t_poruka set color to w+/n č t_xx,t_yy to t_xx+2,t_yy+40 double set color to w/n do while .t. // petlja displeja // displej sata č t_xx+1,t_yy+1 say t_bl+danŠt_iĆ+dtoc(date())+" "+time()+t_bl t_qtime = time() t_a = 0 t_biper = .t. do while t_qtime = time() // zadrska sata if t_biper tone(1200, 0) t_biper = .f. endif ++t_a enddo if inkey() <> 0 // proverava da li je set cursor on // pritisnut neki taster set color to // proverava da li je dat // zahtev za izlazak iz programa č 24,79 say nil restore screen return endif enddo // kraj petlje displeja *********** kraj programa ********** Ovo je neka starija verzija programa, u test varijanti. Za dalje sam razvio i neke komplikujuće efekte, ali ovoliko radi. Vi sad, ako vam se dopada, razvijajte dalje do mile volje. I izvinite što je tako vrljavo napisano, ali mislim da ćete se snaći.
clipper.508 snemcev, -> #501, dejanr
>> Ja je maksimalno izbegavam. Recept je dat još u prvim danima Sezama - >> umesto da se slog briše, u neko polje po kome postoji indeks treba >> upisati neku "levu" vrednost koja tu nikako ne može da se pojavi. To mi je poznato, ali nikako da sebe nateram da izmenjam sve svoje programe tako da ovo podržavaju. Nisam bio siguran da ne postoji neko "prelazno rešanje" dok ne izbacim pack u potpunosti.
clipper.509 stosic, -> #493, snemcev
> ...hteo sam da kazem da napises ceo kodni blok, da se vidi kontekst > famoznog I, pa cemo onda da vidimo. Clipper ne dozvoljava da se parametar definisan u spoljasnjem kodnom bloku cita u unutrasnjem, pa je potrebna pomocna promenljiva (i). aeval(ekran, { |x, xi| i := xi, ; aeval(x, { |y, j | iif( y <> nil, ; ( element := array(3), ; element[ROW] := i, ; element[COL] := j, ; element[CHA] := y, ; aadd(sadrzaj_ekrana,element) ), ; .f. ) ; } ) ; } )
clipper.510 dsisic,
Mala, malecka funkcija za racunanje kontrolnog broja fakture po modelu 05, za one koji nemaju svoju f-ju je prikacena uz ovu poruku. control5.zip
clipper.511 snemcev, -> #510, dsisic
>> Mala, malecka funkcija za racunanje kontrolnog broja fakture >> po modelu 05, za one koji nemaju svoju f-ju je prikacena uz >> ovu poruku. To beše onaj po modulu 11, ne?