clipper.921bstevan,
-> #916, goranr>>> Evo nešto za sve Clipperaše: Menjanje sistemskog datuma bez RUN
>>> komande!
Gorane to je što sam hteo, hvala na prilogu.
pozdrav,
BSTEVAN
clipper.922bstevan,
-> #919, nbatocanin>>> Već sam odgovorio - moguće, mada u opštem slučaju - ne. Ako
>>> praviš izmene, obavezno pređi na LOCAL i STATIC promenljive,
>>> kodne blokove i program će ti svakako biti brži.
Nenade hvala na odgovoru, i svima koji su ucestvovali u raspravi
o pitanjima koji su pokrenuti u vezi promene sitemskog datuma
i o brzini prilikom prevodjenja sa S87' -> 5.01.
pozdrav,
BSTEVAN
clipper.923gaston,
Zdravo !
Skoro sam nabavio CA Clipper 5.2, evropsku verziju i skinuo sa Sezam-a zakrpu
za verziju 5.2A, ali je ona samo za americku verziju Clipper-a. Naravno, ne
mogu da zakrpim Clipper 5.2. Da li je nekko resio problem i kako ?
Moze i slanje zakrpe americke verzije...
clipper.924goranr,
-> #921, bstevanOK, javi kako radi, i javi ako ti treba ASM sors.
clipper.925dr.grba,
-> #917, nbatocanin>> > Izgleda mi da Clipper to nema, a nema ni NanFor v2.1
>>
>> Možda i postoji negde interno. Ako ti to treba, zašto ne zameniš
>> USE naredbu svojom koja pravi tabelu gde je šta otvoreno?
Zlobo, lepo sam ti rekao...
P.S. Izvinjavam se ostalima, reč je o jednoj privatnoj poruci, koja
sadrži sugestiju sličnu Nenadovoj.
clipper.926dr.grba,
-> #920, d.petrovic>> A MENU.OBJ je dovoljno mali i često pozivan da zaslužuje da bude
>> resident :)
MENU.OBJ je u redu, nego je reč o procedurama/funkcijama pozivanim iz
menija. Verovatno mali broj programera vodi računa o ovakvim stvarima.
Ima jedna zanimljiva rasprava o linkovanju, doduše u Cl S'87, ali
principijelno zanimljiva, u knjizi S. Straley-a.
clipper.927d.petrovic,
-> #926, dr.grbaĂ> MENU.OBJ je u redu, nego je reč o procedurama/funkcijama
Ă> pozivanim iz menija. Verovatno mali broj programera vodi računa o
Ă> ovakvim stvarima.
Šio mu ga Džordž. Pa kad izabereš stavku u meniju najčešće se otvori
po neka baza? E, ako se prvo učita overlej pa onda otvara dalje
bazu(e) ko će ga znati šta kad radi. Uostalom vrlo brzo nauči šta da
zadržava u memoriji od overleja.
Zanimljive stvari su mi se dešavale kad sam samo šetao kroz menije, a
menu.obj linkovao sa resident. Startujem prvo recorder.com, pa jedan
program, pa resetujem recorder, pa drugi program. Samo dok uđeš u
menije i izađeš 40-ak puta otvori sjebe samoga.
clipper.928bstevan,
-> #924, goranr>>> OK, javi kako radi, i javi ako ti treba ASM sors.
Radi ok, baš ono što sam i mislio.
Takodje bi ti bio zahvalan da pošalješ i ASM sors.
pozdrav,
BSTEVAN
clipper.929snemcev,
-> #910, solajac>> - Verovali ili ne: SEEK radi brze od SKIP (ovo sam procitao u
>> NGUIDE.ART -skino sa SEZAMA-, ali nisam proverio)
>>
>> When one can make SEEK instead of skipping through database,
>> it's much faster ...
Ne, ne, ne i po sto puta ne! Gore naveden citat u slobodnom prevodu
znači: indexiraj datoteke i traži onaj slog koji ti treba sa SEEK, a ne
da se od početka baze pa do sloga koji ti treba šetaš sa SKIP, slog po
slog.
clipper.930ialeksic,
IA> zdravo svima!
IA> Ja sam novi korsnik i imam jednu molbu.
IA>
IA> Evo kratkog (!?) uvoda:
IA> Trenutno pravim funkcijsku biblioteku rutina za Clipper kojom bi
IA> se komuniciralo sa hostom korscenjem razlicitih adaptera. Pri tom
IA> koristim neke gotove API-je, a za neke pisem sam drajvere u C-u.
IA>
IA> Svojevremeno sam imao u rukama knjigu, koju mislim da s pravom
IA> mnogi hvale u ovoj temi: Rick Spence... Tamo je koliko se secam
IA> bila jedna zgodna mala rutina (u poglavlju za Extend sistem) koja
IA> preusmerava pozive standardnih C funkcija _MALLOC() i _FREE() u
IA> Clipper funkcije _XGRAB() i _XFREE() tako da se ne moraju menjati
IA> funkcije originalnih servisa (na primer iz gotovog APIa) a i
IA> bazne rutine se onda mogu pozivati i iz C-a i iz Clippera,
IA> Foxa(?) itd.
IA>
IA> Elem, ne zelim da izmisljam toplu vodu, a knjigu - je li - nemam,
IA> niti sam je nasao u prodaji (trazio!). Zato molim neku dobru dusu
IA> :) da to stavi na mail ili bilo gde na SEZAMU (kako cu to posle
IA> da nadjem?).
IA>
IA> Pozdrav svima uz odlican utisak o ovoj konferenciji.
IA>
IA> Ivan A.
clipper.931goranr,
-> #928, bstevanOK, evo ga.
setdate.asmclipper.932bstevan,
-> #910, solajac>>> Verovali ili ne: SEEK radi brze od SKIP (ovo sam procitao u
>>> NGUID.ART -Skinuo sa SEZAMA,ali nisam proverio)
Ali to nije za verovali ili ne.VERUJEM stim da sam to i probao.
pozdrav,
BSTEVAN
clipper.933bstevan,
-> #931, goranr>>> OK, evo ga.
HVALA !
pozdrav,
BSTEVAN
clipper.934dr.grba,
-> #930, ialeksic>> IA> Elem, ne zelim da izmisljam toplu vodu, a knjigu - je li - nemam,
>> IA> niti sam je nasao u prodaji (trazio!). Zato molim neku dobru dusu
Ako te interesuje Spenceova knjiga, bilo je već reči ovde, nazovi
"Mikro knjigu", 542-516, oni kjnige distribuiraju uglavnom pouzećem.
Ovo zbog cene ):
P.S. Molim te, izbaci ono "IA>" sa početka svojih redova, tako liči
na quote nečije tuđe poruke, pa malo zbunjuješ nas koji čitamo.
clipper.935gaston,
3 pitanja:
1. Je li neko uspeo da americkom verzijom zakrpe (PATCH) zakrpi CA Clipper v5.2
i ako jeste kako????
2. Ima li neko iskustva sa o:Clip (P.M.Freese, CyberSoft) i Object
(JHK-Software, Piestany) objektnim bibliotekama? Zvuce vrlo privlacnoa pitam se
da li su u praksi upotrebljive...
3. Posedije li neko objektnu lib Class(y) koja se spominje kao alternativa
biblioteci o:Clip u dokumentaciji lib Object ??
Gaston- Nesa
clipper.936snemcev,
-> #917, nbatocanin>> Možda i postoji negde interno. Ako ti to treba, zašto ne zameniš USE
>> naredbu svojom koja pravi tabelu gde je šta otvoreno?
He, he, pa zar nemam "knjigu u kojoj sve piše" ;)) Još samo ubacim jedan
niz i voila! Dr.Grba mi je baš to u mail-u predložio. Predlog je
jednoglasno usvojen.
clipper.937dejanr,
-> #935, gaston>> 2. Ima li neko iskustva sa o:Clip (P.M.Freese, CyberSoft) i Object
>> (JHK-Software, Piestany) objektnim bibliotekama? Zvuce vrlo privlacnoa
>> pitam se da li su u praksi upotrebljive...
Bio je prikaz o:Clip-a u "Računarima 82", strana 30
clipper.938nbatocanin,
-> #935, gaston> 1. Je li neko uspeo da americkom verzijom zakrpe (PATCH)
> zakrpi CA Clipper v5.2 i ako jeste kako????
Baš kao što piše u uputstvu zakrpe, više se ne sećam tačno, ali znam
da je bilo prosto.
> 2. Ima li neko iskustva sa o:Clip (P.M.Freese, CyberSoft)
> i Object (JHK-Software, Piestany) objektnim bibliotekama?
> Zvuce vrlo privlacnoa pitam se da li su u praksi
> upotrebljive...
Probao sam o:Clip i Class(y). Nesumnjivo bolja je Class(y), a kako
kažu stranci, bolja je i od ostalih. Što se tiče upotrebljivosti,
ogromna je ;) Ali: svaka sledeća verzija Clipper-a zahteva *novu*
verziju biblioteke, što obično nije tehnički problem nego želja
autora biblioteke. Tako smo ovde videli Class(y) koji radi sa 5.0 ali
ne radi sa 5.01! Nabavka novih verzija može biti ogroman problem, pa
je zato totalno nepreporučljivo njihovo korišćenje. Još jedna stvar
ovome u prilog je i što će Clipper 6.0 sasvim sigurno imati objekti
koji nisu kompatibilni sa ovim bibliotekama. Kao prelazno rešenje
preporučujem pseudo-objekte (objekte realizovane u čistom Clipper-u).
> 3. Posedije li neko objektnu lib Class(y) koja se spominje
> kao alternativa biblioteci o:Clip u dokumentaciji lib
> Object ??
Nemam neku verziju koja normalno radi: sve su na neki način osakaćene :(
clipper.939aquarius,
-> #878, cnenad>-> Kako mogu da napravim sledecu stvar:
>->
>-> da kad se vrsi poziv exe fajla iz dos-a prenese odredjeni
>-> argument ili parametar programu koji treba da znaci da ne
>-> treba da izvrsi deo programa gde se startuje uvodni deo
>-> ekrana.
Ne znam da li to radis u Clipper-u 5.xx, ali ako radis evo...
Otvoris novi fajl, npr. MyInc.ch ili u neki postojeci stavis sledece
MyInc.ch
/bof/
#command FIRSTDEF <xpar> TO <xval> [, <xparn> TO <xvaln> ] => ;
<xpar> := IF( <xpar> = NIL, <xval>, <xpar> ) ;
[; <xparn> := IF( <xparn> = NIL, <xvaln>, <xparn> ) ]
/eof/
>-> Dajem primer source koda:
>-> glavni.prg ide ovako
#include "MyInc.ch"
para MyParam
FIRSTDEF MyParam TO Nil
E sad MyParam ima vrednost Nil, osim ako na komandnoj liniji
ne stavis C:\Glavni uradjeno
naslovna := MyParam
etc ...
IZBACIS !!! => naslovna="uradjeno"
i onda
if Upper( naslovna ) == "URADJENO"
etc ...
To bi bilo to... :)
~Aquarius~
clipper.940aquarius,
-> #935, gaston>->3. Posedije li neko objektnu lib Class(y) koja se spominje kao alternativa
>-> biblioteci o:Clip u dokumentaciji lib Object ??
Poseduje... :)
~Aquarius~
clipper.941aquarius,
-> #878, cnenad>-> Kako mogu da napravim sledecu stvar:
>->
>-> da kad se vrsi poziv exe fajla iz dos-a prenese odredjeni
>-> argument ili parametar programu koji treba da znaci da ne
>-> treba da izvrsi deo programa gde se startuje uvodni deo
>-> ekrana.
Ne znam da li to radis u Clipper-u 5.xx, ali ako radis evo...
Otvoris novi fajl, npr. MyInc.ch ili u neki postojeci stavis sledece
MyInc.ch
////////
/bof/
#command FIRSTDEF <xpar> TO <xval> [, <xparn> TO <xvaln> ] => ;
<xpar> := IF( <xpar> = NIL, <xval>, <xpar> ) ;
[; <xparn> := IF( <xparn> = NIL, <xvaln>, <xparn> ) ]
/eof/
////////
>-> Dajem primer source koda:
>-> glavni.prg ide ovako
#include "MyInc.ch"
para MyParam
FIRSTDEF MyParam TO Nil
E sad MyParam ima vrednost Nil, osim ako na komandnoj liniji
ne stavis C:\Glavni uradjeno
naslovna := MyParam
etc ...
Izbacis !!! => naslovna="uradjeno"
i onda
if Upper( naslovna ) == "URADJENO"
etc ...
To bi bilo to... :)
~Aquarius~
clipper.942aquarius,
-> #935, gaston>->3. Posedije li neko objektnu lib Class(y) koja se spominje kao alternativa
>-> biblioteci o:Clip u dokumentaciji lib Object ??
Poseduje... :)
~Aquarius~
clipper.943cnenad,
Interesuje me da li je moguce da se TBROWSE klasom napravi BROWSE
slican paketu DBASE IV gde mogu da se i menjaju podaci u poljima baze a
ne samo pregledaju jer primer koji imam u knjizi o kliperu daje
istu stvar kao i funkcija DBEDIT() ?
Probao sam da napravim sledecu stvar iz clipper-a sto je delimicno uspelo
a to je izlaz u DOS i to sa obicnim RUN COMMAND ali kad sam trebao da se
vratim u clipper sa exit iz DOS-a racunar se zaglavio. Ima li resenja za
ovo ?
clipper.944cnenad,
Molim jos jednom, ako neko ima umetak iz racunara od Nenada Batocanina
da mi ga pozajmi da ga isfotokopiram.
Dogovor preko mail-a na CNENAD.
Hvala.
clipper.945ialeksic,
-> #934, dr.grba20 DEM SEZAM
30 DEM RS
--------------
50 DEM O-LA-LA!, sta bi bilo da sam se raspitivao za 5.2, dal' bi dobio
telefon Computer Associates-a ;>
clipper.946v.nesic,
-> #943, cnenad> Interesuje me da li je moguce da se TBROWSE klasom napravi BROWSE
> slican paketu DBASE IV gde mogu da se i menjaju podaci u poljima baze a
> ne samo pregledaju jer primer koji imam u knjizi o kliperu daje
> istu stvar kao i funkcija DBEDIT() ?
Recimo da uz tbcolumn:cargo stavis kodni blok koji menja polje.
Sam Clipper ti postavi kursor gde treba tako da bi izgledalo otprilike
ovako:
tb:=TBNew(...)
col:=TColumnNew(...)
col:cargo:={||edit()}
tb:AddColumn(col)
....
func edit
@ row(),col() get .... <- ovo mozes i mnogo elegantnije,
read <- al' nikad nisam imo vremena da doteram
return
> Probao sam da napravim sledecu stvar iz clipper-a sto je delimicno uspelo
> a to je izlaz u DOS i to sa obicnim RUN COMMAND ali kad sam trebao da se
> vratim u clipper sa exit iz DOS-a racunar se zaglavio. Ima li resenja za
> ovo ?
Reci jos, meni je sljakalo bez problema. Jedino kad promenim dir zna da se
izgubi jer ne ume da nadje overleje.
clipper.947ppekovic,
-> #943, cnenad>> Interesuje me da li je moguce da se TBROWSE klasom napravi BROWSE
>> slican paketu DBASE IV gde mogu da se i menjaju podaci u poljima baze a
>> ne samo pregledaju jer primer koji imam u knjizi o kliperu daje
>> istu stvar kao i funkcija DBEDIT() ?
U clipper-u već imaš funkciju browse. Pored toga, u primerima
koje si dobio uz clipper postoji i browse.prg koji radi upravo ono
što tražiš.
>> Probao sam da napravim sledecu stvar iz clipper-a sto je delimicno uspelo
>> a to je izlaz u DOS i to sa obicnim RUN COMMAND ali kad sam trebao da se
>> vratim u clipper sa exit iz DOS-a racunar se zaglavio. Ima li resenja za
>> ovo ?
Da li ti je ispravno postavljena env. promenljiva COMSPEC?
Paya
clipper.948d.petrovic,
-> #946, v.nesicĂ>> Probao sam da napravim sledecu stvar iz clipper-a sto je
Ă>> delimicno uspelo a to je izlaz u DOS i to sa obicnim RUN COMMAND
Ă>> ali kad sam trebao da se vratim u clipper sa exit iz DOS-a
Ă>> racunar se zaglavio. Ima li resenja za ovo ?
Ă>
Ă> Reci jos, meni je sljakalo bez problema. Jedino kad promenim dir
Ă> zna da se izgubi jer ne ume da nadje overleje.
Posle "run command" proveris u kom si direktorijumu pa se vratis.
Valjda je jasno da funkcija kojom to radis ne sme da bude u overleju
:)
clipper.949ialeksic,
Zna li neko zasto zasto ne mozemo da se smeskamo?
# include "inkey.ch"
cls
@10,40 say ":("
@24,0 say "Pritisni Ctrl-ScrollLock dirku da dobijes smile..."
do while !(i:=INKEY()=K_CTRL_C)
enddo
@10,40 say ":)"
@24,0 say "Hvala... "
quit
clipper.950cnenad,
-> #948, d.petrovicŁŁŁ Posle "run command" proveris u kom si direktorijumu pa se
ŁŁŁ vratis. Valjda je jasno da funkcija kojom to radis ne sme da
ŁŁŁ bude u overleju
Nisam menjao direktorijume niti mi je ta funkcija u .OVL cisto sam
probao da napisem taj mali program i da vidim kako radi !
cls
wait "idemo u DOS !"
!command
cls
wait "vratili smo se !"
cls
Sta ne valja !
clipper.951cnenad,
-> #947, ppekovicŁŁŁ Da li ti je ispravno postavljena env. promenljiva COMSPEC?
Uopste nemam namesteno COMSPEC !?! Cemu to sluzi a i inace ne radi ? :)
clipper.952dr.grba,
-> #945, ialeksic>> 50 DEM O-LA-LA!, sta bi bilo da sam se raspitivao za 5.2, dal' bi
>> dobio telefon Computer Associates-a ;>
Moja sugestija je bila krajnje dobronamerna. Mislio sam da znaš
da je bavljenje računarima skup sport i u današnje vreme teško isplativ.
clipper.953bstevan,
Molim svi koji imaju iskutva sa programiranjem odnosno
prilagodjavanjem clipper program na rad sa matematickim procesorom,
nek prenesu svoje iskustvo u ovoj konferenciji.
Ja nažalost nemam nikakvog iskustva a to me interesuje.
pozdrav,
BSTEVAN
clipper.954ialeksic,
-> #950, cnenad
Ovo radi:
#include "inkey.ch"
cls
keyboard chr(K_ENTER) // Dodaj jedan Enter !
wait "idemo u DOS !"
!command.com
cls
wait "vratili smo se !"
cls
clipper.955ialeksic,
-> #952, dr.grba
Dobro de, salio sam se. :)
clipper.956d.petrovic,
-> #950, cnenadĂ> cls
Ă> wait "idemo u DOS !"
Ă> !command
Ă> cls
Ă> wait "vratili smo se !"
Ă> cls
Ă> Sta ne valja !
Nisam probao, ali kao sugestija na mogućnost zaglupljivanja ako
promeniš direktorijum:
cls
!command
if <direktorijum promenjen>
<vrati se u radni dir> <= ovo da nije u overleju
endif
clipper.957bulaja,
-> #866, cnenad│Kad smo vec kod te funkcije SETCOLOR() na koji nacin ona resetuje
│prethodno postavljene boje ?
└───
SetColor( "" )
clipper.958bulaja,
-> #949, ialeksicZna 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)
> enddo
> @10,40 say ":)"
:) K_CTRL_C je Ctrl-Pause (Break) a ne Ctrl-ScrollLock! :)
clipper.959paki,
-> #949, ialeksic> @24,0 say "Pritisni Ctrl-ScrollLock dirku da dobijes smile..."
> do while !(i:=INKEY()=K_CTRL_C)
Možda zato što se natpis Break (bar kod mene) nalazi na tasteru
Pause :) Jesi li probao Ctrl-C umesto Ctrl-ScrollLock?
clipper.960ialeksic,
-> #958, bulaja
ŠŠ> :) K_CTRL_C je Ctrl-Pause (Break) a ne Ctrl-ScrollLock! :)
Jeste! Kao i 'PgDn', kao i 'Ctrl-C'. To je lepo..., ali:
(NG:The Guide To Clipper:Tables:Inkey Codes) kao i Clipper Refference app.C
kaze sledece:
Ctrl-ScrollLock 3 K_CTRL_C
OK, neka to tako i treba, koji je onda scan-code za "Ctrl-ScrollLock" ?
Ivan A.
ps. Ovo nije iz...ivljavanje, bas mi taj 'Ctrl-ScrollLock' treba ;)
clipper.961zsavic,
Radim na sistemu sledećih karakteristika:
- Mreža sa 35 radnih stanica
- File server DTK 386DX/33 sa SCSI diskom Maxtor 1.7GB i Adaptec
1542b kontrolerom i dve mrežne karte NE2000
- Operativni sistem Novell 3.11 100 users, DOS 5.0
- Aplikacije su pisane na Clipperu 5.01.
Već drugi put u zadnja 4 meseca se javlja isti problem: DBF fajl
dužine oko 60 MB (prvi put je imao dužinu od par MB) iz neobjašnjivih
razloga je promenio dužinu na oko 4GB. Otkucam CHKVOL, a on daje
korektan
rezultat: 150MB slobodno, koliko je bilo i ranije. Obrišem fajl sa
DEL, ovog puta CHKVOL daje 210MB slobodno. Vratim fajl sa SALVAGE i
CHKVOL daje opet 150MB slobodno, a DBF fajl se vrati na 4GB. Kad sa
DBV /W pregledam fajl, javi mi umesto 180,000 neki abnormalno veliki
broj slogova a izgled fajla je bio prilično "rupičast" tj. sa velikim
brojem praznih polja.
Problem sam rešio vraćanjem fajla sa strimera, ali me zanima da li je
neko imao sličan problem i kako ga je rešio.
clipper.962bulaja,
Treba li vam u Clipper-u nesto nalik na LIST, za pregled dugackih
tekstualnih datoteka. Nista lakse :), uz koriscenje TBrowse i NanFor
funkcija za File I/O (FT_F*). Radi sa neograniceno dugackim datotekama
(ako koristite MemoEdit() mozete samo 64K), ni megabajti nisu problem
:). Evo je ovde cela LIST funkcija, poziva se sa LIST (<file name>)
(npr. list("READ.ME).
#include "Inkey.ch"
#include "FileIO.ch"
**** ---------------------------------------- ****
PROC List (cFileName)
LOCAL FB
LOCAL bCol, nKey, cScr
IF FT_FUse (cFileName, FO_READ) == -1
RETURN
ENDIF
cScr := SaveScreen (0, 0, MaxRow(), MaxCol())
Scroll (0, 0, MaxRow(), MaxCol())
@ 0,0 TO MaxRow(), MaxCol()
FB := TBrowseNew (1, 1, MaxRow()-1, MaxCol()-1)
bCol := TBColumnNew ("", { || FT_FReadLn() } )
bCol:width := MaxCol()-2 // =78
FB:AddColumn (bCol)
// ovde je uglavnom sva mudrost :)
FB:skipBlock := { |n| FT_FSkip (n) }
FB:goTopBlock := { || FT_FGoTop () }
FB:goBottomBlock := { || FT_FGoBot () }
WHILE .T.
WHILE ( ! FB:Stabilize() .and. (nKey := Inkey() == 0)) ; END DO
IF FB:Stable ; nKey:=inkey(0) ; ELSE ; nKey:=0 ; END IF
DO CASE
CASE nKey == K_UP ; FB:up()
CASE nKey == K_DOWN ; FB:down()
CASE nKey == K_PGDN ; FB:PageDown()
CASE nKey == K_PGUP ; FB:PageUp()
CASE nKey == K_CTRL_PGUP ; FB:goTop()
CASE nKey == K_CTRL_PGDN ; FB:goBottom()
CASE nKey == K_ESC ; EXIT
CASE nKey == 32 ; FB:refreshAll()
END CASE
END DO
FT_FUse()
RestScreen (0, 0, MaxRow(), MaxCol, cScr)
RETURN
Problem je samo sto FT_F* funkcije imaju malo bugova :) pa vam se
moze desiti da ponekad prikaze i neki LF (chr(10) karakter tamo gde ne
treba. Dok ne izadje novi NFLib (ili ja ne napisem iste funkcije :), ovo
se moze resiti jednostavnim filtriranjem svakog reda, pa bi trebalo
umesto
bCol := TBColumnNew ("", { || FT_FReadLn() } )
staviti
bCol := TBColumnNew ("", { || StrTran (FT_FReadLn(), Chr(10), "") } )
That's it,
Bulaja
clipper.963ivan.s,
-> #960, ialeksic
Cini mi se da nema jednostavnog nacina da resis svoj problem, ako ga uopste
ima; naime nisam siguran da li tastatura salje bilo sta racunaru po pritisku
na ctrl-ScrollLock. U svakom slucaju BIOSov int 9 handler ne stavlja nista
u keyboard buffer, pa ti inkey() ne moze pomoci.
Pozdrav, Ivan.
clipper.964bulaja,
-> #960, ialeksic│OK, neka to tako i treba, koji je onda scan-code za "Ctrl-ScrollLock" ?
└───
ScrollLock, ostali lock-ovi, Shift, Alt i Ctrl tasteri nemaju svoje scan
kodove, znaci njihovo stanje ne mozes ispitati preko inkey() vec npr.
preko funkcija koje imas u NanForum lib-u.
clipper.965d.petrovic,
-> #960, ialeksicĂ> ps. Ovo nije iz...ivljavanje, bas mi taj 'Ctrl-ScrollLock' treba
Ă> ;)
Zaviri u Nanfor, mozda tamo nesto ima, mislim da inkey() tu ne moze
nista :(
clipper.966ppekovic,
-> #951, cnenad>> ŁŁŁ Da li ti je ispravno postavljena env. promenljiva COMSPEC?
>>
>> Uopste nemam namesteno COMSPEC !?! Cemu to sluzi a i inace ne radi ? :)
To je environment promenljiva koja pokazuje gde se nalazi
komandni iterpreter tj. command.com ili 4dos.com.
Paya
clipper.967ialeksic,
-> #964, bulaja
>>>ScrollLock, ostali lock-ovi, Shift, Alt i Ctrl tasteri nemaju svoje scan
>>>kodove, znaci njihovo stanje ne mozes ispitati preko inkey() vec npr.
>>>preko funkcija koje imas u NanForum lib-u.
Da u NanForum lib-u postoji nesto slicno, FT_NUMLOCK() na primer, ali ne i
FT_SCRLOCK(). No izgleda da je 'Ctl-ScrllLock' jedina kombinacija koja ne
funkcionise. Kada je pritisnut, 'Ctl' kao da blokira registrovanje pritiskanja
'ScrllLock' dirke. To nije slucaj za kombinaciju 'Shift-ScrllLock' ili
'Alt-ScrllLock' koje inace mogu da se registruju. Posto sam sa time
eksperimentisao evo osnove za za sada nepostojecu funkciju FT_SCRLOCK() ako
nekoga zanima:
#include "extend.h"
#define status_byte (*(char *)(0x00000418))
CLIPPER FT_SCRLOCK(void)
{
_retl( (int) (status_byte & 0x10) );
status_byte = (status_byte & 0xEF);
return;
}
Ivan A.
clipper.969rpausic,
Da li sam nešto propustio pretražujući SEZAMove conf ili zaista
nema posebnih tema i diskusija o najčešćim problemima programera
koji rade sa bazama podataka: finansijsko knjigovodstvo,
robno-materijalno, pogonsko, plate, fakturisanje, ...
Verujem da je ovo prava stvar za mnoge programere, jer svi verovatno
imamo slične probleme: knjigovođe ne mogu ili neće da objasne
problematiku (zamislite poraza: naučiti njihov posao za par dana i
omogućiti jednom običnom magacioneru da obavi pola knjigovodstvenog
posla!!!). Nekad je samo problem što ljudi koji znaju, nemaju živaca da
se malo napregnu i udube se u problematiku. Nekad ni njima samima nije
sve baš sasvim jasno, pa kako će onda drugom preneti? Nekada se zakon
menja svaki čas. Nekada se napravi zbrka (kao sada sa otkupom žita: 4
puta sam menjao program za obračun otkupa i ovog momenta ne mogu da
garantujem da je poslednji put).
Sve u svemu, mislim da su ova pitanja vredna pažnje. Ja sam spreman da
podelim sa drugima ideje oko organizovanja podataka, podeli poslova i
svaga što ja znam. Trenutno sam dosta razradio materijalno poslovanje u
mojoj zem. zadruzi sa nekoliko isturenih radnih jedinica i vodjenje
kooperativne proizvodnje, obračunu kamata i slično. Predstoji mi rad na
finansijskom knjigovodstvu, pogonskom, personalna evidencija, obračun
plata itd.
Ako imam istomišljenika, neka se jave. Ako nas bude malo, možemo i neku
grupu da osnujemo!
Pozdrav, Robert.
P.S. Jedini sam programer u firmi i očajnički želim da razmenjujem
iskustva i smanjim vreme provedeno sa ljudima koje mrzi da žive!
clipper.970dr.grba,
-> #962, bulaja>> se moze resiti jednostavnim filtriranjem svakog reda, pa bi trebalo
>> umesto
>> bCol := TBColumnNew ("", š đđ FT_FReadLn() ć )
>> staviti
>> bCol := TBColumnNew ("", š đđ StrTran (FT_FReadLn(), Chr(10), "") ć )
Nisam testirao, ali koliko filtriranje smeća usporava rad?
clipper.971snemcev,
-> #951, cnenad>> Uopste nemam namesteno COMSPEC !?! Cemu to sluzi a i inace ne radi ?
>> :)
Najkraće rečeno, tu piše ime komandnog interpretera koji će biti pozvan
da bi izvšio ono što mu ti iz svoje aplikacije narediš. Stavi u autoexec
SET COMSPEC=C:\DOS\COMMAND.COM (ili gde ti je već ;) i sve bi trebalo da
proradi.
clipper.972snemcev,
-> #949, ialeksic>> do while !(i:=INKEY()=K_CTRL_C)
Varovatno ga ovde buni dodela vrednosti. Probaj
do while !((i:=INKEY())==K_CTRL_C)
clipper.973pjankovic,
-> #969, rpausic> posla!!!). Nekad je samo problem što ljudi koji znaju,
> nemaju živaca da se malo napregnu i udube se u
> problematiku. Nekad ni njima samima nije sve baš sasvim
> jasno, pa kako će onda drugom preneti? Nekada se zakon
Nekada žele da od svoga posla naprave bauk, da mu što
više podignu cijenu. Šta bi značilo da "neki tamo programer" prvi
put dođe u firmu i za desetak minuta provali kako se radi cijeli
njihov posao. To bi značilo da je njihov posao strašno jednostavan.
Zato oni objašnjavaju ali boga mole da ne shvatiš. Pa još ako
nešto zabrljaš pa izađe pogrešan rezultat, njihovom likovanju
nema kraja: "Eto, i mašina je pogriješila, ništa ne može da
zamijeni čovjeka".
clipper.974paki,
-> #969, rpausic> Da li sam nešto propustio pretražujući SEZAMove conf ili
> zaista nema posebnih tema i diskusija o najčešćim problemima
> programera koji rade sa bazama podataka: finansijsko
> knjigovodstvo, robno-materijalno, pogonsko, plate,
> fakturisanje, ...
Mislim da posebne teme tu i nisu potrebne, o svemu tome se može
raspravljati u okviru teme baze.podataka.
clipper.975mickeyl,
Nabavio sam program DISCLIPPER ver 1.09. I to ne iz razloga da bih krao,
nego da bih isprobao kako šljaka i kako da se eventualno zaštitim.
Zasad sam otkrio da je dovoljno napraviti EXE program sa overlejima i
disclipper mu ne može ništa. Mislim da je to način da se zaštiti od ovog
programa. Jesam li u pravu i kakva su iskustva drugih?
Radi se o CLIPPER '87 verziji. Samo mi ne recite pređi na Clipper 5.x i
disclipper ti ne može ništa, jer prelazim na FOXPRO koji mi se više sviđa.
Dok ne preradim na Fox, treba da mi šljaka na clipperu, a da pri tom neko
ne dođe u iskušenje da mi mazne source.
p.s. nadam se da ne postoji neka novija verzija disclipper-a kojoj ne
smetaju overlay-i.
clipper.976bulaja,
-> #970, dr.grba││bCol := TBColumnNew ("", s dd StrTran (FT_FReadLn(), Chr(10), "") c )
│└───
│Nisam testirao, ali koliko filtriranje smeca usporava rad?
└───
Neprimetno. Ne bi ni trebalo nesto da usporava, posto filtrira samo
red koji se trenutno prikazuje.
clipper.977bulaja,
-> #973, pjankovic│Nekada zele da od svoga posla naprave bauk, da mu sto vise podignu
│cijenu. Sta bi znacilo da "neki tamo programer" prvi put dode u firmu
│i za desetak minuta provali kako se radi cijeli njihov posao.
└───
Ne znam koliko je teska ta njihova "velika" nauka, al znam da je
debela :). Slucajno me ceka najesen spremanje ispita Racunovodstvo &
Finansije (500+ strana:), pa cu imati prilike da vidim o cemu uci i
druga strana :).
clipper.978bulaja,
-> #975, mickeyl│Zasad sam otkrio da je dovoljno napraviti EXE program sa overlejima
│i disclipper mu ne moze nista.
└───
Takodje ako je linkovano sa starim Blinkerom, ne moze mu nista.
clipper.979cnenad,
-> #975, mickeylŁŁŁ disclipper ti ne moze nista, jer prelazim na FOXPRO koji mi
ŁŁŁ se vise svida.
Ovo nije sabotaza unutar teme za kliper. Ali moram da vam kazem da sam
od dosta ljudi cuo da prelaze na FOX. Inace ja sam dosta radio na DBASE-u
u okviru DBASE IV ali znate sta sve on nema. Medjutim ni kliper nema mnogo
stvari koje ima DBASE IV. Izgleda da uvek postoji neka zlatna sredina.
Kad li ce da se napravi neki dobar kompajler ili program u kome covek
ima sve sto mu treba.
Da li je odgovor mozda DBASE IV 2.0. kompajler ?
clipper.980v.nesic,
-> #979, cnenad> Da bi bilo jasnije, to je isto kao kad bi naucio da zapisujes
> rezultate u preferansu i rekao kako si isti naucio :).
Poenta preferansa je u igri, poenta knjigovodstva je u pisanju :))
clipper.981draganf,
-> #969, rpausic>
> P.S. Jedini sam programer u firmi i očajnički želim da
> razmenjujem iskustva i smanjim vreme provedeno sa ljudima
> koje mrzi da žive!
Nisi samo, ja sam čak jedini u krugu od 50 -tak kilometara.
Dragan
clipper.982snemcev,
-> #962, bulaja>> Treba li vam u Clipper-u nesto nalik na LIST, za pregled dugackih
>> tekstualnih datoteka. Nista lakse :)
Da, ništa lakše, postoji funkcija u NanFor!
clipper.983snemcev,
-> #969, rpausic>> Ako imam istomišljenika, neka se jave. Ako nas bude malo, možemo i
>> neku grupu da osnujemo!
Eto, da ne kažeš da si sam, jedan član grupe sam ja.
>> P.S. Jedini sam programer u firmi i očajnički želim da razmenjujem
>> iskustva i smanjim vreme provedeno sa ljudima koje mrzi da žive!
Nemoj tako pesimistički!
clipper.984ialeksic,
Imam pitanje za nekog objektasa:
prilozio sam kod koji ne radi kako ja ocekujem :(
A hteo sam sledece: Da mi TBrowseDB prikaze kombinovan sadrzaj DBFa
i rezultat neke funkcije. U praksi to izgleda ovako: Kada krene u
stabilizaciju, i stigne na liniju *** i:=browse:colPos *** unutar UDFa
to shvata kao rekurzivan poziv tog kodnog bloka (tj. UDF funkcije) i
izvvodi ga dok na kraju ne iscrpi stack i padne sa:
(b)DEMO (0) Unrecoverable error 650: Processor stack fault
Ja ipak ocekujem kao sto pise u dokumentaciji da je browse:colPos
"Exported Instance VARIABLE" a ne metod.
Gde gresim? Evo koda:
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
#include "Inkey.ch"
#define MY_HEADSEP "═Đ═"
#define MY_COLSEP " │ "
FUNCTION demo( dbf, index )
LOCAL nKey
LOCAL browse := TBROWSEDB( 1, 5, 24, 75 )
local w
CLS
USE (dbf) INDEX (index)
browse:headSep := MY_HEADSEP
browse:colSep := MY_COLSEP
browse:addColumn(TBColumnNew( ;
Field(1), ;
{|| FIELDGET(1)} ;
))
w:=TBColumnNew( ;
"xxxxx", ;
{|| udf(browse)} ;
)
w:width=5
browse:addColumn(w)
w:=TBColumnNew( ;
"yyyyy", ;
{|| udf(browse)} ;
)
w:width=5
browse:addColumn(w)
DO WHILE nKey != K_ESC
DO WHILE ! browse:STABILIZE()
ENDDO
nKey := INKEY( 0 )
DO CASE
CASE nKey == K_DOWN
browse:DOWN()
CASE nKey == K_UP
browse:UP()
CASE nKey == K_LEFT
browse:LEFT()
CASE nKey == K_RIGHT
browse:RIGHT()
ENDCASE
ENDDO
RETURN Nil
FUNCTION UDF(browse)
LOCAL a
LOCAL i:=0
i:=browse:colPos
IF (i=2)
a:="XXXYX"
ELSE
a:="YYYYY"
endIF (b:colPos=2)
RETURN a
clipper.985dr.grba,
-> #969, rpausic>> Ako imam istomišljenika, neka se jave. Ako nas bude malo, možemo i
>> neku grupu da osnujemo!
Fala ti, Bože, da se neko najzad javio i glasno i jasno rekao
ono što nam leži na duši.
Imaš moju podršku i izraze spremnosti da dam doprinos u radu
konferencije/grupe. Iz saradnje se uvek može izvući nešto korisno.
clipper.986ficus,
-> #923, gaston> Zdravo !
> Skoro sam nabavio CA Clipper 5.2, evropsku verziju i skinuo sa
> Sezam-a zakrpu za verziju 5.2A, ali je ona samo za americku
> verziju Clipper-a. Naravno, ne mogu da zakrpim Clipper 5.2. Da
> li je nekko resio problem i kako ? Moze i slanje zakrpe
> americke verzije...
Ako ti nešto znači ja imam američko-kanadsku verziju...
Pozdrav, Deki
clipper.987ficus,
-> #930, ialeksic> IA> Elem, ne zelim da izmisljam toplu vodu, a knjigu - je li -
> nemam, IA> niti sam je nasao u prodaji (trazio!). Zato molim
> neku dobru dusu IA> :) da to stavi na mail ili bilo gde na
> SEZAMU (kako cu to posle IA> da nadjem?).
Zovni Mikro Knjigu, ako ti je neophodan Clipper5 od Spence-a, ali ja mislim da
ti je najbolje da odeš do Jugoslovenske knjige, jer tamo nešto kasnije rade
update cena... :)))
Pozdrav, Deki
clipper.988ficus,
-> #954, ialeksic> Ovo radi:
>
># include "inkey.ch"
> cls
> keyboard chr(K_ENTER) // Dodaj jedan Enter !
> wait "idemo u DOS !"
>! command.com
> cls
> wait "vratili smo se !"
> cls
Izvini, ali nije mi jasno čemu ono Enter?
Pozdrav, Deki
clipper.989ficus,
-> #944, cnenad> Molim jos jednom, ako neko ima umetak iz racunara od Nenada
> Batocanina da mi ga pozajmi da ga isfotokopiram.
>
> Dogovor preko mail-a na CNENAD.
> Hvala.
Ja mogu da ti pozajmim...
Samo mi se obrati na mail...
Pozdrav, Deki
clipper.990ficus,
-> #961, zsavic> Problem sam rešio vraćanjem fajla sa strimera, ali me zanima da
> li je neko imao sličan problem i kako ga je rešio.
Priznajem da ti je problem PPRRIILLIIžžNNOO zajeban. Ja nisam na sreću imao
iskustava sa ovim, ali kod mog ćaleta imaju sličnu (ali veću) mrežu, i svi rade
u 5.01, pa ću ih pitati...
Pozdrav, Deki
clipper.991ficus,
-> #979, cnenad> Ovo nije sabotaza unutar teme za kliper. Ali moram da vam kazem
> da sam od dosta ljudi cuo da prelaze na FOX. Inace ja sam dosta
> radio na DBASE-u u okviru DBASE IV ali znate sta sve on nema.
> Medjutim ni kliper nema mnogo stvari koje ima DBASE IV. Izgleda
> da uvek postoji neka zlatna sredina. Kad li ce da se napravi
> neki dobar kompajler ili program u kome covek ima sve sto mu
> treba. Da li je odgovor mozda DBASE IV 2.0. kompajler ?
I meni se FoxPro mnogo više sviđa, a i mnogo je lakši za rad...
Ja sam ga instalirao i počeo da radim i ide mi super...
Ali, ne može sve da bude idealno... :(
NEMA DBEDIT!!! a ni adekvatnu zamenu...
Ima samo BROWSE, ali od toga nema mnogo vajde!
Ima li ko ideju, kako realizovati nešto slično DBEDIT-u ali za FoxPro?
Pozdrav, Deki
clipper.992nbatocanin,
-> #953, bstevan> Molim svi koji imaju iskutva sa programiranjem odnosno
> prilagodjavanjem clipper program na rad sa matematickim
> procesorom, nek prenesu svoje iskustvo u ovoj
> konferenciji.
Nikakvo posebno prilagođavanje ti nije potrebno. Bojim se da ti
koprocesor neće doneti neko primetno poboljšanje performansi, jer je
ono što se u Clipper-u daleko najčešće radi je čitanje/pisanje po
disku, a tu ti koprocesor slabo pomaže.
clipper.993ematic,
-> #984, ialeksic> {|| udf(browse)} ;
probaj {|| udf(@browse)}
clipper.994v.nesic,
-> #984, ialeksic> Gde gresim? Evo koda:
Kolko ja vidim, nigde. Izgleda da clipp ne radi ono sto mu pise.
Ako ti je nesto onakvo bas potrebno iskoristi polje cargo u koloni,
recimo :
...
w:cargo:=1
browse:addcolumn(w)
...
w:cargo:=2
browse:addcolumn(w)
...
func udf(browse)
...
i:=browse:cargo
...
return a
clipper.995terza,
-> #969, rpausic> Ako imam istomisljenika, neka se jave. Ako nas bude malo,
> mozemo i neku grupu da osnujemo!
Racunaj i na mene za grupu, sve sto se tice programa za plate,
tu sam.
Terza
clipper.996toma,
-> #969, rpausic■■>> Da li sam nešto propustio pretražujući SEZAMove conf ili zaista
■■>> nema posebnih tema i diskusija o najčešćim problemima programera
■■>> koji rade sa bazama podataka: finansijsko knjigovodstvo,
■■>> robno-materijalno, pogonsko, plate, fakturisanje, ...
E ovo nam je baš trebalo!
Računajte na mene.
ps. Ćale mi je knjigovođa, a ja radim u njegovoj knjigovodstvenoj
firmi, pa izvolte...
clipper.997v.nesic,
-> #995, terza>> Ako imam istomisljenika, neka se jave. Ako nas bude malo,
>> mozemo i neku grupu da osnujemo!
>
> Racunaj i na mene za grupu, sve sto se tice programa za plate,
> tu sam.
Ako se pravi grupa, count me in !)
clipper.999ialeksic,
-> #988, ficus
>>> Izvini, ali nije mi jasno cemu ono Enter?
To je crnogorska varijanta [bez ruku ;)]. Zapravo ja sam prevideo da je
komanda u pitanju bila WAIT (koja i ocekuje stisak dirke), nju inace ne
koristim. Verovatno je problem da command.com nije u PATKI,COMSPEC,4DOS,...
clipper.1000ialeksic,
-> #993, ematic
>>> probaj {|| udf(@browse)}
Ne verujem, jer je prenos Objekta i ovako preko reference...
A i nije me mrzelo da proverim - ista stvar :(
clipper.1001ialeksic,
-> #994, v.nesic
>>> Ako ti je nesto onakvo bas potrebno iskoristi polje cargo u koloni,...
Ovo je bilo principijelno pitanje. Primer sam uprostio do kraja samo
da bih opisao anomaliju (ako je anomalija uopste, a ne pogresna upotreba).
Inace u aplikaciji cargo nameravam da koristim za druge svrhe. Samo sam
mislio da ovo ne bi smelo ovako da se ponasa, prilicno je trivijalno da
bi bio bug,... pa sam naravno mislio da ja negde gresim, i jos uvek mislim
...,ali gde? Ajde objektovci.
clipper.1002milanv,
-> #977, bulaja║║ debela :). Slucajno me ceka najesen spremanje ispita Racunovodstvo &
║║ Finansije (500+ strana:), pa cu imati prilike da vidim o cemu uci i
║║ druga strana :).
Učićeš šta se beleži na kojoj klasi, pa kontu, pa...
Stvarno, velika mudrost, samo, voleo bih da vidim i knjigovodju
koji zna sve što piše u tih 500-tinak stranica. Pa, ipak, misli
da bi zemlja bez njega stala!
clipper.1003gaston,
-> #984, ialeksic->Gde gresim? Evo koda:
Prijatelju, verovatno u programu nigde i ne gresis, ali ...
1) Ja NIKADA ne dajem promenljivoj ime koje makar malo asocira na ime neke
procedure ili funkcije. Cak izbegavam da dajem imena koja lepo zvuce na
engleskom. Razlog: pa neko od americkih ili engleskih programera se
verovatno vec setio da nesto tako nazove. Lepo to brate nazoves po srpski,
pa da te ceo svet razume ;| <--- kiseo osmeh na sopstveni racun ...
2) Takodje izbegavam da kao parametre prenosim objekte - zgodni su, ali su
komplikovani, posebno u jeziku koji prakticno jos nema jasno definisana
pravila igre sa njima. Bolje prenesi kao parametar ColPos.
3) Ako je stvarno u pitanju onako jednostavan posao kao u primeru, lepo brate
napisi tako da ti kodni blok zavrsava posao...
Ne smatram sebe bogznakakvim strucnjakom, sve sto ti kazem potice iz sopstvenog
loseg iskustva. Bice mi drago ako sam ti makar malo pomogao...
Nesa
clipper.1004gaston,
-> #969, rpausic▀▀┌Pa ja bas i nemam neka mnogo negativna iskustva, sto se tice saradnje oko
izrade knjigovodstvenih programa, imam samo kasnije, oko placanja ...
Pored toga, matori su mi u toj bransi, tako da imam eksperte kod kuce skoro
za sve, osim plata (ali su tu pravila igre uglavnom poznata).
Ako osnivas grupu, evo i mene (sviram samo u drombulje, ali zato jako lepo
pevam i ,kao sto se vidi skromnost mi je vrlina ... B)))
Nesa
clipper.1005nbatocanin,
-> #975, mickeyl> Mislim da je to način da se zaštiti od ovog programa. Jesam li u
> pravu i kakva su iskustva drugih?
Prvo, nije mi jasno šta ti znači to "zaštiti se". Da li misliš da će
neko uzeti tvoj program, generisati tekst programa, pa onda prodavati
malo izmenjen? žini mi se da je verovatnoća takvog događaja ravna
nuli. Ko normalan će da analizira kilometarski sors bez reda
komentara, da bi ga shvatio i izmenio? Uostalom, ako to može, sigurno
može i da napiše isti takav program, uz manje komplikacije.
clipper.1006nbatocanin,
-> #979, cnenad> Medjutim ni kliper nema mnogo stvari koje ima DBASE IV.
Šta, na primer?
clipper.1007nbatocanin,
-> #984, ialeksic> Imam pitanje za nekog objektasa:
>
> prilozio sam kod koji ne radi kako ja ocekujem :(
Problem je u tome što se pri definisanju TBrowse objekta referišeš
opet na njega rekurzivno, ali bez izlaza. Tj. nije problem u
varijabli TB:colPos, već u definiciji kolone. Moraš promeniti
koncepciju i kao kolonu definisati nešto drugo. Slučaj je sličan kao u
a:= {1, 2, 3}
a[3] := a
clipper.1008ematic,
-> #1000, ialeksic>>>> probaj {|| udf(@browse)}
>
> Ne verujem, jer je prenos Objekta i ovako preko reference...
>
> A i nije me mrzelo da proverim - ista stvar :(
Izvini što sam ovako lupio napamet, tvoju poruku sam samo letimice
pogledao pre nego što sam odgovorio. Elem, koliko vidim, ti želiš da
za ove tvoje dodatne kolone imaš neku konstantnu vrednost koja zavisi
od pozicije iste. Tu ti nije potrebno nikakvo muljanje s korisničkim
funkcijama, dovoljno je da umesto ovoga što si napisao:
> w:=TBColumnNew( ;
> "xxxxx", ;
> {|| udf(browse)} ;
> )
staviš npr.:
w := tbcolumnnew ("xxxxx", { || "XXXXX" })
Ukoliko naknadno želiš da menjaš takvu kolonu, odnosno da je napuniš
nekom drugom vrednošću, dovoljno je da uradiš nešto kao:
pozicija := browse:colpos
kolona := browse:getcolumn(pozicija)
do case
case pozicija == TRT
kolona:block := { || "TRTRT" }
// i tako dalje (i tako bliže :)
end
// sledeća linija je vrlo važna
browse:configure()
// naredna je novitet (5.2)
browse:forcestable()
Vratimo se sad na ono zbog čega ti puca program, dakle na zlo i
pokvareno :) { || udf(browse) }. Kada se objektu dodaje kolona, blok
pomoću koga ista dobija svoju tekuću vrednost se evaluira tek
prilikom stabilizacije objekta. U ovom slučaju blok poziva korisničku
funkciju koja opet pokreće novu stabilizaciju, jer referencira na
isti objekat iz koga je krenula stabilizacija ( i := browse:colpos ),
dok prethodna stabilizacija u stvari još nije izvršena. Rezultati
prethodne stabilizacije se stavljaju na stek, kreće nova i tako ide
rekurzivno dok se stek ne iscrpi i dođe do famozne fatalne greške.
p.s izvini zbog konfuzne poruke, objašnjavanje mi nikad nije bilo
jača strana :)
clipper.1009dejanr,
-> #1005, nbatocanin>> Prvo, nije mi jasno šta ti znači to "zaštiti se". Da li misliš da će
>> neko uzeti tvoj program, generisati tekst programa, pa onda prodavati
>> malo izmenjen? žini mi se da je verovatnoća takvog događaja ravna
>> nuli.
Pa, ne znam baš. Meni je glavna zaštita programa u tome što se na ekranu,
na formularima i izveštajima ispisuje ime firme, adresa, telefon, fax itd.
Na taj način je dosta teško da to iko drugi koristi (mada sam čuo da je
bilo nekih koji su koreksom brisali ime samo da ne plate program ;)). To
ime je oduvek malo "zamumuljeno", čisto da se ne može iz Nortona promeniti.
Međutim, otkad su "izmišljeni" ti de-clipper-i, morao sam da pišem neku
straobalnu programčinu na asembleru koja se brine o tekstovima tog tipa,
sve u nadi da declipper neće umeti tek tako da je izdvoji ili da je neće
biti baš lako analizirati.
"Lopov" ne mora ništa da menja u programu - samo promeni ime firme i
proda ga upola cene "izvadivši" tako štetu što je platio program. Ne
bi bilo prvi put.
clipper.1010ndragan,
-> #969, rpausic/ P.S. Jedini sam programer u firmi i očajnički želim da razmenjujem
Kućni programer? Kolega, saučešće. Bićeš kriv za sve, i što zajebeš ti i
što zajebu oni, a onda će te hvaliti na sva usta za nešto što si uradio
malim prstom za pet minuta, pa će te posle psovati što trodnevni posao
nije bio gotov za minus pola dana... Drž' se i pitaj ovde šta ti treba.
clipper.1011ndragan,
-> #977, bulaja/ debela :). Slucajno me ceka najesen spremanje ispita Racunovodstvo &
/ Finansije (500+ strana:), pa cu imati prilike da vidim o cemu uci i
Upoznaj neprijatelja da bi ga više voleo poraženog.
clipper.1012ndragan,
-> #991, ficus/ Ima samo BROWSE, ali od toga nema mnogo vajde!
Ajd baš da vidimo šta ima DbEdit() a šta nema Browse i obratno.
Browse ima toliko opcija da se razmišljam da napišem generator za tih
nekoliko linija, da mi bar prvu verziju napiše sintaksno tačnu i štogod
ulepšanu. žisto me zanima šta su posebne cake u DbEdit(), tek da vidim
da li mi nešto od toga nedostaje.
clipper.1013d.petrovic,
-> #1012, ndraganĂ> Browse ima toliko opcija da se razmišljam da napišem generator za
Ă> tih nekoliko linija, da mi bar prvu verziju napiše sintaksno
Ă> tačnu i štogod ulepšanu. žisto me zanima šta su posebne cake u
Ă> DbEdit(), tek da vidim da li mi nešto od toga nedostaje.
Meni izgleda nije jasno o čemu vi ovde... :))
Zar postoji nešto što DbEdit() može, a ne može da se uradi u
TBrowse() ??
clipper.1014goranr,
-> #1006, nbatocaninNa primer, ladno pravljenje POP-UP menija
clipper.1015goranr,
Po bulajinom izrazicitom narednjenju :) u dolenavedenom fajlu se nalaze
opisi funkcija (kratki!) biblioteke Clipper Tools, koja je novopristigla
na SEZAM. Navali na Download! :)
cliptool.txtclipper.1016ialeksic,
-> #1008, ematic
>>> Elem, koliko vidim, ti zelis da za ove tvoje dodatne kolone imas neku
>>> konstantnu vrednost koja zavisi...
Hvala na ideji za konstne vrednosti kolona, no to mi nije bila zelja. Primer
sam samo uprostio pa je zbog toga tako izgledalo. Naime, nisam hteo da
zamaram celu ekipu sa svojom aplikacijom, ali izgleda je ipak neophodna mala
eksplikacija :)
Pravim aplikaciju u kojoj kooperativno ucestvuje i 'remote' aplikacija (na
hostu), tako da neke od TBcolumn treba vrednostima da popunjava lokalna
aplikacija a neke, 'remote' aplikacija (pozivima funkcija). Zato sam mislio
da se to moze resiti tako da kodni blokovi budu posebne funkcije koje
izmedju ostalog koriste 'remote' servise. Kada sam to smislio jednostavno
sam zeleo da imam samo JEDNU (glavnu) funkciju za kodni blok koja bi na
osnovu browse:colpos trebala da pozove odgovarajucu servisnu funkciju.
Nista vise. Onda su nastali opisani problemi, pa sam kasapljenjem i
uproscavanjem tog dela programa stigao do ilustracije koju sam poslao
u conf. Problem sam prevazisao tako sto svaki remote-zavian TBcolumn korist
kodni blok sa zasebnom funkcijom,... i to lepo radi.
Inace ja sam stari kliperas (A'86,S'87) ali sam se u zadnje vreme zapustio
[mrzelo me je da migriram aplikacije sa S'87 ;)] tako da nemam nekog zesceg
iskustva sa 5.0, pa cu biti slobodan da priupitam kad-kad (a mozda i cesce!)
neku glupost. Koliko vidim objekti su velika (i jako korisna) novost (dobro
ja sam malo zadocnio :( ). Da li se na 5.2 objekti mogu i definisati?
>>> // sledeca linija je vrlo vazna
>>> browse:configure()
Kao sto rekoh, ne mogu bas da se pohvalim preteranim poznavanjem 5.0 objekata
a citajuci u reference-u nije mi sasvim jasno sta radi browse:configure()
metod. Moze malo objasnjnja?
>>> Vratimo se sad na ono zbog cega ti puca program, dakle na zlo i
>>> pokvareno :) { || udf(browse) }. Kada se objektu dodaje kolona, blok...
>>> ....
>>> p.s izvini zbog konfuzne poruke,...
Begaj, Poruka i objasnjenje su OK.
Objasnjenje sta se desava i zasto dolazi de prepunjenja steka mi je ubedljivo
i prihvatljivo. Medjutim, principijelno govoreci, i dalje mi nije jasno zasto
se radi dobijanja koja je kolona u pitanju (browse:colpos), mora evaluirati
kodni blok TBcolumn objekta! Zar to nije podatak iz strukture podataka
TBrowse objekta koji bi trebalo da mu bude poznat kada tretira pojedinacni
TBcolumn objekat. Ajd' dobro, kako je - tako je.
>>> // naredna je novitet (5.2)
>>> browse:forcestable()
I na kraju ovog napada blagoglagoljivosti, da izrazim i svoj obol u vezi
ovog pitanja. Znam da je to nepristojno pitanje, ali kako ... 5.2? Video
sam instalacionu verziju na jednom BBS-u ali je to golemo do bola :(
to je sve. cestitam onima koji su izdrzali do kraja!
pozdrav Ivan A.
clipper.1017ialeksic,
-> #1003, gaston
>>> 1)...
>>> 2)...
>>> 3)...
Prijatelju:
1) Bezrezervno podrzavam tvoj patriotizam, ali u ovoj stvari sam ovako
navikao, amator da se po stare dane odvikavam.
2) Meni se bas cini da su objekti dusu dali da se vozaju tamo-vamo.
3) Bojim se da je u pitanju robija od posla... :(((
Pozdravlja te prijatelj :)
clipper.1018ialeksic,
-> #1007, nbatocanin
>>> Slucaj je slican kao u
>>> a:= {1, 2, 3}
>>> a[3] := a
Sta je tu cemo slicno?
Ovo je rekurzivno definisana struktura, a tamo je rekurzivna
... macka (TBcolumn) u dzaku (TBrowse)!
;)
clipper.1019bulaja,
-> #1006, nbatocanin-> Medjutim ni kliper nema mnogo stvari koje ima DBASE IV.
=> Sta, na primer?
> Na primer, ladno pravljenje POP-UP menija
Zar je to problem izvesti iz Clipper-a?
Btw ako ti nije tesko opisi taj sistem menija iz dB IV, mozda ubacim
nesto slicno u sledecu verziju BuMenu-ja :).
clipper.1020mjevta,
-> #969, rpausic>Ć Da li sam nesto propustio pretrazujuci SEZAMove conf ili
Potpuno te razumem i pitanje je stvarno na mestu. I ja sam u
pocetku bio u prilicnoj nedoumici glede toga pa sam, nakon nekoliko
MB starih i novih poruka tipa 'Kako da uradim ovo i ono u kliperu',
'zasto kliper radi ovo a nece ono', 'kako da povezem kliper sa ovim i
onim', 'kliper vs. Godzila' digao ruke. Mislim, od klipera definitivno
a zamalo i od Sezama.
>Ć zaista nema posebnih tema i diskusija o najcescim problemima
>Ć programera koji rade sa bazama podataka: finansijsko
>Ć knjigovodstvo, robno-materijalno, pogonsko, plate,
>Ć fakturisanje, ...
Upravo ovih dana 'udaram zavrsni glanc' aplikaciji za
finansijsko knjigovodsvo i znam koliko bih nerava sacuvao da
sam, umesto da se natezem sa frustriranim i nadobudnim knjigovodjama,
neke cake mogao da kupim sa Sezama - onako, fino dajdzestirane za
instant primenu.
Zato se pridruzujem tvom 'apelu' i kandidujem za jedno od mesta u
eventualnoj grupi ( izuzev ako ne diskriminisete prebege u protivnicki
FoxPro tabor :)
Pozdrav Jevta.
clipper.1021mickeyl,
-> #1005, nbatocanin=> nuli. Ko normalan će da analizira kilometarski sors bez reda
=> komentara, da bi ga shvatio i izmenio? Uostalom, ako to može, sigurno
=> može i da napiše isti takav program, uz manje komplikacije.
Neka hvala, ali ja mirnije spavam kad sam siguran da niko nema source
mog programa. Jest da ovaj disclipper ne razbija i exe bez ovl-ova
100%, ali se dosta toga može
clipper.1023d.petrovic,
-> #1019, bulajaĂ> Btw ako ti nije tesko opisi taj sistem menija iz dB IV, mozda
Ă> ubacim nesto slicno u sledecu verziju BuMenu-ja :).
Ix, kako je lepo bumenu poslužio da ih napravim :)). Samo što nisu
univerzalni nego prilagođeni mojim potrebama, nabudžio sam nešto i to
lepo radi :))