clipper.407dejanr,
-> #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.408ttop,
#include "commands.ch"
-----------
Jel može ovo neko da zakači . Al hitno. :)
Pozdrav, Ttop
clipper.409d.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.410bulaja,
-> #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.412arazumenic,
-> #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.411arazumenic,
-> #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.413toma,
-> #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.414d.petrovic,
-> #408, ttopmoze :)
clipper.415dejanr,
-> #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.416cnenad,
-> #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.419snemcev,
-> #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.418snemcev,
-> #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.417snemcev,
-> #406, stosic>> Btw, gde su tvoji rezultati merenja?
Za prepucavanje nisam raspoložen, a poruka je bila krajnje dobronamerna.
Kraj diskusije.
clipper.420stosic,
-> #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.422dr.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.421dr.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.423dr.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.424stosic,
-> #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.425dejanr,
-> #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.426ematic,
-> #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.427d.petrovic,
-> #414, d.petroviccudne li moje poruke..., nigde fajla :)
commands.chclipper.428ttop,
-> #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.429bcetina,
-> #406, stosic>> ... (po Rick Spence-u i nbatocanin-u) ...
Pa čekaj, zar to nije isto? :))
clipper.430stosic,
-> #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.433nbatocanin,
-> #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.432nbatocanin,
-> #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.434gari,
******************************************************
* 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.435jtitov,
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.436gari,
-> #435, jtitovdGE 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.437gari,
-> #410, bulajaBBS 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.438jorad,
-> #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.439dejanr,
-> #434, gariSreć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.440stosic,
-> #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.441stosic,
-> #439, dejanr
>> Srecom, nije bilo tesko:
Pretece me :)
Jeli je 11.420 tesko, nerazumljivo ...
clipper.442stosic,
-> #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.443ttop,
-> #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.445gari,
-> #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.446dr.grba,
-> #422, dr.grba>> Pre nego što se obojica raspalite, zamolio bih vasda malosmirite
└─────────┬─────┘
Al' mi radi spacebar ))): ──────────────────┘
clipper.447v.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.448dejanr,
-> #445, gariEh, 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.449ematic,
-> #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.450stosic,
-> #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.451niklaus,
-> #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.452snemcev,
-> #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.453bulaja,
-> #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.454gari,
-> #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.zipclipper.455snemcev,
-> #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.456snemcev,
-> #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.457v.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.458v.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.459stosic,
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.460dr.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.461bulaja,
-> #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.462arazumenic,
-> #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.463nbatocanin,
-> #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.464kranko,
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.465bulaja,
-> #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.467dsisic,
Cao svima,
postoji li neki nacin da dojem do Blinkera 2.01 i NG-a za isti?
clipper.468gari,
-> #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.469nbatocanin,
-> #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.470nbatocanin,
-> #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.471cnenad,
-> #194, ndraganHm, 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.473stosic,
-> #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.472stosic,
-> #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.474stosic,
-> #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.475dejanr,
-> #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.476kranko,
Zna li neko da li moze da se istampa NG u Clipper-u.
Ako moze KAKO ?
Pozdrav
clipper.478cnenad,
-> #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.480snemcev,
-> #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.479snemcev,
-> #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.481stosic,
-> #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.482stosic,
-> #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.483dr.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.zipclipper.484stosic,
-> #481, stosic
Ispravka: ngprint.prg ide uz expand.lib.
clipper.485bulaja,
**** 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.486bulaja,
**** new file ****
R:\IBMPC\CLIPPER\*.*
----------------------
ie52ng arj 7990 Spisak internih gresaka CA-Clipper-a 5.2 (CA)
clipper.487gari,
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.488cnenad,
ŁŁŁ 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.489cnenad,
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.zipclipper.490cnenad,
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.491cnenad,
-> #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.492dvesic,
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.493snemcev,
-> #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.494cnenad,
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.495dr.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.496dr.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.497bulaja,
-> #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.498cnenad,
-> #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.499snemcev,
Da li i kako u svojim programima koristite naredbu PACK? Da je korisna,
jeste, al' je spora do zla boga.
clipper.500vision,
-> #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.501dejanr,
-> #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.504paki,
-> #495, dr.grba> A GUGOLPLEKS je deset na gugol stepen. Toliko je besmisleno velik...
K'o iMflacija ;)
clipper.505gari,
> 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.zipclipper.506d.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.507dr.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.508snemcev,
-> #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.509stosic,
-> #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.510dsisic,
Mala, malecka funkcija za racunanje kontrolnog broja fakture
po modelu 05, za one koji nemaju svoju f-ju je prikacena uz
ovu poruku.
control5.zipclipper.511snemcev,
-> #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?