clipper.3nbatocanin,
odgovor na [9.1016]
> Da li se na 5.2 objekti mogu i definisati?
Na žalost, ne.
> 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.
Rekonfiguriše TB objekat iz početka: ponovo čita sve zadate interne
promenljive, proračunava koordinate i sl. Ovo treba koristiti kad se
menja neka interna promenljiva TB objekta, a želimo da se ta izmena
vidi.
clipper.2nbatocanin,
odgovor na [9.1009]
> "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.
Ja (možda naivno) još uvek ne mogu da verujem da postoje takvi ljudi.
Ja se, čak i da hoću, nikad ne bi usudio tako nešto da uradim: šta
ako korisnik zatraži neku značajniju izmenu? Zna li neko konkretan slučaj
ovakve krađe?
clipper.4nbatocanin,
odgovor na [9.1018]
> Sta je tu cemo slicno?
> Ovo je rekurzivno definisana struktura, a tamo je
> rekurzivna ... macka (TBcolumn) u dzaku (TBrowse)!
> ;)
Sad sam malo detaljnije gledao onaj primer i u pravu si: tu nešto
nije kako treba. Očigledno si udario u neko interno ograničenje
Clipper objekata. Pogledaću za koji dan malo detaljnije.
Inače, što se tiče tvog problema, da li ovo rešava problem: tebi ne
treba da preneseš funkciji ceo objekt, već samo redni broj kolone,
tj. ovako nešto:
TB:addColumn(TBcolumnNew("", {|| Udf(1) })
TB:addColumn(TBcolumnNew("", {|| Udf(2) })
TB:addColumn(TBcolumnNew("", {|| Udf(3) })
Zašto ovako ne definišeš kolone?
clipper.1nbatocanin,
odgovor na [9.1014]
> Na primer, ladno pravljenje POP-UP menija
Objasni malo detaljnije. Sa dBase IV sam radio cirka 10 min. pa mi
ovo ni izbliza ne dočarava noseće značenje ;)
clipper.5nbatocanin,
odgovor na [9.1013]
>> 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.
Kad smo već kod te teme, da li FoxBrowse može nešto od sledećeg:
- Da se zada frekvencija skaniranja izvornih podataka: na primer,
želiš da na mreži interaktivno prikazuješ/menjaš spisak aktivnih
procesa.
- Da se menjaju parametri prikaza za vreme prikaza (korisnik briše
ili dodaje kolone i sl.)
- Da se koristi za pregled drugih stvari (nizovi, ASCII datoteke)
I interesuje me koja je njegova najmoćnija opcija? Naravno, po
subjektivnoj proceni.
> 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() ??
Nema šansone, jerbo je DBEdit obična Clipper procedura koja koristi
TBrowse objekte.
clipper.6dejanr,
-> #2, nbatocanin>> > "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.
>>
>> Ja (možda naivno) još uvek ne mogu da verujem da postoje takvi ljudi.
>> Ja se, čak i da hoću, nikad ne bi usudio tako nešto da uradim: šta
>> ako korisnik zatraži neku značajniju izmenu?
Pa, to je unapred rešeno. Pera i Laza se dogovore i od mene naruče program,
plate svaki po pola a onda jedan izmeni ime firme i koristi program piratski.
Kad bilo kome od njih treba izmena, Pera (koji je jedini samnom imao veze)
traži tu izmenu, posle opet preprave program za Lazu i tako...
>> Zna li neko konkretan slučaj ovakve krađe?
Ćuj, slućaj... ja bre imam čitavu metodologiju rada za takve mušterije
(istina, ne za te koji koriste declipper, takve još, fala Bogu, nisam imao,
nego za one što iz Nortona menjaju :). Kada posumnjam da će neko da
"deli troškove" za program sa nekim (ili nekolicinom) drugih, a to se
prilično lako uoči, do sada ni jednom nisam pogrešio, ja mu dam program
u kome se ime firme menja prosto ko pasulj. Bode oči da se promeni :)
Međutim, program je napravljen tako da posle nekog datuma počne malo da
brlja. Nikakvu štetu ne pravi, nego recimo ne radi štampanje ili tako
nešto što čini program totalno neupotrebljivim. Mušterija se javi, kaže
pojavio se problem, ja se lepo izvinim i dam mu ispravljenu verziju. Samo,
u toj ispravljenoj verziji ime firme nije "očigledno" nego je tako
zakukuljeno da ga je jako teško (never say never ;) izmeniti. Njih dvojica
(trojica...) se onda par dana pate da ga izmene, ali ne uspeju. No, onaj
drugi se u međuvremenu "navukao" na korišćenje računara, ne može više
bez njega i bez tog programa koji mu je lepo radio posao, a obaška što je
već dao pare za kompjuter, štampač... Ne ostaje mu ništa drugo nego da
pokorno dođe kod mene i kupi program :) Mislim da sam na taj scenario do
sada prodao 7-8 instalacija.
Lepo su to smislili oni što prodaju drogu, šteta ne primeniti ;>
clipper.7d.petrovic,
-> #5, nbatocaninĂ>> Zar postoji nešto što DbEdit() može, a ne može da se uradi
Ă>> u TBrowse() ??
Ă> Nema šansone, jerbo je DBEdit obična Clipper procedura koja
Ă> koristi TBrowse objekte.
Morao sam da pitam ;). Toliko poruka koje čitam i češkam se pa se
pitam zar je moguće da niko od njih ne poznaje dovoljno Tbrowse :))
clipper.8rpausic,
CONF JOIN PC.PROG.2
CONF REPLY 9.1010
> 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...
Sve je tačno, čak i gore ;-<<<<. Sa biserima ne bih opterećivao
ovu conf. Imaš li lična iskustva ili si samo pretpostavljao?
P.S. Hvala na saučešću!
clipper.9rpausic,
CONF JOIN PC.PROG.2
CONF REPLY 9.1020
> Zato se pridruzujem tvom 'apelu' i kandidujem za jedno od mesta u
> eventualnoj grupi ( izuzev ako ne diskriminisete prebege u
> protivnicki FoxPro tabor :)
Temu sam pokrenuo u clipper-u delom slučajno, delom namerno. Prvo
tu sam se zatekao kada sam se odlučio na taj korak, a drugo
mislim da još uvek najveći broj programera sa sličnim
problemima radi u Clipper-u. U poverenju, i ja se pripremam u
prebege, ali verovatno u PDX. Negde u budućnosti ...
Inače, nikada nisam pripadao grupi ljudi koji bi se posvađali oko
odnosa PC/Amiga, Clipper/FoxPro/PDX/??? i slično, pa mi nisi nikako
u protivničkom taboru. Tamo su mi knjigovođe ;->
Znači nije važan jezik, već poslovna primena!
clipper.10cnenad,
Prvo, pitanje za moderatora. Zasto tema o clipperu sad ima broj 11
kad je recimo u provj conf bila 5 pa u drugoj 9 ? Sto nije ostao isti
broj teme u svim conf ?
Drugo, potrebna mi je hitna pomoc, ako mozete da izbajate sta se
dogodilo sa programom koji nije uopste menjan ali je poceo da neprijatno
zaglavljuje.
Recimo, radim unos preko get u neka polja i onda treba sa replace da
izvrsi zamenu u poljima baze ÚÚ-ĺa Úza to vreme je ispisano na
ekranu SACEKAJTE i kad se zavrsi program nastavlja dalje da radi a evo
vec nekoliko puta se zaglavljuje.
Ali ne zaglavljuje se samo na tom mestu nego i na drugim.
Medjutim ta druga mesta u programima su isto predvidjena za unos nekih
podataka preko GET-a.
Da nema neke veze mozda se enviro.parametrom set clipper=f:40 koju sam
obrisao iz autoexec-a ?
Pomagajte !
clipper.11d.petrovic,
-> #10, cnenadĂ> Da nema neke veze mozda se enviro.parametrom set clipper=f:40
Ă> koju sam
To je broj fajlova koje kliper može istovremeno da otvori i verovatno
je tu problem. I nije "f:40" nego "f40". Osim toga, ako je proglam
linkovan rtlink-om i ima dinamičke overleje ne radi kako treba sa EMS
memorijom. Provari to pa kukaj dalje. I kako se zaglavi? Ako je
doserror 4 onda je sigurno to: "set clipper=f40".
clipper.12goranr,
-> #1, nbatocaninPa, recimo, dbase IV ima standardno ugradjene opcije ÜÂza kreiranje POPUP
menija, a nema zezanja ko u Clipperu, za pisanje raznih levih funkcija. Ima
MENU CREATE (valjda je tako, i ja sam s dbaseom radio oko 30 min)(ŔkĘ, i sl.
funkcije.
clipper.13ialeksic,
-> #4, nbatocanin>>>Inace, sto se tice tvog problema, da li ovo resava problem: tebi ne
>>>treba da preneses funkciji ceo objekt, vec samo redni broj kolone,...
Kao sto rekoh negde ranije u ovom lancu (ako mogu samog sebe da
citiram ;)), pitanje je bilo PRINCIPJELNE prirode. I dalje sam ubedjen
da TBrowse objekat nepotrebno referencira TBcolumn objekat da bi
eksportovao varijablu ColPos, jer da bi to uradio mora da zna kome
TBcolumn objekatu (a to znaci ColPos) zeli da pristupi.
To se izgleda ne desava samo sa colPos vec i sa rowPos (sto sam probao) a
mozda i za jos neke eksportovane entitete. Zbog toga se ne bih usudio
da kazem da je to BUG, pre bih rekao da je to dizajner upravo hteo da uradi
(ili nije mogao da izbegne ;) ).
Sto se tice ideje sa :
TB:addColumn(TBcolumnNew("", {|| Udf(1) })
TB:addColumn(TBcolumnNew("", {|| Udf(2) }) ...
to nije ono sto sam pocetno hteo. A hteo sam da UDF automatski (preko
^^^^^^^^^^
colpos, ili nekako drugacije, neznam kako) prepozna koji TBcolumn procesira.
Tvoje resenje prevazilazi problem, ali se onda mora voditi racuna o redosledu
definisanja TBcolumn objekata.
Ja sam na kraju digao ruke od ovoga tako sto koristim zasebne UDF-ove za
zasebne TBcolumn objekte.
clipper.14cnenad,
-> #11, d.petrovicŁŁŁ To je broj fajlova koje kliper moze istovremeno da otvori i
ŁŁŁ verovatno je tu problem. I nije "f:40" nego "f40". Osim toga,
ŁŁŁ ako je proglam linkovan rtlink-om i ima dinamicke overleje ne
ŁŁŁ radi kako treba sa EMS memorijom. Provari to pa kukaj dalje.
ŁŁŁ I kako se zaglavi? Ako je doserror 4 onda je sigurno to: "set
ŁŁŁ clipper=f40".
Namestio sam set clipper=f40, ali i dalje zaglavljuje.
Program jeste linkovan RTLINK-om ali bez ikakvih prekidaca.
clipper.15rpausic,
-> #10, cnenad>## Da nema neke veze mozda se enviro.parametrom set clipper=f:40 koju
>## sam obrisao iz autoexec-a ?
>## Pomagajte !
Obavezno vrati tu promenljivu na vrednost kakva je bila. Koje su
ostale specifikacije problema? Moraš se setiti svih stvari koje
su se desile od vremena kada je program ispravno radio. Npr. da
li si menjao računar, kolike su bile ulazne vrenosti (red
veličine), eventualne poruke o greškama, itd. Svakim novim
detaljem se povećava mogućnost da ti ovako napamet pomognemo.
clipper.16rpausic,
-> #14, cnenad>## Namestio sam set clipper=f40, ali i dalje zaglavljuje.
>##
>## Program jeste linkovan RTLINK-om ali bez ikakvih prekidaca.
Probaj sa SET CLIPPER=f:40 ili SET CLIPPER=//f:40.
Zašto bez ikakvih prekidača. Probaj više da se udubiš u
filozofiju Clipper-a 5.x i koristi prednosti koje ti on nudi. Ako
nemaš, nabavi knjigu Rika Spensa, Clipper 5 u izdanju Mikro
Knjige. Verovatno je skupa, ali vredi svaki dinar koji uložiš u
njega. Pregledao sam malo tvoje poruke i zaključio da si još
početnik i da ti programiranje nije uža struka.
Šta ti kaže dibager? Ako ništa ne pomogne, pošalji deo sorsa.
Možeš i na mail.
clipper.17ialeksic,
Da li neko zna sta u ovom uproscenom programcicu ne valja. Radi se o
postavljanju relacije na samu sebe. A uz to ide i dodavanje slogova :)
Evo ga:
FUNCTION TEST(BrojSlogova)
/*
Program treba da kreira olancanu strukturu gde je:
Tx: kljuc
Nxt: Sledeci
Prv: Prethodni
*/
LOCAL DBFname:="test" , ;
DBFalias:="testa" , ;
Prethodni
i:=0
IF !FILE(DBFname+"dbf")
aDbf := {}
AADD(aDbf, { "Tx", "N", 4, 0 })
AADD(aDbf, { "Nxt", "N", 4, 0 }) // Kreira .dbf ako ne postoji
AADD(aDbf, { "Prv", "N", 4, 0 })
DBCREATE( DBFname, aDbf)
ENDIF
USE (DBFname) ALIAS (DBFalias) NEW
IF !FILE(DBFname+"ntx")
INDEX ON STR(Tx,4) TO (DBFname) // Kreira .ntx ako ne postoji
ENDIF
SET INDEX TO (DBFname)
USE (DBFname) NEW
SET INDEX TO (DBFname)
SET RELATION TO STR(Prv,4) INTO (DBFalias)
ZAP
SET EXACT ON
(DBFname)->(DBAPPEND())
Prethodni:=(DBFname)->Tx:=++i // Pocetni slog
COMMIT
DO WHILE i++<VAL(BrojSlogova) // vrti!
(DBFname)->(DBAPPEND())
(DBFname)->Tx:=i
(DBFname)->Prv:=Prethodni
COMMIT // MISLIO SAM DA CE NEST OD
DBSKIP(0) // OVA DVA POMOCI AL' SLABA VAJDA
/*
PROGRAM NE RADI DOBRO JER SE OVO NIKAD NE DOGODI
JER JE (DBFalias) stalno na EOF */
(DBFalias)->Nxt:=(DBFname)->Tx
Prethodni:=(DBFname)->Tx
ENDDO
clipper.18cnenad,
-> #16, rpausicŁŁŁ nemas, nabavi knjigu Rika Spensa, Clipper 5 u izdanju Mikro
ŁŁŁ Knjige. Verovatno je skupa, ali vredi svaki dinar koji ulozis
ŁŁŁ u njega. Pregledao sam malo tvoje poruke i zakljucio da si
ŁŁŁ jos pocetnik i da ti programiranje nije uza struka.
Imam od Alempija Veljovica knjigu o 5.01 a za to trenutno nemam love
ali cim dodjem do nje odmah je kupujem.
Mozda u odnosu na tebe jesam pocetnik ali taj program je sljakao
nekih godinu dana i sad je poceo da zeza. Dobro sljakao je kad je
bio preveden sa S87 a zezanje je pocelo od kada sam presao na 5.01.
Izgleda da cu morati malo da pregledam i prepravim sors.
clipper.19cnenad,
-> #15, rpausicŁŁŁ li si menjao racunar, kolike su bile ulazne vrenosti (red
ŁŁŁ velicine), eventualne poruke o greskama, itd. Svakim novim
ŁŁŁ detaljem se povecava mogucnost da ti ovako napamet pomognemo.
Nisam menjao racunar, nema nikakvih poruka o greskama, samo se zaglavi
i ako drzim neki taster posle zaglavljivanja cuje se na zvucniku
pijuckanje.
evo dela sorsa na kome se najcesce zaglavljuje:
ovde idu promenljive
do while k="D" .or. k="d"
do while .t.
do RAM2
do z
do slobodno
set delimiters to " ."
set delimiters on
@5,2 say 'SIFRA ARTIKLA:'
@5,16 get sfr pict "99999999"
@5,27 say 'SIFRA MAGACINA:'
@5,41 get smg pict "999"
read
use art
locate for sif_ma=smg .and. sifra=sfr
if found()
do bg
@11,8 say "POKUSALI STE DA NIVELISTE ARTIKL KOJI JE VEC JEDNOM NIVELISAN !!!"
@13,19 say "PRITISNITE BILO KOJU DIRKU NA TASTATURI !!!"
inkey(10)
loop
endif
use artikli
locate for sif_ma=smg .and. sifra=sfr
if .not. found()
do bg
@10,2 say " POKUSALI STE DA NIVELISTE ARTIKL KOJI NISTE DEFINISALI ILI NE
POSTOJI U TOM"
@11,2 say "MAGACINU ILI SU UNETI PODACI POGRESNI ! UNESITE TACAN PODATAK ILI
NOVI ARTIKL"
@13,21 say "PRITISNITE BILO KOJU DIRKU NA TASTATURI !!!"
inkey(10)
close data
set color to
return
else
read
exit
endif
enddo
IZ="D"
do while .t.
do while .t.
do slobodno
naziv_robe=" "
@5,47 say "NAZIV: "+naziv_robe pict "xxxxxxxxxxxxxxxxxxxxxxxxx"
@5,75 say mera pict "XXX"
set delimiters on
@7,12 say lag_kol pict "9,999,999"
@7,70 say porez pict "999"
@9,70 say ukal_proce pict "999"
@7,4 say 'STANJE:' get LAG_kol pict "9,999,999"
@7,22 say 'STARA CENA BEZ P.:' get lag_cena pict "99,999,999,999"
set delimiters off
@7,63 say 'POREZ:' get porez pict "999"+' %'
set delimiters on
@9,4 say 'NOVA CENA BEZ P.:' get NCBP pict "999,999,999,999"
set delimiters off
@9,41 say 'UKALKULISANA RAZLIKA U CENI:' get UKAL_proce pict "999"+' %'
do w
@6,3 to 10,77
@6,2 to 6,78 double
@8,3 to 8,77
@6,24 say chr(209)
@7,24 say chr(179)
@8,24 say chr(193)
@8,40 say chr(194)
@9,40 say chr(179)
@10,40 say chr(193)
@6,62 say chr(209)
@7,62 say chr(179)
@8,62 say chr(193)
@8,3 say chr(195)
@8,77 say chr(180)
@6,3 say chr(209)
@6,77 say chr(209)
read
if LAG_kol>0 .and. lag_cena>0 .and. ncbp>0
exit
else
do z
@17,7 say "POLJA ZA UNOS MORAJU BITI SVA POPUNJENA BROJEVIMA VECIM OD NULE !!!"
do w
@19,20 say "PRITISNITE BILO KOJU DIRKU NA TASTATURI !!!"
inkey(7)
@17,3 clear to 17,78
@19,3 clear to 19,78
loop
endif
enddo
do z
do del
@17,23 say 'PODACI SU UNESENI DOBRO (D/N) ?' get IZ pict "X"
do while .t.
read
if IZ="D" .or. IZ="d" .or. IZ="N" .or. IZ="n"
exit
else
x="N"
iz=x
exit
endif
enddo
if IZ="D" .or. IZ="d"
@17,2 clear to 17,78
@20,1 clear to 24,79
do b
@1,1 to 24,79 double
@1,17 say chr(203)
@1,64 say chr(203)
@4,1 say chr(204)
@4,79 say chr(185)
@6,1 say chr(204)
@6,79 say chr(185)
exit
endif
if IZ="N" .or. IZ="n"
@17,2 clear to 17,78
do delmi2
set delimiters to " ."
loop
endif
enddo
do b
@10,44 to 24,44
@10,44 say chr(194)
@18,2 to 18,27
@20,2 to 20,27
do z
ovde idu racunanja za razne parametre
@11,3 say "PROCENAT NIVELISANJA: "
@11,30 say procniv pict "999,999.9999"+" %"
ispisi rezultata....
do z_
@22,11 say "S A C E K A J T E ! ! !"
use radna
append from artikli all for sifra=sfr .and. sif_ma=smg
replace lag_kol with lag_kol, lag_cena with lag_cena, proc_niv with procniv,
iznos_niv with z1, ncbporeza with ncbp, iznos_por with z2, ncsporeza with ncsp,
prer_stopa with prerstopa, razlika_sp with razlikasp, razlika_bp with razlikabp
replace revalor_sp with revalorsp, revalor_bp with revalorbp
replace ukpnnivcsp with ukpnivcensp, ukpnnivcbp with ukpnivcenbp, nov_stanje
with ukpnncsp
use art
append from radna
use radna
zap
use artikli
replace lag_cena with ncbp for sifra=sfr .and. sif_ma=smg
do while .t.
do z
@22,11 clear to 22,36
@22,11 say 'ZELITE PONOVO (D/N) ?' get k pict "X"
do g_
@22,31 say '?'
set color to
read
if k="D" .or. k="d" .or. k="N" .or. k="n"
exit
else
x="N"
k=x
exit
endif
enddo
if k="D" .or. k="d"
set intensity on
loop
else
endif
if k="n" .or. k="N"
close data
endif
do delmi2
exit
enddo
do ram
return
clipper.20cnenad,
-> #12, goranrŁŁŁ Pa, recimo, dbase IV ima standardno ugradjene opcije ÜÂza
ŁŁŁ kreiranje POPUP menija, a nema zezanja ko u Clipperu, za
ŁŁŁ pisanje raznih levih funkcija. Ima MENU CREATE (valjda je
ŁŁŁ tako, i ja sam s dbaseom radio oko 30 min)(ŔkĘ, i sl.
To je mnogo lepse uradjeno nego u kliperu.
Ali smeta mi jedna druga stvar, sto recimo kad se vracas sa ESC
tasterom iz nekog podmenija i dodjes na glavni meni u DBASE IV
on registruje cak i ako si greskom pritisnuo ESC i prekida program
odnosno pojavljuje se njegov "DIJALOG PROZOR" gde pita standardno
'cancel' 'ignore' 'help'
Naredba za setovanje, SET ESCAPE OFF nije pomogla i dalje je mogao da
se program prekine sa pritiskom na ESC u bilo kom trenutku.
clipper.21cnenad,
-> #19, cnenadZaboravio sam da dopisem da se zaglavljuje kad izvrsi replace i
treba da se pojavi upitnik da li da se radi sledeci artikl ili ne
Inace on sa naredbom izvrsi zamene u bazi pa tek onda zaglavi.
clipper.22draganm,
-> #6, dejanr*> u toj ispravljenoj verziji ime firme nije "ocigledno" nego je
*> tako zakukuljeno da ga je jako tesko (never say never ;)
*> izmeniti.
Ajde napravi bilo kakav program koji ima zakukuljen text
cisto da pokusam da ga 'razbijem'. :)
clipper.23d.petrovic,
-> #16, rpausicĂ> Šta ti kaže dibager? Ako ništa ne pomogne, pošalji deo sorsa.
Ă> Možeš i na mail.
Ma reče čovek da je program već radio. Nije dignuta EMM memorija?
clipper.24rpausic,
-> #19, cnenad> Nisam menjao racunar, nema nikakvih poruka o greskama, samo se
> zaglavi i ako drzim neki taster posle zaglavljivanja cuje se na
> zvucniku pijuckanje.
Pištanje iz zvučnika ti znači da je bafer tastature pun (u ovom
slučaju). Probao sam da ti lociram grešku, ali nisam uspeo. Ako
neko ima više iskustva u prebacivanju iz S87 u 5.01 neka ti
pomogne, mada mislim da nema dovoljno elemenata. Javio sam ti
mail-om par saveta.
clipper.25snemcev,
-> #17, ialeksic>> Da li neko zna sta u ovom uproscenom programcicu ne valja. Radi se o
>> postavljanju relacije na samu sebe. A uz to ide i dodavanje slogova
Kol'ko ja znam Clipper, SET RELATION znači da pri svakom pomeranju
pokazivača sloga treba izvršiti SEEK u oblasti koja je povezana sa
tekućom. Što postavljaš relaciju samu na sebe? Tada ti GO BOTTOM ode na
kraj datoteke, a pošto je to pomeranje pokazivača izaziva automatski
SEEK, pa pošto je i to pomeranje pokazivača... Jednom rečju - rekurzija.
clipper.26goranr,
-> #20, cnenadNe znam, kazem ti, ali ono sto sam video bilo je dosta
lepo uradjeno. Sad, to je bila verzija 1.0, a nisam video
ni 2.0, ni 2.0 kompajler, ali ako se mogu popraviti te stvari,
i kad bi mogao da se napise sopstveni error handler, to bi
bilo jaaaaaaaako dobro.
ÔOPAH
clipper.27nbatocanin,
-> #12, goranr> Ima MENU CREATE
Očekivao sam nešto više. Uostalom ovo sa nekoliko redova napraviš u
Clipper-u, maskiraš sa #translate i eto ti MENU CREATE u Clipper-u :)
clipper.28nbatocanin,
-> #6, dejanr> Lepo su to smislili oni što prodaju drogu, šteta ne
> primeniti ;>
Uh, ubediste me da promenim mišljenje ;)
clipper.29nbatocanin,
-> #10, cnenad> Drugo, potrebna mi je hitna pomoc, ako mozete da izbajate
> sta se dogodilo sa programom koji nije uopste menjan ali
> je poceo da neprijatno zaglavljuje.
Mora biti da je nešto u međuvremenu menjano: sjet se, sjet se...
> Recimo, radim unos preko get u neka polja i onda treba sa
> replace da izvrsi zamenu u poljima baze ÚÚ-ĺa Úza to vreme
> je ispisano na ekranu SACEKAJTE i kad se zavrsi program
> nastavlja dalje da radi a evo vec nekoliko puta se
> zaglavljuje. Ali ne zaglavljuje se samo na tom mestu nego
> i na drugim. Medjutim ta druga mesta u programima su isto
> predvidjena za unos nekih podataka preko GET-a.
Uh, odavde je teško reći: uzmeš bre dibager pa korak po korak i onda
lepo vidiš gde zaglavljuje.
> Da nema neke veze mozda se enviro.parametrom set
> clipper=f:40 koju sam obrisao iz autoexec-a ?
Mož' da bidne, al' ne mora da znači ;)
clipper.31nbatocanin,
> BLINKER : 1115 : bliovlmgr(S8OVLMGR) : '__DOS_HOLD' :
> unresolved external
Imaš verziju Summer'87 sa kojom Blinker ne radi. Moraš naći noviju
ili preći na 5.01, što ti najtoplije savetujem.
clipper.30nbatocanin,
> Je li tacno da postoji neka vrsta sintaksnog checkera za
> Clipper koji radi u editoru, i.e. svaki put kada se otkuca
> linija i CR, proverava sintaksu.
Mislim da ćeš teško naći nešto *baš* ovako. Najsličnije stvari ima
BRIEF u paketu dBRIEF, koji BRIEF prilagođava xBase programiranju.
Međutim, mene to nije nešto dojmilo. Doduše gledao sam neku staru
verziju, možda je neka nova bolja. Upravo radim sa programom dClip,
koji predstavlja neki interaktivni sistem za razvoj Clipper programa,
pa ću javiti kad budem imao neke utiske :)
clipper.32oldtimer,
Ljudi prosvetlite me malo. Clipper ne koristim profesionalno, imam 5.01a,
Blinker i gomilu biblioteka što je za moje hobističko bavljenje istim
više nego dovoljno, ali ipak.. Da li 5.2 donosi nešto novo i vredno osim
raznih formata indeksnih datoteka. Da, pročitao sam Računare 93, ali me
zanima mišljenje nekog ko je ovo probao u praksi.
B)Miša
clipper.33gari,
Imam VELIKI PROBLEM, mozda clipper 5.2 ne radi
bas kako treba ili ja uporno ne vidim gresku:
Evo doslovno CELOG programa:
***********************************
LOCAL Infile, ctmp, i, aname:={}
Infile := fopen("proba.txt")
ctmp := space(3)
for i:=1 to 10
fread(infile,@ctmp,3)
aadd(aname,ctmp)
next
achoice(10,10,20,70,aname)
return
***********************************
File proba.txt (ASCII):
111222333444555666777888999000
Posle ovoga treba da pokaze sa funkcijom achoice:
111,222,333,444,555,666,777,888,999,000
medjutim uporno se prikazuje:
000,000,000,000,000,000,000,000,000,000
STA NIJE U REDU !?!?!?!?!?!?!?!?!?!?!?!?!?!?
p.s. Inace ovo ima veze sa programom za
vracanje arhive sa diskete on nbatocanin-a
pozdrav, Gari
clipper.34bulaja,
-> #30, nbatocanin│Upravo radim sa programom dClip, koji predstavlja neki interaktivni
│sistem za razvoj Clipper programa, pa cu javiti kad budem imao neke
│utiske :)
└───
Javi, bas ce me interesovati tvoje misljenje posto sam ja dClip vrlo
brzo obrisao :) (ne zato sto je mnogo los, vec zauzima suvise mesta a
nisam mu video neku svrhu:).
clipper.35bulaja,
-> #32, oldtimer│Ljudi prosvetlite me malo. Clipper ne koristim profesionalno, imam 5.01a,
│Blinker i gomilu biblioteka sto je za moje hobisticko bavljenje istim
│vise nego dovoljno, ali ipak.. Da li 5.2 donosi nesto novo i vredno osim
│raznih formata indeksnih datoteka.
└───
Udarni novitet su RDD, ostalo su uglavnom male promene. Jedina nova
funkcija je ColorSelect() (aktiviranje odredjenog para iz SetColor(),
bilo bi korisnije da su stavili da funkcija samo vraca cColor a ne da
setuje) , ima nekoliko izmena u GET klasi, zgodan TBrowse metod
TBrowse:forceStable() i to je uglavnom sve.
Ja licno sam jos uvek na 5.01 iz jednog prostog razloga - sa Clipperom
5.2 ne rade biblioteke prevedene verzijom 5.01. Neko je ovde rekao da
definisanje prazne Clipper501 procedure resava problem, ali nije tako -
tako samo linker nece prijaviti undefined simbol, a program ce se
jednako zaglavljivati. Trebalo bi ovih dana da dovucemo iz USA neke
stvarcice koje omogucavaju koriscenje 5.01 biblioteka u 5.2. Ukoliko to
proradi Ok, onda bi vredelo bezbolno (da ne mora nista da se menja:)
preci na 5.2.
clipper.36goranr,
-> #27, nbatocaninPa, kazem ti, i ja sam slabo radio sa tim, medjutim,
mogu reci da se pomocu tog CREATE POPUP i SHOW POPUP
mogu praviti jako lepi meniji.
ÔOPAH
clipper.37nbatocanin,
-> #13, ialeksic> I dalje sam ubedjen da TBrowse objekat nepotrebno
> referencira TBcolumn objekat da bi eksportovao varijablu
> ColPos, jer da bi to uradio mora da zna kome TBcolumn
> objekatu (a to znaci ColPos) zeli da pristupi.
Slažem se.
> To se izgleda ne desava samo sa colPos vec i sa rowPos
> (sto sam probao) a mozda i za jos neke eksportovane
> entitete.
Za sve, u stvari. Bilo kakav pristup TB objektu rezultuje greškom.
clipper.39nbatocanin,
-> #17, ialeksic> Da li neko zna sta u ovom uproscenom programcicu ne valja.
> Radi se o postavljanju relacije na samu sebe. A uz to ide
> i dodavanje slogova :) Evo ga:
Nemoj otvarati istu datoteku u dve radne oblasti - to je veoma
rizičan potez. Povezana lista se može napraviti i na druge načine.
clipper.38nbatocanin,
-> #19, cnenad> append from artikli all for sifra=sfr .and. sif_ma=smg
> replace lag_kol with lag_kol, lag_cena with lag_cena,
> proc_niv with procniv, iznos_niv with z1, ncbporeza with
> ncbp, iznos_por with z2, ncsporeza with ncsp, prer_stopa
> with prerstopa, razlika_sp with razlikasp, razlika_bp with
> razlikabp replace revalor_sp with revalorsp, revalor_bp
> with revalorbp replace ukpnnivcsp with ukpnivcensp,
> ukpnnivcbp with ukpnivcenbp, nov_stanje with ukpnncsp
Daj malo bliže gde krahira, ko će na suvo analizirati ovoliki
listing.
clipper.40d.petrovic,
-> #33, gariĂ> Imam VELIKI PROBLEM, mozda clipper 5.2 ne radi
Ă> bas kako treba ili ja uporno ne vidim gresku:
Očigledno fread nije ono što je bila ;((
Ovo prevedeno sa CL 5.01 radi, 5.2 sam malo maltretirao, čisto
da proverim da nije do aadd() i nije. Pokazivač očigledno ne stoji
gde je bio :(. Zanimljivo je da NIJEDNA promenljiva tu više nije
sigurna :((((((((((((((((. Na kraju je primer šta se još dešava.
LOCAL Infile, ctmp, i, aname:=šć, c:=0
Infile := fopen("proba.txt")
*ctmp := space(3) && ovo izbrišeš
for i:=1 to 10
ctmp := space(3) && pa ga staviš ovde
fread(infile,čctmp,3)
aadd(aname,ctmp)
next
cls
achoice(10,10,20,70,aname)
return
========== drugi pimer ===================
LOCAL Infile, ctmp:=space(3), q:=space(3), w:=space(3), e:=space(3)
Infile := fopen("proba.txt")
fread(infile,čctmp,3)
q:=ctmp
fread(infile,čctmp,3)
w:=ctmp
fread(infile,čctmp,3)
e:=ctmp
cls
č 10, 10 say q
č 11, 10 say w
č 12, 10 say e
return
*luda funkcija pobrljavi SVE promenljive koje su iste dužine i koje
*su joj vidljive :(((
clipper.41d.petrovic,
-> #40, d.petrovicNije da volim sam sebi da repliciram, ali sad sam video da je
prethodni primer možda nejasan. Probajte ovo da prevedete sa CA 5.2,
biće veselja:
=================== ovde iseci ==== PRIMER.PRG =================
LOCAL Infile, ctmp:=space(3), q:=space(4), w:=space(3), e:=space(3)
Infile := fopen("proba.txt")
ctmp := space(3)
cls
fread(infile,čctmp,3)
q:=ctmp
? q
fread(infile,čctmp,3)
w:=ctmp
? w
fread(infile,čctmp,3)
e:=ctmp
? e
? ""
? q
? w
? e
return
=================== ovde iseci ========================
=================== ovde iseci === PROBA.TXT ==========
111222333444555666777888999000
=================== ovde iseci ========================
clipper.42ialeksic,
-> #37, nbatocanin>>> Za sve, u stvari. Bilo kakav pristup TB objektu rezultuje greskom.
Fala bogu ima jedan izuzetak: CARGO !
clipper.43ialeksic,
-> #39, nbatocanin>>> Nemoj otvarati istu datoteku u dve radne oblasti - to je veoma
>>> rizican potez. Povezana lista se moze napraviti i na druge nacine.
Dobro, i napravio sam je na drugi nacin. Medjutim mislim da je veoma
elegantno i koncepcijski cisto koristiti jednu datoteku u (ne samo!)
dve radne oblasti (sa cetiri bi bilo na primer sa pointerima na sledeci,
prethodni, i vlasnika). Kada se jednom postave relacije, pokretanjem sloga
u osnovnoj radnoj oblasti krece se automatski cela medjusobno korelirana
struktura. I to, bez azuriranja radi dobro. Problem je izgleda u tome sto
mehanizam povezivanja zavisi od datoteke indeksa koji se u kliperu ne
azurira automatski za sve radne oblasti koje koriste isti indeks. Cak stavise,
kao sto se vidi i u prilozenom primeru ne pomazu ni razne akrobacije sa
SEEK 0, COMMIT, itd. Kad bi to i pomoglo, to vise nije ono za sta sam mislio
da je dosta elegantno resenje. No, mozda i nije tako za sad nemogu da nadjem
neko drugo objasnjenje.
clipper.44ialeksic,
-> #33, gari>>>Imam VELIKI PROBLEM, mozda clipper 5.2 ne radi...
Na 5.01a radi! Mozda ti je problem u proba.txt.
5.2? Ne znam, nisam u posedu istog :(
p.s.
nisu valjda toliko upropastili clipper sa 5.2 ;)
clipper.45gaston,
Narode, moram vam reci da su vase rasprave o editorima vrlo zanimljive.
Ja inace pisem u IDE-u Turbo Pascal-a 6.0, sa WS komandama. Za krace
tekstove koristim QEdit 2.15, pogadjate, zbog gotovo istovetnih komandi.
Pokusavam da predjem na pisanje Clipper programa u Brief-u 3.01.
Sve te stvari sto ima Brief su vrlo lepe, cak bih relativno brzo mogao da
se preorijentisem i na njegove komande. To ne mora da bude toliko namoguce:
ipak je kucanje programa isto u svakom editoru, do razlike se dodje kada
treba upotrebiti blok komande ili find/replace ...
Elem, lep je taj Brief, i taj QEdit, ali mene nerviraju pre svega dve stvari:
1) Zasto nemaju obelezavanje bloka teksta pomocu Shift+strelice ???!!!
Lepo je to sto se u B ili Q blokovi mogu obelezavati i ovako i onako (sex...B),
ali to mi ionako zatreba jedanput mesecno. Da li neko zna kako da se ovo resi
===================================
u Brief-u?
==========
2) Turbo IDE je zgodan zato sto cuva redosled ucitavanja datoteka, polozaje
kursora i ostalo, pa cak to mozes da sacuvas i u konf.fajl koji nazoves kako
ti je zgodno. Konkre(ve)tno, aplikacija na kojoj radim je, dabome, modularna.
Kada radim sa jednim delom paketa, ostali mi ne trebaju. Zato sve .PRG koji
se koriste u tom delu sacuvam u po 1 konfiguracijski fajl, tako da ih njih
imam 20-ak. Kada treba da radim na nekom delu paketa, lepo ucitam taj konf.
fajl i automatski su mi ucitane sve .PRG koje mi trebaju...
E, kako da ovo resim u Briefu ? Imam i ja ideju o tome ...
Ocigledno treba posebnom komandom sacuvati imena svih fajlova (bafera, u term.
Brief-a) u odredjenu datoteku, kojoj korisnik daje ime po zelji, a to treba
kasnije ucitati. Stampao sam ja i spisak svih funkcija i komandi Brief-ovog
komandnog jezika, ali mi to nije mnogo pomoglo...
Verujte, to je ono sto mi zaista treba kod Brief-a, cak vise nego automatski
pametni template i drugo.
Pomagajte drugovi !
Nesa
clipper.46v.nesic,
-> #33, gari> Imam VELIKI PROBLEM, mozda clipper 5.2 ne radi
> bas kako treba ili ja uporno ne vidim gresku:
fread(infile,@ctmp,3) <- Odve stavi ctmp:=fredstr(infile,3)
> STA NIJE U REDU !?!?!?!?!?!?!?!?!?!?!?!?!?!?
Samo nebo zna :)
clipper.47d.petrovic,
-> #45, gastonĂ> Verujte, to je ono sto mi zaista treba kod Brief-a, cak vise nego
Ă> automatski pametni template i drugo.
Nisam se ni ja rodio sa njim, ali...
Svaki program stoji u posebnom direktorijumu, što onda ne bi starovao
brief sa:
b *.prg
šta fali da za markiranje lupiš Alt-M ? Shift+strelica verovatno
može, ali treba napraviti makro, maltretiraj mjovu ;))
clipper.48d.petrovic,
-> #46, v.nesicĂ> fread(infile,čctmp,3) <- Odve stavi ctmp:=fredstr(infile,3)
a ? ;))) (infile,,3)
clipper.49mickeyl,
-> #31, nbatocanin=> Imaš verziju Summer'87 sa kojom Blinker ne radi. Moraš naći noviju
=> ili preći na 5.01, što ti najtoplije savetujem.
Zar je bilo novijih verzija Cl'87? Nisam to ni znao. Ima li neko tu
verziju?
clipper.50v.nesic,
-> #48, d.petrovic> Ć> fread(infile,čctmp,3) <- Odve stavi ctmp:=fredstr(infile,3)
> a ? ;))) (infile,,3)
Ne nego baš freadstr(infile,3) !
clipper.51bulaja,
-> #40, d.petrovic│Ocigledno fread nije ono sto je bila ;((
│Ovo prevedeno sa CL 5.01 radi, 5.2 sam malo maltretirao, cisto da
│proverim da nije do aadd() i nije. Pokazivac ocigledno ne stoji gde
│je bio :(. Zanimljivo je da NIJEDNA promenljiva tu vise nije sigurna
└───
Ako mislis na file pointer, to radi Ok. Do problema dolazi pri prenosu
parametara tj. pri vracanju bafer promenljive (cTmp). Ocigledno je rec o
bug-u u Clipper 5.2 i to vrlo neprijatnom.
Zanimljivo je sta se iz pojave ovog bug-a moze zakljuciti. cTmp se
prenosi po imenu (adresi) i trebalo bi da FRead() vrati u cTmp izmenjenu
vrednost bafera (dakle string promenljivu). Medjutim FRead() ne vraca
string vec pointer na taj string!!! Izgleda da neke Clipper funkcije
interno koristi promenljive tipa pointer, a u FRead() su verovatno
zaboravili da ubace konverziju pointera u string na izlazu iz funkcije.
Iz ovoga bi se dalo zakljuciti da Clipper podrzava pointer type, pitanje
je samo kako se on moze koristiti i zasto ga CA nije dokumentovao.
clipper.52dejanr,
-> #49, mickeyl>> Zar je bilo novijih verzija Cl'87? Nisam to ni znao.
Verzije su se numerisale prema *vremenu* na falovima (npr. CLIPPER.LIB).
Najnovija koju sam video (i, mislim, poslednja postojeća) verzija ima
CLIPPER.LIB datiran 21. decembra 1987 u 2:00 am.
clipper.53bulaja,
-> #49, mickeyl│Zar je bilo novijih verzija Cl'87? Nisam to ni znao.
└───
Postoje dve razlicite verzije. Obe nose isti datum, samo prva nosi file
date od 12:00am, a druga 02:00am. Prva je puna bugova, druga je Ok.
clipper.54nbulatovic,
da li je neko uspeo da startuje sve demo programe iz biblioteke sa objektno
orijentisanim funkcijama za clipper?
clipper.55d.petrovic,
-> #51, bulajaĂ> Zanimljivo je sta se iz pojave ovog bug-a moze zakljuciti. cTmp
Ă> se prenosi po imenu (adresi) i trebalo bi da FRead() vrati u cTmp
Ă> izmenjenu vrednost bafera (dakle string promenljivu). Medjutim
Ă> FRead() ne vraca
Ma jesi ti video drugi primer koji sam poslao? Tu je još zanimljivije
:((. Predaš joj vrednost bafera, a ona izmeni i ostale promenljive.
Da je do pointera valjda bi dala neku nebuloznu vrednost, ovako daje
poslednju koja je bila u baferu. Opet mi ništa nije jasno :(((
clipper.56gari,
-> #46, v.nesic▀█********************************************
** EVO KONACNOG RESENJA:
********************************************
LOCAL Infile, ctmp, i, aname:={}
Infile := fopen("proba.txt")
for i:=1 to 10
ctmp:=freadstr(infile,3)
aadd(aname,ctmp)
next
achoice(10,10,20,70,aname)
return
********************************************
** VEOMA sam zahvalan korisniku v.nesic-u
********************************************
Dakle:
- Ne treba NIKAKO koristiti vise
f-ciju FREAD nego FREADSTR, jer
gadno dira promenljive oko sebe... ;>
Pozdrav, Gari
clipper.57cnenad,
-> #38, nbatocaninŁŁŁ Daj malo blize gde krahira, ko ce na suvo analizirati ovoliki
Imenjace, program izvrsi zamenu unesenih podataka preko get u prazna
polja novog sloga a kad to zavrsi treba da se pojavi pitanje da li
da se unosi novi artikl ili da se izadje iz modula i vrati u glavni program.
Tu se zaglavljuje.
clipper.58bulaja,
-> #54, nbulatovic│da li je neko uspeo da startuje sve demo programe iz biblioteke sa
│objektno orijentisanim funkcijama za clipper?
└───
Ne, mislim da je Ok radio sam treci demo.
clipper.59bulaja,
-> #55, d.petrovic│Ma jesi ti video drugi primer koji sam poslao? Tu je jos zanimljivije
│:((. Predas joj vrednost bafera, a ona izmeni i ostale promenljive.
└───
Pa naravno da ce tako da radi, kada su i ostale promenljive postale
pointeri na bafer tj. sve ukazuju samo na (istu) memorijsku lokaciju
gde je smesten bafer.
clipper.60d.petrovic,
-> #59, bulajaĂ> Pa naravno da ce tako da radi, kada su i ostale promenljive
Ă> postale pointeri na bafer tj. sve ukazuju samo na (istu)
Ă> memorijsku lokaciju gde je smesten bafer.
Ali, ako stavimo pre svakog "fread(bbla,čbla,nbla)" jedno
"bla:=space(3)" onda će svaka promenljiva zadržati svoju vrednost.
Deder malo to pojasni, ako ti je sve toliko logično ;)
clipper.61snemcev,
Konkursna komisija grupe BUSINESS na osnovu odluke Upravnog odbora
raspisuje konkurs za popunu sledećih radnih mesta u grupi business2:
- član grupe (10 izvršilaca)
Pored zakonom propisanih, kandidati treba da ispunjavaju i sledeće
uslove:
1. da su članovi Sezama;
2. da se bave programiranjem poslovnih aplikacija iz domena
knjigovodstva, računovodstva i upravljanja;
3. da imaju izraženu dobru volju za saradnju u domenu pisanja pomenutih
aplikacija;
4. da su volji potpisati izjavu da u grupu neće slati poruke tipa "moj
program je dobar, a tvoj ništa ne valja", "Fox je car, Clipper je
prosjak, a Clarion slepac" i slične;
5. uverenje o ispunjenosti zdravstvenih uslova nije neophodno.
Prijave slati na adresu snemcev.
PS U prevodu: popunjena je grupa Business, pa je zbog interesovanja
osnovana grupa Business2; zainteresovani, javite se na mail.
clipper.62bulaja,
-> #60, d.petrovic│Ali, ako stavimo pre svakog "fread(bbla,Zbla,nbla)" jedno
│"bla:=space(3)" onda ce svaka promenljiva zadrzati svoju vrednost.
│Deder malo to pojasni, ako ti je sve toliko logicno ;)
└───
Ako bla:=" " stoji ispred petlje, onda ce se pre petlje promenljiva
bla inicijalno biti tipa Char. Sa prvim pozivom FRead (nHandle, @bla)
bla vise nije tipa C vec P (oznacimo tako pointer), zbog vec obhasnjenog
bug-a u FRead(). Kasnijim pozivanjem FDRead() u petlji bla ostaje isti
pointer na bafer, znaci svako cX:=bla, AAdd (aX, bla) ce ukazivati na
istu adresu tj. podatak.
Ukoliko bla:=" " stoji u petlji, onda ce cX:=bla, AAdd (aX, bla) i sl.
dodeliti pointer na istu memorijsku lokaciju, ali ce u sledecoj
iteraciji petlje pozivom bla:=" " Clipper dodeliti bla tip Char, a
FDread() pointer na novu memorijsku lokaciju.
Ovo ponasanje FDRead() je ekstermno cudno i ni sam nisam siguran da je
moje objasnjenje sasvim Ok. Ipak, ako sam pogodio mehanizam zbog koga se
manifestuje bug, moguce je da ima jos jednu ozbiljniju posledicu. Ako
poziv bla:=" " u petlji ne oslobodi prostor koji je prethodno alociran
za bafer (jer bla je bio pointer na bafer za koji je ipak alociran
prostor prethodnim pozivom bla:=" ") moze se desiti da se u svakoj
iteraciju alocira dodatnih sizeof(bla) bajtova. Taj prostor ce se mozda
osloboditi ako Clipper uradi clean-up na povratku iz procedure, ali
svejedno se moze desiti da doce do popunjenja komplene memorije.
Pokusacu sutra da ispitam da li zaista moze doci do ovoga.
clipper.63bulaja,
**** new file ****
R:\IBMPC\CLIPPER\*.*
----------------------
fixlib2 zip 15674* Koriscenje Clipper 5.01 biblioteka u CA-Clipper 5.2
clipper.64d.petrovic,
-> #62, bulajaĂ> Ovo ponasanje FDRead() je ekstermno cudno i ni sam nisam siguran
Ă> da je moje objasnjenje sasvim Ok. Ipak, ako sam pogodio mehanizam
Ă> zbog koga se
Sa ovim objasnjenjem je moguce da je problem bas taj...
clipper.65nbatocanin,
-> #32, oldtimer> Ljudi prosvetlite me malo. Clipper ne koristim
> profesionalno, imam 5.01a, Blinker i gomilu biblioteka što
> je za moje hobističko bavljenje istim više nego dovoljno,
> ali ipak.. Da li 5.2 donosi nešto novo i vredno osim
> raznih formata indeksnih datoteka.
Da, ima veoma zgodna poboljšanja u radu sa indeksima koja ćeš veoma
brzo primetiti. Poboljšan je mrežni rad, ako ti to treba. Uostalom,
to je poboljšana verzija 5.0 (tj., nije nešto potpuno novo), pa nema
nekog naročitog razloga da ne pređeš na njega.
> Da, pročitao sam Računare 93, ali me zanima mišljenje nekog ko je ovo
> probao u praksi.
Opa, počeli smo da se vređamo ;)) Pa, bre, zar mislite da ja ne
isprobam u praksi ono što napišem !! :)
clipper.66nbatocanin,
-> #33, gari> Imam VELIKI PROBLEM, mozda clipper 5.2 ne radi
> bas kako treba ili ja uporno ne vidim gresku:
Na žalost, Clipper 5.2 ima grešku (ili je bolje reći da radi
drugačije od 5.01). Naime, kada u Clipper-u kažeš
x := "ABC"
y := x
u memoriji se ne kreiraju dve kopije stringa "ABC", već pokazivači X
i Y pokazuju na isti string. Kada se uradi
x := "123"
Clipper provaljuje da se ne sme izmeniti string "ABC", jer ga koristi
Y (vodi se evidencija o tome koliko pokazivača se referiše na jednu
vrednost), pa se kreira nova lokacija u memoriji. E, problem je u
operacijama gde se menja vrednost ne nekom od regularnih naredbi,
nego direktno string. Na primer, FRead.
> for i:=1 to 10
> fread(infile,@ctmp,3)
> aadd(aname,ctmp)
> next
Clipper ne provaljuje da ja ne želim da svaki element niza aName
pokazuje istu vrednost u memoriji, tj. da funkcija FRead menja tu
vrednost. Rešenje je, na primer, da se ispred NEXT ubaci
cTmp := Space(3)
i problem je rešen. Ovo je moralo naći mesto u dokumentaciji :((
Ipak, ne smatram da je neka prevelika greška.
Što se tiče programa za BACKUP, 5.2 je otkrio još jednu grešku u
kucanju koju je 5.01 ladno prelazio. Poslaću uskoro ispravljen
program.
clipper.67gari,
-> #61, snemcevEvo dobrovoljca za sledecu turu,
ako moze ukljucenje...
...pozdrav, Gari.
clipper.68gari,
-> #66, nbatocaninEvo da se ne mucite, ovako treba da
izgleda novi deo bez greske (ja sam
malo zesce promenio pocetni source,
pa saljem samo ovako):
**************************************
DBCreate ("TMPXXX", ;
{ {"f_chk", "C", 3, 0}, ;
{"f_name", "C", 12, 0}, ;
{"f_size", "C", 12, 0}, ;
{"f_zip", "C", 12, 0}, ;
{"f_perc", "C", 5, 0} } )
**************************************
pozdrav, Gari
clipper.69ndragan,
-> #8, rpausic/ Sve je tačno, čak i gore ;-<<<<. Sa biserima ne bih opterećivao
/ ovu conf. Imaš li lična iskustva ili si samo pretpostavljao?
Bio sam u toj koži nekoliko godina, a i sad srećem kod naših korisnika
kućne duhove. Što se bisera tiče, samo napred. Kad nakupim dovoljno za
monografiju, štampam i prodajem dok se ne obogatim, a ovde kačim zip
edabi kolege mogle džabe da čitaju :)
clipper.70ndragan,
-> #9, rpausic/ u protivničkom taboru. Tamo su mi knjigovođe ;->
Jedan kliperaš u Zrenjaninu prebegao u knjigovođe.
clipper.71bulaja,
-> #66, nbatocanin│Clipper provaljuje da se ne sme izmeniti string "ABC", jer ga koristi
│Y (vodi se evidencija o tome koliko pokazivaca se referise na jednu
│vrednost), pa se kreira nova lokacija u memoriji.
└───
Jesi li siguran da Clipper ovako radi? Tom tehnikom optimizacije bi se
dobijali vrlo sumnjivi rezultati (tj. nikakvi ukoliko je program dobro
pisan, bez dupliranih promenljivih), uz usporenje i dodatno
komplikovanje Clipper memoru managera.
clipper.72gaston,
-> #54, nbulatovic>│da li je neko uspeo da startuje sve demo programe iz biblioteke sa
>│objektno orijentisanim funkcijama za clipper?
>└───
>Ne, mislim da je Ok radio sam treci demo.
Ako mislis na Object Clipper lib, od onog slovaka iz Piestany, ja sam bez
problema isprobao sva tri demo programa (Demo1..3.prg) i to prevodeci ih
uz pomoc LIB ili sa PLL. Rade super, samo sto pre startovanja Demo3 treba
obrisati sve DBF datoteke ili u njih dodati jos neka polja.
Sto se tice o:Clip (M.Fresee, CyberSoft), ima dva trivijalna primera
(odemo1 i odemo2).
Iskreno receno, davno ne videh (jos od TurboVision) tako
dobar user interface. Sada se spremam da probam da ga ubacim u neku moju
aplikaciju.
Ako si zainteresovan da nesto radis pomocu te biblioteke, ili vec radis,
posalji poruku. Odstampao sam celokupnu dokumentaciju (uz pomoc 2col-a)
i prilicno sam zagrejan za upotrebu. Ako se jos neko javi, mogli bi da
osnujemo grupu,samo da neko drugi bude direktor, ja ti nisam za to, previse
citko se potpisujem ...
Pozdrav Nesa
clipper.74gari,
Narode, evo mene opet!!!
Obratite paznju na sledeci problem:
Uradio sam preko klase browse jednu funkciju koja radi sve
zivo sa podacima (pregledi, unosi, brisanja, izmene, izvrsavanje
funkcija pre i posle izmene, za vreme kretanja kroz datoteku,...)
i imam "malecki" problem:
- Kada se slog brise ili se izvrsi neka funkcija, pa se kontrola
prikaza vrati u tbrowse ne postoji nista sto ce izvrsiti
osvezavanje objekta (BAR GA JA NISAM NASAO). Jednostavno prikaze
sadrzaj browse:nTop, a ne browse:rowPos kao sto je i red.
Ukoliko se odmah posle toga uradi npr. DEL (brisanje sloga), on ce
na poziciji browse:rowPos obrisati slog browse:nTop !?!?!
Medjutim ako izvrsim browse:left, right ili sl. on odjedanput
prikaze stvarnu vrednost browse:rowPos i dalji rad je normalan.
To sam resio sa funkcijom ISPRETURI (sledi source),ali to je na silu.
Prvo sam mislio da sam bio umoran ili da mi je popustila koncentr.,
ali ni do dana danasnjeg nisam uspeo da to uradim drugacije.
Zato pitam sezamovce da li su imali slican slucaj i da li su ga
resili na neki (bilo kakav) elegantniji nacin (citaj BRZI) ?
*********************************************************************
Deo programa u kom MORAM pozvati Glupu funkciju:
*********************************************************************
if "D" $ Zastita && Brisanje uopste dozvoljeno?
if "D" $ Pitanje(9,.f.) && Pitanje ("Da li ste sigurni?")
if ! empty(MaleProc[3])
temp2 := &(MaleProc[3]) && Zadata funkcija PRE brisanja
endif
if rec_lock() && Zakljucaj slog ko sto i treba
delete && ...a onda ga obrisi
if ! empty(MaleProc[2])
temp2 := &(MaleProc[2]) && Funkcija POSLE brisanja
endif
if ! empty(MaleProc[7])
temp2 := &(MaleProc[7]) && Funk. POSLE bilo kakvih izmena
endif
endif
Ispreturi(temp_browse) && E OVO SADA MORAM DA POZOVEM !
Osvezi := .T. ^^^ ^^^^^
temp_browse:RefreshAll() && Ovo mozda ne treba
endif
endif
*********************************************************************
Glupa funkcija:
*********************************************************************
FUNCTION Ispreturi(objektic)
clear typeahead
if objektic:rightVisible == objektic:colCount
keyboard chr(K_RIGHT)
else
if objektic:leftVisible - objektic:freeze == 1
keyboard chr(K_LEFT)
else
keyboard chr(K_LEFT) + chr(K_RIGHT)
endif
endif
RETURN NIL
*********************************************************************
Nije radjeno sa browse:rowPos, jer ja imam inverzno osvetljen CEO
slog, a ne samo tekucu kolonu, pa umesto browse:left() i
browse:right() koristim browse:panLeft() i browse:panRight()...
*********************************************************************
Ko mi ovo resi elegantnije ima pivo od mene! && ili sta vec pije O:]
Pozdrav svima, Gari.
clipper.76nbatocanin,
-> #45, gaston> Elem, lep je taj Brief, i taj QEdit, ali mene nerviraju
> pre svega dve stvari:
>
> 1) Zasto nemaju obelezavanje bloka teksta pomocu
> Shift+strelice ???!!!
Morao bi se pisati makro. Ovako odoka, nije neki problem.
> 2) Turbo IDE je zgodan zato sto cuva redosled ucitavanja
> Verujte, to je ono sto mi zaista treba kod Brief-a, cak
> vise nego automatski pametni template i drugo.
Stavi SET BFILE=.\state.rst i onda će BRIEF u svakom katalogu
ostavljati STATE.RST sa poslednjim stanjem (učitane datoteke, pozicija
kursora, ...) i samo B će te uvek vraćati tamo gde si stao.
H
clipper.77rpausic,
-> #62, bulaja>## bla vise nije tipa C vec P (oznacimo tako pointer), zbog vec
>## obhasnjenog bug-a u FRead().
Ja ne bih rekao da promenljiva postaje tipa pointer, jer takvog
ne verujem da ima u C5.2 (iako ga nisam video), nego mislim da je
suština u tumačenju koje ti je dao nbatocanin, tj. tumačenje
dodele vrednosti stringa: x:="ABC"; y:=x se sada tumači kao u
5.01 dodela vrednosti kod array. Znači, sada bi trebalo ili
napraviti STRCOPY() (kao ACOPY) ili koristiti rešenje v.nesica sa
FREADSTR(), što u oba slučaja zahteva pročešljavanje kompletnog
koda svakog programera koji je radio sa 5.01. Ne znam zašto je to
trebalo CA-u, jer ću se ja lično dobro razmisliti i/ili
pripremiti za prelazak 5.01=>5.2 i to samo ako nađem dovoljno
(bar 1001 :) ) razloga.
clipper.78v.nesic,
-> #74, gari> To sam resio sa funkcijom ISPRETURI (sledi source),ali to je na silu.
Da li si pogledao sample koji stiže uz clipper (browse sample ili
dbu source, nisam siguran).
Tamo sam video nešto slično mada je i to bilo pisano na mišiće :(
clipper.79snemcev,
-> #72, gaston>> Ako mislis na Object Clipper lib, od onog slovaka iz Piestany, ja sam
>> bez problema isprobao sva tri demo programa (Demo1..3.prg) i to
>> prevodeci ih uz pomoc LIB ili sa PLL. Rade super, samo sto pre
>> startovanja Demo3 treba obrisati sve DBF datoteke ili u njih dodati
>> jos neka polja.
Jeste da rade super, al' sporooooooooo.
clipper.80rpausic,
-> #74, gari>## if rec_lock() && Zakljucaj slog ko sto i treba
>## delete && ...a onda ga obrisi
>## if ! empty(MaleProcŠ2Ć)
Prvo mi pada na pamet da ubaciš SKIP posle DELETE? Ostalo ostaje.
Ako nemaš, možda još dodaj posle toga
WHILE !temp_browse:stabilize()
ENDDO
ili nešto slično.
clipper.81d.petrovic,
-> #74, gariĂ> Deo programa u kom MORAM pozvati Glupu funkciju:
E, bas me mrzi da ti sad sve nacrtam O;)), ovde je deo iz moje
funkcije za tbrowse...
obrati paznju na:
bro:stabilize()
while .t.
ch:=0
while !bro:stable .and. Ch==0
ch:=ninkey()
bro:stabilize()
enddo
if bro:stable .and. ch==0
ch:=ninkey(0)
endif
redic:=row()
kolonica:=col()
do case
case ch==27
return(.t.)
case ch==bla...
pera()
case ch==blabla
djura()
otherwise
MoveKey(bro,ch)
endcase
enddo
return
clipper.82d.petrovic,
-> #76, nbatocaninĂ> Stavi SET BFILE=.Đstate.rst i onda će BRIEF u svakom katalogu
Ă> ostavljati STATE.RST sa poslednjim stanjem (učitane datoteke,
Ă> pozicija
ja stavio i ne radi. Imam jedan state.rst i kad sam ga prebacio u
radni dir učitao je njega, ali ne i datoteku. Inače pri izlasku ne
snima stanje taj state.rst
clipper.83bulaja,
**** new file ****
R:\IBMPC\CLIPPER\*.*
----------------------
52abus exe 147952 CA-Clipper 5.2b update sa US verzije 5.2a
52bus exe 160619 CA-Clipper 5.2b update sa US verzije 5.2
clip_52b zip 4805 Sta je sve promenjeno u CA-Clipper verziji 5.2b
The problems resolved by CA-Clipper 5.2B include:
1. Fixed a Virtual Memory Integrity Failure in FOPEN() when the file
name is numeric instead of a character string.
2. Fixed a Virtual Memory Integrity Failure when calling AADD() to
increase the size of an array.
3. Fixed a Virtual Memory Integerity Failure that occured when an
ACHOICE() user function deleted elements from the menu selection
array. ACHOICE() now allows the user function to add, delete, or
modify existing elements without causing any problems in ACHOICE().
4. Fixed a Virtual Memory Integrity Failure in the Internal Runtime
Event System. This was causing the DBFCDX driver to hang as well as
various "unexplainable" errors.
5. Fixed a Virtual Memory Integrity Failure in the debugger when
viewing multiple nested arrays. Tbrowse was producing a parameter
error when viewing multiple nested arrays. In some instances this
produced a Virtual Memory Integrity Failure.
6. Fixed a Virtual Memory Integrity Failure in the debugger's memory
allocator. (STAR Issue# 737689)
7. Fixed INDEXKEY() memory corruption problem. INDEXKEY() would
occasionally return a garbage string when called repeatedly. This
sometimes caused a Virtual Memory Integrity Failure.
8. Fixed MEMOEDIT() buffer memory corruption problem. This occurred
when MEMOEDIT() was called with a user defined function. This would
result in various memory related errors including a Virtual Memory
Integrity Failure.
9. Fixed slow disk I/O on replaces on large DBF's with non-unique
indexes. The performance has been improved to a speed which is
comparable to CA-Clipper 5.01a.
10. Fixed the releasing of all relations (in all workareas) when any
child dbf was closed. Now closing a child database releases only the
relations that it is involved with.
11. Fixed the DBFNDX Replaceable Database Driver so that it now properly
seeks on a date value with SET DELETED ON.
12. Fixed DBCREATE() to properly return a NIL value as documented.
13. Fixed INDEXORD() so that it now returns a zero when no database is
open rather than generating a runtime error.
14. Fixed some occurances of internal error 1210 (database and index are
out of sync).
15. Fixed many occurances of internal error 415 (can not open external
overlay file).
16. Fixed the Runtime Memory Manager so that it now returns an EG_MEM
(5300 "Memory Low Warning") before generating a memory exhausted
error.
17. Fixed Runtime failures that occured when CA-Clipper mistakenly tried
to use non-existent EMS memory.
18. Fixed FREAD() so that it does not modify variables that it shouldn't
have access to.
19. Fixed BROWSE() so that it no longer causes the repositioning of a
file to BOF() when editing takes place in a new record.
20. Fixed the debugger so that it is no longer necessary to specify the
default file extension (.PRG or .PPO) when opening a file.
21. Fixed the debugger so that it correctly searches the path (indicated
by the PATH environment variable) when searching for a file to open.
22. Fixed the debugger so that it does not produce "Argument error +"
when the F6 key is pressed to view databases.
23. Fixed DBU so it now correctly parses a file name that contained a
drive letter and colon (:) but no backslash (\) (such as C:TEMP).
24. Fixed numerous bugs in the R.L. utility.
25. Fixed the compiler screen to include the missing /t and /z options
in order to match the documented options.
26. Fixed the spelling of OrdDestory to OrdDestroy in STD.CH for the
DELETE TAG command.
27. Fixed the "Guide to CA-Clipper" .NG file so that the Norton Guide
engine may now be unloaded from memory.
clipper.84gari,
-> #78, v.nesic> Da li si pogledao sample koji stize uz clipper (browse sample ili
> dbu source, nisam siguran).
Jesam, nema :(((((((((((((
I dalje mi je problem neresen...
clipper.85gari,
-> #80, rpausic>> if rec_lock() && Zakljucaj slog ko sto i treba
>> delete && ...a onda ga obrisi
>> if ! empty(MaleProcS2C)
> Prvo mi pada na pamet da ubacis SKIP posle DELETE? Ostalo ostaje.
> Ako nemas, mozda jos dodaj posle toga
> WHILE !temp_browse:stabilize()
> ENDDO
> ili nesto slicno.
1. Posle skip ti ispomera redove (prema "gore"), a uz to
se desava isto sto i pre...
2. Umesto while...enddo koristim po preporuci CA
temp_browse:forceStable() i to radi sasvim korektno
I dalje mi ostao problem neresen...
clipper.86gari,
-> #81, d.petrovic>> Deo programa u kom MORAM pozvati Glupu funkciju:
> E, bas me mrzi da ti sad sve nacrtam O;)), ovde je deo iz moje
> funkcije za tbrowse...
> obrati paznju na:
To dalje nema veze sa mojim problemom. Inace mi
funkcija za rad sa datotekom ima cca 1000 linija.
Uzgred sta je ninkey() ???
I dalje je nereseno... (sada vec mozda i neresivo :( )
clipper.87rpausic,
-> #85, gari>## 1. Posle skip ti ispomera redove (prema "gore"), a uz to
>## se desava isto sto i pre...
Suština onog što sam hteo da ti kažem je da ako ti je SET DELETED
ON moraš ta se pomeriš sa obrisanog sloga, tačnije da pronađeš
prvi koji nije obrisan. Kada se na njega pozicioniraš, posle
refreshall() bi trebalo da je sve OK, opet u zavisnosti od toga
kako si realizovao ostatak dbrowse-a.
>## 2. Umesto while...enddo koristim po preporuci CA
>## temp_browse:forceStable() i to radi sasvim korektno
To je iz C5.2? Nemam ga. Radim još u C5.01a. Da si mi poslao više
sorsa, probao bih da li može da se reši sa njim. Probaj ti, ako
te ne mrzi, pa ako je bag novog Clipper-a, da se ne patim :)
clipper.88gari,
Prilikom prelaska na Clipper 5.2b
desilo mi se sledece:
***************************************************
118 if rec_lock()
119 if &t_uslov
120 temp := "1"
121 else
122 temp := "0"
123 endif
124 replace DOBAR with temp
125 unlock OVDE JE GRESKA ?!
126 endif
***************************************************
I ponudi ono njegovo CANCEL/DEFAULT, a zna se da je
bolje da izaberes CANCEL jer po Marfijevom zakonu
svaki put nesto jos gore uradi ako stavis DEFAULT i
sretno iznenadjenje (nema u NG-u):
Error DBFNTX/1210 Corruption detected
Called from LOCKERRHAN(0)
Called from (b)INITHANDL$(0)
Called from DBUNLOCK(0)
Called from E_ST_ZAK(125)
Called ...
E ja bih molio lepo one koji BILO STA znaju sa ovim
sta mogu/ne mogu da uradim <spremam zolju za CA ;>
p.s. maybe .or. !maybe:
Izgleda (probao "samo" 30-tak puta) da se
to desava kada se koristi blinker i/ili
kada se ubacuju podaci za debuger (bez /b) ???
clipper.89gari,
-> #87, rpausicNe desava se to meni zbog delete,
nego zbog bilo cega sto radim van TBROWSE-a
npr. pritiskom na F5 da ti pokaze stanje
na ziro racunu i sl., pa kada se vracam
nazad E ONDA on pocne svoju bajkuŰOw<ďb
sorry za djubre, ONůLINE odgovaram da bih
bio azuran...
pozdrav
clipper.91d.petrovic,
-> #88, gariĂ> 125 unlock OVDE JE GRESKA ?!
Ne mora da znači. Greška može da bude i posle te linije, a on na
samonjmuznaninačin prijavi da je tu. Šta radi sa unlock all ?
clipper.90d.petrovic,
-> #86, gariĂ> To dalje nema veze sa mojim problemom. Inace mi
Ă> funkcija za rad sa datotekom ima cca 1000 linija.
Duga neka funkcija ;)). Ova je kratka i poziva puuuuuuno drugih gde
se štošta čačka i sređuje.
Ă> Uzgred sta je ninkey() ???
isto šti i inkey(), funkcija nbatocanina za scan tastature uz par
mojih dodataka.
clipper.92nbatocanin,
-> #57, cnenad> Imenjace, program izvrsi zamenu unesenih podataka preko
> get u prazna polja novog sloga a kad to zavrsi treba da se
> pojavi pitanje da li da se unosi novi artikl ili da se
> izadje iz modula i vrati u glavni program.
Ne bih da cepidlačim, ali uđi u dibager i korak po korak nađi naredbu
gde se zaglavljuje. Tako ćeš nam uštedeti ogromno vreme - ti ćeš se
najlakše snaći u svom kodu.
clipper.93nbatocanin,
-> #71, bulaja>│ Clipper provaljuje da se ne sme izmeniti string "ABC",
>│ jer ga koristi Y (vodi se evidencija o tome koliko
>│ pokazivaca se referise na jednu vrednost), pa se kreira
> nova lokacija u memoriji. └───
> Jesi li siguran da Clipper ovako radi?
Sasvim. Za svaku promenljivu Clipper čuva malu strukturu sa raznim
podacima. Ako je promenljiva kratka (datum, broj, ...) onda se
vrednost čuva u toj strukturi, a ako je nešto kršnija čuva se u SVOS
memoriji, a struktura čuva samo pokazivač na pravu vrednost. A := B
se izvodi tako što se kopira _struktura_ od B i dodeljuje A-u.
Vrednost se ne kopira. Uostalom, kako bi onda radilo ovo:
x := Space(60000)
a := Array(4000)
AFill (a, x)
> Tom tehnikom optimizacije bi se dobijali vrlo sumnjivi rezultati (tj.
> nikakvi ukoliko je program dobro pisan, bez dupliranih promenljivih),
> uz usporenje i dodatno komplikovanje Clipper memoru managera.
Pazi, ovde se ne radi o optimizaciji dupliranih stringova: Clipper će
za sledeće:
x := "ABC"
y := "ABC"
kreirati dve kopije "ABC". Ovde se radi o sistemu operisanja velikim
objektima koji je po meni jako dobar. Naime, Clipper _automatski_ kreira
duplikate stringova, a korisnik o tome ne treba da vodi računa (osim
ako ne koristi FRead ili neku funkciju koja _direktno_ menja string).
clipper.94bulaja,
-> #93, nbatocanin│Ako je promenljiva kratka (datum, broj, ...) onda se vrednost cuva u toj
│strukturi, a ako je nesto krsnija cuva se u SVOS memoriji, a struktura
│cuva samo pokazivac na pravu vrednost. A := B se izvodi tako sto se
│kopira _struktura_ od B i dodeljuje A-u.
└───
Otprilike se i moje objasnjenje svodi na isto :) - Clipper interno
koristi pointerske tipove (potpuno normalno), ali neda ih za javnost :).
Svejedno se opet svodi na metod optimizacije koji mi se uopste ne
svidja jer zavisi iskljucivo od internog algoritma i ja tu ne mogu nista
da izmenim. Ne znam sta Clipper smatra kratkom promenljivom, ali je u
primeru sa FRead() izvodio kerefeke sa stringom duzine tri (3) bajta.
Bilo bi bolje da Clipper bukvalno shvati A := B i iskopira celu
strukturu, nego da mi se nesto pravi pametan :) i kopira samo pointer.
Petljanje sa pointerima nek prepusti programeru da odluci da li mu treba
ili ne, ali zato nek CA pusti operacije sa pointerima i adresama u
public.
clipper.95bestbp,
Evo je 'zakrpa' za probleme sa MDX-om u Clipper-u 5.2
fixmdx.execlipper.96bulaja,
Info sa Blinker BBS-a:
SWPRUNCMD changes in Blinker version 2.1
The recently shipped Blinker version 2.1 has introduced a change in the
default settings for the application swapper, SWPRUNCMD(), which at times
may result in network disconnections or mouse problems when swapping.
To remain compatible with the swapper defaults in Blinker version 2.01,
I recommend adding the undocumented function SWPSAVCOM(logical false)
prior to calling SWPRUNCMD().
A later maintenance release of Blinker will correct this and other
problems should any arise. So far this appears to be an exceptionally
clean release with no other known bugs.
clipper.97dejanr,
-> #96, bulaja>> The recently shipped Blinker version 2.1
Što je ujedno i vest da postoji Blinker 2.1. Kakvi li su mu noviteti?
clipper.98mickeyl,
-> #88, gari=> 125 unlock OVDE JE GRESKA ?!
=> 126 endif
Probaj staviti unlock iza endif-a. Možda mu smeta unlock unutar if-a
za zaključavaje sloga.
clipper.99gari,
-> #98, mickeyl> Probaj staviti unlock iza endif-a.
To je radilo korektno PRE patch-ovanja na Clipper 5.2b
clipper.100tvucko,
Da li je neko čuo za SemaWare Editor verzija 1.0 ili
1.1 (firma koja pravi QEdit). Editor bi trebao da može
koristiti datoteke dužune i do 32 MB(!!!). Informacija
sa QEdit BBS-a (osim ovoga postoje na tom BBS još neke
tehničke informacije o editoru), ali ne postoji info.
gde se moze naći i po kojoj ceni. Sve one koji nesto
Hviše zanju molim da mi se jave. Predpostavljam da će
svi korisnici QEdita biti zainteresovani zato što je
editor nova verzija popularnog QEdita 2.15.
TVucko
--->>>
clipper.101dcolak,
-> #100, tvucko│ koristiti datoteke dužune i do 32 MB(!!!). Informacija
│ sa QEdit BBS-a (osim ovoga postoje na tom BBS još neke
│ tehničke informacije o editoru), ali ne postoji info.
│ gde se moze naći i po kojoj ceni. Sve one koji nesto
Jel ima još nešto na tom BBS-u, kao npr. neka novija verzija
QEdit od 2.15? Mi imamo taj SW program road runner Qedit.. No,
fali nam QConfig fajl..
Sledge DAMMIR!
clipper.102nbatocanin,
-> #94, bulaja> Ne znam sta Clipper smatra kratkom promenljivom,
> ali je u primeru sa FRead() izvodio kerefeke sa stringom
> duzine tri (3) bajta.
Dužina promenljive se određuje isključivo na osnovu tipa, tj. svaki
string ide u SVOS, bez obzira na dužinu.
> Bilo bi bolje da Clipper bukvalno shvati A := B i iskopira
> celu strukturu, nego da mi se nesto pravi pametan :) i
> kopira samo pointer.
Ne bih se složio ;) Uostalom, to tako radi još od ko zna koje verzije
Clipper-a, pa se niko nije još bunio. Razmisli kako bi radile
funkcije kojima se kao argumenti prosleđuju memo polja:
FOR i := 1 TO MLCount (cBigBuffer)
? MemoLine (cBigBuffer,,i)
NEXT
A ako ovde ne prosleđuješ po vrednosti, gubiš principijelnost (koja
je, doduše, kod nizova malo poljuljana). Po meni je ovakav sistem
odličan za ovakve primene.
> Petljanje sa pointerima nek prepusti programeru da odluci da li mu
> treba ili ne, ali zato nek CA pusti operacije sa pointerima i
> adresama u public.
Pazi, ovo je isto i u starijim verzijama, tako da CA tu nema ništa.
Jedino nisam stigao da pogledam zašto je onaj primer radio ;) u 5.01.