PCPROG.3

26 Jul 1993 - 22 Apr 1994

Topics

  1. algoritmi (290)
  2. dizajn (19)
  3. ms.dos (270)
  4. windows (360)
  5. asembler (213)
  6. basic (10)
  7. jezici (148)
  8. pascal (878)
  9. cccc (554)
  10. cpp (195)
  11. clipper (1125)
  12. baze.podataka (232)
  13. razno (540)

Messages - clipper

clipper.1 nbatocanin,
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.2 nbatocanin,
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.3 nbatocanin,
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.4 nbatocanin,
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.5 nbatocanin,
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.6 dejanr,
>> > "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.7 d.petrovic,
Ă>> 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.8 rpausic,
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.9 rpausic,
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.10 cnenad,
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.11 d.petrovic,
Ă> 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.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. funkcije.
clipper.13 ialeksic,
>>>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.14 cnenad,
ŁŁŁ 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.15 rpausic,
>## 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.16 rpausic,
>## 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.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: 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.18 cnenad,
ŁŁŁ 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.19 cnenad,
ŁŁŁ 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.20 cnenad,
ŁŁŁ 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.21 cnenad,
Zaboravio 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.22 draganm,
*> 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.23 d.petrovic,
Ă> Š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.24 rpausic,
> 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.25 snemcev,
>> 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.26 goranr,
Ne 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.27 nbatocanin,
> 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.28 nbatocanin,
> Lepo su to smislili oni što prodaju drogu, šteta ne > primeniti ;> Uh, ubediste me da promenim mišljenje ;)
clipper.29 nbatocanin,
> 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.30 nbatocanin,
> 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.31 nbatocanin,
> 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.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, pročitao sam Računare 93, ali me zanima mišljenje nekog ko je ovo probao u praksi. B)Miša
clipper.33 gari,
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.34 bulaja,
│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.35 bulaja,
│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.36 goranr,
Pa, 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.37 nbatocanin,
> 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.38 nbatocanin,
> 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.39 nbatocanin,
> 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.40 d.petrovic,
Ă> 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.41 d.petrovic,
Nije 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.42 ialeksic,
>>> Za sve, u stvari. Bilo kakav pristup TB objektu rezultuje greskom. Fala bogu ima jedan izuzetak: CARGO !
clipper.43 ialeksic,
>>> 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.44 ialeksic,
>>>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.45 gaston,
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.46 v.nesic,
> 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.47 d.petrovic,
Ă> 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.48 d.petrovic,
Ă> fread(infile,čctmp,3) <- Odve stavi ctmp:=fredstr(infile,3) a ? ;))) (infile,,3)
clipper.49 mickeyl,
=> 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.50 v.nesic,
> Ć> fread(infile,čctmp,3) <- Odve stavi ctmp:=fredstr(infile,3) > a ? ;))) (infile,,3) Ne nego baš freadstr(infile,3) !
clipper.51 bulaja,
│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.52 dejanr,
>> 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.53 bulaja,
│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.54 nbulatovic,
da li je neko uspeo da startuje sve demo programe iz biblioteke sa objektno orijentisanim funkcijama za clipper?
clipper.55 d.petrovic,
Ă> 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.56 gari,
▀█******************************************** ** 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.57 cnenad,
ŁŁŁ 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.58 bulaja,
│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.59 bulaja,
│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.60 d.petrovic,
Ă> 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.61 snemcev,
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.62 bulaja,
│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.63 bulaja,
**** new file **** R:\IBMPC\CLIPPER\*.* ---------------------- fixlib2 zip 15674* Koriscenje Clipper 5.01 biblioteka u CA-Clipper 5.2
clipper.64 d.petrovic,
Ă> 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.65 nbatocanin,
> 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.66 nbatocanin,
> 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.67 gari,
Evo dobrovoljca za sledecu turu, ako moze ukljucenje... ...pozdrav, Gari.
clipper.68 gari,
Evo 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.69 ndragan,
/ 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.70 ndragan,
/ u protivničkom taboru. Tamo su mi knjigovođe ;-> Jedan kliperaš u Zrenjaninu prebegao u knjigovođe.
clipper.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? 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.72 gaston,
>│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.74 gari,
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.76 nbatocanin,
> 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.77 rpausic,
>## 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.78 v.nesic,
> 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.79 snemcev,
>> 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.80 rpausic,
>## 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.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: 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.82 d.petrovic,
Ă> 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.83 bulaja,
**** 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.84 gari,
> 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.85 gari,
>> 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.86 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: 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.87 rpausic,
>## 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.88 gari,
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.89 gari,
Ne 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.90 d.petrovic,
Ă> 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.91 d.petrovic,
Ă> 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.92 nbatocanin,
> 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.93 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? 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.94 bulaja,
│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.95 bestbp,
Evo je 'zakrpa' za probleme sa MDX-om u Clipper-u 5.2 fixmdx.exe
clipper.96 bulaja,
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.97 dejanr,
>> The recently shipped Blinker version 2.1 Što je ujedno i vest da postoji Blinker 2.1. Kakvi li su mu noviteti?
clipper.98 mickeyl,
=> 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.99 gari,
> Probaj staviti unlock iza endif-a. To je radilo korektno PRE patch-ovanja na Clipper 5.2b
clipper.100 tvucko,
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.101 dcolak,
│ 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.102 nbatocanin,
> 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.
clipper.103 tvucko,
Bio bih Vam zahvalan kada bi mogli da mi ostavite verziju SW editora koju Vi pos_żdujete. Oatak informacija SW 1.0 editoru i BBS je zakace uz ovu poruku TSE.ARJ TVucko --->>> tse.arj
clipper.104 cnenad,
Na predloge korisnika iz ove teme a u vezi koriscenja DEBBUGER-a za pronalazenje razloga zasto mi se zaglavljuje program to sam i uradio. Medjtim problem je sto je program zaglavio i debugger tako da ne znam sta sada da radim ! Ima li neko ideju ? Inace i dalje se zaglavljuje na redovima gde se vrsi zamena sa REPLACE, (koju izvrsi) dok je na ekranu ispisano treptuce SACEKAJTE !!!
clipper.105 niklaus,
Ne da imam QCONFIG.EXE nego imam kompletni registrovani QEdit v2.15. Uzgred imam i TSR varijantu (jako moćna stvar) - QEditTSR v1.01 koji radi sve što i non-TSR varijanta. Uzgred, QTSR nije registrovan ali nema veze ima i QCONFIG i programčić za koverziju konfiguracionog fajla od QEDIT-a v2.15! Ako ti treba nešto od ovog -> mail... (:niklaus:) P.S. Za prebacivanje u dir sam se angažovao, ali bulaja ne želi da se suočava za "zakonom" (shame on you (;)
clipper.106 spantic,
U subotu sam pitao u klubu da li se nekom desilo da mu Clipper 5.01 ne sarađuje sa DOS 6.0. E pa nije baš u pitanju sam DOS, već Double Space. Ako je on u memoriji, počinju problemi sa debagerom i program koji se prevede ne radi. Ovo su simptomi koji se javljaju kod mog prijatelja. Ima li neko slična iskustva ili objašnjenja? Da, kad se Double Space ukloni sve radi.
clipper.107 bulaja,
**** new file **** R:\IBMPC\CLIPPER\*.* ---------------------- bumenu13 zip 10763 BuMenu 1.3, poboljsani sistem menija za Clipper (bulaja) 10.08.93 - v1.3 ───────────────── - automatsko (inteligentno:) podesavanje boja u menijima zavisno od aktivnog SetColor() - kretanje izmedju opcija i tasterima Tab & Shift-Tab
clipper.108 dr.grba,
>> - Da se zada frekvencija skaniranja izvornih podataka: na primer, >> želiš da na mreži interaktivno prikazuješ/menjaš spisak aktivnih >> procesa. žini mi se da se približava vreme kada će se tražiti ovakva mogućnost i unutar Clipper-a. Imao sam prilike tako nešto da vidim samo unutar Paradox 3.5 paketa, u jednom pratećem primeru. Koliko sam uočio u kratkom pogledu na script, u pitanju je jedna debela makroinstrukcija kojoj samo dojaviš frekvenciju i funkciju, a ona ostalo šiba sve u 16...
clipper.109 dr.grba,
>> Namestio sam set clipper=f40, ali i dalje zaglavljuje. Proveri i FILES=45 u config.sys, 40 za clipper i 5 za DOS.
clipper.110 dr.grba,
>> 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 Jel' može jedan koautor? (:
clipper.111 dejanr,
>> > Kad nakupim dovoljno za monografiju, štampam i prodajem dok se >> > ne obogatim, a ovde kačim >> >> Jel' može jedan koautor? (: MONOgrafija je MONO jer nema koautora :))
clipper.112 dcolak,
│ Ne da imam QCONFIG.EXE nego imam kompletni registrovani │ QEdit v2.15. Uzgred imam i TSR varijantu (jako moćna Došlo je do zabune. Jer kao što i vrapci na granama znaju, potreban nam je QEdit veći od 2.15 ;) Sledge DAMMIR!
clipper.113 zddb,
Svašta! U fajlovima za upgrade clipper-a 5.2 fali vam najvažnije! Nema u arhivi fajla patch.exe, bez kojega nema korekcija. Da li je uopšte neko ovdje i pogledao te arhive ili svi samo kupe i slažu na diskete "ko čuma đecu!"!? Pozdrav, Zoran D. Brkić
clipper.114 gari,
> Svasta! U fajlovima za upgrade clipper-a 5.2 fali vam > najvaznije! Nema u arhivi fajla patch.exe... Imas ga u arhivi za 5.2a
clipper.115 nbatocanin,
Neko se žalio na grešku "Corruption detected" u 5.2. Meni se ovo dešavalo kada indeks nije ažuran. Na primer, promenim strukturu DBF-a i zaboravim da reindeksiram datoteku i sl. Naime, izgleda da 5.2 ima nešto precizniji mehanizam za otkrivanje neažurnih indeksa.
clipper.116 nbatocanin,
> Na predloge korisnika iz ove teme a u vezi koriscenja > DEBBUGER-a za pronalazenje razloga zasto mi se zaglavljuje > program to sam i uradio. Uh, evo baš sam probao da provalim šta nije u redu, ali nisam uspeo - imaš veoma nečitak listing i nije ga lako pratiti. Da ponovim savet sa dodatnim objašnjenjima. Prvo, potrudi se da lociraš grešku na *jednu* jedinu KONKRETNU naredbu. Svaki REPLACE zameni tako da vidiš koja promenljiva zeza: REPLACE a WITH b, c WITH d zameni sa REPLACE a WITH b REPLACE c WITH d Naravno, samo na mestu gde zaglavljuje. E onda dibagerom dođeš do ove naredbe i sa ? proveriš sve vrednosti (ono što menjaš i ono čime menjaš!), pa ideš dalje. Onda ćemo valjda uspeti da ti pomognemo.
clipper.117 toma,
Pitanje? Jel ima neko Yu_upper funkciju koja radi pod UKRAS-om? Gosn. Bulajo, zašto UKRASCLP.ARJ nije u CLIPPER dir-u?
clipper.118 nbatocanin,
>>> - Da se zada frekvencija skaniranja izvornih podataka: >>> na primer, želiš da na mreži interaktivno >>> prikazuješ/menjaš spisak aktivnih procesa. > > žini mi se da se približava vreme kada će se tražiti > ovakva mogućnost i unutar Clipper-a. Pa ovo nije problem za Clipper. Ja koristim sistem za ovo, a koristi ga i novi DBU.
clipper.119 bulaja,
│Gosn. Bulajo, zasto UKRASCLP.ARJ nije u CLIPPER dir-u? └─── Ako se dobro secam, bila je diskusija svojevremeno oko ovoga i zakljucili smo da bi trebala podrska za razne jezike da ide zajedno u kompletnom ukras paketu (onom koji je u r:\ibmpc\yu, tamo su valjda funkcije za C i Pas). U medjuvremenu ocigledno nista nije ispalo od tog ukrasa, pa nema vise smisla forsirati mrtav "standard" :).
clipper.120 solajac,
U programu NTOC.PRG (num2str.zip, 15.3.93.) postoji greška: U 57. liniji stoji: Ret := N999toC (Int(x/1000000)) a treba: Ret := N9999toC (Int(x/1000000)) Pozdrav, Solajac.
clipper.121 bulaja,
**** new file **** R:\IBMPC\CLIPPER\*.* ---------------------- nettol zip 167277 Netto 1.1, Novell NetWare API Library za CA-Clipper 5.2 Netto Novell NetWare (tm) API Library for CA-Clipper (tm) Release 1.1 7/15/93 NETTO is a public domain software library of code written for CA-Clipper application development language from Computer Associates Internal, Inc., version 5.2 and above. NETTO provides access to many of the Novell NetWare application programming interfaces (APIs). The APIs are accessed through either a simple function call, or via a command defined by the NETTO library.
clipper.122 bulaja,
Ovo sam nasao u dokumentaciji za Netto, izgleda jako zanimljivo: -> At release time, a product from SofDesign International and ObjecTech, -> Inc. called ExoSpace (tm) was released, which is a DOS Extender -> designed to run CA-Clipper applications in protected mode. Btw source code za Netto Lib se ocekuje na Sezamu za dva-tri dana. Izaslo je i nekoliko patcheva za NanForum Lib koji dodaju kompatibilnost sa ExoSpace, patch #8 (keyoboard funkcije) je takodje u CLIPPER dir-u. Takodje je izasao i Clipper 5.2c patch, stay tuned :).
clipper.123 mark,
Da li je moguce sa Sezama skinuti neki prevodilac i linker fur Clipper? <Marko>
clipper.124 bulaja,
│Da li je moguce sa Sezama skinuti neki prevodilac i linker fur Clipper? └─── Jedini Clipper prevodilac zove se Clipper (ili sad CA-Clipper) i ne moze se skinuti sa Sezama :).
clipper.125 dejanr,
>> Da li je moguce sa Sezama skinuti neki prevodilac i linker fur Clipper? Nije mi baš jasno šta si pitao. Clipper je (u prvoj aproksimaciji ;) prevodilac (kompajler) tako da ne znam za što bi bio potreban još neki prevodilac. Možda neki predprocesor? Što se linkera tiče, nemamo ni jedan koji bi bio PD/SW a koji bi konkurisao Blinker-u koji je komercijalni program i kao takav se ne može preuzeti sa Sezama. Ono što se može preuzeti to su pre svega razne biblioteke za Clipper, onda razni oficijelni upgrade-i Clipper-a tj. ispravke njegovih bagova i takođe neki upgrade Blinkera sa 2.0 na 2.01. Sve to je u direktorijumu IBMPC\CLIPPER, pa pogledaj.
clipper.126 nbatocanin,
Evo nove verzije funkcije NtoC za ispisivanje broja slovima. ntoc.zip
clipper.127 dr.grba,
>> >> Jel' može jedan koautor? (: >> >> MONOgrafija je MONO jer nema koautora :)) A sad sam uočio i skraćenicu meni namenjenu : mo NO GR. afija ... (:
clipper.128 bulaja,
**** new file **** R:\IBMPC\CLIPPER\*.* ---------------------- 52cus a01 182567 CA-Clipper 5.2c update sa US verzije 5.2 (#1/2) 52cus a02 179909 CA-Clipper 5.2c update sa US verzije 5.2 (#2/2) Problems resolved by CA-Clipper 5.2c: 1. Fixed most instances of the DBFNTX/1210 error. 2. Fixed INDEXKEY() so that when it is called with an invalid order argument it will no longer corrupt the data at memory location 0000:0000 in dos and will no longer generate a General Protection Error in Exospace. 3. Fixed CMEM.OBJ (in Clipper.lib) so that the malloc(), _fmalloc(), free() and _ffree() memory allocation functions will return the correct information. 4. Fixed VM Integrity error when evaluating detached code blocks that are nested three or more deep. 5. Fixed VAL() so it no longer left justifys the result. 6. Fixed ACHOICE() so that it will not redraw the menu window after returning from the user specified function unless: A. the user specified function changes the number of elements in the menu array. B. the user specified function returned the new return code of AC_REDRAW (which can be found in ACHOICE.CH and has the numeric value of 4). 7. Fixed the Expanded Memory Manager so it will not attempt to use more than eight megabytes of EMM. Currently, Clipper can not take advantage of more than eight megabytes of EMM. Please note that the printed documentation is incorrect. This was the cause of many corruptions on systems that had more than eight megabytes of expanded memory. 8. Fixed an incorrect calculation in _xvalloc() that caused the Virtual Memory Manager to allocate 1K to much if the requested size + 16 (in bytes) was an even multiple of 1024. 9. Fixed an internal calculation that did not account for overflow when converting a segment:offset address to an absolute address. This could only be encountered by calling the VM API function:_xvalloc(). 10. Fixed several problems in the DBFCDX replaceable database driver. 11. Fixed a compatability problem between CA-Clipper Tools-II and CA-Clipper 5.2x. Developers using CA-Clipper Tools-II noticed unresolved symbols at link time. The CT2PATCH.OBJ file will resolve these problems and should be included as an object on the link line. Please note that CT2PATCH.OBJ is only intended for use with CA-Clipper Tools-II, those not using CA-Clipper Tools-II should not include this file in their applications. 12. Fixed DBU so that closing a file with an associated filter will no longer cause a DBCMD/2001 error. 13. Fixed DBU so that performing a replace will no longer cause a "Lock Required" error. 14. Fixed REPORT FORM so header will print when creating a report whose width is greater than 254 characters. 15. Fixed REPORT FORM so that it now ejects properly for groups. 16. Fixed REPORT FORM so that double spaced forms will now print properly. 17. Determined that the EG_SYNTAX error in REPORT FORM was not caused by an empty database. It was caused by the absence of a field name for the report. This is the correct behavior. 18. Fixed REPORT FORM so that it will respect the "SUMMARY ONLY" option when requested. 19. Fixed REPORT FORM so that it no longer prints an extra form feed after the report is completed. 20. Fixed RL so that it will save entered data from all entry screens instead of only the current display screen. 21. Fixed RL so that it will no longer save the rightmost column when it is empty. 22. Fixed RL so that it accepts "T" or "F" in it's question fields. It previously was limmited to "Y" or "N".
clipper.129 saks,
Da li iko ziv ima neku biblioteku za Cl501 pomocu koje se mogu kreirati objekti a da isti budu dostupni i CLD-u ? Do sad sam video samo verziju CLAS(y) za Cl500, i istu demonstracionu za 501. Ako neko raspolaze nekom takvom bibliotekom, molio bih istog da me kontaktira putem poste, jer sam jako zainteresovan. Saks
clipper.130 ialeksic,
Da li neko zna kako se moze prekoraciti ogranicenje od 4096 elemenata po dimenziji za ARRAY? [Bez gimnastike ;) ].
clipper.131 nbatocanin,
> U programu NTOC.PRG (num2str.zip, 15.3.93.) postoji > greška: Hvala na ispravki, ovo sam video tek kad sam poslao novu verziju. U njoj nema ovih problema (nadam se :) ).
clipper.132 ndragan,
/ mehanizam povezivanja zavisi od datoteke indeksa koji se u kliperu ne / azurira automatski za sve radne oblasti koje koriste isti indeks. Cak Tu me je i fokspro razočarao - isto ne osvežava indekse u drugim oblastima. Ono što je video kad je otvorio, to mu je.
clipper.133 gaston,
Khm, khm ... Problem i pitanje od jednog kliperasa za drugove foxovce: 1) Nabavio sam (gresna mi kliperska dusa) Fox za Dos 2.5 with Dev. Kit. Jedino sto su neki delovi PAK arhiva na disku osteceni, konkretno deo za extended support lib (eslx.pa2) i knowledge base (psskb.pak). (Boze, pardon, moderatore, nemoj da ponistavas ovu poruku, nije piratska majke mi !) Da skratimo, uspeo sam da instaliram Standard EXE supp.lib. i Stand-Alone EXE (bez Extended EXE supp.lib.). Sa standard suppportom je sve OK, ali kako i sta treba uraditi da se napravi nezavisni EXE fajl ? U fox dir-u od exe fajlova imam sledece: FOX FOXPROX FOXR FOXPRO PATCH - dovde znam sta je sta FOXBIND - sta je ovo ? WLINK8 - ovo je valjda Watcom linker ???? - gde je kompajler ??? Ima li kompajlera u avionu ? Ako ga nema, ima li ga kod koga od vas ? 2) Ima li koja lepa knjiga za foksic ? 3) Ima li fox pro neki konfiguracijski fajl poput dibejzovog config.db ? Ajd pa tako ... Nesa P.S. Ako cika moderator vise voli Clipper nego foksic, onda sam ga trajno na_ebo ...
clipper.134 bulaja,
**** new file **** R:\IBMPC\CLIPPER\*.* ---------------------- clhlp23 zip 174678 ClipHelp v2.3, help sistem za Clipper 5.01/S87 ClipHelp is intended to help you incorporate attractive and effective on-screen help in your applications, providing: * An almost unlimited number of help topics. * Topics size of from just a few lines to a virtually unlimited length. * Easily incorporated context-sensitivity. * Single and multi-user applications suitability. * Full color potential - almost all of the 128 basic combinations and their 128 flashing counterparts. * Easily learned color editing facility. * Ability to use text generated with your preferred ASCII text editor, such as QEdit. * Facility for capturing parts of your application's screen presentations at run time and later inclusion in full color in the help file using ClipHelp's color editor. * Automatic generation of user manuals for your applications built from ClipHelp's files, including automatically generated tables of contents (Registered users version). * Ability to customise help screen and index border text when ClipHelp is incorporated in applications where a language other than English is used (Registered users version). Please note that in the Shareware version the size of help files is limited to about 250 lines, or about 20 screen displays, which it is hoped will be large enough for you to be able to thoroughly test ClipHelp and decide whether you wish to become a Registered User.
clipper.135 nbatocanin,
> Da li neko zna kako se moze prekoraciti ogranicenje od > 4096 elemenata po dimenziji za ARRAY? [Bez gimnastike ;) Nikako bez gimnastike ;) Možda je sledeće rešenje: razbiješ niz na dovoljan broj podnizova od po 4096 elemenata. Zatim umesto poziva elementa niza Big[i] koristiš funkciju Big(i) koja računa koji element tražiš i daje ti odgovarajući. Ako ti je stalo do notacije, možeš koristiti nešto ovako: #translate Big[<x>] => BigFunc(<x>) BigFunc ne mora biti funkcija - sve se može izvesti u jednoj liniji!
clipper.136 mickeyl,
=> Sa standard suppportom je sve OK, ali kako i sta treba uraditi da se => napravi nezavisni EXE fajl ? U fox dir-u od exe fajlova imam sledece: Da sa naredbom BUILD EXE! Prije toga ide BUILD PROJ .... Pogledaj HELP! => 3) Ima li fox pro neki konfiguracijski fajl poput dibejzovog config.db ? Da CONFIG.FP!
clipper.137 cnenad,
ŁŁŁ ne saraduje sa DOS 6.0. E pa nije bas u pitanju sam DOS, ŁŁŁ vec Double Space. Ako je on u memoriji, pocinju problemi sa ŁŁŁ debagerom i program koji se prevede ne radi. Koliko je ovo tacno ? Sta je sa programima koji se ne proveravaju preko DEBUGER-a vec se sami startuju. Mozda se meni program zaglavljuje zbog DBLSPACE-a ?
clipper.138 zdule,
Jedan ortak iz vojske srpske krajne me je Ęzamolio da bacim ovde neki njegov problem HI, IMAM PROBLEM KOD CLIPPER-A AKO IMAM POLJE KOJE SADRžI PODATKE OBIL_JEDIN := "MODRICA, BJELJINA, BANJALUKA, GRADACAC" A UNESENI PODATAK ZA PRETRAZIVANJE JE XOBIL_JEDIN := "BJELJINA" KAKO DA PODESIM FILTER TAKO DA MI PRILIKOM BROWSA POKAZUJE I TO POLJE (AKO SAM BIO DOVOLJNO RAZUMLJIV) SET EXACT OFF MI POKAZUJE SAMO AKO SE "BJELJINA" NALAZI NA POžETKU POLJA. KAKO DA TO URADIM AKO SE ONO NALAZI NEGDE U SREDINI.
clipper.139 rjovic,
E ljudi jedan moj ortak se interesuje da li je i kako je moguće napisati program u Clipper-u koji će besprekorno raditi kao DOOR, i ako je neko to već radio, interesuje ga da li je moguće uz pomoć nekog DOORWAY-a moguće običan program pisan u Clipp-u startovati i koristiti remonte-vano. Relja
clipper.140 v.nesic,
> AKO IMAM POLJE KOJE SADRžI PODATKE > OBIL_JEDIN := "MODRICA, BJELJINA, BANJALUKA, GRADACAC" > A UNESENI PODATAK ZA PRETRAZIVANJE JE > XOBIL_JEDIN := "BJELJINA" > KAKO DA PODESIM FILTER TAKO DA MI PRILIKOM BROWSA POKAZUJE I > TO POLJE XOBIL_JEDIN $ OBIL_JEDIN i to je to :)
clipper.141 bulaja,
│ako imam polje koje sadrzi podatke │ obil_jedin := "modrica, bjeljina, banjaluka, gradacac" │a uneseni podatak za pretrazivanje je │ xobil_jedin := "bjeljina" │kako da podesim filter tako da mi prilikom browsa pokazuje i to polje └─── SET FILTER TO (xobil_jedin $ obil_jedin)
clipper.142 spantic,
> Mozda se meni program zaglavljuje zbog DBLSPACE-a ? Pošto se niko nije javio, mislio sam da je reč o izolovanom problemu. Isti je rešen kada se odustalo od DoubleSpace na tom računaru.
clipper.143 .bale.,
> KAKO DA PODESIM FILTER TAKO DA MI PRILIKOM BROWSA POKAZUJE I > TO POLJE Evo ti jedna kratka procedura za pretraživanje po više uslova. Sva polja (b[i]) moraju biti stringovi. Deo na početku do while može da se debelo prepravi... Napomena: Ja nisam Clipper programer, desilo mi se slučajno ;-) function ffilter privat retcode, k, w, z, e retcode=.t. e = .t. k = 0 do while retcode .and. e k = k + 1 if k = 5 <--- umesto 5 ukupan broj polja e = .f. endif w = lower(ltrim(rtrim(b[k]))) z = field(k) if .not. (w == "") retcode = w$(lower(&z)) if &z == "" retcode = .f. endif endif enddo return retcode
clipper.144 ialeksic,
>>>Nikako bez gimnastike ;) Mozda je sledece resenje: razbijes niz na... Da to je elegantna zaobilaznica, ali izgleda da bi u tom slucaju za svaki takav BIG ARRAY moralo da se definise citav set odgovarajucih funkcija za manipulaciju vektorima (koji su pandan standardnim kliper funkcijama), jer kako ja vidim ime funkcije je vezano za ime vektora, ili da se definise jos jedan parametar koji bi bio IME vektora. BTW, pitam se koji je to faktor koji je dizajnera limitirao na 4096? Za limit memo i char varijabli od 64K evidento da je to velicina DOS segmenta, a ovde...? Nije valjda frljoka !? Celih, lepih 4096 mi lici na to ;). Inace koliko se secam, to ogranicenje je ostalo od uvodjenja APPAY-a jos u starom dobrom s'87.
clipper.145 ialeksic,
Da li je neko u posedu dokumentacije za API: C52G03B.NG Technical Reference za Clipper v5.2 Izgleda da tu ima NOVITETA. Sa svakom novom verzijom klipera promeni se i EXTEND sistem. Dokle bre? :(
clipper.146 bulaja,
│da li je i kako je moguce napisati program u Clipper-u koji ce besprekorno │raditi kao DOOR, i ako je neko to vec radio, interesuje ga da li je moguce │uz pomoc nekog DOORWAY-a moguce obican program pisan u Clipp-u startovati │i koristiti remonte-vano. └─── Uz pomoc DoorAway moguce je kao door koristiti svaki DOS program, pa prema tome i onaj pisan u Clipper-u. Problem je sto je to resenje jako sporo i prakticno vrlo slabo primenljivo. Ako se program napise tako da ne koristi menije i slicne stvari vec forsira command line rezim, onda ce to raditi brze i bice upotrebljivije. Moze se napisati i Clipper program koji koristi svoje funkcije za rad sa COM portovima (koje se moraju napisati:) ili usluge nekog fossil drajvera, npr. X00.SYS (ovo poslednje bi trebalo da je najbolje resenje, ali nisam probao u praksi).
clipper.147 jpavlov,
Da li neko ima (a hoće da ustupi) neki editor, koji bi radio sa Clipper-om '87. Dovoljno je da se iz njega mogu štapati izveštaji, i eventualno izvršiti neka mala doterivanja, i naravno, da može da prikaže više od 80 kolona. Znam da ima na Sezamu editor napisan u Clipper-u 5.01... ali ja se još nisam rastao od '87 iako ću to uskoro verovatno uraditi. Pozdrav svima i hvala unapred
clipper.148 bulaja,
│Evo nove verzije funkcije NtoC za ispisivanje broja slovima. └─── Ubaceno umesto stare u r:\ibmpc\clipper\num2str.zip :).
clipper.149 bulaja,
Moze li se saznati aktivni index key (kao string), bez kopanja po NTX fajlu?
clipper.150 rjovic,
██ Uz pomoc DoorAway moguce je kao door koristiti svaki DOS ██ program, pa E kada ga već pomenu da li ga neko od prisutnih ima? Relja
clipper.151 neman,
Pokusaj sa cKey := INDEXKEY( INDEXORD() ) neman
clipper.152 dejanr,
========== xbase/user.forum #787, from gregin, 128 chars, Tue Aug 17 13:17:53 1993 Comment(s). ---------- TITLE: BLINKER 3.0 Can anyone tell me, is Blinker 3.0 out yet ? They're advertising free upgrades from Blinker 2, in DBAdvisor. ========== xbase/user.forum #788, from irae, 320 chars, Thu Aug 19 03:05:10 1993 Comment to 787. ---------- It's supposed to be shown at Technicon next week. It is not out yet, though I don't think it's too far away from out. I'd expect it in a month or two. Also, I hear rumors that CA just bought ExoSpace and it will be a $99 product availible from your local CA dealer, but only rumors today, maybe real tomorrow. Ira
clipper.153 dejanr,
========== xbase/press.release #7, from irae, 4002 chars, Thu Aug 19 20:25:56 1993 ---------- TITLE: ExoSpace Contact: Bob Gordon, (516)342-2391 COMPUTER ASSOCIATES ACQUIRES EXOSPACE TECHNOLOGY; IMMEDIATELY CUTS PRICES 67 PERCENT Software Runs CA-Clipper Applications In Protected Mode ISLANDIA, N.Y., August 18, 1993--Computer Associates International, Inc. has acquired ExoSpace, a product that allows CA-Clipper applications to run in protected mode, and immediately announced significant price reductions. Taking full advantage of extended (XMS) memory, CA-Clipper/ExoSpace provides everything developers need to give their CA-Clipper applications access to more memory. This removes the 640K memory barrier that has limited developers in the past. ExoSpace is the result of collaboration between two CA-Clipper third-party developers: ObjecTech, Inc. and SofDesign International, Inc. Financial terms of the transaction were not disclosed. "CA-Clipper developers have been asking for a protected-mode interface for some time," said Marc Sokol, CA's vice president of product strategy. "Designed by third-party developers, CA-Clipper/ExoSpace provides this capability in an easy-to-use package that can significantly enhance application performance. We have sharply reduced prices to bring this useful technology to as wide a base of developers as possible." CA announced the following price cuts: *The suggested retail price for ExoSpace has been reduced from $299 to $99 for users of CA-Clipper 5.2 (a 67 percent savings), and to $189 for users of CA-Clipper 5.01 (a 37 percent savings). *For $299, users can receive CA-Clipper/ExoSpace and the CA-Clipper 5.2 competitive upgrade, which includes a free copy of CA-dBFast, CA-Clipper Tools or the CA-Clipper/Compiler Kit for dBase IV. Applications using CA-Clipper/ExoSpace can be loaded in as little as 256K of conventional DOS memory as long as sufficient extended memory is available. CA-Clipper/ExoSpace also simplifies application debugging by simplifying memory management. Errors caused by memory corruption are easier to spot because they are reported immediately rather than showing up after the corruption has hidden its cause. CA-Clipper/ExoSpace: *Extends directly-addressable memory by up to 2500%--from 640K to 16 megabytes. *Eliminates virtual-memory swapping, improving performance. *Runs applications in as little as 256K of conventional memory, leaving plenty of space for network shells, terminal emulators, and other TSRs (Terminate and Stay Resident Programs). *Includes a protected-mode linker that automatically overlays code and data as necessary. *Can be added to existing applications by simply relinking--often without code changes. *Requires no runtime license fees. System Requirements CA-Clipper 5.01 or higher. IBM PS/2, AT, or 100% compatibles using the Intel 80286, '386, '486, Pentium or compatible CPU; DOS 3.1 or higher; 2 megabytes of memory; hard drive, and 5.25 or 3.5 inch disk drive. CA-Clipper/ExoSpace works with all networks compatible with DOS 3.1 or higher; and with DOS Protected Mode Interface (DPMI), Virtual Control Program Interface (VCPI), and XMS protocols. ------- Computer Associates International, Inc. (NYSE: CA), with over 7,000 employees around the world, is the leading software company for integrated systems, database management, business applications and application development solutions. These programs operate across a full spectrum of mainframe, midrange and desktop computers. Founded in 1976, CA became a public company in 1981, and now serves most of the world's major business, government, research and educational organizations. Fiscal 1993 revenues exceeded $1.8 billion.
clipper.154 ndragan,
/ MONOgrafija je MONO jer nema koautora :)) žovek voli stereo :)
clipper.155 v.nesic,
> Moze li se saznati aktivni index key (kao string), bez kopanja po NTX fajlu? indexkey()
clipper.156 dr.grba,
>> (Boze, pardon, moderatore, nemoj da ponistavas ovu poruku, >> nije piratska majke mi !) └────┬──────┘ └─ Nije piratska? (((((: >> Sa standard suppportom je sve OK, ali kako i sta treba uraditi da >> se napravi nezavisni EXE fajl ? Piše u knjizi koju tražiš, a to je... >> 2) Ima li koja lepa knjiga za foksic ? ...ona koju si našao u kutiji sa programom (((:
clipper.157 solajac,
**************************************************** NTOC.PRG (verzija iz AVGUSTA 93.-ispisuje milijarde) **************************************************** Nekoliko sugestija: - Program se od linije 133 - 137 nikada ne izvršava, tj. uslov u liniji 133 je isti kao u liniji 114. - Mislim da bi NTOC trebalo da prikazuje JEDANAESTMILIJARDI, a ne JEDANAESTMILIJARDA, kao što je sada. - Program pada (linija 217, BOUND ERROR) za iznos veći od 999 mi- lijardi. Predlog u vezi ovog pada: Pošto kraj, u vezi veličine iznosa, ipak mora da postoji, predlažem da za iznos veći od 999 mili- jardi NTOC vraća prazan string. Pozdrav, Solajac.
clipper.158 ndragan,
/ FOXBIND - sta je ovo ? Ovo bi trebalo da potrpa više rutina u jedan fajl. Bilo je i u ranijim verzijama i nikad nisam koristio. / WLINK8 - ovo je valjda Watcom linker Jeste. / ???? - gde je kompajler ??? Ugrađen u foxprox.exe - otkad je FoxPro. Verovatno je negde u overleju. Pročitaj Create Project iz helpa, pa malo prošetaj kroz ono što tamo piše; kad kreneš sa tim praktično, isprobaj sve opcije koje dobiješ u dijalogu za Build. Ovo pričam na osnovu 2.0; 2.5 još nisam video. / 3) Ima li fox pro neki konfiguracijski fajl poput dibejzovog config.db Config.fp - pročitaj Configuring iz helpa.
clipper.159 bulaja,
││Uz pomoc DoorAway moguce je kao door koristiti svaki DOS program, │└─── │E kada ga vec pomenu da li ga neko od prisutnih ima? └─── Nije valjda da ga pingvini nemaju? O:) R:\IBMPC\BBS\*.* ---------------------- drwy221 arj 194460 DoorAway 2.21, omogucava da svaki program radi kao door
clipper.160 bulaja,
│cKey := INDEXKEY( INDEXORD() ) └─── Hvala i tebi i v.nesic-u. Znao sam da funkcija postoji al' je nisam nigde nasao u NG, a gledao sam sam db*() a tamo nisam nasao :).
clipper.161 bulaja,
│For $299, users can receive CA-Clipper/ExoSpace and the CA-Clipper │5.2 competitive upgrade, which includes a free copy of CA-dBFast, │CA-Clipper Tools or the CA-Clipper/Compiler Kit for dBase IV. └───^ ^ Da li je neko video taj CA-Clipper Tools i sta je to uopste? :)
clipper.162 dsolid,
Molim za pomoć. Zašto mi update C52c javlja grešku ept0036 za cld.exe i cld.lib, a ostalo uradi?
clipper.163 cnenad,
ŁŁŁ Mozda se meni program zaglavljuje zbog DBLSPACE-a ? Prebacio sam program sa komprivanog drajva na obican i sve radi ko podmazano. Dakle DBLSPACE smeta programima radjenim u kliperu.
clipper.164 d.petrovic,
Ă> ██ Uz pomoc DoorAway moguce je kao door koristiti svaki DOS Ă> ██ program, pa Ă> Ă> E kada ga već pomenu da li ga neko od prisutnih ima? Call Snake Dance
clipper.165 rjovic,
██ Nije valjda da ga pingvini nemaju? O:) Da nemam ga okačenog kao arhivu, jer kada sam skidao WildCat skinuo sam i sve fajlove koji su pristizali u to doba na BBS. U svakom slučaju hvala na pomoći. Relja
clipper.166 gari,
HELP! HELP! HELP! Pokushao sam da instaliram clipper 5.2c (update sa SEZAM-a) i na PRVOM koraku (prevodjenje DBU-a) mi daje neke greshke! Kada vecc nisam uspeo da to uradim pokushao sam sa PLL-om, ali i tu mi je davao RAZNE greshke! Da li je neko uspeo da predje "bezbolno" sa 5.2b na 5.2c unapred veoma zahvalan za bilo kakvu pomocc, Gari. p.s. Imam US verziju sa upgrade-om na 5.2b, a kod DBU-a mi prijavljuje nepoznatu promenljivu _C6 (linija 71 - view_err)
clipper.167 nbatocanin,
> Pošto se niko nije javio, mislio sam da je reč o > izolovanom problemu. Isti je rešen kada se odustalo od > DoubleSpace na tom računaru. Ja sam danas imao problema na računaru DOS 6.0 i DBL. Program je trivijalan (5 naredbi), pa ću detaljnije ispitati stvar.
clipper.168 nbatocanin,
> Da to je elegantna zaobilaznica, ali izgleda da bi u tom > slucaju za svaki takav BIG ARRAY moralo da se definise > citav set odgovarajucih funkcija za manipulaciju vektorima > (koji su pandan standardnim kliper funkcijama), jer kako > ja vidim ime funkcije je vezano za ime vektora, ili da se > definise jos jedan parametar koji bi bio IME vektora. Mislim da se sve može sakriti pretprocesorom, trebalo bi razmisliti. > BTW, pitam se koji je to faktor koji je dizajnera > limitirao na 4096? Svaki element niza se predstavlja strukturom od 16 bajtova, a 16*4096 jeste 65536! Ovo nije provereno, nego pretprostavljam.
clipper.169 nbatocanin,
> Moze li se saznati aktivni index key (kao string), bez > kopanja po NTX fajlu? IndexKey(0)?
clipper.170 gari,
Svi su ti odgovorili indexkey(), ali ako sam te dobro razumeo tebi treba indexord() pozdrav, Gari.
clipper.171 gari,
ispravka: indexkey(indexord()) O):)
clipper.172 v.nesic,
> Da li je neko uspeo da predje "bezbolno" sa 5.2b na 5.2c Ja sam uspeo. Pošto mi je prošljakalo iz prve teško da mogu da ti dam bilo kakav savet. Ovo ti pišem samo da znaš da je UPGRADE ok urađen.
clipper.173 rjovic,
██ Call Snake Dance Thanks. Relja
clipper.174 bulaja,
│Da li je neko uspeo da predje "bezbolno" sa 5.2b na 5.2c └─── Meni je sve proslo Ok, ali nisam uradio prekompajliranje jutilitija (a install me nije nie pitao:). Ako je tu eventualni problem, onda uradi glavni upgrade (exe, lib, source) pa onda rucno kompajliraj dok ne uspe :).
clipper.175 d.petrovic,
Ă> Ja sam danas imao problema na računaru DOS 6.0 i DBL. Program je Ă> trivijalan (5 naredbi), pa ću detaljnije ispitati stvar. Meni je jedan program zaglavljivao bez pravila na 486/50 dok na svemu ostalom radi. Tek sam sad ukapirao da je tamo valjda bio dblspace.
clipper.176 ndragan,
/ FOXBIND - sta je ovo ? Ovo bi trebalo da potrpa više rutina u jedan fajl. Bilo je i u ranijim verzijama i nikad nisam koristio. / WLINK8 - ovo je valjda Watcom linker Jeste. / ???? - gde je kompajler ??? Ugrađen u foxprox.exe - otkad je FoxPro. Verovatno je negde u overleju. Pročitaj Create Project iz helpa, pa malo prošetaj kroz ono što tamo piše; kad kreneš sa tim praktično, isprobaj sve opcije koje dobiješ u dijalogu za Build. Ovo pričam na osnovu 2.0; 2.5 još nisam video. / 3) Ima li fox pro neki konfiguracijski fajl poput dibejzovog config.db Config.fp - pročitaj Configuring iz helpa.
clipper.177 bulaja,
Locirao sam probleme u kompatiblinosti koji su mi se javili u nekim programima pri prelazu sa Clipper-a 5.01 na CA-Clipper 5.2. Ovde sam ranije opisao problem, ali da ponovom :). Program mi se stalno zakucavao, nije pomagala ni promena onih simbola CLIPPER501 u CLIPPER52, ni prekompajliranje svih biblioteka. Sumnjao sam da tu brlja najvise NanFor, pa sam i njega celog prekompajlirao, ali nista nije pomoglo :(. Posto sam sumnjao da je jedini preostali potencijalni problem (posto je CA ocigledno dobro uradio svoj deo posla) u funkcijama NanFor Lib-a koje mnogo vole da petljaju sa Clipper internim strukturama. Izbacivao sam jednu po jednu FT_* funkciju i nakraju pronasao da je u mom slucaju brljotine pravila FT_LastKey(). Ja sam je inace intenzivno koristio za ciscenje keyboard buffera u MEMOEDIT() korisnickoj funkciji, sad cu videti kako da se snadjem bez toga :(. Evo vam ovde opis i source FT_LASTKEY() funkcije. FT_LASTKEY() Force LastKey() to return a programmer-defined value. It is occasionally useful to force LastKey() to return a known value. This is easily accomplishing by using the KEYBOARD command, but this has undesireable side effects (the keyboard buffer is cleared, and the keystroke is processed whether you needed it to be or not). This function accomplishes the same task but without the side effects. It does so by directly modifying the memory location where Clipper stores the LastKey() value. Some highly unorthodox programming techniques, not to mention rather strange use of Clipper internals, was necessary to make this function work. If this makes you uncomfortable, then don't use this function, you worthless crybaby. Public FT_LastKey Extrn LastKey:Far Extrn __ParNL:Far Segment _NanFor Word "CODE" Assume CS:_NanFor Proc FT_LastKey Far Mov AX,1 ; Specify param #1 Push AX ; Put on stack Call __ParNL ; Get key value Add SP,2 ; Realign stack Mov CX,Seg LastKey ; Load segment of known symbol Mov BX,Offset LastKey ; Load offset of known symbol Mov ES,CX ; Load segment register Mov BX,[Word Ptr ES:BX + 8] ; Get address Mov [Word Ptr BX],AX ; Store key value Mov [Word Ptr BX + 2],DX Ret Endp FT_LastKey Ends _NanFor End
clipper.178 draganm,
*> ...ona koju si nasao u kutiji sa programom (((: Zar ti ne znas da je tu knjigu greskom nije dobio uz originalni paket, a sada zbog sankcija ne zele da mu je isporuce ? :)))
clipper.179 nbatocanin,
> NTOC.PRG (verzija iz AVGUSTA 93.-ispisuje milijarde) > Nekoliko sugestija: Vidim da si se specijalizovao za kritiku NtoC-a ;) > - Program se od linije 133 - 137 nikada ne izvršava, tj. > uslov u liniji 133 je isti kao u liniji 114. Da, potpuno si u pravu, ovo je greškom ostalo iz prethodne verzije. > JEDANAESTMILIJARDI, a ne JEDANAESTMILIJARDA, kao što je > sada. Uh, izgleda da ću morati još jednom da ga analiziram. > - Program pada (linija 217, BOUND ERROR) za iznos veći od > 999 mi- lijardi. žuj, ne bih upotrebljavao tako krupne reči ;) ("program" i "pada") za sitnu proceduricu od par desetina linija: ako vam treba neka takva izmena, lako ćete je i bez mene ubaciti.
clipper.180 nbatocanin,
> Da li je neko video taj CA-Clipper Tools i sta je to > uopste? :) Imao sam Nantucket Tools I i II - to je najobičnija osrednja biblioteka za Clipper. Sad, ovo novo, ne znam. Pretpostavljam da je to samo nova verzija. Inače, veoma je zanimljivo da čak ni te biblioteke nisu bile prohodne u novu verziju: svaki novi Clipper je zahtevao novu biblioteku! šta sve živ čovek ne radi da bi zaradio pare.
clipper.181 nbatocanin,
> Da li je neko uspeo da predje "bezbolno" sa 5.2b na 5.2c Upgrade za Sezam-a automatski pravi prelaz sa *bilo* koje od verzija 5.2x na 5.2c. Jedini problem je da morate obezbediti programčić PATCH i staviti ga u PATH, inače sve bude na izgled ok, ali se upgrade ne uradi. Ovo programče imate u upgrade-u za 5.2a.
clipper.182 gari,
> *bilo* koje od verzija ;) da si u NS odma' bih te pozvao da vidish da necce bash tako "lako" da se uradi upgrade... > morate obezbediti programcic PATCH i staviti ga u PATH :) ne radim od juche na rachunarima: Kod mene je instaliran DOS 5 sa svim patch-ovima za dos, imam rezidentan ramdrive, smartdrv i gmouse, kulturno sam prelazio sa verzije na verziju clipper-a (shto podrazumeva da imam i PATCH.EXE), ali prelaz sa 5.2b na 5.2c kod mene N E R A D I ! Pokushaccu da ponovo instaliram clipper 5.2 i onda ccu ponovo probati. Ako ne radi, primoran sam da ostanem na ovoj verziji i da chekam sledeccu instalacionu verziju clippera, svakodnevno kunem one koji su pisali patch.exe i instal.exe (5.2c) i prvom prilikom kada budem imao vishe od mesec dana vremena i naidjem na neki iole kvalitetan dbase like jezik (SAMO NE FOX), a to znachi skoro nikada, precci ccu na njega zbog VELIKIH bug-ova koji se u poslednje vreme pojavljuju kod CA, pa izdaje verzije clipper-a kao da prodaje bombone ;>. pozdrav, Gari. p.s. ako budem uspeo da patchujem sa 5.2 na 5.2c onda ccu JAVNO u ovoj konferenciji priznati da sam verovatno ja napravio greshu u nekom od prethodnih prelazaka i povlachim prelazak na drugi jezik O:)
clipper.183 aquarius,
<> Da li je neko video taj CA-Clipper Tools i sta je to uopste? Jeste vidjen je i nije bas ono sto misli nbatocanin, nego malo bolje. Uostalom, ako pogledas fajl CATLSFUN.ZIP, prosudices sam. A kad smo vec kod toga ima tu jos nesto FUN... :)))))) Introduction ────────────────────────────────────────────────────────────────────────── CA-Clipper Tools contains over 800 functions which you can use to develop CA-Clipper applications and system-level routines. These functions give CA-Clipper programmers capabilities previously reserved for C or Assembler programmers with detailed system knowledge. In order to use working memory as economically as possible, virtually all the functions are written in Assembler and are highly optimized. This guarantees high speed with a minimal use of memory. This efficiency is further supported by the modularity of the software within the CA-Clipper Tools library. ────────────────────────────────────────────────────────────────────────── ~AquariuS~ catlsfun.zip
clipper.185 ttop,
> ;) da si u NS odma' bih te pozvao da vidish da necce bash > tako "lako" da se uradi upgrade... Evo ja sam skoro iz NS-a, a sada je tačno 04:10a dan nedelja, i sve je radilo kako treba :) KUC KUC. Išao je upgrade sa 5.2b na 5.2c bez problema. Ako ima problema ti me mail na SEZAM il' još bolje na RHINOCEROS pa da se dogovorimo :) . Pozdrav , Ttop.
clipper.186 aquarius,
<> Da li je neko video taj CA-Clipper Tools i sta je to uopste? Evo ga i .NG ! :) Ako ima daljih pitanja, tu sam. ~AquariuS~ catoolng.zip
clipper.187 aquarius,
<> Imao sam Nantucket Tools I i II - to je najobicnija osrednja <> biblioteka za Clipper. Sad, ovo novo, ne znam. Pretpostavljam <> da je to samo nova verzija. CATLSFUN.ZIP uz poruku 11.183 ~AquariuS~
clipper.188 gari,
J A V N O !!!! Priznajem da sam najverovatnije ja neshto pogreshio prilikom upotrebe Clipper-a 5.2b verzije i nisam bio sposoban da instaliram novu verziju. Izvinjavam se svima na optereccenju PAD-a i hvala na svim sugestijama... pozdrav, Gari. p.s. Instalirao sam ponovo Clipper 5.2 i sa njega preshao bez problema :)
clipper.189 nbatocanin,
> ispravka: indexkey(indexord()) IndexKey(0) daje izraz za *aktivan* indeks, znači, isto to.
clipper.190 nbatocanin,
> Introduction > ─────────────────────────────────────────────────────────── > CA-Clipper Tools contains over 800 functions which you can > use to develop CA-Clipper applications and system-level > routines. > ... > In order to use working memory as economically as > possible, virtually all the functions are written in > Assembler and are highly optimized. Kao što rekoh: u dlaku prepisan tekst iz Nantucket Tools I i II. Pretpostavljam da su i funkcije tu negde. Da ne bude zabune: ima tu veoma lepih funkcija, ali me veoma ljuti što to već nije u CLIPPER/LIB!
clipper.191 nbatocanin,
>> morate obezbediti programcic PATCH i staviti ga u PATH > > :) ne radim od juche na rachunarima: Taman posla da to mislim i nadam se da nisam tako zvučao. I ja sam imao isti problem sa upgrade za 5.2c: nisam imao PATCH, a program za instalaciju uopšte nije prijavio nikakvu grešku - jednostavno nije uradio posao! > Pokushaccu da ponovo instaliram clipper 5.2 i onda ccu > ponovo probati. Ovo si trebao prvo da probaš. Uzgred, šta ti javlja PATCH? On bi trebao da javi broj datoteka koje iz nekog razloga nije uspeo da obradi. > ... i prvom prilikom kada budem imao vishe > od mesec dana vremena i naidjem na neki iole kvalitetan > dbase like jezik (SAMO NE FOX), a to znachi skoro nikada, > precci ccu na njega zbog VELIKIH bug-ova koji se u > poslednje vreme pojavljuju kod CA, pa izdaje verzije > clipper-a kao da prodaje bombone ;>. Puno sreće u traženju idealnog DBMS-a, trebaće ti. A zašto se ograničavaš na xBase? Kad je bal nek je maskenbal: probaj i druge proizvode, možda je na drugoj strani ono pravo. Što se tiče grešaka u Clipper-u, slažem se da se CA (odnosno, ekipa koja radi Clipper) ponaša malo neozbiljno. Ipak, greške na putu 5.2-5.2c nisu baš katastrofalne, mada ima neprijatnih. Bolje je što redovno izlaze dodaci, nego da se CA pravi lud i ponaša kao da nema grešaka. Moja taktika je da uvek sačekam malo sa primenom nove verzije i tek onda počnem da je upotrebljavam, zbog eventualnih bagova.
clipper.192 aquarius,
<> Kao sto rekoh: u dlaku prepisan tekst iz Nantucket Tools I i <> II. Pretpostavljam da su i funkcije tu negde. Da ne bude <> zabune: ima tu veoma lepih funkcija, ali me veoma ljuti sto to <> vec nije u CLIPPER/LIB! ─────────────────────── A sta bi oni onda prodavali ? :) ~AquariuS~
clipper.193 aquarius,
<> J A V N O !!!! <> Priznajem da sam najverovatnije ja <> neshto pogreshio prilikom <> upotrebe Clipper-a 5.2b verzije i <> nisam bio sposoban da instaliram <> novu verziju. Fata je Fata, al dvaput je dvaput. :) Ostajes li na Clipper-u ? ~AquariuS~
clipper.194 ndragan,
/> JEDANAESTMILIJARDI, a ne JEDANAESTMILIJARDA, kao što je / Uh, izgleda da ću morati još jednom da ga analiziram. Da ja pogledam i onaj naš, trebalo bi da ispisuje "milijarada" :). Elem, jedino se sećam da radi sa petnaest cifara... kako se izgovara ono čudo sa osamnaest, pa da dodam malo koda u slovima.prg? Juče sam načuo da je avgustovska inflacija 1680%, što dignuto na godinu znači petnaest nula. Posle sam čuo da, kao, nije toliko nego 1860%.
clipper.195 bulaja,
Postoji li neka funkcija koja vraca file name aktivne baze podataka (.DBF)? Ne treba mi ALIAS(), vec bas zelim da saznam pun naziv datoteke. Npr. ako je baza otvorena sa USE "File.DBF" NEW ALIAS xFile kako da saznam ime datoteke ("FILE.DBF")? Gledao sam svuda i nigde nisam uspeo da nadjem slicnu funkciju, a bilo bi neverovatno da je nema :).
clipper.196 gari,
> =============================== > 9.962 PC.PROG.2:clipper > bulaja, 18.07.Ned 10:10, 2257 chr > --------------------------------------------------------- > 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 ... Probao sam prvo da napravim sa clipper funkcijama fopen, freadstr, fseek i fclose, medjutim davalo mi je cudne rezultate... Onda sam raspakovao NANFOR, preveo bulajin program... ...i !!! gle cuda !!! daje potpuno ISTE rezultate kao i sa clipper funkcijama !@#%@ :( Posto sam pokusavao na SVE (meni znane) moguce nacine da pokrenem da to proradi, dosao sam do nicega. :( Uz ovu poruku saljem i zip fajl koji sadrzi: bulaja.prg i proba.txt (prog bulaja.prg bi trebao da prikaze (list) fajl proba.txt) Ako bi mogao Bulaja ili ko je vec to uradio da vidi ovo sto saljem jer ne znam gde sam pogresio... pozdrav, Gari. p.s. Ovo mi je dosta hitno jer sam vec promenio u svojoj biblioteci staru funkciju za prikaz fajla pa sada ne mogu da instaliram korisnicima nove verzije software-a... bu_list.zip
clipper.197 aquarius,
Zna li neko tacno, cemu ovo sluzi ? :( /* Directory of C:\CLIPPER5\OBJ NTXLOCK2 OBJ 302 06-10-93 5:22p CDXLOCK OBJ 6679 08-06-93 5:23p */ ~AquariuS~
clipper.198 ndragan,
/ kako da saznam ime datoteke ("FILE.DBF")? Gledao sam svuda i nigde Nem' pojma. U Foksu je to funkcije Dbf(), a postojala je još u dosta starim verzijama, pa je moguće da se vuče još od Dbašića, po čemu mislim da treba da je ima i u Kliperu.
clipper.199 snemcev,
>> kako da saznam ime datoteke ("FILE.DBF")? Gledao sam svuda i nigde >> nisam uspeo da nadjem slicnu funkciju, a bilo bi neverovatno da je >> nema :). Kaži "dragička"! NEMA! Jedino rešenje je korišćenje univerzalne funkcije za otvaranje datoteka, pa da ona u nekom nizu pamti imena, a da posebna funkcija na osnovu broja radne oblasti, vraća zapamćen naziv.
clipper.200 bulaja,
│Nem' pojma. U Foksu je to funkcije Dbf(), a postojala je jos u dosta │starim verzijama, pa je moguce da se vuce jos od Dbasica, po cemu mislim │da treba da je ima i u Kliperu. └─── Postoji DBF() i u Clipperu (i spada u obsolete items, preporucuje se koriscenje ALIAS()), ali ona vraca samo alias a ne ime baze.
clipper.201 bulaja,
│Kazi "dragicka"! NEMA! Jedino resenje je koriscenje univerzalne funkcije │za otvaranje datoteka, pa da ona u nekom nizu pamti imena, a da posebna │funkcija na osnovu broja radne oblasti, vraca zapamcen naziv. └─── :( Ovo pamcenje mi nicemu ne sluzi posto pravim funkciju opste namene, ostaje mi jedino da se i ime DBF fajla prenosi kao parametar.
clipper.202 neman,
> ŁŁŁ Mozda se meni program zaglavljuje zbog DBLSPACE-a ? > > Prebacio sam program sa komprivanog drajva na obican i sve > radi ko podmazano. Dakle DBLSPACE smeta programima > radjenim u kliperu. Pa da, pise negde u uputstvu za DBLSPACE da ga ne treba koristiti za WINDOWS TMP datoteku(e). Verovatno se isto odnosi i na Clipper. neman
clipper.203 neman,
> Da li je neko uspeo da predje "bezbolno" sa 5.2b na 5.2c Jesam :), a kod druga i sa 5.2 -> 5.2c neman
clipper.204 neman,
> program za instalaciju uopste nije prijavio nikakvu gresku > - jednostavno nije uradio posao! Ipak je prijavio gresku. Ispisivao je na praznom ekranu -1, a kad uradi sve ok ispisuje 0. Ko je razumeo, shvatio je :) neman
clipper.205 bulaja,
│p.s. Ovo mi je dosta hitno jer sam vec promenio u svojoj biblioteci staru │funkciju za prikaz fajla pa sada ne mogu da instaliram korisnicima nove │verzije software-a... └─── Greska ti je banalna :). U bulaja.prg u liniji 27 stoji FB:skipBlock := { |n| FT_FSkip(n+1) } ^^^ a treba (n) umesto (n+1) :), tj. FB:skipBlock := { |n| FT_FSkip(n) }
clipper.206 dr.grba,
Mnogi progameri, u koje spada većina nas, su skloni da preskaču drugarske sugestije kojih ima na tone po raznim tutorijalima, NG i Hypertext fajlovima, istovremeno se ljuteći zašto "baš ovo nedostaje u jeziku, kakva glupost, sad moram to sam da rešavam....." Ponekad su, naravno, krive i razne anomalije čiji uzrok može biti različit. Najgore je kad postoji neki feature koji nije dokumentovan, a može mnogo da znači. I tako.... koliko puta ste se ljutili što je alert prozor crven? Koliko puta ste pobesneli što se na mono VGA monitorima ne razaznaje trenutno aktivna opcija?... I što ovo ne možete da promenite?.... STOP! Možete da promenite.... Naravno, niste znali za (omaškom nedokumentovanu) opciju funkcije ALERT() kojom možete promeniti boju alerta. Konkretno: ═══════ Clipper 5.01 vs 1.29 Anomalies (#03) > Menu > Anomalies > ... ════ ──────────────────────────────────────────────────────────────────── ALERT() Undocumented features. Clipper Version 1.29 dtd 04/15/91. Problem Statement ALERT()'s prompt is limited to 4 choices. There is also an undocumented third parameter, cColorString, which may be a color pair such as "W/N". Cause Documentation omission. ──────────────────────────────────────────────────────────────────── Poreklo podatka je NG fajl sa Compuserve mreže. Na Sezamu se ovaj fajl može naći pod generalijama R:ĐIBMPCĐCLIPPERĐCL5103.ZIP Skinite ga i (ne kao ja ): ) pročitajte, biće nečeg i za vas... RTFM! (;
clipper.207 nbatocanin,
> Ipak je prijavio gresku. Ispisivao je na praznom ekranu > -1, a kad uradi sve ok ispisuje 0. Ko je razumeo, shvatio > je :) al' je vidljivo ;) Ma to sam i ja video, al nije mi jasno što ne kaže srpski šta mu fali :)
clipper.208 aquarius,
<> ═══════ Clipper 5.01 vs 1.29 Anomalies (#03) > Menu > <> Anomalies > ... ════ <> ─────────────────────────────────────────────────────────────── <> ALERT() Undocumented features. <> <> Clipper Version 1.29 dtd 04/15/91. ... <> Documentation omission. --> Report Name: CL5103 ==> Report Date: 08/22/91 Author: Compiled by Jo W. French dba Practical Computing of La Canada Ovo je bila godina '91, a sad je '93, CA i dalje mudro cuti. I sto je najgore CL5103.NG ne sadrzi sve. A sta je sa CA-Clipper 5.20 (a,b,c). "Documentation omission" se malo ofucalo ! :)))) LOCAL n n := ALERT( "Radi li CA-Clipper 5.20c pouzdano", ; { "Da", "Ne", "Mozda", "Cekamo CA 5.20d" }, ; "GR+/R", ; ) Koliko je n ? ~AquariuS~
clipper.209 dr.grba,
>> Koliko je n ? Valjda je po defaultu 1. Jeste? Nije? ):
clipper.210 vision,
Hi. Koristim Clipper '87 i interesuje me da li neko zna kako da kontrolisem bitove bajta, kao ono u 'C'-u '&', '|' i '^'. I drugo, kako da testujem stanje CURSOR-a (da li je ukljucen, ili iskljucenĘ). Pozdrav.
clipper.211 bulaja,
│Koristim Clipper '87 i interesuje me da li neko zna kako da │kontrolisem bitove bajta, kao ono u 'C'-u '&', '|' i '^'. └─── Nije nikakav problem napisati funkcije za to, imas ih npr. u Nanforum Toolkit-u (za Clipper 5.x). │I drugo, kako da testujem stanje CURSOR-a (da li je ukljucen, ili │iskljucenĘ). └─── SetCursor() bez argumenata vraca stanje kurzora (0 - off, 1+ - on).
clipper.212 dejanr,
>> I drugo, kako da testujem stanje CURSOR-a (da li je ukljucen, ili >> iskljucen). Kažeš A=SETCURSOR() i vrati ti stanje kurzora. >> Koristim Clipper '87 i interesuje me da li neko zna kako da >> kontrolisem bitove bajta, kao ono u 'C'-u '&', '|' i '^'. Teško će to ići a da bude iole brzo. No, mogu se napraviti fini mali asemblerski potprogramčići koji to rade. Meni je nedavno trebao AND pa ti šaljem njega (doduše, za clipper 5): PAGE ,132 NAME razno include extenda.inc CODESEG RAZNO DATASEG CLpublic <LTEST> ; ********************************************************* ; Sintaksa: rez = ltest(broj, maska) : log ; CLfunc log ltest <int broj, int maska> CLcode mov ax,broj mov bx,maska mov cx,false and ax,bx jz lor_end mov cx,true lor_end: CLret ax END
clipper.213 dr.grba,
>> I drugo, kako da testujem stanje CURSOR-a (da li je ukljucen, ili >> iskljucenĘ). setcursor(0) - nema kursora setcursor(1) - normalan, underscore setcursor(2) - pola bloka setcursor(3) - pun blok
clipper.214 snemcev,
>> Nije nikakav problem napisati funkcije za to, imas ih npr. u Nanforum >> Toolkit-u (za Clipper 5.x). Iste su čudo od sporosti! Još jednom potvrđeno pravilo - ako hoćeš matematiku u Clipper-u, uradi je u C-u. PS C ne znam!
clipper.215 eotek,
H E L P ! :) Moze li mi neko pomoci oko sledeceg: - treba da se u okviru clipper aplikacije omoguci slanje podataka faks-modemom na drugi racunar (dakle, prikaz izvestaja pored opcija:ekran,stampac,fajl I NA TEL. BROJ). Dakle trebalo bi da se podaci mogu poslati na MODEM I/ILI na FAKS. Pri tome ne dolazi u obzir da se koriste drugi programi (telix ili sl.). Najlepse je - pri tome - ( >>) ) sto to jos treba da radi u pozadini (dakle korisnik nastavlja sa radom, a u pozadini se bira(ju) broj(evi), salje i na kraju se prikaze nekakav izvestaj). - Ovo bi trebalo da bude moguce uz neke dodatne LIB (da li ?, pregledao sam ih dosta, ali su vise nego traljave, a u opisu jedne (cini mi se EXPAND 3.0) stoji i : pogledajte u drugim LIB koje to bolje rade !!)). - Ili je moguce napisati u C, ako da - koje LIB i koji C (DOS only please). Ne upucujte me - pls - na ASM. Zahvalan do neba (a i sire) eotek
clipper.216 gari,
║ │p.s. Ovo mi je dosta hitno jer sam vec promenio u svojoj ║ │biblioteci staru funkciju za prikaz fajla pa sada ne mogu ║ │da instaliram korisnicima nove verzije software-a... ║ └───────────────────────────────────────────────────────── ║Greska ti je banalna :). U bulaja.prg u liniji 27 stoji ║ ║ FB:skipBlock := { |n| FT_FSkip(n+1) } ║ ^^^ ║a treba (n) umesto (n+1) :), tj. ║ ║ FB:skipBlock := { |n| FT_FSkip(n) } ╚════════════════════════════════════════════════════════════ Greska mi NIJE NIKAKO banalna, nego je u pitanju to sto sam u tom trenutku trazio resenje da bi ovo proradilo! Posto sam zaboravio da posaljem staru verziju, onda si dobio ovu RADNU. Ako bi stavio po tvome to bi davalo kriminalne rezultate. U medjuvremenu (posto niko nije dao nista valjano za ovo) evo resenja koje SASVIM RADI: Umesto: FB:skipBlock := { |n| FT_FSkip(n) } Treba: FB:skipBlock := { |n| FILE_LINE_SKIP(n) } I dalje: FUNCTION FILE_LINE_SKIP( nSkip ) LOCAL retVred := FT_FRecno() FT_FSkip( nSkip ) RETURN ( FT_FRecno()-retVred ) pozdrav, Gari. p.s. Nadam se da ce ovo bar nekom pomoci, a izvinjavam se onima koji su cekali na resenje jer sam imao frku na poslu cca nedelju dana...
clipper.217 nbatocanin,
> (doduše, za clipper 5): > > PAGE ,132 > NAME razno > include extenda.inc Extend sistem je potpuno kompatibilan u verzijama S'87 i 5.x.
clipper.218 nbatocanin,
> - treba da se u okviru clipper aplikacije omoguci slanje > podataka faks-modemom na drugi racunar (dakle, prikaz > izvestaja pored opcija:ekran,stampac,fajl I NA TEL. BROJ). Nemam iskustva sa slanjem faksova iz Clipper-a. Ali, čini mi se da je jedno od prihvatljivih rešenja DesqView. Tako bi se ratosiljao veoma zeznutog posla pisanja programa koji radi u pozadini.
clipper.219 hercog,
Kako iskoristiti blinkerove funkcije DEMONSTRATION MINUTES, CALLS i DATE? Sale
clipper.220 dr.grba,
>> Kako iskoristiti blinkerove funkcije DEMONSTRATION MINUTES, CALLS i DATE? Nisam siguran da li razumem pitanje, ali dovoljno je navesti ih na vrhu .LNK fajla. Na primer: BLINKER DEMONSTRATION DATE 1993/12/31 BLINKER DEMONSTRATION MINUTES 15 kaže da moj demo program možeš koristiti 15 minuta u cugu, a do kraja godine. Naravno, ispituje se sistemski datum.
clipper.221 gari,
Da, a postoje i funkcije BliDemMin(), BliDemDte(),... koje citaju koliko je ostalo minuta, dana i poziva procedura do kraja demonstracije, a ako ih pozoves sa parametrom, onda se to povecava, za br. minuta, dana iili poziva. Naravno, treba da znas da ako hoces te funkcije da koristis u programu, onda MORAS da se opredelis definitivno za Blinker, da vodis racuna da u .LNK fajlu za svaku od tih funkcija mora da postoji i komanda za linkovanje (vidi poruku 11.220), a ukoliko se pojavi nova verzija Clipper-a koju Blinker koji imas nece moci da izlinkuje, onda ti je jasno da moras ili da cekas novu verziju Blinker-a, ili da menjas sve sto ti zavisi od njega... Moj ti je savet da Blinker koristis SAMO u razvoju aplikacije i izradi DEMO verzija programa, a izvrsne verzije da pravis sa RtLink-om. Tako ces sigurno maksimalno ubrzati svoj rad, a korisniku ipak dajes verziju programa koja zahteva manje RAM memorije od verzije linkovane Blinker-om. pozdrav, Gari.
clipper.222 v.nesic,
Imam Clipper 5.2, i Blinker 2.0 koji bih da koristim sa njim. Da li rade zajedno, ili mi treba neki noviji B ?
clipper.223 dejanr,
>> Kako iskoristiti blinkerove funkcije DEMONSTRATION MINUTES, CALLS i DATE? Dosta jednostavno, samo u link fajlu kažeš BLINKER DEM DATE 1993/10/01 i program radi do 1. oktobra. Ili BLINKER DEM MINUTES 30 i radi pola sata. Mislim da je to sve dosta detaljno i lepo opisano u Norton Guide-u koji ide uz Blinker. Preporučujem takođe prikaz Blinker-a iz "Računara 90" koji je napisao nbatocanin - u okviru njega diskutuju se i te zanimljive nove opcije.
clipper.224 dejanr,
Rade zajedno, bar koliko sam ja primetio.
clipper.225 dejanr,
>> Moj ti je savet da Blinker koristis SAMO u razvoju aplikacije i >> izradi DEMO verzija programa, a izvrsne verzije da pravis >> sa RtLink-om. Tako ces sigurno maksimalno ubrzati svoj rad, >> a korisniku ipak dajes verziju programa koja zahteva manje >> RAM memorije od verzije linkovane Blinker-om. Možda, ali tako si se lišio nekih lepih BLINKER opcija kao swpruncmd... Ja već duže vreme sve linkujem Blinker-om, samo u konačnim verzijama stavim INCREMENTAL OFF. Do sada nije bilo problema (kuc-kuc :). Mislim da sam RTLINK čak obrisao sa diska.
clipper.226 snemcev,
>> Kako iskoristiti blinkerove funkcije DEMONSTRATION MINUTES, CALLS i >> DATE? U .lnk fajl ubaci (po želji) BLINKER DEMONSTRATION MINUTES n BLINKER DEMONSTRATION DATE dd/mm/yy BLINKER DEMONSTRATION CALLS n Blinker sam vodi računa da ovi limiti budu ispoštovani za vreme rada programa.
clipper.227 nesa,
Dobio sam "Blink Ink", The Newsletter of Blinker. Možda već znate ali ću ipak prepisati par redaka: Blinker 3.0 Details ------------------- ■ Povećana brzina linkovanja ■ Dinamic overlay ■ Integrisan memory swap i 286 DOS extender (with no runtime royalities) (Dakle, nakon linkovanja prevazilazimo magičnu brojku DOS limita od 640 kb) DOS Extender izvršava programe u protected modu povećavajući memoriju ("adresibilnu" :)) od 1Mb do 16Mb! Program linkovan Blinkerom 3.0 automatski detektuje da li mašina ima 286 mikroprocesor i memorije da radi u protected modu. Ako nema izvršiće se klasično (ko do sada, prim.prev. :))) ) upotrebom dinamic overlaj-a. Blinker 3.0 kreira Microsoft Windows - kompatibilne .EXE brzo i lako za programe pisane u Microsoft Visual C++, C, C++, Assembler, Fortran, Pascal, Watcom C, Symantec C++, CA Clipper 5.x (koristi Clip4Win), Borland C, C++ i Assembler. ^^^^^^^^ |||||||| da li je to moguće :))) Blinker 3.0 podržava CodeView 4.x. Tu je i uputstvo na 400 strana i NG naravno. Ako vas interesuje, mogu izdvojiti i neka pitanja i odgovore vezane za probleme sa dosadašnjom verzijom. Lično se nadam da će nbatocanin ili bulaja uskoro dati neki prilog o 3.0 Blinkeru!
clipper.228 snemcev,
>> BLINKER DEMONSTRATION DATE dd/mm/yy Sorry, u žurbi pogreših. Tačno je BLINKER DEMONSTRATION DATE yyyy/mm/dd
clipper.229 snemcev,
>> Lično se nadam da će nbatocanin ili bulaja uskoro dati neki >> prilog o 3.0 Blinkeru! Lično se nadam da će isti ubrzo stići do nas :))))
clipper.230 mickeyl,
=> sa RtLink-om. Tako ces sigurno maksimalno ubrzati svoj rad, => a korisniku ipak dajes verziju programa koja zahteva manje => RAM memorije od verzije linkovane Blinker-om. Ne bih se složio sa ovom tvrdnjom. Moji programi linkovani s BLINKER-om ne zahtjevaju više od 150 KB RAM-a. Primjera radi EXE verzija je dugačka preko 750 KB, a program linkovan sa BLINKER-om zahtjeva samo 127 KB RAM-a. Naravno koristim CL...MAX.LNK pri linkovanju.
clipper.231 hercog,
**> program radi do 1. oktobra. Ili BLINKER DEM MINUTES 30 i radi pola **> sata. Meni prijavljuje invalid input command, tj grešku 1103 Sale
clipper.232 bulaja,
│Meni prijavljuje invalid input command, tj gresku 1103 └─── Bug. O:)
clipper.233 dr.grba,
>> Ako vas interesuje, mogu izdvojiti i neka pitanja i odgovore >> vezane za probleme sa dosadašnjom verzijom. Sad sledi brdo mail poruka tipa "E, a da ti pošaljem diskete i papir za kopiranje..." (((:
clipper.234 hercog,
**> program radi do 1. oktobra. Ili BLINKER DEM MINUTES 30 i radi pola **> sata. Meni prijavljuje invalid input command, tj grešku 1103 Sale
clipper.235 snemcev,
Ima li neko LLIBCA.LIB? Pa još da je voljan da mi ga bači i mail...
clipper.236 bulaja,
│Ima li neko LLIBCA.LIB? Pa jos da je voljan da mi ga baci i mail... └─── He he, treba i meni :). Bas sam ga pre neki dan video u spisku fajlova na Hekom BBS-u (znaci mozda je PD!?:), pa ce se valjda dovuci odatle :).
clipper.237 snemcev,
>> Meni prijavljuje invalid input command, tj grešku 1103 Ajd' napiši šta si tačno otkucao, pa da vidimo gde je greška.
clipper.238 arazumenic,
Da li neko zna kako da u MEMOEDIT() funkciji ograničim broj redova? Naime, potrebno mi je da u zavisnosti od nekih parametara maksimalni broj redova bude odredjen broj (zbog formatizovanja štampe). Saša
clipper.239 mickeyl,
Imam MSC5.0 i hoću da napravim funkciju u c-u za clipper. Kompajliram kako mi piše u knjizi, ali problem se javlja pri linkovanju. Naime linker mi traži LLIBCA.LIB, koju ja namam (imam LLIBCE i LLIBCR), ali od ove ni traga. Inače koliko znam trebao bi da imam kompletan MSC ver 5.0, ali eto nama ove LIB datoteke. Je li dođe ova datoteka uz MSC ?
clipper.240 milanv,
Prilikom prevoda nekih svojih starih programa sa C'87 na 5.01 naišao sam na dve nekompatibilnosti, o kojima do sada nisam ništa čuo iz iskustva drugih: 1. Sledeća, pojednostavljena, konstrukcija, koja je sasvim OK radila na 87-ici, u C_5.01 se, uz poruku "Error BASE/1077 Argument error: .NOT.", zakucava u prvoj dole prikazanoj liniji: -------------------------------------------------- IF .NOT. Stamp_ok() Alarm(tra-la-la) ELSE Stampaj(tra-la-la) ENDIF FUNCTION Stamp_ok IF ISPRINTER() RETURN (.T.) ELSE č 0,40 ? CHR(7) č 0,50 SAY 'Proverite stampac !' INKEY(15) IF LASTKEY() = 27 č 0,50 SAY ' ' RETURN (.F.) ENDIF IF ISPRINTER() č 0,50 SAY ' ' RETURN (.T.) ELSE ? CHR(7) INKEY(15) IF LASTKEY() = 27 č 0,50 SAY ' ' RETURN (.F.) ENDIF IF ISPRINTER() č 0,50 SAY ' ' RETURN (.T.) ENDIF ENDIF ENDIF ----------------------------------------------------- Zašto 2. Sledećih 15 redova ne staje u svaki red ekrana, već u svaki drugi. DISP OFF NEXT 15 Left(neko_polje,79) Naravno, postoji rešenje da se dužina ispisa skrati na 78 karaktera. Zašto?
clipper.241 bulaja,
│ 1. Sledeca, pojednostavljena, konstrukcija, koja je sasvim │OK radila na 87-ici, u C_5.01 se, uz poruku "Error BASE/1077 │Argument error: .NOT.", zakucava u prvoj dole prikazanoj liniji: │ IF .NOT. Stamp_ok() └─── Logicno :). Uleti u CLD pa pogledaj za koju ti to vrednost argumenta tj. funkcije Stamp_Ok() (koja ce inace moze napraviti mnogo lepse:) javlja greska, ali unapred pretpostavljam da je to jedan NIL. Ako pogledas funkciju Stamp_Ok(), videces da je moguce da se prodje kroz sve IF-ove a da ni jedan od uslova ne bude zadovoljen (ako si cekao 30 sekundi ili dva puta pritisnuo taster, a pri tome je stampac ostao jos uvek off line), sto znaci da funkcija vraca NIL. Ako ti je ovo kompletna funkcija, bice to dovoljno da na kraj dodas RETURN (.F.) (u principu funkcija uvek treba da vraca neku default vrednost :), ili da dodas taj return u ELSE u poslednjem IF. Pretpostavljam da je u ovome problem, a ti proveri :).
clipper.242 nbatocanin,
> Lično se nadam da će nbatocanin ili bulaja uskoro dati > neki prilog o 3.0 Blinkeru! I oni se nadaju ;)
clipper.243 cnenad,
ŁŁŁ**> program radi do 1. oktobra. Ili BLINKER DEM MINUTES 30 i ŁŁŁ**> radi pola Startujem takav program, radim s njim pet minuta, znaci ostaje jos 25 ?
clipper.244 gari,
> Startujem takav program, radim s njim pet minuta, znaci ostaje > jos 25 Ne, nego SVAKI put kada se startuje program imas 30 min. Ako mislis da je to previse da das korisniku kao demo verziju, a onda mu ti daj 2 min. ;) pozdrav, Gari.
clipper.245 toma,
Mali problem. Kako u Clipper-u pročitati iz kog direktorijuma je program učitan?
clipper.246 magician,
­=> Kako u Clipper-u pročitati iz kog direktorijuma je program učitan? Za slične stvari koristim funkciju iz Nanforum-a 'FT_ORIGIN()'. Ona ti vraća drive, dir i filename.
clipper.247 snemcev,
>> Startujem takav program, radim s njim pet minuta, znaci ostaje jos 25 ? Jok, u svakoj seansi imaš po 30 minuta. Posle isteka tog vremena, program prekida sa radom.
clipper.248 ndragan,
/ Naime, potrebno mi je da u zavisnosti od nekih parametara maksimalni / broj redova bude odredjen broj (zbog formatizovanja štampe). Da li si razmišljao o drugačijem metodu štampanja memo polja? Zašto ne bi memo polje imalo neograničenu dužinu?
clipper.249 snemcev,
>> Za slične stvari koristim funkciju iz Nanforum-a 'FT_ORIGIN()'. Ona >> ti vraća drive, dir i filename. I Expand 3.0 ima odgovarajuću funkciju - XPmyName()
clipper.250 jtitov,
> Dobio sam "Blink Ink", The Newsletter of Blinker. DOBIO? Hoces reci pozajmio. Nadam se da ce vlasnik to dobiti nazad... :)
clipper.251 d.petrovic,
Jel vam poznato kako izgleda funkcija za pakovanje u jedrenjaku? E, pa u jednom programu koji ima cija se baza sastoji od 11 .DBF i jednog .DBT fajla ta funkcija pravi 11 .DBF i 11 .DBT fajlova. Eeeeee, ali nisam ja to zabrljao. To se desava na 486/50 i jos nisam ustanovio zbog cega, ali kad se ocisti autoexec i config onda vise ne brljavi. QEMM 7.01 ili nesto drugo... videcu pa cu vam javiti
clipper.252 arazumenic,
-> Da li si razmisljao o drugacijem metodu stampanja memo polja? Zasto ne -> bi memo polje imalo neogranicenu duzinu? Evo zasto: Kod stamapnja ponude za bilo sta (robu, usluge itd.) znam da mi zaglavlje zauzme 12 - 20 redova. Onda u zavisnosti od toga sta se stampa, moze se zauzeti jos 4 - 30 redova. Dodaj na to gornju i donju marginu od po 6 redova (jedini fiksni broj), ispadne da je broj redova koji se stampaju 30 - 62, sto zanci da mi ostaje jos mesta za 10 - 42 redova. E, sada mi treba da se doda jos neki tekst u taj prostor. Ako stavim neograniceni broj redova, pa operator pretera sa spisateljskim mogucnostima, ode stampanje strane na dva lista, a to bas hocu da sprecim. Ako imas resenje, pomagaj! Sasa
clipper.253 bulaja,
**** new file **** R:\IBMPC\CLIPPER\*.* ---------------------- llibca arj 121042 LLIBCA.lib, MSC 5.1 lib za povezivanje Clipper -> C This file contains LLIBCA.LIB of the MS-C 5.1 Compiler, which works fine with C (also when using MS-C 6.0). If you are using MS-C 6.0 please make sure to use the /FPa /Gh AND don't use /Zi. Please pay attention to the file LLIBCA.TXT, which contains the original disclaimer of MicroSoft.
clipper.254 bulaja,
**** new file **** R:\IBMPC\CLIPPER\*.* ---------------------- rpcxlb10 zip 195663 RPCXLib: Clipper lib sa grafickim funkc. (prikaz PCX) RPCXLib is a CLIPPER LIBRARY with GRAPHIC FUNCTIONS. Features : * RShowPCX function to display a PCX graphic file : - very FAST ! - of UNLIMITED SIZE - on a SPECIFIC screen location - on EGA/VGA and SUPERVGA screens - up to a resolution of 640 x 480 x 256 (SUPERVGA) - with AUTOMATIC DETECTION and USE of almost all SUPERVGA adapters - with support of the INTERNATIONAL VESA STANDARD * Functions to mix ones own CLIPPER COLOURS YOU CAN COMPOSE 262.144 DIFFERENT COLOURS ! * Functions to slowly DIM the screen * Functions to determine the GRAPHIC CONFIGURATION of a PC : Is there a EGA, VGA, MCGA or SUPERVGA adapter available ? When there is a SUPERVGA adapter available you can, in most cases, determine the brand * A NORTON GUIDE with a description of all functions in the library
clipper.255 bulaja,
│RPCXLib: Clipper lib sa grafickim funkc. (prikaz PCX) └─── Biblioteka inace i nije nesto (u stvari nije nista mnogo vise od obicnog PCX viewer-a), al' mozda nekom dobro dodje :). Inace ce ovih dana biti nekih upotrebljivih Clipper biblioteka u dir-u, treba samo da izvrsim selekciju sta valja od ovoga sto smo skinuli (jos davno:).
clipper.256 snemcev,
>> R:\IBMPC\CLIPPER\*.* >> ---------------------- >> llibca arj 121042 LLIBCA.lib, MSC 5.1 lib za povezivanje Clipper -> C Ovo je stvarno bilo ekspresno! Svaka čast! PS Još samo da proradi...
clipper.257 jtitov,
> Dobio sam "Blink Ink", The Newsletter of Blinker. DOBIO? Hoces reci pozajmio. Nadam se da ce vlasnik to dobiti nazad... :)
clipper.258 toma,
■> I Expand 3.0 ima odgovarajuću funkciju - XPmyName() Jes vala, i to radi! Izvukao sam je posebno iz lib-a i dobio .obj od svega 226 byteova. Idemo dalje, novo pitanje glasi: Kako datoteci dodeliti atribut 8 (volume label). Funkcija XPfattr() iz Expand-a 3.0 odbija poslušnost kad je u pitanju broj 8. ps. treba za neku malu zaštitu, tu datoteku ne kopira ni jedan program. Nije neka al je zaštita.
clipper.259 vision,
Izvinjavam se sto nisam ranije pisao (prosla mi pretplata i tako te zajebancije:). Nego da predjem na stvar: Pod jedan: Simulirao sam nekako '&' operaciju clipperom i to napravio sam petju od 0 do 7:), pa sam dati broj uvek delio sa 2 i tako to znate ono 'skolski':) ali je sporo, ali sta je tu je:). Pod dva: KORISTIM S'87 i nema SetCursor() :(. Oce li neko da mi prebaci lib sa setcursor-om, ili pa da napravi mali asm:). Hvala 'ni za sta':)
clipper.260 d.petrovic,
Ă> Eeeeee, ali nisam ja to zabrljao. To se desava na 486/50 i jos Ă> nisam a ko bi drugi, jelte... ;) kad se izbaci share radi lepo :). Nedostajala je jedna linija koja glasi CLOSE __TEMP i neću više da pišem ništa u jutarnje sate :)
clipper.261 mickeyl,
=> llibca arj 121042 LLIBCA.lib, MSC 5.1 lib za povezivanje Clipper -> C Super, to sam upravo tražio!
clipper.262 toma,
Jel može kratak tekst > Kako sam povezao Clipper i C < ? Sve što mi je palo na pamet sam probao, ali ništa, ustvari, program se linkuje bez i jedne greške, e sad što posle neće da radi... ps. MSC 5.1
clipper.263 bulaja,
│Jel moze kratak tekst > Kako sam povezao Clipper i C < ? │Sve sto mi je palo na pamet sam probao, ali nista, ustvari, program │se linkuje bez i jedne greske, e sad sto posle nece da radi... └─── Aj' posalji primer sta nece da radi, pa da vidimo sta nevalja :).
clipper.264 toma,
■> Aj' posalji primer sta nece da radi, pa da vidimo sta nevalja :). Aiii, ma nemam ja pojma o povezivanju, probao sam čisto da vidim kako se to radi. Problem je i što nemam "Jedrenjaka", čini mi se da je u njoj bilo govora o tome... Probao sam nešto trivijalno: proba.prg Stampaj() c.c #include "\clipper5\include\extend.h" CLIPPER stampaj() { printf("Toma"); } Nemam pojma ni koje opcije da dam CL-u (MSC 5.1) ni da li je potreban neki poseban postupak... Neznam ništa :(
clipper.265 ndragan,
/ operator pretera sa spisateljskim mogucnostima, ode stampanje strane / na dva lista, a to bas hocu da sprecim. / Ako imas resenje, pomagaj! Korisnik je uvek u pravu, kakav god da je konj. Ja im omogućim da štampaju koliko god hoće, a ako su baš toliko ludi, oni to i urade. Jeste da u duši navijam za zelene, pa imam grižu savesti što sam toliko šume uništio, ali s druge strane sam đavo zna koliko sam šume spasao - ta faktura je ranije bila pet drugih papira, koji su se prepisivali na dva tri mesta, i ko zna koliko je to onda trošilo.
clipper.266 hercog,
Ajd nek mi neko lagano objasni šta sve treba uraditi da bi se iskoristila blinkerova funcija DEMONSTRATION... Šta gođ da sam pokušavao nije telo da radi. Zato otkuckajte sve lepo, svaki korak :) Sale
clipper.267 arazumenic,
-> Korisnik je uvek u pravu, kakav god da je konj. Ja im omogucim da -> stampaju koliko god hoce, a ako su bas toliko ludi, oni to i urade. O.K. Slazem se da je korisnik uvek u pravu, pa makar bio i konj. A ti isti konji su zapeli da im stampa ide na jedan list posto poto, jer u protivnom, stampa ode preko memoranduma. Sasa
clipper.268 mickeyl,
=> Jel može kratak tekst > Kako sam povezao Clipper i C < ? Evo kako sam ja izvorni kod DUG_IDE u c-u prilagodio svojim potrebama i sve to spojio s clipper aplikacijom. ---------------------------------------------------------------------- #include <extend.h> <----- Ovo sam ja dodao, inače ta linija treba obavezno da stoji #include <stdlib.h> #include <dos.h> #include <stdio.h> #include <conio.h> #include <bios.h> char *getascii (unsigned int in_data ŠĆ, int off_start, int off_end); /*void main (void)*/ CLIPPER control() <---- Ovde sam deklarisao ime kako će se funkcija koju će Clipper aplikacija zvati š unsigned int dd Š256Ć; /* DiskData */ unsigned int dd_off; /* DiskData offset */ unsigned int loop; /* Loop variable */ int num_drv; /* Number of Hard disks */ char *prenos; <----- Ovde sam dodao svoju varijablu ciju vrednost iz c programa zelim da vratim u clipper program union REGS registers; /* Used for Interrupt for BIOS data */ unsigned int bios_cyl Š2Ć, bios_head Š2Ć, bios_sec Š2Ć; /* Cylinders, Heads, Sectors */ /* How many disk drives & parameters */ num_drv = 1; /* Byte at Segment 40H Offset 75H */ for (loop = 0; loop < num_drv; loop++) /* Loop through drives */ š /* Get IDE Drive info */ while (inp (0x1F7) != 0x50) /* Wait for controller not busy */ ; outp (0x1F6, (loop == 0 ? 0xA0 : 0xB0)); /* Get first/second drive */ outp (0x1F7, 0xEC); /* Get drive info data */ while (inp (0x1F7) != 0x58) /* Wait for data ready */ ; for (dd_off = 0; dd_off != 256; dd_off++) /* Read "sector" */ dd Šdd_offĆ = inpw (0x1F0); /* Get BIOS drive info */ registers.h.ah = 0x8; /* Get drive info */ registers.h.dl = 0x80 + loop; /* Drive is 80H for Disk 0, 81H for Disk 1 */ int86 (0x13, &registers, &registers); if (! registers.x.cflag) /* All OK if carry not set */ š bios_head ŠloopĆ = registers.h.dh + 1; /* Heads are from 0 */ bios_sec ŠloopĆ = registers.h.cl & 0x3F; /* sec is bits 5 - 0 */ bios_cyl ŠloopĆ = ((registers.h.cl & 0xC0) << 2) + registers.h.ch + 2; /* +1 because starts from 0 and +1 for FDISK leaving one out */ ć prenos=getascii (dd, 10, 19); ć _retc(prenos); <---- I ovde sam iskoristio makro iz extend.h za vracanje stringa u clipper aplikaciju ć char *getascii (unsigned int in_data ŠĆ, int off_start, int off_end) š static char ret_val Š255Ć; int loop, loop1; for (loop = off_start, loop1 = 0; loop <= off_end; loop++) š ret_val Šloop1++Ć = (char) (in_data ŠloopĆ / 256); /* Get High byte */ ret_val Šloop1++Ć = (char) (in_data ŠloopĆ % 256); /* Get Low byte */ ć ret_val Šloop1Ć = 'Đ0'; /* Make sure it ends in a NULL character */ return (ret_val); ć ------------------------------------------------------------------------ U clipper program staviš recimo : var=CONTROL(), nakon čega u ovom mom slučaju var dobija vrednost serijskog broja IDE diska. Da bi kompajlirao program u c za clipper upotrebi sledeću sintaksu: CL /c /AL /Zi /Oalt /FPa /Gs <ime datoteke>.c Eto to je moje prvo iskustvo C+Clipper i odmah mi je proradilo, čim sam nabavio LLIBCA.LIB. p.s. Nadam se da se drugi neće ljutiti zbog obimnosti poruke.
clipper.269 magician,
­=> p.s. Nadam se da se drugi neće ljutiti zbog obimnosti ­=> poruke. Ma, šta ti pada na pamet ;)
clipper.270 toma,
■> Nemam pojma ni koje opcije da dam CL-u (MSC 5.1) ni da li je potreban ■> neki poseban postupak... Neznam ništa :( STOJ! Radi, sad znam da povezujem! Nabavio sam "Jedrenjaka" ali ni tad nije išlo glatko jer sam naviknut na Clipper <ime_fajla> [opcije] kucao: cl <ime_fajla> [opcije] !!!!! toma = Turbo DILEJA 16v injection!!!!!
clipper.271 gari,
Evo ti brate korak po korak: U komandnoj liniji ide: BLINKER @BLINK.LNK U fajlu BLINK.LNK treba da ide otprilike ovo: FILE E:\LD OUTPUT E:\LD BLINKER DEMONSTRATION MINUTES 2 LIB CLIPPER, EXTEND, ML E, pa ako ne bude sa ovim radilo (naravno prilagodis svojim potrebama vrednosti iza FILE, OUTPUT i LIB) onda imas ili verziju blinker-a od pre hrista ili se nalazis u Zoni sumraka ;) Nadam se da ce ti ovo pomoci, pozdrav, Gari.
clipper.272 snemcev,
>> p.s. Nadam se da se drugi neće ljutiti zbog obimnosti >> poruke. Ljutiti? More, čitao bih ja i megabajtne poruke, samo da su korisne koliko tvoja. Jedan primer govori više od hiljadu reči.
clipper.275 mickeyl,
=> Ajd nek mi neko lagano objasni šta sve treba uraditi da bi se => iskoristila blinkerova funcija DEMONSTRATION... Evo ti sadržaj mog DEMO.LNK-a. Kroz primjer ćeš najlakše da središ stvar. BLINKER DEMONSTRATION DATE 1993/12/31 BLINKER DEMONSTRATION MINUTES 120 BLINKER INCREMENTAL OFF BLINKER EXECUTABLE CLIPPER F25;V006; BLINKER OVERLAY OPSIZE 100 BLINKER OVERLAY UMB OFF BLINKER EXECUTABLE SERIAL #DEMO_VER OUTPUT DEMO.EXE FILE demo # BEGINAREA .... ENDAREA čCL87MAX.LNK Linkuješ sa BLINKER č<ime LNK fajla>
clipper.276 neman,
U mreznoj aplikaciji koristim sledeci niz naredbi IF reclock( 10 ) .AND. chkrec() REPL polje WITH vrednost DBCOMMIT(); UNLOCK ENDIF gde reclock(n) zakljucava slog, a chkrec() proverava da li je doslo do promene vrednosti od strane drugog korisnika sloga za vreme izmene podataka. Ideja je bila da pri svakoj promeni bilo kog sloga izvrsim i DBCOMMIT() da bi podaci bili UPISANI na disk. Za UNLOCK u NG kaze da kada se izvrsi ta komanda promene budu vidljive i ostalim korisnicima, ali bez snimanja na disk. Testirajuci brzinu aplikacije uvideo sam da DBCOMMIT() dosta usporava izvrsenje aplikacije, cak i na jednokorisnickoj masini. Pokusao bih da izbacim DBCOMMIT() ali zbog sigurnosti korisnika, a samim tim i moje licne :), to jos nisam uradio. Dakle, interesuju me tudja iskustva u vezi ovog problema. P.S. Resenje tipa USE ... REPLACE UNLOCK CLOSE je jos sporije. neman
clipper.277 ppekovic,
>> Nemam pojma ni koje opcije da dam CL-u (MSC 5.1) ni da li je potreban >> neki poseban postupak... Neznam ništa :( Prvo je potrebno da program prevodiš u Large modelu (/AL) a valjalo bi da se isključi i optimizacija (/Od). Paya
clipper.278 dejanr,
>> Pokusao bih da izbacim DBCOMMIT() ali zbog sigurnosti korisnika, a samim >> tim i moje licne :), to jos nisam uradio. Meni je mehanizam sa RLOCK...UNLOCK uvek lepo radio, nikada nije bilo potrebno koristiti DBCOMMIT.
clipper.279 neman,
> Meni je mehanizam sa RLOCK...UNLOCK uvek lepo radio, > nikada nije bilo potrebno koristiti DBCOMMIT. Hm, ovo me je zaintrigiralo pa sam uradio neke testove, doduse na mom PC-ju, ne i na Novell mrezi. JEDINI (siguran) nacin da podaci budu snimljeni na disk je da se uradi DBCOMMIT(). To ne vazi ako je kesirano upisivanje na disk. Opet napominjem da zatvaranje datoteka i ponovno otvaranje nije resenje zbog sporosti te operacije. Kriticne su operacije npr. dugotrajno azuriranje podataka bez napustanja maske za unos ( tada bi se zatvorile datoteke i podaci bi bili snimljeni ), zatim svodjenje stanja sa upisom u datoteku i jos po nesto. Nestanak struje u takvoj situaciji je KATASTROFA, pogotovu kod azuriranja. Resenje je naravno UPS, ali nije bas jeftino obezbediti UPS za svaki racunar u vecoj mrezi. Sto se Novell-a tice, resetovanjem servera igracu se narednih dana. Sada pretpostavljam da nisi imao problema sa RLOCK() i UNLOCK zato sto Novell sam u odredjenim vremenskim razmacima vrsi snimanje podataka ( vreme se moze zadati ) na disk. Pada mi napamet da u DBASE IV postoje naredbe BEGIN TRANSACTION, END TRANSACTION i ROLLBACK koje bi trebale da efikasnije kontrolisu ranije pomenute situacije. Nanfor i Netto imaju neku podrsku za to. Imali iskustva sa koriscenjem TTS-a ? neman
clipper.280 dejanr,
>> Kriticne su operacije npr. dugotrajno azuriranje podataka bez napustanja >> maske za unos ( tada bi se zatvorile datoteke i podaci bi bili snimljeni) >> zatim svodjenje stanja sa upisom u datoteku i jos po nesto. Nestanak >> struje u takvoj situaciji je KATASTROFA, pogotovu kod azuriranja. Mislim da to samo po sebi i nije tolika katastrofa. Naime, ako neko radi u masci i tu usred rada nestane struje, nekako je "blisko pameti" da će to što je u toj masci radio morati da uradi ponovo. Nisam primetio da se korisnici za to bune ;) Ono što jeste katastrofa je da više prethodnih intervencija na slogovima ne bude upamćeno, ne samo zato što bi to trebalo ponovo raditi, nego zato što ne može čovek da popamti šta je sve radio i gde je intervenisao. Recimo, na Sezamu backup konferencija itd radimo povremeno, ali backup korisničke baze mora da se radi jako, jako često - da ona (daleko bilo) pukne, silna nevolja bi bila dovesti je ponovo u red :( >> Resenje je naravno UPS, ali nije bas jeftino obezbediti UPS za svaki >> racunar u vecoj mrezi. Da... ali je dosta da se obezbedi UPS za server. Transakcije koje su ranije izvršene će tada svakako biti realizovane, a tekuća... šta da se radi. >> Pada mi napamet da u DBASE IV postoje naredbe BEGIN TRANSACTION, >> END TRANSACTION i ROLLBACK koje bi trebale da efikasnije kontrolisu >> ranije pomenute situacije. Nisam znao da to ima dBASE IV, to je sjajna stvar. Video sam da je to osnova BTrieve rada, i mislim da je jako dobra ideja.
clipper.281 v.nesic,
Traži se ! Negde sam video programčić koji zamenjuje standardni GET rider i omogućava da se brojne vrenosti unose kao na digitronu. Ako ga neko ima, ili zna gde sam ga video...
clipper.282 neman,
> sto je u toj masci radio morati da uradi ponovo. Nisam > primetio da se korisnici za to bune ;) Ono sto jeste > katastrofa je da vise prethodnih intervencija na slogovima > ne bude upamceno, ne samo zato sto bi to trebalo Pre dve godine, postavio sam aplikaciju u jednom video klubu. Objasnio sam vlasnici kako se unose podaci. Sutradan sam dosao i pitao kako ide a ona rece da je unela oko 150 clanova. Ja pogledah - ono nista, ni traga ni glasa od podataka. Objasnim joj ponovo sve - sutra ista pesma. I onda se upali sijalica. Ona UOPSTE nije izlazila sa maske za unos po celi dan :(((((( Sutradan sam ja podmetnuo svoje prste i zavrsio oko 700 clanova. Od tada sam na svakih pet unetih stavki zatvarao i ponovo otvarao datoteku. A onda sam saznao za COMMIT :))))))))) Ko prizna pola mu se doda ;) > Da... ali je dosta da se obezbedi UPS za server. > Transakcije koje su ranije izvrsene ce tada svakako biti > realizovane, a tekuca... sta da se radi. Cini mi se da je najbolje resenje DBCOMMIT() pri unosu svake stavke. Kod sekvencijalne obrade moglo bi da se izostavi COMMIT() sto bi ubrzalo obradu a ako i dodje do pada sistema - Jovo nanovo.
clipper.283 neman,
> Ako ga neko ima, ili zna gde sam ga video... Potrazicu na svojim disketama .... evo ga :) neman ngetdemo.prg
clipper.284 .bale.,
> Da... ali je dosta da se obezbedi UPS za server. Transakcije koje su > ranije izvršene će tada svakako biti realizovane, a tekuća... šta da > se radi. "Seci uši, krpi dupe" filozofija. E... :( A tolika nauka o bazama podataka i sistemima otpornim na otkaze, čemu? Dokle bi stigao SDK kad bi koristio Clipper? (Ne moraš da odgovaraš, nije bitno, znam da imaš odgovor :)
clipper.285 d.petrovic,
Ă> Pokusao bih da izbacim DBCOMMIT() ali zbog sigurnosti korisnika, Ă> a samim tim i moje licne :), to jos nisam uradio. Ă> Dakle, interesuju me tudja iskustva u vezi ovog problema. Zdravo je ubaciti ga povremeno i nije mi jasno gde se to toliko gubi vreme, valjda možeš da izvršiš upis na disk kada korisnik završi sa jednom promenom. Aplikaciju ti praviš i ti treba da odlučiš kada treba ubaciti dbcommit(). Ja sam u nenadov ninkey() ubacio da se kod neaktivnosti tastature od n sekundi izvrši upis na disk, a svuda gde treba izvršiti upis umesto dbcommit() postavljam promenljivu koja kontroliše upis na .T. . Može neko da pita:"Šta, ako nestane struje, a korisnik je neprekidno radio prethodnih sat vremena". Odgovor:"Još ne videh tako ažurnog srbina da ne pusti tastaturu na miru na 2-3 sekunde" ;>>
clipper.286 dejanr,
>> "Seci uši, krpi dupe" filozofija. E... :( A tolika nauka o bazama >> podataka i sistemima otpornim na otkaze, čemu? Sva nauka kaže da ne postoji sistem koji je potpuno otporan na otkaze, može se samo napraviti sigurniji ili manje siguran sistem. UPS na serveru, program koji redovno piše na disk i redovan backup, po meni, čine dovoljno siguran sistem za većinu primena. Ako je nekome baš velika frka, može da napravi mirroring diska. >> Dokle bi stigao SDK kad bi koristio Clipper? Prvo, SDK koristi Clipper programe, hvala na pitanju. Na PC računarima. Drugo, softver koji koristi SDK na većim mašinama se ubija od sigurnosti, a baze podataka koje su napravili (imena i računi firmi) ne vrede pet para (iako ih prodaju, ili su ih prodavali, za hiljadu maraka). Pa opet nekako funkcionišu, kao što se vidi.
clipper.287 .bale.,
> Drugo, softver koji koristi SDK na većim mašinama se ubija od > sigurnosti, a baze podataka koje su napravili (imena i računi firmi) A koji su oni u RC-u? PTT ili SDK? Na kraju, kako hoće, za mene je to i dalje "seci uši, krpi dupe" ;-))) Vidiš da sam nedokaziv, lepo sam ti rekao da se ne trudiš odgovarajući...
clipper.288 v.nesic,
> Potrazicu na svojim disketama .... evo ga :) Hvala :)
clipper.289 mickeyl,
=> Pre dve godine, postavio sam aplikaciju u jednom video klubu. Objasnio => sam vlasnici kako se unose podaci. Sutradan sam dosao i pitao kako ide a => ona rece da je unela oko 150 clanova. Ja pogledah - ono nista, ni traga => ni glasa od podataka. Objasnim joj ponovo sve - sutra ista pesma. I onda => se upali sijalica. Ona UOPSTE nije izlazila sa maske za unos po celi dan => :(((((( Sutradan sam ja podmetnuo svoje prste i zavrsio oko 700 clanova. => Od tada sam na svakih pet unetih stavki zatvarao i ponovo otvarao => datoteku. A onda sam saznao za COMMIT :))))))))) Ko prizna pola mu se => doda ;) E pa tu mi nešto smrdi :(. Nije ti disk buffer toliki da bi čuvao sve vreme te podatke, a da se pri tom ne piše na disk. Po meni, tvoj program nije bio dobar. Kakve veze ima unosna maska sa snimanjem podataka na disk? Ako je tvoj program radio APPEND BLANK i REPLACE, moralo je u bazi od 150 članova, da bude njih preko 100 unesenih i sačuvanih na disku. I da je na kraju završila isključivanjem računara, a ne regularnim izlaskom iz programa, moralo bi nešto da ostane. U najgorem slučaju bila bi datoteka zeznuta, a ne prazna. => Cini mi se da je najbolje resenje DBCOMMIT() pri unosu svake stavke. Kod => sekvencijalne obrade moglo bi da se izostavi COMMIT() sto bi ubrzalo => obradu a ako i dodje do pada sistema - Jovo nanovo. Nije mi jasna ta tvoja tvrdnja COMMIT usporava obradu. To više mogu da shvatim teoretski, jer u praksi to se i ne primjeti. To iz ličnog iskustva. Naravno ako ga staviš na pravo mjesto tj. posle svakog unosa novih podataka.
clipper.290 neman,
> E pa tu mi nesto smrdi :(. Nije ti disk buffer toliki da > bi cuvao sve vreme te podatke, a da se pri tom ne pise na > disk. Po meni, tvoj program nije bio dobar. Kakve veze ima > unosna maska sa snimanjem podataka na disk? Ako je tvoj > program radio APPEND BLANK i REPLACE, moralo je u bazi od > 150 He he, meni mozes svasta da kazes ali da mi program ne radi, e to me tangira zestoko. Elem, iskljuci eventualni kes program, ukucaj i prevedi sledeci program ( ja imam trenutno Clipper 5.2c ) CLS USE test FOR i := 1 TO 1000 APPE BLANK @ 24, 0 SAY i NEXT Baza test recimo ima samo jedno polje npr P tipa Character duzine 10 Pre nego sto pokrenes isprazni bazu. Kada pokrense program, pusti ga da izbroji do recimo 200-500 pa RESETUJ racunar dok radi program. Kada se racunar pokrene pogledaj koliko slogova u bazi. Videces da od onih 100 slogova imas samo 00 tj 0 slogova ;>. Ako ubacis DBCOMMIT() u FOR - NEXT petlju imaces 200-500 slogova u bazi. Sto se tice Clipper-ovog bafera za podatke on je velik 64KB. ( barem ) DBCOMMIT() UUSSPPOORRAAVVAA obradu. Izmeri vreme izvrsenja ovog programceta sa i bez DBCOMMIT(). Razlika je dRRRRRasticna.
clipper.291 ndragan,
/ isti konji su zapeli da im stampa ide na jedan list posto poto, jer u / protivnom, stampa ode preko memoranduma. Šta? Hoćeš reći da ne odštampaš novo zaglavlje za novu stranu (makar bilo i prazno tamo gde dođe moremandum)? Ako se račun nastavlja na drugu stranu, mora da ima makar skraćeno zaglavlje. Nema teorije da se dozvoli da neka štampa pređe preko ivice papira.
clipper.292 ndragan,
/ Pada mi napamet da u DBASE IV postoje naredbe BEGIN TRANSACTION, / END TRANSACTION i ROLLBACK koje bi trebale da efikasnije kontrolisu U FP2.+ postoji bibliotetka netware.plb; nismo se još sigrali s otim, ali nameravamo u dogledno vreme. Trebalo bi da radi upravo te stvari, jer se funkcije otprilike tako i zovu.
clipper.293 cnenad,
ŁŁŁ => ona rece da je unela oko 150 clanova. Ja pogledah - ono ŁŁŁ nista, ni traga => ni glasa od podataka. Objasnim joj ponovo ŁŁŁ sve - sutra ista pesma. I onda Jes da DBASE IV nije CLIPPER ali i meni se nesto slicno dogadjalo u pocetnickim danima kad sam unosio podatke u bazu i umesto CLOSE DATA, QUIT jednostavno i efikasno pritiskao crveno dugme na kojem pise OFF ! I normalno ono sto je unoseno od zadnjeg snimanja sa CTRL-END nije bilo snimljeno, u stvari ti slogovi su postojali i na njih su bili duplirani podaci koji su ranije uneti ali se njima nije nikako moglo pristupiti vec samo izvrsiti brisanje tih slogova i pack cele baze. Eh, koliko sam podataka bez veze po nekoliko puta unosio :( !
clipper.294 nesa,
>> Potrazicu na svojim disketama .... evo ga :) Može li se dobiti! :))
clipper.295 snemcev,
Jel zna neko TAžNO kako se Clipper kompajler ponaša pri kompajliranju funkcija koje su u okviru kodnih blokova? Interesuje me da li ih pretprocesor ikako menja. Npr, kako će posle kompajliranja izgledati .ppo datoteka za ovaj kod? --------------------------------- #command Trt( <a> ) => Mrt( <a> ) Eval({ || Trt(5) }) ---------------------------------
clipper.296 toma,
■> DBCOMMIT() UUSSPPOORRAAVVAA obradu. Izmeri vreme izvrsenja ovog ■> programceta sa i bez DBCOMMIT(). Razlika je dRRRRRasticna. Evo ti rešenje. Pod jedan, smem da se kladim da nigde u svojim programima nemaš ovako nešto, jer je jednostavno nepotrebno. Razlika u brzini se najviše vidi u delu programa kad se polja popunjavaju/dodaju automatski, znači bez intervencije operatera. Tu i ako se izgube podaci nije uopšte strašno, jednostavno se opet "sami" izračunaju. Pod dva, situacija kada operater radi, t.j. kad je bitno da podaci sačuvaju za kasnije. 1. Izedituj getsys.prg, tu imaš linije: // apply keystrokes until exit while ( get:exitState == GE_NOEXIT ) GetApplyKey( get, Inkey(0) ) end 2. Umesto inkey(0) stavi ninkey(0), a u njemu, kao što reče gosn.Dejan Petrović: ■> Ja sam u nenadov ninkey() ubacio da se kod neaktivnosti ■> tastature od n sekundi izvrši upis na disk, a svuda gde treba ■> izvršiti upis umesto dbcommit() postavljam promenljivu koja ■> kontroliše upis na .T. . Može neko da pita:"Šta, ako nestane struje, ■> a korisnik je neprekidno radio prethodnih sat vremena". Odgovor:"Još ■> ne videh tako ažurnog srbina da ne pusti tastaturu na miru na 2-3 ■> sekunde" ;>> btw, Dejane, možemo li da dobijemo ninkey(). Sa tvojim dodacima, obavezno!
clipper.297 arazumenic,
-> Sta? Hoces reci da ne odstampas novo zaglavlje za novu stranu -> (makar bilo i prazno tamo gde dode moremandum)? Ako se racun -> nastavlja na drugu stranu, mora da ima makar skraceno -> zaglavlje. Nema teorije da se dozvoli da neka stampa prede -> preko ivice papira. Pa upravo je o tome i rec, da se ne dozvoli da da stampa predje preko ivice papira. Inace, cela stamapa jednostavno mora da stane na jednu stranu (takvi su "konjski" zahtevi). Zato mi i treba da se memoedit ogranici na odredjen broj redova. Sasa.
clipper.298 mcgoran,
case 1 ====== 1) trtmrt.prg: #command Trt( <a> ) => Mrt( <a> ) Eval({ || Trt(5) }) 2) clipper trtmrt /s/p 3) trtmrt.ppo: Eval({ || Trt(5) }) case 2 ====== 1) trtmrt.prg: #translate Trt( <a> ) => Mrt( <a> ) Eval({ || Trt(5) }) 2) clipper trtmrt /s/p 3) trtmrt.ppo: Eval({ || Mrt( 5 ) }) case 3 ====== 1) trtmrt.prg: #define Trt(a) Mrt(a) Eval({ || Trt(5) }) 2) clipper trtmrt /s/p 3) trtmrt.ppo: Eval({ || Mrt(5) }) Any question... !?
clipper.299 toma,
■> Negde sam video programčić koji zamenjuje standardni GET rider i ■> omogućava da se brojne vrenosti unose kao na digitronu. ■> ■> Ako ga neko ima, ili zna gde sam ga video... Ovo me je konačno "dotuklo"! Seo sam i realizovao plan star cca 1.god. Dakle uz poruku je zakačen getsys.prg koji omogućava ovo što se traži i to po sledećim pravilima: - normalno, reaguje samo na numeričke vrednosti - radi sve dok se ne "stisne" neki taster koji je različit od +-1234567890 i backspace, posle toga prelazi u normalan mod, i omogućava editovanje Sve ovo je urađeno za veče (cca 1 ipo sat) i možda ima i grešaka, ali zato ste vi tu! getsys.zip
clipper.300 d.petrovic,
Ă> btw, Dejane, možemo li da dobijemo ninkey(). Sa tvojim dodacima, Ă> obavezno! Samo da ubacim komentare i izbacim nepotrebno. Ako ga nema za par dana podseti me opet :)
clipper.301 d.petrovic,
Evo kad si zapeo :) Screen Saver mora isto da štampa ko kaže da ti treba keš kad voziš kliper program ? ;))) ninkey.zip
clipper.302 nesa,
> / Pada mi napamet da u DBASE IV postoje naredbe BEGIN > TRANSACTION, / END TRANSACTION i ROLLBACK koje bi trebale da > efikasnije kontrolisu > > U FP2.+ postoji bibliotetka netware.plb; nismo se još sigrali s > otim, ali nameravamo u dogledno vreme. Trebalo bi da radi > upravo te stvari, jer se funkcije otprilike tako i zovu. Kasno sam se priključio! Može li dodatno objašnjenje?! :(
clipper.303 snemcev,
>> case 2 >> # translate Trt( <a> ) => Mrt( <a> ) >> Any question... !? Jeah! Ovo mi rešava problem. Nigde u .NG nisam mogao da nađem razliku između #commnad i #translate. Tamo su dati kao sinonimi.
clipper.304 mickeyl,
=> He he, meni mozes svasta da kazes ali da mi program ne radi, => e to me tangira zestoko. Elem, iskljuci eventualni kes program, Nisi me dobro razumio, mada ni ja tebe nisam najbolje razumio. Mislio sam da ti nešto kod unosa nije valjalo, pošto mi se takva stvar nikad nije desila. Ja obično prvo što objasnim nekom duduku jeste da računar smije isključiti samo kad je u DOS promptu. Mada me čudi da Clipper toliko mnogo čuva podataka u baferu. Ja sam mislio da uvijek čuva u baferu par zadnjih slogova, dok one u međuvremenu snima na disk. => Pre nego sto pokrenes isprazni bazu. Kada pokrense program, pusti ga da => izbroji do recimo 200-500 pa RESETUJ racunar dok radi program. Kada se => racunar pokrene pogledaj koliko slogova u bazi. Videces da od onih 100 => slogova imas samo 00 tj 0 slogova ;>. Ako ubacis DBCOMMIT() u FOR - NEXT => petlju imaces 200-500 slogova u bazi. Tačno. Ali je si li ti njoj rekao da kad završi unos tek tako isključi računar ili da regularno izađe u DOS, pa tek onda da ga isključi. Dakle ovo se moglo desiti samo da je nestalo struje ili ona zbog svog neznanja isključila računar prije vremena :(. Izgleda da se ovo drugo i desilo. => DBCOMMIT() UUSSPPOORRAAVVAA obradu. Izmeri vreme izvrsenja ovog => programceta sa i bez DBCOMMIT(). Razlika je dRRRRRasticna. Ma u pravu si, samo nisam u prvi mah skonto šta ti znači ono pri sekvencijalnoj obradi. Ja posle svakog unosa imam COMMIT i u tom slučaju se ne čeka mnogo, tj. uopšte se ne primjećuje da dolazi do nekog drastičnog usporenja. Pozdrav i ne ljuti se.
clipper.305 mickeyl,
=>=> Cini mi se da je najbolje resenje DBCOMMIT() pri unosu svake stavke. =>=> Kod sekvencijalne obrade moglo bi da se izostavi COMMIT() sto bi =>=> ubrzalo obradu a ako i dodje do pada sistema - Jovo nanovo. => => Nije mi jasna ta tvoja tvrdnja COMMIT usporava obradu. To => više mogu da shvatim teoretski, jer u praksi to se i ne => primjeti. To iz ličnog iskustva. Naravno ako ga staviš na => pravo mjesto tj. posle svakog unosa novih podataka. Vođe sam se ja za*ebao :(((. Nisam dobro shvatio šta si podrazumjevao pod onim sekvencijalna obrada :(. U pravu si pravo rješenje i jeste da posle svakog unosa staciš COMMIT. Kod sekvencijalne obrade, ako izostaviš COMMIT, može da ti se desi da se neke promjene snime na disk i u tom slučaju, ne možeš Jovo nanovo :((.
clipper.306 nbatocanin,
> Testirajuci brzinu aplikacije uvideo sam da DBCOMMIT() > dosta usporava izvrsenje aplikacije, cak i na > jednokorisnickoj masini. Ovo je vrlo čudno: COMMIT je vrlo brz, a DBCOMMIT() još brži, jer snima samo tekuću radnu zonu. Ako nemaš baš *ogroman* broj polja+memo u slogu, ovo bi moralo da bude praktično trenutno (snimanje 1-2K na disk!). Još ako koristiš SHARED za otvaranje, u memoriju se učitava manje podataka, pa je COMMIT još brži. Ja isto uvek uradim COMMIT po upisu i nikad mi to nije usporilo program. Nešto mi je ona funkcija ChkRec() sumnjiva?
clipper.307 nbatocanin,
> neaktivnosti tastature od n sekundi izvrši upis na disk, a > svuda gde treba izvršiti upis umesto dbcommit() postavljam > promenljivu koja kontroliše upis na .T. Clipper automatski povremeno prazni memorijske bafere, samo se ne može tačno odrediti kad. COMMIT služi da se isprazne svi baferi kod kritičnih operacija. Pražnjenje bafera se obično radi kad je tastatura nektivna, tj. kada korisnik ništa ne ukucava, zato nisam siguran da ubacivanje COMMIT-a u funkciju za skaniranje ima nekog efekta?
clipper.308 bipin,
Kako u *.pll-u zameniti f-ju BiloKoju() za novu verziju iste. Za biblioteku je <<< TLIB proba -+ BiloKoju >>> a za PLL?
clipper.309 neman,
> Pozdrav i ne ljuti se. Nema problema, ja to samo onako ;)
clipper.310 neman,
> Ovo je vrlo cudno: COMMIT je vrlo brz, a DBCOMMIT() jos > brzi, jer snima samo tekucu radnu zonu. Ako nemas bas > *ogroman* broj polja+memo u slogu, ovo bi moralo da bude > prakticno trenutno (snimanje 1-2K na Pa dobro, odokativno sam primetio usporenje kod aplikacije , disku se pristupa vise sto ima za posledicu sporiji odziv. To i nije mnogo znacajno kod prostog azuriranja podataka, problem se javlja recimo sekvencijalne obrade kada treba pristupati vecem broju slogova i azurirati ih. Problem se samim tim javlja i kod mreznih aplikacija jer da bi performanse celog sistema aplikacija-mreza-racunari bile sto bolje treba sto efikasnije tj sto manje pristupati podacima ( molim da ne bude komentara tipa " a sta je sa client-server bazama " jer razgovaramo o Clipperu ) Onda sam napisao ranije pomenuto programce kojim sam testirao uticaj DBCOMMIT()-a. Imam disk sa vremenom pristupa od 26ms i 386DX na 20 MHz, BUFFERS=10. Odnos vremena izvrsenja programa sa DBCOMMIT() i bez doticne funkcije je ipak prevelik da bih olako presao preko toga. Treba uzeti u obzir i cinjenicu da ima korisnika ( uopste gledano ) koji poseduju AT 286 / 12 MHz masine ( dobro ih sluze ) i nije mi svejedno reci da kupe neku 386DX/40 MHz, disk < 16ms da bi aplikacija isla brze. Sto se tice broja od 1 - 2 K nisam bas siguran da je samo toliko. Nemam literaturu o organizaciji CLipper-ove memorije za podatke, tako da cu sledeca racunica ne mora da bude tacna ali ... Velicina bafera - 64K Ako imas 10 otvorenih datoteka ukljucujuci i indekse onda svaka zona zauzme po oko 6-7 KB. E sad ako se kaze da UNLOCK cini promene vidljive ostalim procesima tu moze da se kaze da ima do 1 K podataka. Medjutim DBCOMMIT() prazni bafere, pa kad prvo isprazni (snimi) pomenutih 6-7 kb, pa isprazni DOS bafere 512*n bajtova pa jos i izvrsi i solid-write to mu onda dodje do 10-ak K ? ChkRec() upotrebljavam na sledeci nacin STATIC _m_chkfld // Azuriranje defrec() @ y, x SAY ... GET ... READ IF RECLOCK(10) .AND. CHKREC() REPL DBCOMMIT(); UNLOCK ENDIF PROC defrec LOCAL wi _m_chkfld := {} FOR wi := 1 TO FCOUNT(); AADD( _m_chkfld, FIELDGET(wi)); NEXT RETURN FUNC chkrec LOCAL wret := .T. FOR wi := 1 TO FCOUNT(); wret := wret .AND. _m_chkfld[wi] == FIELDGET(wi); NEXT IF !wret ALERT("podaci su izmenjeni tokom rada;ponovite a`uriranje") ENDIF RETURN wret
clipper.311 toma,
■> .................... Pražnjenje bafera se obično radi kad je ■> tastatura nektivna, tj. kada korisnik ništa ne ukucava, zato nisam ■> siguran da ubacivanje COMMIT-a u funkciju za skaniranje ima nekog ■> efekta? Ja jesam :), primer: use test for n:=1 to 1000 append blank replace POLJE with str(n) next n a:=0 @10,10 get a read .......žekao sam 40 sec i resetovao. Nije se NIŠTA upisalo na disk!
clipper.312 v.nesic,
> kritičnih operacija. Pražnjenje bafera se obično radi kad je > tastatura nektivna, tj. kada korisnik ništa ne ukucava, zato nisam žini mi se da ti imaš original programa pa ću da te zamolim da nekom zgodnom prilikom ovde javiš šta kaže dokumentacija po tom pitanju, tj kada se vrši snimanje na disk sem u slučaju eksplicitnog zahteva sa nekom od commit naredbi.
clipper.313 snemcev,
U vezi korišćenja direktiva pretprocesora #command i #translate Imam recimo funkciju Trt koju pozivam sa argumentima (a, b, c). Treba mi direktiva pretprocesora koja bi poziv funkcije Trt(a, b, c) pretvorila u Trt(a, const, b, c). Ako uzmem #command, Clipper prijavljuje 'C 2079 Circular #translate/#command'. Može li se ovo uopšte uraditi i kako?
clipper.314 ndragan,
/> U FP2.+ postoji bibliotetka netware.plb; nismo se još sigrali s / Kasno sam se priključio! Može li dodatno objašnjenje?! :( Bogami si me naterao da pročitam šta veli help na tu temu (ako imaš fokspro, pročitaj, otprilike dvadeseta tema odozgo, ako ne, nisi mnogo propustio - dvetri poruke). Ono što mene zanima je da li TTS omogućuje zaštitu od prljavog čitanja. O čemu se radi: na dve mašine sabiramo nešto nas dvojica i upisujemo rezultat na isto mesto. Neka tamo u početku piše 1000, i to smo pročitali obojica. Ja dodam 20 i hoću da upišem; on dodaje 30 i hoće da upiše. Ako sam ja prvi uleteo, šta će Novel uraditi (ako smo obojica markirali početke i krajeve transakcija): - upisaće 1020 a njemu javiti da transakcija nije prošla - upisaće 1020, pa posle 1030 a onih 20 pojela cica maca - upisaće 1050 i pokazati više simptome inteligencije nego što ja očekujem od njega - zbingovaće se i reći da pozovemo NjetWare, gde će nam pozdraviti širu rodbinu što radimo sa žutom verzijom, koje i mi njima isto tako želimo nazad Zna li neko?
clipper.315 ndragan,
/ se desi da se neke promjene snime na disk i u tom slučaju, / ne možeš Jovo nanovo :((. Isprojektuj obradu da bude ponovljiva. Može, može.
clipper.316 mcgoran,
#define trt(a,b,c) trt(a,x,b,c)
clipper.317 bulaja,
│Cini mi se da ti imas original programa pa cu da te zamolim da nekom │zgodnom prilikom ovde javis sta kaze dokumentacija po tom pitanju, tj │kada se vrsi snimanje na disk sem u slucaju eksplicitnog zahteva sa │nekom od commit naredbi. └─── Prilikom svakog SKIP ili GO TO, tj. dbSkip() i dbGoTo() (ovo pise i u uputstvu, a i u NG). Verovatno je praznjenje bafera vezano i za keyboard inactivity, a mozda i za memory manager.
clipper.318 snemcev,
>># define trt(a,b,c) trt(a,x,b,c) Brzo, kratko, jasno. A sad malo da zakukuljim - kako kad treba da ostane isti broj parametara? Npr. Trt(a, b, c) => Trt(c, a, b)
clipper.319 toma,
■> zip20 a01 122567 Info-Zip, PKZip 2 kompatibilni arhiver (source) ■> zip20 a02 119897 Info-Zip, PKZip 2 kompatibilni arhiver (source) Kad bi se ovo povezalo s Clipperom ....
clipper.320 mcgoran,
#abrakadabra TRT MILOJKA => MILOJKA TRT ;( Copyright (C) NoSense Soft Systems., All Rights Reserved
clipper.321 mickeyl,
=> Isprojektuj obradu da bude ponovljiva. Može, može. Znam da može, ono se odnosilo samo na najjednostavniju obradu. Pa reko ajd da upozorim :).
clipper.322 v.nesic,
> Npr. Trt(a, b, c) => Trt(c, a, b) Pa isto sa #define, samo pazi da onda uvek moraš da pišeš Trt, trt ili TRT neće da rade sa #define, sa #command i #translate hoće...
clipper.323 v.nesic,
> Prilikom svakog SKIP ili GO TO, tj. dbSkip() i dbGoTo() (ovo pise i u > uputstvu, a i u NG). Verovatno je praznjenje bafera vezano i za keyboard Ja probao i ne radi. Evo programa : use proba for i:=1 to 10000 append blank replace proba->proba with "dsfljh" endif go 1 alert("Resetuj me!"," Ako smeš :> ") Kada mi se pojavi poruka udarim Ctrl-Alt-Del i kada dođe sebi sa DBU PROBA utvrdim da je datoteka prazna.
clipper.324 ndragan,
/ .......žekao sam 40 sec i resetovao. Nije se NIŠTA upisalo na disk! Dobio si fajl dužine nula, ili prazan kao što je bio. DOS tek prilikom zatvaranja fajla upisuje njegovu dužinu u direktorij; eventualno je povećava kad program zatraži nove klastere, onda upiše one prethodne. Sve skupa, treba povući vodu (u foksu se pomenuta naredba zove Flush) s vremena na vreme u toku unosa, a kod ovakvih 'obrada' namestiti da budu ponovljive.
clipper.325 cnenad,
ŁŁŁ (istina, ne za te koji koriste declipper, takve jos, fala ŁŁŁ Bogu, nisam imao, Dejane da li mislis na DISCLIPPER ili bas DECLIPPER, jer skinuo sam sa EUKLID-a DISCLIPPER ali program ne radi kako treba odnosno nisam nista uspeo sa njim da uradim. A ako je u pitanju DECLIPPER onda je to izgleda nesto novo i opasno ?
clipper.326 toma,
■>> Prilikom svakog SKIP ili GO TO, tj. dbSkip() i dbGoTo() (ovo pise ■>> i u uputstvu, a i u NG). Verovatno je praznjenje bafera vezano i ■> za keyboard ■> ■> Ja probao i ne radi. Evo programa : Izgleda da ne radi zato što nije radio pod mrežom :)) Šta kaže NG za GO: ■ Refreshing database and index buffers: In a network environment, you can refresh database and index buffers without moving the record pointer using GO RECNO(). Refer to the Network Programming chapter in the Programming and Utilities book for more information. Jel to to?
clipper.327 nbatocanin,
> Ja jesam :), primer: > > use test > for n:=1 to 1000 > append blank > replace POLJE with str(n) > next n > a:=0 > @10,10 get a > read > .......žekao sam 40 sec i resetovao. Nije se NIŠTA upisalo > na disk! U pravu si. Prvo što sam pomislio je da se upis vrši kada se popuni memorijski bafer. Zato sam ovaj primer izmenio tako da slog bude veličine 50-60K. Međutim, ništa se ne upisuje na disk i u slučaju takvih velikih slogova! A što se tiče "rada u pauzi", evo šta kaže NG: NOIDLE prevents CA-Clipper from detecting and taking advantage of idle time during execution of compiled applications. CA-Clipper detects idle states (e.g. keyboard wait states) during execution of compiled applications. When an idle condition is detected, the system uses the slack time to perform garbage collection, file updates, and other routine housekeeping duties. This increases system performance by performing this work while the application is waiting for user input. Note: NOIDLE is provided for applications in which idle time processing is unacceptable. Since it reduces overall system performance, its use is generally not recommended. Izgleda da se prethodno ne odnosi na fizičko upisivanje u datoteku.
clipper.328 nbatocanin,
> Sto se tice broja od 1 - 2 K nisam bas siguran da je samo > toliko. Nemam literaturu o organizaciji CLipper-ove > memorije za podatke, tako da cu sledeca racunica ne mora > da bude tacna ali ... > Velicina bafera - 64K U pravu si: ono 1-2K sam rekao otprilike i bez razmišljanja. Verovatno se radi o većoj vrednosti. Međutim, što se tiče bafera od 64K, nema šanse: za baferisanje podataka se koristi VMM, a on alocira memoriju do 64MB! > ChkRec() upotrebljavam na sledeci nacin žini mi se da ovaj sistem sa memorisanjem sloga može znatno usporiti rad. Probaj da izbaciš ovo. Interesuje me da li se nešto menja u brzini.
clipper.329 nbatocanin,
> Kako u *.pll-u zameniti f-ju BiloKoju() za novu verziju > iste. Za biblioteku je <<< TLIB proba -+ BiloKoju >>> a za > PLL? Napraviš novi PLL.
clipper.330 nbatocanin,
> Ono što mene zanima je da li TTS omogućuje zaštitu od > prljavog čitanja. Nemam iskustva sa TTS-om, ali mi se čini da ovo mora da kontroliše tvoja aplikacija (sistem za upravljanje bazom podataka, što bi rekli). Otkud TTS da zna *tačno* šta ti hoćeš? Možda baš hoćeš da gubiš promenu u ovakvim situacijama?
clipper.331 nbatocanin,
> žini mi se da ti imaš original programa pa ću da te > zamolim da nekom zgodnom prilikom ovde javiš šta kaže > dokumentacija po tom pitanju, tj kada se vrši snimanje na > disk sem u slučaju eksplicitnog zahteva sa nekom od commit > naredbi. Uh, trenutno mi papiri nisu ovde, ali videću.
clipper.332 nbatocanin,
> A sad malo da zakukuljim - kako kad treba da ostane isti > broj parametara? Npr. Trt(a, b, c) => Trt(c, a, b) Pošto se pretprocesirane linije ponovo pretprocesiraju sve dok može, lako će ti se desiti da upadneš u mrtvu petlju. Zašto komplikuješ i ne rešiš sve oko argumenata u okviru f-je Trt?
clipper.333 dr.grba,
>> sa EUKLID-a DISCLIPPER ali program ne radi kako treba odnosno nisam >> nista uspeo sa njim da uradim... Disclipper može da razbije kod pisan u Clipperu S'87, pod uslovom da je pisam u plain vanila Clipperu.
clipper.334 .bale.,
>> .......žekao sam 40 sec i resetovao. Nije se NIŠTA upisalo >> na disk! > > U pravu si. Prvo što sam pomislio je da se upis vrši kada se popuni > memorijski bafer. Zato sam ovaj primer izmenio tako da slog bude > veličine 50-60K. Međutim, ništa se ne upisuje na disk i u slučaju > takvih velikih slogova! E, kako sad a da ne zaje*avam? ;-))) Nije nego, možda je ovako, a možda onako... Možda pukne, a možda i ne :)
clipper.335 snemcev,
>> Pošto se pretprocesirane linije ponovo pretprocesiraju sve dok može, >> lako će ti se desiti da upadneš u mrtvu petlju. Zašto komplikuješ i >> ne rešiš sve oko argumenata u okviru f-je Trt? Zato što je Trt sistemska funkcija iz Clipper-ovih biblioteka ;((( Izgleda da ona ideja sa #define i obraćanjem pažnje na mala i velika slova može da posluži kao rešenje. Any other ideas?
clipper.336 cnenad,
ŁŁŁ Disclipper moze da razbije kod pisan u Clipperu S'87, pod ŁŁŁ uslovom da To mi rece Vlada, ali videh da Dejan spominje DECLIPPER pa reko da pitam jel imo neko iskustva sa takvim stvarima.
clipper.337 arazumenic,
Kako nisam dobio odgovor na ranije pitanje, evo ga ponovo, jer mi je zbilja veoma potrebno: Kako u memoedit funkciji ograničiti unos na odredjeni broj redova? Saša
clipper.338 toma,
■> Kako u memoedit funkciji ograničiti unos na odredjeni broj redova? Odmah da ti kažem, ovo je samo teorija, tj nisam probao ali trebalo bi da radi. Pretpostavljam da si proučio Batoćaninov Editor u Clipper-u, e problem je što se tasteri koji prave novu liniju prvo izvrše pa onda predaju kontrolu funkciji, ali.. odo da probam... I naravno, jedna dobra ;) i jedna loša :( vest. Dakle, uspeo sam da kontrolišem taster ENTER na sledeći način: (delovi iz Editora..) provera:=.F. WHILE .T. DoNotesEdit() // Koja je komanda? Ch := LastKey() if provera broj_linija:=mlcount(tekst,tekst_sirina) if broj_linija > 10 keyboard chr(K_UP)+chr(K_END)+chr(K_DEL) endif loop endif ......... Dakle ako je ENTER i broj linija veći od 10, vrati kursor na prethdnu poziciju (UP + END + DEL) ....., naravno potreban je i deo u user-defined :) funkciji.... CASE Mode == ME_IDLE // Ispisivanje pozicije Ch := LastKey () if Ch==K_ENTER provera := .T. keyboard chr(K_CTRL_W) endif .................. OTHERWISE // Mode == 2 i Mode == 3 Ch := LastKey () CASE Ch == K_CTRL_W if !provera Ret := ME_IGNORE else Ret := K_CTRL_W endif ..... Ovo je isprobano i radi, aliiiii... Loša vest. Novu liniju pravi ENTER (što smo rešili) i strelica na dole (isključivo strelica, ništa PgDn, ništa Ctrl-X). Isti mogu da izazovu kreiranje nove linije prelaskom u najdonji :) red teksta ili prelamanjem linij (ENTER i insert mod). Dakle i strelica se da repišiti na ranije opisan način. Međutim i dalje ostaje problem šta ćemo sa rečima koje automatski padaju u sledeći red. Kao jedina ostaje mogućnost da proveravamo ama baš svaki taster koji Memoedit sam obradi (Mode == ME_IDLE) i onda: ako je ENTER, ubacimo u bafer K_UP K_END K_DEL ako je K_DOWN, --- || --- K_UP, i ako je bilo šta drugo ubacimo K_BS (Backspace). Napominjem da sam probao i realizovao samo ENTER, za ostalo ne garantujem :)) ps. Sorry ako je nečitko i nejasno, malo je kasno, tj. rano
clipper.339 majkl,
> Ono što mene zanima je da li TTS omogućuje zaštitu od > prljavog čitanja. Bez obzira da li se koristi TTS ili ne, čitanje vrednosti radi izmene treba vršiti tek nakon zaključavanja. Pre i nije potrebno, i rešava problem. Mislim da ni TTS (kada bi trebao da omogući takvu zaštitu) ne bi mogao drugačije, a onda bi naleteo na problem: da li je ovo čitanje radi promene ili ne (recimo uzimanje podataka iz šifarnika). TTS-u ostaje rešavanje drugih problema, poput dead lock-a i sl.
clipper.340 dr.grba,
>> To mi rece Vlada, ali videh da Dejan spominje DECLIPPER pa reko da >> pitam jel imo neko iskustva sa takvim stvarima. Na kraju se UVEK svede na to da mi je lakše da osmislim svoje, pa to i realizujem nego da čačkam tuđ kod. Eventualno da nešto naučim, da vidim neki princip rešenja, onako kako Nenad radi u svojoj školi Clippera u Računarima. Ali da sednem, pa petljam po celom source-u aplikacije u kojoj je neko ostavio tragove svih svojih žurbi i cajtnota... Ni u svojim programima to ne radim... I zato, moj ti je kolegijalni savet da se ne trudiš i ne insistiraš na upotrebi raznih razbijača koda. Suma sumarum - neće ti doneti nikakvo dobro.
clipper.341 cnenad,
ŁŁŁ I zato, moj ti je kolegijalni savet da se ne trudis i ne ŁŁŁ insistiras na upotrebi raznih razbijaca koda. Suma sumarum - ŁŁŁ nece ti doneti Pitam da neko ne bi slucajno moj EXE razbijao a ne da ja razbijam tudje. Ako znas ono ako ne mozes da ih pobedis pridruzi im se...
clipper.343 arazumenic,
-> Odmah da ti kažem, ovo je samo teorija, tj nisam probao ali -> trebalo bi da radi. Hvala na ideji! Ovo ću koliko sutra da probam, mada mi je želja bila da ako je moguće ne koristim taj editor, jer mi nisu bile potrebene ugradjene funkcije. Saša
clipper.344 dr.grba,
Juče sam u PC.PROG:algoritmi napisao par reči o svom iskustvu u traženju algoritma za dodelu kontrolnog broja žiro računu, kao što traži SPPFN, eto čisto da ne zadremamo (: Smlatio sam neko programče koje vam prepuštam na milost i nemilost. Taj algoritam ja dalje razvijam za protrčavanje kroz nekoliko baza, a ovaj deo svakako ostaje kao trajna kontrola za budućnost. Štaviše, mislim, malo bolje razvijenom funkcijom logičke kontrole bi se mogao trajno rešiti proces unosa žiro računa... Svima kojima treba MOJ žiro račun u smislu dodele novčanih sredstava sugeriram da ga traže na ma wr dr.grba (; mod11.zip
clipper.345 dr.grba,
>> Pitam da neko ne bi slucajno moj EXE razbijao a ne da ja razbijam >> tudje. Ako znas ono ako ne mozes da ih pobedis pridruzi im se... Sećaš li se one priče o kriptovanju, pre izvesnog vremena u grupi bussines? E, pa kriptovanjem rešiš sve stringove čijom bi izmenom lopov došao do besplatnog programa za svoje potrebe.
clipper.346 cnenad,
ŁŁŁ Secas li se one price o kriptovanju, pre izvesnog vremena u ŁŁŁ grupi bussines? E, pa kriptovanjem resis sve stringove cijom ŁŁŁ bi izmenom lopov dosao do besplatnog programa za svoje ŁŁŁ potrebe. Da, secam se. Ali ja i dalje ostajem pri pitanju. Moze li se necim razbiti EXE pisan u 5.01. Kriptovanje je na mestu ali sta to vredi ako on razbije EXE u SOURCE ? Onda nije tesko promeniti ime korisnika programa ?
clipper.347 bipin,
# > Kako u *.pll-u zameniti f-ju BiloKoju() za novu verziju # > iste. Za biblioteku je <<< TLIB proba -+ BiloKoju >>> a za PLL? # # Napraviš novi PLL U pitanju su objekti onog Slovaka. Jedino PLL daje korektnu aplikaciju, a kada povezem sa LIB-om zaglavljuje kod kreiranja System1.dbf bez kreiranja Syserror.txt. Isto se desava kada kreiram LIB ili PLL.
clipper.348 d.petrovic,
Ă> razbiti EXE pisan u 5.01. Kriptovanje je na mestu ali sta to Ă> vredi ako on razbije EXE u SOURCE ? Onda nije tesko promeniti ime Ă> korisnika programa ? ma ne zamaraj se bre :). Mislim da program preveden rtlink-om, sa dinamičkim overlejima ne može da razbije. Program preveden blinkerom isto ne može. E... program bez overleja..., nemam pojma, ali ko to još pravi u kliperu ? ;))
clipper.349 snemcev,
>> Štaviše, mislim, malo bolje razvijenom funkcijom logičke kontrole bi >> se mogao trajno rešiti proces unosa žiro računa... Da, ali samo za "obične" žiro račune. Koji kontrolni broj u ovom računu (osim poslednjeg, koji je UVEK kontrolni broj)? 65500-840-215-62420 >> Svima kojima treba MOJ žiro račun u smislu dodele novčanih sredstava >> sugeriram da ga traže na ma wr dr.grba (; A jel ima kontrolni broj? ;))
clipper.350 snemcev,
>> U pitanju su objekti onog Slovaka. Bači bre to! Jes' da je interesantno, al' je sporo do zla boga.
clipper.351 mandrejevic,
Pomagajte drugovi... Kako da napravim PICTURE za TBCOLUMN? Direktni pristup radi: oC := TBColumnNew('Dat.Izd.', {|| Transform(_work -> dat_izd, '@d')}) Ali hocu da napravim univerzalni TBROWSE: oC := TBColumnNew(cNaslov, {|| Transform(cImePolja, cPicture)}) ^^^^^^^^^ Probao sam sve varijane sa makro operatorima ali nista ne pomaze ??!! Dobijem recimo 'da._.zd'
clipper.352 cnenad,
ŁŁŁ isto ne moze. E... program bez overleja..., nemam pojma, ali ŁŁŁ ko to jos pravi u kliperu ? ;)) Ja, za sada... A inace linkujem BLINKER-om.
clipper.353 oldtimer,
Pitanje postavlja kolega iz firme, pa reply može u mail ali je bolje na voice (firma se zove MOVENS, čeljko, 1768-963, ili na kućni broj 123-231) Imam sledeci problem: Pri upisu na mrežni disk Clipper mi javi internu grešku i iskoči iz rada. Zapis je nečitak kao i sledećih nekoliko (desetak) u toj datoteci. Ako je nastavljeno sa radom, a greška nije ispravljena ostali zapisi su regularni. Pri naknadnom ispravljanju (brisanje loših rekorda i pakovanje datoteke) loši postaju zapisi koji su pre pakovanja bili iza prljavog dela. Podatke mogu koristiti samo ako one ispravne prebacim u privremenu datoteku, obrišem izvornu i onda preimenujem privremenu. Ovo se desilo nekoliko puta u toku ove godine, a neznam šta je uzrok tome jer se dešava na operaciji koja se dnevno izvršava i po stotine puta. Radi se o dodavanju po nekoliko desetina zapisa u datoteku odjednom i više korisnika istovremeno. žudno mi je to što je datoteka neupotrebljiva i kada obrišem loše zapise. Da li je u pitanju nešto vezano za Clipper ili je neki problem sa mrežnim diskom (Seagate - 300 MB - Novell 3.11)? B) Miša
clipper.354 nbatocanin,
>>> .......žekao sam 40 sec i resetovao. Nije se NIŠTA >>> upisalo na disk! >> >> U pravu si. Prvo što sam pomislio je da se upis vrši kada >> se popuni memorijski bafer. Zato sam ovaj primer izmenio >> tako da slog bude veličine 50-60K. Međutim, ništa se ne >> upisuje na disk i u slučaju takvih velikih slogova! > > E, kako sad a da ne zaje*avam? ;-))) Nije nego, možda je > ovako, a možda onako... Možda pukne, a možda i ne :) žuj, rasprave o ovakvim situacijama mogu biti samo komplikovanije i za najbolje operativne sisteme/programe: šta će se desiti ako nestane struja u toku kritičnih situacija? U vezi teme, prevideo sam ono što reče NDragan: DOS ne menja dužinu datoteke sve dok se ne zatvori. Zato se može reći da Clipper ne upisuje *ništa* u DBF sve dok se ne zada COMMIT ili se datoteka zatvori! Hmmm, kad malo razmislim, ovo i nije tako loše: kad radim neku transakciju, mogu da računam da nikad neće biti upisan samo deo slogova, već ili svi ili nijedan! Ali, ako želim da ostane što više, onda nema druge nego COMMIT iza svake operacije.
clipper.355 nbatocanin,
> Zato što je Trt sistemska funkcija iz Clipper-ovih > biblioteka ;((( Izgleda da ona ideja sa #define i > obraćanjem pažnje na mala i velika slova može da posluži > kao rešenje. Any other ideas? Daj malo više detalja, pa da vidimo.
clipper.356 nbatocanin,
> Kako u memoedit funkciji ograničiti unos na odredjeni broj > redova? Ovako bez probe: 1) U statusnoj liniji normalno ispisuješ brojeve Lin/Col, a kada korisnik prešiša, ti mu ispišeš blink poruku "MALI, NE PRETERUJ" ;) 2) Isto to, ali kad se brojač redova popne na nedozvoljen nivo ignorišeš tekuću komandu i generišeš skok na poslednji regularan red. 3) Napraviš običan GET željenog broja stringova.
clipper.357 d.petrovic,
Ă> ŁŁŁ isto ne moze. E... program bez overleja..., nemam pojma, ali Ă> ŁŁŁ ko to jos pravi u kliperu ? ;)) Ă> Ă> Ja, za sada... A inace linkujem BLINKER-om. Pa koliki su ti programi? ;)
clipper.358 .bale.,
> slogova, već ili svi ili nijedan! Ali, ako želim da ostane što više, > onda nema druge nego COMMIT iza svake operacije. A šta je sa dvofaznim COMMIT-om? Kad već Clipper to sam ne radi (ili radi?), možeš to da ubaciš u svaku aplikaciju. Pa onda rollback itd, ispade aplikacija od 1000 linija velika 4MB ;-) Naravno, isključi se cache diska, osim, eventualno, ako je ugrađen u OS, a znamo da nije :)
clipper.359 snemcev,
>> Daj malo više detalja, pa da vidimo. Recimo da se funkcija zove dbUseArea() i da njen treći parametar treba promeniti tako da umesto vrednosti "koznasta" dobije vrednost "e:\koznasta". Kontrola pristupa podacima iz programa tj. program može da uzima podatke samo sa unapred određenog mesta, a ne iz tekućeg direktorijuma ili ko zna odakle.
clipper.360 v.nesic,
> Kako da napravim PICTURE za TBCOLUMN? > ... > oC := TBColumnNew(cNaslov, {|| Transform(cImePolja, cPicture)}) oC := TBColumnNew( cNaslov, &( '{|| Transform(' + cImePolja + ; ', "' + cPicture + '")}' ) )
clipper.361 dusanp,
=> CA-Clipper detects idle states (e.g. keyboard wait states) => during execution of compiled applications. When an idle => condition is detected, the system uses the slack time to => perform garbage collection, file updates, and Postavlja se zanimljivo pitanje: neka sve i radi tako kako pise, ali pretpostavljam da se cela magija odvija kada je cliper u nekoj inkey(0) pauzi. E sad, ako ja koristim moju verziju inkeja, koja se originalnom obraca samo preko inkey(), clipper prakticno nece nikada detektovati idle time. Sta mislite o tome?
clipper.362 bulaja,
│E sad, ako ja koristim moju verziju inkeja, koja se originalnom obraca │samo preko inkey(), clipper prakticno nece nikada detektovati idle time. └─── Clipper ima svoj interni keyboard mehanizam, cije usluge samo koriste zamene za Inkey() koje napises. Preko tog internog keyboard sistema (koji ne mozes da promenis) su napravljene i stvari kao sto su SetKey(), typeahead buffer, LastKey(), praznjenje database buffera i druge funkcije viseg nivoa. Iz NanForum 2.1 source-a je moglo da se nauci korisnih stvari o celom tom mehanizmu u Clipper-u 5.01 (npr. gde je adrese keyboard buffera), nazalost on je promenjen u CA-Clipper 5.2, a to jos nigde nije dokumentovano :).
clipper.363 arazumenic,
-> 1) U statusnoj liniji normalno ispisuješ brojeve Lin/Col, a kada -> korisnik prešiša, ti mu ispišeš blink poruku "MALI, NE PRETERUJ" ;) Moj jedini odogovor na može biti: LEPO SI ME NASMEJAO! -> 2) Isto to, ali kad se brojač redova popne na nedozvoljen nivo -> ignorišeš tekuću komandu i generišeš skok na poslednji regularan red. Probaj. Videćeš da ne ide. -> 3) Napraviš običan GET željenog broja stringova. Definitivno otpada, jer se uneti sadržaj upisuje u datoteku.
clipper.364 v.nesic,
Povodom rasprave vođene po pitanju kada kliper snima podatke, evo još jednog priloga: use proba for i := 1 to 1000 append blank next go 1 commit for i := 1 to 1000 replace proba->polje with str(i) skip next alert("Resetuj me", " ! ") Datoteka proba ima polje dužine 1024 znaka. Rezultat: prvih 492 sloga su bili ažurirani, ostatak je bio prazan.
clipper.365 d.petrovic,
Ă> -> 3) Napraviš običan GET željenog broja stringova. Ă> Definitivno otpada, jer se uneti sadržaj upisuje u datoteku. Kakve to veze ima ?
clipper.366 d.petrovic,
Ă> Datoteka proba ima polje dužine 1024 znaka. Ă> Rezultat: prvih 492 sloga su bili ažurirani, ostatak je bio Ă> prazan. Verovatno je malo memorije na računaru, inače nebi bilo ubačno NI 492
clipper.367 neman,
> Povodom rasprave vodene po pitanju kada kliper snima > podatke, evo jos jednog priloga: Jos jedno pitanje se postavlja nakon svega ovog. U NG-u kaze da DBCOMMIT treba raditi kada je slog zakljucan, a u slucaju da nije zakljucan mogu da nastanu problemi. Kada se zatvara datoteka, Clipper vrsi njeno azuri- ranje tj. snimanje. Ako prihvatimo tezu da DBCOMMIT() i CLOSE rade iste stvari samo sto CLOSE i zatvara datoteku, nije mi jasno zasto ne mogu da koristim DBCOMMIT() kad mi je volja. Ovu problematiku bi trebao da resava operativni sistem, medjutim mislim da bi i Clipper to trebao da regulise. Neko je pomenuo pojavu djubreta u datoteci; i kod mene se javilo na jednom ili dva mesta ove godine. Mislim da je to posledica kolizije vise CLOSE naredbi. neman
clipper.368 dejanr,
>> Dejane da li mislis na DISCLIPPER ili bas DECLIPPER, jer skinuo sam >> sa EUKLID-a DISCLIPPER ali program ne radi kako treba odnosno nisam >> nista uspeo sa njim da uradim. A ako je u pitanju DECLIPPER onda >> je to izgleda nesto novo i opasno ? Iskreno rečeno, ne sećam se tačno. Video sam neki program tog tipa, mislim da se zvao DECLIPPER. Pošto sam zaključio da se radi o stvari koju je bolje "utamaniti", naprosto sam je obrisao. ZKrstić je nešto testirao, mislim da je ustanovio da se korišćenjem nekih caka pri linkovanju može malo zamutiti stvar, ali je to bio program od pre par godina, možda su u međuvremenu napravili bolji...
clipper.369 arazumenic,
-> Ă> -> 3) Napraviš običan GET željenog broja stringova. -> Ă> Definitivno otpada, jer se uneti sadržaj upisuje u datoteku. -> -> Kakve to veze ima ? A kako bi ti organizovao datoteku koja treba da sadrži neki tekst čija je dužine promenljiva (od 0, pa do recimo 15 redova) nego preko memo polja? Nećeš valjda da imaš 15 polja dužine 80 karaktera? Saša
clipper.370 dusanp,
=> Clipper ima svoj interni keyboard mehanizam, cije usluge samo => koriste zamene za Inkey() koje napises. Naravno. Ali pretpostavljam da je detektovanje neaktivnosti uradjeno u stilu "ako se program nalazi u inkeyu>xx sec, uradi commite i sve ostalo...". Posto se ja originalnom inkey servisu obracam samo na kratko (inkey()), pretpostavljam da se onih xx sec nikada ne dostigne. Jeste da se baze napune sigurno pri close-u, ali me brine mogucnost da je interni clipper mehanizam za detektovanje idle time-a onemogucen.
clipper.371 ndragan,
/ rekli). Otkud TTS da zna *tačno* šta ti hoćeš? Možda baš hoćeš da / gubiš promenu u ovakvim situacijama? Posle sam i ja razmislio - upravo mora biti tako, odnosno moram sam da vozim računa o tome, a TTS mi samo obezbeđuje da se ne sudarim sa nekim.
clipper.372 dr.grba,
>> Da, ali samo za "obične" žiro račune. Koji kontrolni broj u ovom >> računu (osim poslednjeg, koji je UVEK kontrolni broj)? >> >> 65500-840-215-62420 Ovo je broj nekog levog fonda, već ima četiri grupe i iz meni neznanih razloga ne dira se. >> >> Svima kojima treba MOJ žiro račun u smislu dodele novčanih >> ... >> A jel ima kontrolni broj? ;)) Od tebe primam samo kafu i hladno jagodinsko (;
clipper.373 bulaja,
Stavljate li automatski SET DELETED ON na pocetak svih svojih programa? Ako vam nije preko potrebno filtriranje obrisanih slogova, onda ipak od sad stavljajte SET DELETED *OFF* :). Obican dbSkip() po celoj bazi ce ovim raditi nekoliko puta brze (ja sam sad merio na nekoj bazi i dobio ubrzanje 7.5 puta). Ovo stoga sto postavljanjem SET DELETED ON, Clipper prakticno uradi jedan SET FILTER TO Deleted() za svaku bazu, sto naravno usporava rad.
clipper.374 bulaja,
│Naravno. Ali pretpostavljam da je detektovanje neaktivnosti uradjeno │u stilu "ako se program nalazi u inkeyu>xx sec, uradi commite i sve │ostalo...". └─── Neverujem. Verovatno je to uradjeno na najnizem (ili najvisem, zavisno kako posmatrate:) nivou Clipper sistema. Ali pravu istinu mozda necemo saznati dokle god neko ne nabavi onaj Clipper Technical Reference sto ga CA reklamira :).
clipper.375 snemcev,
>>>> 65500-840-215-62420 >> >> Ovo je broj nekog levog fonda, već ima četiri grupe i iz meni >> neznanih razloga ne dira se. Eh, da je meni taj broj računa... Na njega u Kikindi ide onih 1% poreza na finansijske transakcije.
clipper.376 ndragan,
/ Nećeš valjda da imaš 15 polja dužine 80 karaktera? Petnaest memorijskih promenljivih, koje onda trimuješ i slepiš, i onda ubaciš u memo polje. Problem je što onda gubiš repovanje, a ne znaš ni kad je bio pritisnut enter.
clipper.377 cnenad,
ŁŁŁ Pa koliki su ti programi? ;) 400 Kb. exe ?
clipper.378 cnenad,
ŁŁŁ 400 Kb. exe ? Sa incremental ON i bez opcije u kompajliranju /b !
clipper.379 arazumenic,
-> Petnaest memorijskih promenljivih, koje onda trimuješ i slepiš, i onda -> ubaciš u memo polje. Problem je što onda gubiš repovanje, a ne znaš ni -> kad je bio pritisnut enter. Eto i sam vidiš da je neprimenljivo, jer se uneti tekst mora sačuvati. Saša
clipper.380 ndragan,
/ sad stavljajte SET DELETED *OFF* :). Obican dbSkip() po celoj bazi Evo rezultata iz FoksProa; mere su u sekundama i milisekundama. set dele for !dele() set filter to !dele() broj slogova off on off off (čitanje baze u petlji scan/endscan) 7774 3,569 3,313 3,758 4,067 21768 10,180 9,397 10,530 11,152 (replace all brdok with "*", bez indeksa) 21768 31,068 27,032 27,854 28,274 (replace all brdok with "*", jedan strukturni indeks po datumu) 21768 29,149 25,996 27,102 26,668 Pre merenja, urađeno je Recall All, pa brisan svaki peti slog. Ploča SX na 33, 2M, pola mega dato pisi kešu, Qemm 6. Disk Sigejt 1219A ili tako nešto, 210MB. Veličina datotetke (sa 21768 slogova) 2,9MB. Sve u svemu, u FoksProu se najviše isplati Set Deleted On, bez ručnog petljanja sa funkcijom Deleted(), a razlike baš i nisu neke.
clipper.381 bora,
U vezi diskusije o žiro računima: 1. Kontrolni broj za broj partije (četvrti broj od 7 cifara) je uveden u žiro račune tek u zadnje dve godine. Za takve račune sedma cifra je kontrolni broj samo za prvih 6 cifara partije (nule su vodeće). Stariji računi to nemaju i zato je uveden kontrolni broj za ceo žiro račun na mestu namene (3 cifre ali se upisuje samo jedna cifra). 2. Kontrolni broj za ceo žiro račun se uvodi SAMO za žiro račune kod kojih račun (drugi broj od 3 cifre) počinje sa 6 (grupa 6) kao što je najčešće xxxxx-601-zzz-xxxxxxx (zzz kod takvih ne postoji i menja se sa kontrolnim brojem. Bora
clipper.382 snemcev,
>> 1. Kontrolni broj za broj partije (četvrti broj od 7 cifara) je Mešaš pojam cifre i broja. Uopšte mi nije jasno šta si hteo ovim da kažeš. Znam da je poslednja cifra u broju individualne partije kontrolna, ali na šta se odnosi "četvrti broj od 7 cifara" stvarno ne mogu da dokučim. >> 2. Kontrolni broj za ceo žiro račun se uvodi SAMO za žiro račune >> kod kojih račun (drugi broj od 3 cifre) počinje sa 6 (grupa 6) kao Koji je to drugi broj od tri cifre? Valjda misliš na drugu grupu cifara u broju žiro računa tj. broj posle oznake filijale SPP.
clipper.383 dr.grba,
>> vodeće). Stariji računi to nemaju i zato je uveden kontrolni broj >> za ceo žiro račun na mestu namene (3 cifre ali se upisuje samo >> jedna cifra). Mislim da je bilo reči o zameni, tj dodeli kontrolnog broja partije tim starim žiro-računima. Da li je to tačno i da li je to sprovedeno?
clipper.384 milanv,
Da bi se dobila dužina neke .DBF baze, verovatno je najlakši način primeniti formulu: RECSIZE() * LASTREC() + HEADER() + 1. I to je jasno i opšte-poznato. Međutim, nije mi jasno kako se može 'izmeriti' dužina .DBT fajla. Pretpostavljam da je rešenje trivijalno, ali ja propisno olupah zid glavom, a problem stoji...
clipper.385 bulaja,
│Da bi se dobila duzina neke .DBF baze, verovatno je najlaksi nacin │primeniti formulu: RECSIZE() * LASTREC() + HEADER() + 1. I to je jasno │i opste-poznato. Medutim, nije mi jasno kako se moze 'izmeriti' duzina │.DBT fajla. Pretpostavljam da je resenje trivijalno, ali ja propisno │olupah zid glavom, a problem stoji... └─── Evo kako se dobija duzina bilo koje datoteke, poziva se npr. sa bu_FileSize("Memo.DBT") (slobodno promenite ime funkciji:) i vraca duzinu datoteke. #include "Directry.ch" **** ---------------------------------------- **** FUNC bu_FileSize (cFileName) LOCAL aDir, nSize aDir := Directory (cFileName) IF Len (aDir) != 1 // file not found nSize := 0 ELSE nSize := aDir[ 1, F_SIZE] ENDIF RETURN (nSize)
clipper.386 mcgoran,
- Povodom Dejanove poruke u PC.PROG.2 u vezi lastrec() > Da li ste vec culi da... Clipper funkcija LASTREC() vraca 1 ako > u bazi ima nula slogova. Takode vraca 1 ako u bazi ima jedan > slog. Ovo mi je malo cudno jer ja "if lastrec() == 0" koristim bez problema u detekciji da li je .dbf prazna. Napisah stoga, provere radi, sledeci test program u Clipperu 5.01 (Nantucked) : ------ proc main() dbCreate( 'test', {{'a','C',1,0},{'b','C',2,0}} ) use test new ? test->(lastrec()) ------ i rezultat rada programa je 0 (nula). Dejane Vor hepn ?!
clipper.387 ematic,
> Evo kako se dobija duzina bilo koje datoteke, poziva se npr. sa Postoji i drugi način, mada se meni lično više sviđa ovaj bulajin :) #include "fileio.ch" function filesize(fname) local handle := fopen(fname), size if handle != -1 size := fseek(handle, 0, FS_END) else size := 0 // Greška.. endif fclose(handle) return size
clipper.388 d.petrovic,
Ă> ŁŁŁ Pa koliki su ti programi? ;) Ă> Ă> 400 Kb. exe ? Zar nije zdravije da kod tolikog programa ode 150 K u overleje (rtlink i blinnker prilično lepo rade sa overlejima) i ta memorija ostane za baze ??
clipper.389 domana,
Da li neko zna da je napravljen btrieve record manager za clipper 5.2. Odgovori na licnu postu, molim :) Miki
clipper.390 bulaja,
**** new file **** R:\IBMPC\CLIPPER\*.* ---------------------- vern_six zip 5775 Spisak funkcija u Vern Six's Clipper 5.x biblioteci vs_904 a01 184617 Vern Six's Clipper ToolBox v9.04 biblioteka #1 vs_904 a02 184469 Vern Six's Clipper ToolBox v9.04 biblioteka #2 vs_904 a03 181470 Vern Six's Clipper ToolBox v9.04 biblioteka #3
clipper.391 cnenad,
ŁŁŁ Ă> 400 Kb. exe ? Sa Blinkerom 2.0. INCREMENTAL ON ! ŁŁŁ ŁŁŁ Zar nije zdravije da kod tolikog programa ode 150 K u ŁŁŁ overleje (rtlink i blinnker prilicno lepo rade sa overlejima) ŁŁŁ i ta memorija ostane za baze ?? Ovo sam cekao. Mislim da je vreme da se uhvatim u kostac i sa tim problemom. Moze li kratak kurs kako to izvesti ?
clipper.392 ndragan,
/ Eto i sam vidiš da je neprimenljivo, jer se uneti tekst mora sačuvati. Sačuvao bi se kad ga prebaciš u memo polje, nego kažem da se ne bi znalo da li je pritisnut enter za kraj reda ili nije, tj. da li da taj cr ubacuješ u memo ili ne, da li je trebalo poslednju reč iz jednog stringa prebaciti u sledeći red i eventualno spojiti (ili je čovek ubacio crticu)... I obratno, za ispravke bi morao da ga pustiš u memoedit ili da vadiš oči kako ćeš memo polje da isečeš na pet stringova, i opet da spajaš i vraćaš nazad. Sve skupa, zašto ne središ stvar jednom valid funkcijom - da izbroji redove u memo polju, i da kaže "tekst je duži od 5 redova - skrati malo", i da ga vrati u memoedit.
clipper.393 ndragan,
/ Postoji i drugi način, mada se meni lično više sviđa ovaj bulajin :) Bulajino brže radi, jer čita samo direktorij, a ovo sa niskim udarcima (low level file functions) mora da ga nađe u direktoriju, otvori, i zatvori. To traje. Verzija za foks: func fsize func fsize para fname para fname priv fridrih, duz priv n,d fridrih=fopen(fname) n=adir(d,fname) if fridrih>0 if n=1 duz=fseek(fridrih,0,2) retu d(1,2) else else duz=0 retu 0 endif endif =fclose(fridrih) retu duz I meni se lepše sviđa desna verzija. Lako se prepravlja da vraća i vreme, datum i/ili atribute fajla.
clipper.394 dr.grba,
>> Ovo sam cekao. Mislim da je vreme da se uhvatim u kostac i sa tim >> problemom. Moze li kratak kurs kako to izvesti ? Evo šablona za Blinker (sa # se označavaju komentari): # Blinker 2.0 Sample Link file for Clipper 5.01 # # For final links - UN-COMMENT the following command: # BLINKER INCREMENTAL OFF # BLINKER EXECUTABLE CLIPPER F25;SWAPPATHK:ĐSWP; # OUTPUT <EXE filename> # FILE <MAIN Clipper routine> # # E, ovde počinje spisak modula u overlejima: BEGINAREA FILE <next Clipper file> FILE <next Clipper file> # # UNCOMMENT and list your own Clipper code libraries here # LIBRARY <my library> # LIBRARY <my other library> # # UNCOMMENT and list your overlayable 3rd party libraries here # LIBRARY <3rd party> # LIBRARY <3rd party> ENDAREA # # Sad spisak modula koji ne idu u overleje, po želji ili po potrebi # (asembler i C moduli MORAJU "dole") # # Uncomment and list your 3rd party non overlayable object modules here # FILE <3rd party1>,<3rd party2> # # UNCOMMENT and list 3rd party non-overlayable libraries here: # # LIB nanfor # LIB expand # ... # FILE CLD.LIB # # Ovde ide navod .LNK fajla koji leži u lib direktorijumu, a koji dodatno # kontroliše gde će koji modul iz osnovnih Clipper biblioteka # # Call the distribution script to overlay EXTEND.LIB ( MIN / MID / MAX ) čCL501MIN.LNK # # Microsoft LLIBCA C library comes last if needed # LIB LLIBCA Sa RTLINK programom slično. u xxx.lnk fajlu ide: fi glavni fi prateci_1 ... fi prateci_n fi help beginarea fi overlay_1 fi overlay_2 ... fi overlay_n endarea lib expand, nanfor ; Naravno, radi komplikacije sve ovo može i u pletenicu da se zamota, ali za potrebe programiranja 99% je povoljno upotrebiti ovakav šablon. A šta ide dole, šta gore? Pa, formalno, dole ide samo main() struktura i asembler/C rutine, a da sve ostalo može u overleje. Sad, pitanje je koliko valjane perfomanse taj princip daje. Stoga često pozivane procedure valja potrpati u donji deo. Tipičan primer procedure koja treba da je u donjem delu je user defined help, koji zbog visoke frekvencije poziva daje bolje perfomanse ako je uvek u memoriji... Ovde, dakako, sledi mnogo duža i ozbiljnija priča....
clipper.395 dr.grba,
>> =fclose(fridrih) .... >> I meni se lepše sviđa desna verzija.... I meni, e zbog onog Fridriha (;
clipper.396 jpiri,
Verovatno su se mnogi od vas (poput mene) svojevremeno slatko smejali citajuci poruke koje su bile ugradjene u Apple-ov C kompajler (VICEVI 6.51). Da vas podsetim, poruke su bile u stilu: "type in (cast) must be scalar; ANSI 3.3.4; page 39, lines 10-11 (I know you don't care, I'm just trying to annoy you)" ili: "Too many errors on one line (make fewer)" Nemojte misliti da su ovakve duhovitosti rezervisane samo za Apple-ove pro- gramere! Elem, ako pokrenete Clipper kompajler sa malo slobodnog RAM-a (npr. Brief vam je ostao rezidentan), Clipper ce odbiti prevodjenje uz odgovarajucu poruku ('Not enough memory'). Medjutim, ako ostavite rezidentan npr. Telix (sto se meni sticajem okolnosti dogodilo) Clipper ce krenuti da prevodi a onda ce se kada u programu naidje na PROCEDURE ili FUNCTION za koje, gle cuda, odjedared nema dovoljno RAM-a, potpuno slogirati, prekinuti prevodjenje i izbaciti vrlo promucurnu i nadasve informativnu poruku: "FATAL C3050: Something terrible has happened!" Ponukan ovom porukom (i zeljan dobre zabave) procesljah CLIPPER.EXE i nadjoh jos par lepih porukica: - "Push a WHAT?" - "END wreaks terrible vengeance on control stack!" - "Unresolved DO target symbol kills parse tree!" - "Control level closure leaves gaping wound in control stack!" - "Ford Maverick error number" (?) U novoj verziji Clipper-a ocekujem da suvoparnu i neinventivnu poruku "File not found" zamene sa npr. mnogo poeticnijom: "Something's rotten in the state of Denmark!" Em je nadahnutije, em covek o'ma' zna gde skripi.
clipper.397 gari,
Ovo mi na prvi i drugi pogled izgleda super! A ako hocete da jos vise ugodite korisnicima sezam-a onda bi mogli (pored verzije 9.05 koja je izasla u maju) da dignete i sledecu stvar: DBC.ZIP 168281 03-08-92 Data Base Communications- This program will | link up to another computer using this same | program via modem & establish communications | to transfer records from one database to | another. This program is totally generic in | that it will work with any database | structure. Transmitted records go directly | into the receiving database after being | verified. Error correction is implemented. By | Vern Six. pozdrav, Gari. p.s. Narode glasajte za ovo !!!
clipper.398 cnenad,
ŁŁŁ Evo sablona za Blinker (sa # se oznacavaju komentari): Grbo, stvarno si DR. ! :))) Bas sam razmisljao sa cime cu da se zezam narednih dana kad eto meni domaceg zadatka. TNX
clipper.399 dr.grba,
>> p.s. Narode glasajte za ovo !!! Glasam za tvoje remek delo preloma teksta (:
clipper.400 nbatocanin,
> A šta je sa dvofaznim COMMIT-om? Kad već Clipper to sam ne > radi (ili radi?), možeš to da ubaciš u svaku aplikaciju. > Pa onda rollback itd, ispade aplikacija od 1000 linija > velika 4MB ;-) Naravno, isključi se cache diska, osim, > eventualno, ako je ugrađen u OS, a znamo da nije :) Nisam te baš najpreciznije razumeo. Ako misliš da je COMMIT naredba za kontrolisan upis izmena na disk, varaš se (na žalost). Ako hoćeš da kažeš da je potrebna neka nadgradnja/poboljšanje originalnog Clipper-ovog sistema za pristup bazi podataka, slažem se.
clipper.401 nbatocanin,
> Jeste da se baze napune sigurno pri close-u, > ali me brine mogucnost da je interni clipper mehanizam za > detektovanje idle time-a onemogucen. Može da bude. Treba isprobati.
clipper.402 nbatocanin,
> -> 1) U statusnoj liniji normalno ispisuješ brojeve > Lin/Col, a kada -> korisnik prešiša, ti mu ispišeš blink > poruku "MALI, NE PRETERUJ" ;) > > Moj jedini odogovor na može biti: LEPO SI ME NASMEJAO! Dobro, ne mora baš ova poruka ;) Može i: "TO ŠTO PIŠEŠ OKAžI MAžKU O REP" ;) > -> 2) Isto to, ali kad se brojač redova popne na > nedozvoljen nivo -> ignorišeš tekuću komandu i generišeš > skok na poslednji regularan red. > > Probaj. Videćeš da ne ide. Nemam vremena, ali mi se i dalje čini da može. > -> 3) Napraviš običan GET željenog broja stringova. > > Definitivno otpada, jer se uneti sadržaj upisuje u > datoteku. Kakve to veze ima?
clipper.403 stosic,
Mozda je bilo... PERFORMANSE ----------- Funkcija AEVAL() bi trebalo da brze obradjuje nizove od FOR petlje. Nije uvek najcitljivije, ali ako je brze... Koliko? Za zainteresovane tu je i test primer. test.zip
clipper.404 dr.grba,
>> da kažeš da je potrebna neka nadgradnja/poboljšanje originalnog >> Clipper-ovog sistema za pristup bazi podataka, slažem se. Nešto mi govori danam je ovde potreban neki C guru...
clipper.405 snemcev,
>> Funkcija AEVAL() bi trebalo da brze obradjuje nizove od FOR petlje. >> Koliko? >> Za zainteresovane tu je i test primer. Mislim da bi poruka bila mnogo konstruktivnija da si tu naveo rezultate merenja umesto programa, pa ko voli nek izvoli. Btw, drastičNo ubrzanje se postiže i u petljama tipa: FOR i=1 TO Len(aNiz) Obrada(aNiz[i]) NEXT Mnogo brže radi: nTo := Len(aNiz) FOR i=1 TO nTo Obrada(aNiz[i]) NEXT
clipper.406 stosic,
>>Mislim da bi poruka bila mnogo konstruktivnija da si tu naveo rezultate >>merenja umesto programa, pa ko voli nek izvoli. Mislim da bi mnogo konstruktivnije bilo da si skinuo program i onda se javio. Za manje zainteresovane: Funkcija AEVAL() (po Rick Spence-u i nbatocanin-u) brze obradjuje nizove od FOR petlje. Kod je manje citljiv, ali valjda bar toliko brzi da se isplati njegova upotreba (niko ne kaze koliko brzi). U ovom primeru AEVAL() je SPORIJI od FOR petlje (0.38;0,33 sec - kod mene). >>Btw, drasticNo ubrzanje se postize i u petljama tipa: Btw, gde su tvoji rezultati merenja?
clipper.407 dejanr,
>> Btw, drastičNo ubrzanje se postiže i u petljama tipa: >> FOR i=1 TO Len(aNiz) >> Mnogo brže radi: >> nTo := Len(aNiz) >> FOR i=1 TO nTo Zbog toga bi trebalo onoga ko je pravio optimizacije u Clipper-u okačiti o... ;) To je bukvalno prva optimizacija koja se radi :(
clipper.408 ttop,
#include "commands.ch" ----------- Jel može ovo neko da zakači . Al hitno. :) Pozdrav, Ttop
clipper.409 d.petrovic,
Ă> ŁŁŁ Zar nije zdravije da kod tolikog programa ode 150 K u Ă> ŁŁŁ overleje (rtlink i blinnker prilicno lepo rade sa overlejima) Ă> ŁŁŁ i ta memorija ostane za baze ?? Ă> Ă> Ovo sam cekao. Mislim da je vreme da se uhvatim u kostac i sa tim Ă> problemom. Moze li kratak kurs kako to izvesti ? Postoje dva načina: 1. Da pozoveš Rtlink ili Blinker bez menjanja default parametara i praviće ti overleje prilično lepo raspoređene. 2. Ako hoćeš da budeš siguran šta je gde smestio smestiš u .lnk fajl (ovo je za RtLink): OUTPUT R RESIDENT FILE RGM2MSF, MENU, DECTOBIN DYNAMIC FILE FUNKCIJE, PROCEDUR, RADMAG, INSTALL, IZVESTAJ, PRINT, CALCULAT LIBRARY NANFOR i dobiješ izvršni kod, jelte... koji startuješ sa: C:Đ>r <Enter> :))) P.S. Ovo je sve za kod pisan u kliperu, ako hoćeš da smestiš neki .asm ili .c program u overleje onda to ide u statičke overleje. Da objašnjavam ? :)
clipper.410 bulaja,
│DBC.ZIP 168281 03-08-92 Data Base Communications- This program will └─── Ok, videcemo sta se moze uraditi :). Samo kazi mi sa kog je ovo BBS-a (ja se vise ne secam:), ClipBoard-a, Hekoma, Blinkera,..?
clipper.411 arazumenic,
-> Sve skupa, zašto ne središ stvar jednom valid funkcijom - da izbroji -> redove u memo polju, i da kaže "tekst je duži od 5 redova - skrati Eh, tako sam u samom startu rešio problem. Ali, želja mi je bila da u samom memoeditu uvedem ovo ograničenje. Saša
clipper.412 arazumenic,
-> Dobro, ne mora baš ova poruka ;) Može i: "TO ŠTO PIŠEŠ OKAžI MAžKU O -> REP" ;) Ovakve ili slične poruke ostavljam tebi da ih ti ugradjuješ u svoje programe. -> Nemam vremena, ali mi se i dalje čini da može. Postoji razlika izmedju "čini mi se da može", "znam da može" i "radi". Ja sam probao i ne može, a i po ostalim porukama koje su proistekle iz mog pitanja, zaključujem da i drugi ne mogu da iskontolišu memoedit na način na koji sam želeo. -> Kakve to veze ima? Pogledaj poruku 11.369 i dalje.
clipper.413 toma,
■>>> nTo := Len(aNiz) ■>>> FOR i=1 TO nTo ■> ■> Zbog toga bi trebalo onoga ko je pravio optimizacije u Clipper-u ■> okačiti o... ;) To je bukvalno prva optimizacija koja se radi :( Ih pa nisu samo Srbi najpametniji. A šta ako unutar petlje ima jedno aadd(aNiz, "Šta sada!"). Nije baš isto, a?
clipper.414 d.petrovic,
moze :)
clipper.415 dejanr,
>> Ih pa nisu samo Srbi najpametniji. A šta ako unutar petlje ima >> jedno aadd(aNiz, "Šta sada!"). Nije baš isto, a? Naravno da nije, o tome optimizacija mora da vodi računa - izvan petlje se vade konstante koje se u petlji ne menjaju. I, što jes jes, vodili su računa pa ostavili sve konstante :( PS U nekim jezicima se specijalno kod FOR petlje kaže da važe vrednosti koje su bile u trenutku nailaska na FOR, a posle ako i menjaš, to ne utiče na granice. To je u suštini ok kompromis, jer ako će se granice menjati, trebalo bi koristiti WHILE.
clipper.416 cnenad,
ŁŁŁ .asm ili .c program u overleje onda to ide u staticke ŁŁŁ overleje. Da objasnjavam ? :) Sto se mene tice, ne znam C niti imam nameru da povezujem clipper sa C-om ali ako nekom drugom treba zasto da ne ?
clipper.417 snemcev,
>> Btw, gde su tvoji rezultati merenja? Za prepucavanje nisam raspoložen, a poruka je bila krajnje dobronamerna. Kraj diskusije.
clipper.418 snemcev,
>> Zbog toga bi trebalo onoga ko je pravio optimizacije u Clipper-u >> okačiti o... ;) To je bukvalno prva optimizacija koja se radi :( Jeste i baš zato nisam dosad ni obraćao pažnju na to, al' od kad sam probao... neverovatno kako na takvu banalnost nisu mislili. Btw, jel neko voljan da pogleda u zvaničnoj dokumentaciji da li Clipper uopšte i sprovodi bilo kakvu optimizaciju?
clipper.419 snemcev,
>> Jel može ovo neko da zakači . Al hitno. :) Sudeći po nazivu, to može biti iz bilo kog paketa. Jel može nešto konkretnije?
clipper.420 stosic,
>>Za prepucavanje nisam raspolozen... Nije rec o prepucavanju vec o nacinu odgovaranja na poruku. Za one koji su skoro nezainteresovani: //--------------------------------------------------- // Da li AEVAL() brze obradjuje nizove od FOR petlje? // Da, tako kaze Rick Spence. // // Zasto ovaj primer to ne potvrdjuje? // // Slucajnost? // Tako se ne meri vreme? // // Sta VI mislite? //--------------------------------------------------- #define ROW 1 #define COL 2 #define CHA 3 // Matrica EKRAN sadrzi jednu masku za ekran. // To je u ovom programu retko popunjena matrica, pa se za njeno cuvanje // formira nova. Matrica SADRZAJ_EKRANA cuva samo karaktere iz maske. // procedure test() local ekran[25][80] local sadrzaj_ekrana local element local i, j local sekunde // Generisanje maske // ekran[1][2] := "A" ekran[25][79] := "B" // AEVAL() na delu //---------------- sekunde := seconds() sadrzaj_ekrana := {} i := 0 aeval(ekran, { |x| i++, j := 0,; aeval(x, { |y| j++, iif( y <> nil, ; ( element := array(3), ; element[ROW] := i, ; element[COL] := j, ; element[CHA] := y, ; aadd(sadrzaj_ekrana,element) ), ; .f. ) ; } ) ; } ) ? "AEVAL() na delu : (sec)" + str( seconds() - sekunde ) // FOR petlja na delu //------------------- sekunde := seconds() sadrzaj_ekrana := {} for i := 1 to 25 for j := 1 to 80 if ekran[i][j] <> nil element := array(3) element[ROW] := i element[COL] := j element[CHA] := ekran[i][j] aadd(sadrzaj_ekrana,element) endif next next ? "FOR petlja na delu: (sec)" + str( seconds() - sekunde ) return
clipper.421 dr.grba,
>> Mnogo brže radi: >> >> nTo := Len(aNiz) >> FOR i=1 TO nTo Naravno, ovo je česta zavrzlama za početnike. Teško im da shvate da trpanjem funkcijskog izraza u zaglavlje petlje teraju funkciju da se izvrši uvek ponovo i ponovo i ponovo... Dok se ovako promenljiva i samo inkrementira, što ne može brže...
clipper.422 dr.grba,
>> Funkcija AEVAL() (po Rick Spence-u i nbatocanin-u) brze obradjuje >> nizove od FOR petlje. Kod je manje citljiv, ali valjda bar toliko Valjda je poznato da u gotovo svim prog. jezicima petlja tipa FOR...NEXT predstavlja najsporiju strukturu. U knjizi "Quick Basic 4.0: Selected Topics" Microosoft kaže nešto poput: "Pa koristite je, nema problema, radiće, jes' da je malo 50 puta sporija od drugih petlji, al' nema veze." >> >> Btw, drasticNo ubrzanje se postize i u petljama tipa: >> >> Btw, gde su tvoji rezultati merenja? Pre nego što se obojica raspalite, zamolio bih vasda malosmirite loptu i ne prepucavate se u konfu.
clipper.423 dr.grba,
>> P.S. Ovo je sve za kod pisan u kliperu, ako hoćeš da smestiš neki >> .asm ili .c program u overleje onda to ide u statičke overleje. Da >> objašnjavam ? :) Ajd' objasni. žini mi se da su statički overleji sa C kodom veliki žderači resursa. Tu baš nisam nešto valjano obavešten, a u dobrim knjigama sam, meni na dušu, preskakao ta poglavlja ):
clipper.424 stosic,
>> >> Funkcija AEVAL() (po Rick Spence-u i nbatocanin-u) brze obradjuje >> >> nizove od FOR petlje. Kod je manje citljiv, ali valjda bar toliko >> >> Valjda je poznato da u gotovo svim prog. jezicima petlja tipa FOR...NEXT >> predstavlja najsporiju strukturu. U knjizi "Quick Basic 4.0: Selected >> Topics" Microosoft kaze nesto poput: "Pa koristite je, nema problema, >> radice, jes' da je malo 50 puta sporija od drugih petlji, al' nema veze." Aman doktore, stani na loptu i procitaj poruku jos jednom. "U ovom primeru AEVAL() je SPORIJI od FOR petlje." >> Pre nego sto se obojica raspalite, zamolio bih vasda malosmirite loptu >> i ne prepucavate se u konfu. Mislim da prepucavanje ne dolikuje ovoj konf, kao ni repliciranje bez pokusaja da se da odgovori na postavljeno pitanje. Ostaj mi da zakljucim da je AEVAL() funkcija bauk.
clipper.425 dejanr,
>> Btw, jel neko voljan da pogleda u zvaničnoj dokumentaciji da li Clipper >> uopšte i sprovodi bilo kakvu optimizaciju? U dokumentaciji se o tome ne govori, ali već po činjenici da nema čitavog niza switch-eva kojima bi se isključivali razni tipovi optimizacije (recimo MSC ima tušta i tma optimizacija, ali neke od njih umeju i da zabrljaju pa da od korektnog sorsa naprave neispravan program, tako da se pojedinačno mogu gasiti ako je neophodno) rekao bih da je ona ostavljena na prilično rudimentarnom nivou.
clipper.426 ematic,
> Btw, jel neko voljan da pogleda u zvaničnoj dokumentaciji da li > Clipper uopšte i sprovodi bilo kakvu optimizaciju? Po nortonovim gajdama ;) jedina optimizacija koja se sprovodi, odnosno koja se pominje, je optimizacija logičkih izraza. Može i da se isključi svičem /z tako da kliper bude još gluplji, tup k'o Summer 87 ;))
clipper.427 d.petrovic,
cudne li moje poruke..., nigde fajla :) commands.ch
clipper.428 ttop,
> Sudeći po nazivu, to može biti iz bilo kog paketa. Jel može nešto > konkretnije? Ma d.petrovic bi trebao da mi zakači. A dotični "commands.ch" se spominje u njegovoj funkciji nInkey . :) A da, u pitanju je CLIPPER 5 .
clipper.429 bcetina,
>> ... (po Rick Spence-u i nbatocanin-u) ... Pa čekaj, zar to nije isto? :))
clipper.430 stosic,
>>>> ... (po Rick Spence-u i nbatocanin-u) ... >> >>Pa cekaj, zar to nije isto? :)) Ne verujem da Spence prati ovu konf i da ce dati odgovor na 11.420 :)
clipper.431 .bale.,
> Nisam te baš najpreciznije razumeo. Ako misliš da je COMMIT naredba > za kontrolisan upis izmena na disk, varaš se (na žalost). Ako hoćeš > da kažeš da je potrebna neka nadgradnja/poboljšanje originalnog > Clipper-ovog sistema za pristup bazi podataka, slažem se. Pa rekoh ja da verovatno to Clipper sam ne radi, pa kad on ne radi, onda može aplikacija da radi dvofazni commit i oporavak od grešaka pri padu sistema. To je jednostavan algoritam i pouzdan kad nema keširanja upisa na disk. Da ne tupim sada... napisaću ga ako i dalje nisam jasam :)
clipper.432 nbatocanin,
> Ovakve ili slične poruke ostavljam tebi da ih ti > ugradjuješ u svoje programe. OK, nisam imao nameru da te vređam. Mislio sam da će ti moja poruka pomoći da rešiš problem.
clipper.433 nbatocanin,
> Btw, jel neko voljan da pogleda u zvaničnoj dokumentaciji > da li Clipper uopšte i sprovodi bilo kakvu optimizaciju? Tri manje-više rudimentarne optimizacije: 1. Skraćivanje računanja logičkih izraza (.T. .OR. x -> .T.) 2. Eliminisanje koda koji se ne izvršava: IF .T. ; Proc() ; END IF -> Proc() 3. Izračunavanje konstantnih izraza x := 1 + 2 -> x := 3
clipper.434 gari,
****************************************************** * POMAGAJTE STOJI MI POSAO !!! :((((((((((((((((( * U sledecem primeru (prilagodjen za SEZAM) * program IZBACUJE kada drugi put pozove funkciju * Izracunaj() jer nesto nije u redu sa parametrima... ****************************************************** * CELU OVU PORUKU MOZETE PREVESTI SA: * clipper mess * rtlink fi mess ************************************************ bof() local t_niz1 := {1,2,3,4}, t_niz2 := {5,4,3,2,1}, ; t_brojac := 1, t_odgovor := 0 for t_brojac := 1 to 2 clear screen t_odgovor := Izracunaj( t_niz1 , t_niz2 ) @ 10,10 say alltrim(str(t_brojac)) + " put = " + ; alltrim(str(t_odgovor)) @ 20,10 say "Taster za nastavak..." inkey(0) next RETURN FUNCTION Izracunaj( t_niz_A , t_niz_B ) LOCAL retVred := 0, t_brojac := 0 for t_brojac := 1 to len( t_niz_A ) retVred += t_niz_A[t_brojac] next aadd( t_niz_A , retVred ) for t_brojac := 1 to len( t_niz_A ) retVred += t_niz_A[t_brojac] + t_niz_B[t_brojac] next RETURN retVred ************************************************ eof() *pozdrav, Gari *p.s. HITNO MI JE !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! *******************************************************
clipper.435 jtitov,
Da li nekome nesto znaci kad se kaze 'program dGE 4.1'? Pitao me jedan drugar u vezi toga, a ja ni A ni B...
clipper.436 gari,
dGE 4.1 je biblioteka (po meni najbolja, mada ne koristim ni jednu) funkcija za rad sa grafikom u clipper-u. Kada vidis demonstraciju ostanes bez teksta. Imam je pa ako neko hoce "demo" verziju onda neka preko nekog ko dolazi u NS posalje dve diskete od 3,5"... pozdrav, Gari.
clipper.437 gari,
BBS File Bank (619) 728 - 4318 ima VISE od 10.000 raznih file-ova za clipper!!! skinuo sam spisak fajlova pa ako Vas interesuje uploadovacu ga (dugacak oko 300K - samo clipper) Ako je neko slucajno pretplacen na isti neka mi ostavi poruku mozemo se dogovoriti O:) pozdrav, Gari.
clipper.438 jorad,
>> Evo šablona za Blinker (sa # se označavaju komentari): Drugar mi ima problema sa BLINKEROM pa me je zamolio da pitam, zna li ko u čemu je problem BLINKER : 1115 : bliovlmgr(S80VLMGR) : "_DOS_HOLD" : unresolved external
clipper.439 dejanr,
Srećom, nije bilo teško: >> local t_niz1 := {1,2,3,4}, t_niz2 := {5,4,3,2,1}, ; Prvi niz ima četiri člana, drugi niz ima pet. Pozvao si potprogram, u njemu kažeš: >> aadd( t_niz_A , retVred ) Dakle, sada prvi niz ima pet članova kao i drugi. Pozvao si ponovo potprogram, i tu isto: >> aadd( t_niz_A , retVred ) Dakle, sada prvi niz ima šest članova, drugi i dalje pet. >> for t_brojac := 1 to len( t_niz_A ) Znači, petlja ide od 1 do 6 >> retVred += t_niz_A[t_brojac] + t_niz_B[t_brojac] Za i=6 referenciraš šesti elemenat drugog niza, i isti ne postoji, otuda greška. Da si probao da pregledaš rad programa u debageru, očes bi video u čemu je problem.
clipper.440 stosic,
>> POMAGAJTE STOJI MI POSAO !!! :((((((((((((((((( >> program IZBACUJE kada drugi put pozove funkciju >> Izracunaj() jer nesto nije u redu sa parametrima... U drugom pozivu posle: " aadd( t_niz_A , retVred )" niz "t_niz_A" ima 6 elemenata, a "t_niz_B" - 5 . Posle pokusaja da citas 6-ti element iz "t_niz_B" sledi ti poruka: Error BASE/1132 Bound error: array access. Pozdrav, Boban
clipper.441 stosic,
>> Srecom, nije bilo tesko: Pretece me :) Jeli je 11.420 tesko, nerazumljivo ...
clipper.442 stosic,
>>Drugar mi ima problema sa BLINKEROM pa me je zamolio da >>pitam, zna li ko u cemu je problem >> >>BLINKER : 1115 : bliovlmgr(S80VLMGR) : "_DOS_HOLD" : unresolved external Iz Blinker NG-a: Clipper Summer '87 If you get '__dos_hold' as an unresolved external then please check that you have the updated version of CLIPPER.EXE, CLIPPER.LIB and EXTEND.LIB from Nantucket (Summer '87). The original versions all have a date of 12-21-87 and a time of 12:00 am (which may not be displayed), while the updated versions have the same date, but a time of 2:00am. Blinker will work correctly only with the updated version, as there were a number of problems fixed in it. Jos jedan razlog da se predje na neku od verzija pod brojem 5. Pozdrav, Boban
clipper.443 ttop,
> cudne li moje poruke..., nigde fajla :) Vala baš. :) Zahvaljujem majstore. P.S Nego da obratite pažnju. Fajl "commands.ch" je zipovan. :)
clipper.445 gari,
## Srecom, nije bilo tesko: ## >> local t_niz1 := {1,2,3,4}, t_niz2 := {5,4,3,2,1}, ; ## Prvi niz ima cetiri clana, drugi niz ima pet. ## Pozvao si potprogram, u njemu kazes: ## >> aadd( t_niz_A , retVred ) ## Dakle, sada prvi niz ima pet clanova kao i drugi. ## Pozvao si ponovo potprogram, i tu isto: ## >> aadd( t_niz_A , retVred ) ## Dakle, sada prvi niz ima sest clanova, drugi i dalje pet. Postoji "mala" pojedinost: FUNCTION Izracunaj( t_niz_A , t_niz_B ) LOCAL retVred := 0, t_brojac := 0 prema tome t_niz_A i t_niz_B bi trebalo da budu deklarisane kao LOKALNE promenljive koje su sasvim nevidljive za SVE OSTALE procedure i funkcije sem ukoliko nije iz neke od njih pozvana ova funkcija pass by reference ( Izracunaj(@niz1,@niz2) )... sem toga u glavnom programu stoji: local t_niz1 := {1,2,3,4}, t_niz2 := {5,4,3,2,1} a prema tome bi trebalo da ta dva niza ostanu NEPROMENJENI jer su vidljivi SAMO u tom delu programa !!! ## Da si probao da pregledas rad programa u debageru, ## oces bi video u cemu je problem. Jesam pregledao sam i nije mi jasno da se niz u GLAVNOJ proceduri promenio iz pozivne funkcije iako je i u jednom i u drugom delu SVE definisano strogo kao LOCAL !!!!!! ...pitanje i dalje stoji... p.s. inace, sam uspeo da resim na sledeci nacin: definisao sam neki novi niz sa kojim operisem u f-ciji Izracunaj i na njega sam preneo parametre sa for...aadd()...next, jer ako se prenese sa := onda rezultat rada bude potpuno isti... (E TO MI NIJE JASNO !?)
clipper.446 dr.grba,
>> Pre nego što se obojica raspalite, zamolio bih vasda malosmirite └─────────┬─────┘ Al' mi radi spacebar ))): ──────────────────┘
clipper.447 v.nesic,
> Funkcija AEVAL() bi trebalo da brze obradjuje nizove od FOR petlje. Pa i obrađuje. Ono što si ti prikačio je klasičan primer gde ne treba koristiti aeval jer ti trebaju i promenljive koje predstavljaju broj indeksa. Znači, pri svakom prolasku uvećava se interna promeljiva funkcije aeval i tvoja brojačka promenljiva. Kada koristiš for uvećava se samo jedna koju koristiš u oba slučaja.
clipper.448 dejanr,
Eh, pa Clipper je ipak Clipper a nije C ili pascal ;) Kada napišeš: t_odgovor := Izracunaj( t_niz1 , t_niz2 ) a docnije negde piše: FUNCTION Izracunaj( t_niz_A , t_niz_B ) onda u proceduri možeš da menjaš elemente nizova, da ih produžavaš i skraćuješ itd, i to će se "vratiti" u glavni program. Dakle, kada si u IZRACUNAJ dodao element u t_niz_A, to je važilo i za t_niz1 jer je za clipper to isti niz, preneo ga po imenu a ne po vrednosti.
clipper.449 ematic,
> Jesam pregledao sam i nije mi jasno da se niz u > GLAVNOJ proceduri promenio iz pozivne funkcije > iako je i u jednom i u drugom delu SVE definisano > strogo kao LOCAL !!!!!! U kliperu se nizovi prenose po referenci. rtfm :))
clipper.450 stosic,
Najpre hvala, za javljanje. >>Ono sto si ti prikacio je klasican primer gde ne treba koristiti aeval >>jer ti trebaju i promenljive koje predstavljaju broj indeksa. Ovo mi se svidja. Torpedo na Jedrenjak u predelu AEVAL()-a. >>Znaci, pri svakom prolasku uvecava se interna promeljiva funkcije aeval >>i tvoja brojacka promenljiva. Kada koristis for uvecava se samo jedna >>koju koristis u oba slucaja. Na zalost nije, iako je zanimljivo (pogledaj primer). Opet je AEVAL() sporiji. Cini mi se da i kod merenja vremena nesto skripi. Da li je neko video PROFILER za Clipper? Svojevremeno sam pokusao da od programcica koji ide uz Blinker napravim nesto vise, ali nije islo. Vremena izvrsavanja delova koda, funkcija.. su se drasticno razlikovala posle svakog narednog startovanja programa. Evo i primera: **************** procedure test() local niz[4096] local t afill(niz, 1) niz[4096] := 2 t := seconds() amax1(niz) ? seconds() - t t := seconds() amax2(niz) ? seconds() - t return function amax1(n) local najveci := n[1] aeval(n, {|x| najveci := iif( x > najveci, x, najveci) }) return najveci function amax2(n) local najveci := n[1] local l := len(n) local i for i := 1 to l najveci := iif( n[i] > najveci, n[i], najveci) next return najveci
clipper.451 niklaus,
(:>>> Pre nego što se obojica raspalite, zamolio bih vasda malosmirite (:>>> └─────────┬─────┘ (:> Al' mi radi spacebar ))): ──────────────────┘ Ti meni jedan candybar, a ja tebi opravim spacebar... (; (:niklaus:)
clipper.452 snemcev,
>> Znači, pri svakom prolasku uvećava se interna promeljiva funkcije >> aeval i tvoja brojačka promenljiva. Kada koristiš for uvećava se samo >> jedna koju koristiš u oba slučaja. Internu promenljivu koju koristi kao index AEval prosleđuje kodnom bloku koji izvršava kao drugi parametar, tako da nema potrebe računati index koji već postoji.
clipper.453 bulaja,
│BBS File Bank (619) 728 - 4318 ima VISE od 10.000 raznih file-ova za │clipper!!! skinuo sam spisak fajlova pa ako Vas interesuje uploadovacu │ga (dugacak oko 300K - samo clipper) Ako je neko slucajno pretplacen na │isti neka mi ostavi poruku mozemo se dogovoriti O:) └─── Salji spisak. Sto se pretplate tice, snacicemo se nekako (npr. mozemo se dogovoriti ako ti das Jupak:).
clipper.454 gari,
││BBS File Bank (619) 728 - 4318 ima VISE od 10.000 raznih file-ova za ││clipper!!! skinuo sam spisak fajlova pa ako Vas interesuje uploadovacu ││ga (dugacak oko 300K - samo clipper) Ako je neko slucajno pretplacen na ││isti neka mi ostavi poruku mozemo se dogovoriti O:) │└─── │Salji spisak. Sto se pretplate tice, snacicemo se nekako (npr. mozemo se │dogovoriti ako ti das Jupak:). └──── Verovao ili ne ja sam koristio direktnu liniju i nikad nisam bio na Jupak-u (ukoliko mi neko to malo objasni vrlo rado cu i to) jer ja modem koristim samo da bih saznao sto vise o clipper-u... Uz poruku saljem spisak... pozdrav, Gari. clipper.zip
clipper.455 snemcev,
>> Ti meni jedan candybar, a ja tebi opravim spacebar... (; Probao je on sam da opravi, pa je namestio to što je namestio. Ej, Grbo, jeftiniji ti je bio jedan candybar. ;))
clipper.456 snemcev,
>>>> Salji spisak. Sto se pretplate tice, snacicemo se nekako (npr. mozemo se >>>> dogovoriti ako ti das Jupak:). >> >> Verovao ili ne ja sam koristio direktnu liniju i nikad nisam >> bio na Jupak-u (ukoliko mi neko to malo objasni vrlo rado cu i to) >> jer ja modem koristim samo da bih saznao sto vise o clipper-u... Al' zato ja imam Jupak, pa se možemo dogovoriti... ;) Ostatak u mail, OK.
clipper.457 v.nesic,
>>> Znaci, pri svakom prolasku uvecava se interna promeljiva funkcije aeval >>> i tvoja brojacka promenljiva. Kada koristis for uvecava se samo jedna >>> koju koristis u oba slucaja. > > Na zalost nije, iako je zanimljivo (pogledaj primer). Opet je AEVAL() sporiji. Šta nije? > Vremena izvrsavanja delova koda, funkcija.. su se drasticno razlikovala > posle svakog narednog startovanja programa. Verovatno zbog dinamičkih overleja.
clipper.458 v.nesic,
> Internu promenljivu koju koristi kao index AEval prosleđuje kodnom bloku > koji izvršava kao drugi parametar, tako da nema potrebe računati index > koji već postoji. U primeru stoji: aeval(ekran, { |x| i++, j := 0 ... Dakle, postoje dva brojača interni funkcije aeval i promeljiva i. BTW, hvala za informaciju. Nisam znao za to.
clipper.459 stosic,
Sta je najaktuelnije od komercijalnog softvera za CA-Clipper5.2 ? Narocito me interesuje podrska za objektno programiranje. Koje su prednosti Class(y) u odnosu na o:Clip ?
clipper.460 dr.grba,
>> Narocito me interesuje podrska za objektno programiranje. I mene. Vlada mišljenje da ćemo u sledećoj generaciji Clippera (6.x?) dobiti potpunu i pravu podršku objektnom programiranju... Skrećem tvoju pažnju na biblioteku Netto u direktorijumu Clipper na Sezamu. Ona je predviđena za Clipper 5.2 i služi za prilično kvalitetnu podršku rada programa u mreži. Kako je prelazak na novu verziju/generaciju nekog programa uvek i valjana prilika da se dobije neki novi kvalitet, to ja sam predviđam upotrebu ove biblioteke u budućem razvoju svojih programa.
clipper.461 bulaja,
│Koje su prednosti Class(y) u odnosu na o:Clip ? └─── Zar neko ovde ima Class(y) za Clipper 5.01 ili 5.2? Koliko sam primetio po svetskim mrezama, Class(y) je najpopularnije objektno prosirenje Clippera, verovatno ima i najbolju podrsku (nove verzije i sl.)
clipper.462 arazumenic,
-> OK, nisam imao nameru da te vređam. Mislio sam da će ti moja poruka -> pomoći da rešiš problem. Nisam to ni shavtio kao uvredu, već mi je želja bila da prekinemo sa tim raznoraznim porukama koje niko(?) nigde (?) ne bi stavio. Saša
clipper.463 nbatocanin,
> Na zalost nije, iako je zanimljivo (pogledaj primer). Opet > je AEVAL() sporiji. Evo ovako: AEval je u principu znatno brži od FOR ciklusa u smislu da brže pristupa elementima nekog niza. Tvoj primer daje bolje razultate za FOR zato što AEval radi više operacija u petlji: dok FOR jednostavno uradi poređenje, AEval *pozove funkciju* (kod blok), a to znači iskopira parametre na stek, ... i tek onda izvrši prethodni deo koda. Obično AEval skupi dovoljnu prednost da se pokriju ove dodatne operacije, ali ne uvek. Ne treba zaboraviti ni složenost podsistema za rad sa nizovima: probajte da zamenite mesta poziva amax1 i amax2 u primeru i dobićete sasvim druge rezultate (ali opet u korist FOR naredbe). Ako smanjite broj elemenata niza ili isključite keširanje diska (čitanje overleja), vreme se može promeniti i u korist AEval-a.
clipper.464 kranko,
Dobio sam Clipper 5.2 i uz njega jos neki TOOLBOX. Moze li mi neko reci cemu sluzi taj dodatak i za sta je podoban ? Da li postoji knjiga na nasem trzistu.
clipper.465 bulaja,
│Dobio sam Clipper 5.2 i uz njega jos neki TOOLBOX. Moze li │mi neko reci cemu sluzi taj dodatak i za sta je podoban ? └─── Mozes li nam reci sta tacno pise u tom ToolBox-u, tj. koji je njegov puni naziv? Moze biti npr. CA-Clipper Tools, Vern Six's ToolBox (ima ga i u Clipper dir-u) ili nesto trece. Ako se uz njega dobija neki NG, pogledaj i javi sta pise tamo.
clipper.467 dsisic,
Cao svima, postoji li neki nacin da dojem do Blinkera 2.01 i NG-a za isti?
clipper.468 gari,
> postoji li neki nacin da dodjem do Blinkera 2.01 > i NG-a za isti? Postoji pogotovo ako imas Blinker 2.0 jer sa Sezam-a mozes skinuti patch za blinker 2.01... pozdrav, Gari. p.s. ako nemas 2.0 onda se raspitaj malo po Beogradu (ili odakle si vec) za neku demo verziju koja radi do kraja ovog veka ;)
clipper.469 nbatocanin,
> Nisam to ni shavtio kao uvredu, već mi je želja bila da > prekinemo sa tim raznoraznim porukama koje niko(?) nigde > (?) ne bi stavio. Naravno da nisam mislio da staviš _baš_ onu poruku. Ideja ostaje ista a poruka može da bude neka fina poput "PREKORAžILI STE LIMIT" i sl.
clipper.470 nbatocanin,
> Sta je najaktuelnije od komercijalnog softvera za > CA-Clipper5.2 ? Narocito me interesuje podrska za objektno > programiranje. Class(y), SIx driver, Flipper 6.0, Clip4Win, ... > Koje su prednosti Class(y) u odnosu na o:Clip ? Velike. Ima potpuniju implementaciju OOP-a i ne pravi razliku između originalnih Clipper-ovih i naknadno definisanih klasa.
clipper.471 cnenad,
Hm, bese NDRAGAN poslao ovo 1.9.93. ŁŁŁ Elem, jedino se secam da radi sa petnaest cifara... kako se ŁŁŁ izgovara ono cudo sa osamnaest, pa da dodam malo koda u ŁŁŁ slovima.prg? Bese ovo: 100,000,000,000,000,000 ? Valjda stohiljadabiliona ili stobilijardi (ko voli da igra bilijar razumece :) ) ?! ŁŁŁ Juce sam nacuo da je avgustovska inflacija 1680%, sto dignuto ŁŁŁ na godinu znaci petnaest nula. Posle sam cuo da, kao, nije ŁŁŁ toliko nego 1860%. Za oktobar (nezvanicno) 2500 % a na godisnjem nivou cak 8,9 milijardi % Jes da je digresija od KLIPER-a al'ima dodirnih tacaka: @xx,xx say yyyyyy pict '999,999,999,999,999,999,999,999,999,999,999,999'
clipper.472 stosic,
>Internu promenljivu koju koristi kao index AEval prosleduje kodnom bloku >koji izvrsava kao drugi parametar, tako da nema potrebe racunati index >koji vec postoji. Slazem se (za J), moj propust. Samo, kako bi u datom slucaju (11.420) uklonio I iz {|x| i++, ... ?
clipper.473 stosic,
>AEval je u principu znatno brzi od FOR ciklusa... >Tvoj primer daje bolje razultate za FOR zato sto... >Ne treba zaboraviti ni slozenost podsistema za... Sve to ukazuje na potrebu za dobrim PROFILER-om.
clipper.474 stosic,
> SIx driver, Clip4Win, ... Sta rade doticni? >>Koje su prednosti Class(y) u odnosu na o:Clip ? > > Velike. Ima potpuniju implementaciju OOP-a i ne pravi razliku izmedu > originalnih Clipper-ovih i naknadno definisanih klasa. Ima li neko Class(y).doc, ng ili slicno? Moze i u mail.
clipper.475 dejanr,
>> Bese ovo: 100,000,000,000,000,000 ? Valjda stohiljadabiliona ili >> stobilijardi (ko voli da igra bilijar razumece :) ) ?! Pre par godina imali smo jednu Pitalicu na tu temu, kako se pišu slovima veeeeliki brojevi. Pokazalo se da naš pravopis tu ne daje odgovor, izgleda da niko o tome nije mislio. Za razliku od, recimo, Amerikaca koji su razradili nomenklaturu za jako velike brojeve, čak i veće od onog koji navodiš. I posle samo da se pitamo, zašto mi imamo ovoliku inflaciju, a ne oni? A lepo bi umeli sve iznose da nazovu :)))
clipper.476 kranko,
Zna li neko da li moze da se istampa NG u Clipper-u. Ako moze KAKO ? Pozdrav
clipper.478 cnenad,
ŁŁŁ razradili nomenklaturu za jako velike brojeve, cak i vece od ŁŁŁ onog koji Kad smo vec kod toga, najveci broj za koji sam cuo naziv je GUGOL to jest broj koji ima u sebi 100 nula. Ima li veci ?
clipper.479 snemcev,
>> Slazem se (za J), moj propust. Samo, kako bi u datom slucaju (11.420) >> uklonio I iz {|x| i++, ... ? Jel može ceo kodni blok?
clipper.480 snemcev,
>> Zna li neko da li moze da se istampa NG u Clipper-u. >> Ako moze KAKO ? Imaš NG_PRINT, vrlo korisno programče u paketu sa VS_904 bibliotekom.
clipper.481 stosic,
> Zna li neko da i moze da se istampa NG u Clipper-u. U najnovijoj verziji Nanfor-a (imas ga na Sezamu) postoji ngprint.prg. Pozdrav, Boban
clipper.482 stosic,
>>> Slazem se (za J), moj propust. Samo, kako bi u datom slucaju (11.420) >>> uklonio I iz {|x| i++, ... ? > >Jel moze ceo kodni blok? Znaci ne moze?
clipper.483 dr.grba,
>> Zna li neko da li moze da se istampa NG u Clipper-u. >> Ako moze KAKO ? Programom NGP(RINT). Ima ga u raznim ShareWare paketima, pa dajem sebi za slobodu da ga i sam okačim. U stvari, sad videh da ga je napravio Pepijn Smits, poznati autor Expand biblioteke. ngprint.zip
clipper.484 stosic,
Ispravka: ngprint.prg ide uz expand.lib.
clipper.485 bulaja,
**** new file **** R:\IBMPC\CLIPPER\*.* ---------------------- 52an00 arj 15306 Spisak nepravilnosti u CA-Clipper 5.2 CA has NOT released an Anomalies listing for Clipper, and has stated that they are not likely to do so. This Anomalies listing will be maintained until CA should decide to publish an anomalies list, and will be updated regularly. Although CA has released their own internal error listing, it DOES NOT contain all of the internall errors found in Clipper. Also, quite a few of the IE's listed in their listing are poorly explained. The IEs in this NG has been checked against CA's official listing. Where better but still acurate explanations have been found, these have been used instead of the official explanation from CA. Items in the IE list marked with "?" denote that although it has been encountered in Clipper 5.2, CA has not released an official explanation. Items in the IE list marked with "-" denote that although it has been encountered in Clipper 5.2, it has been explained by highly competent sources. It does not, however, appear in CA's official list of IEs.
clipper.486 bulaja,
**** new file **** R:\IBMPC\CLIPPER\*.* ---------------------- ie52ng arj 7990 Spisak internih gresaka CA-Clipper-a 5.2 (CA)
clipper.487 gari,
Uz ovaj fajl ide NG koji se instalira uz DGE za clipper 5... Nisam instalirao, a lepo me je pitao za: DB3, DB4, CLIP87, FOXBASE, FOXPRO, DBFAST, VULCAN, QS, FORCE, C, RC, DBCOMMON, DBXL,... Ukoliko nadjete jos neku biblioteku sa ovakvim funkcijama, ja Vam svima skidam kapu (a uz to i da rade na ovoliko raznovrsnih prog. jezika) pozdrav, Gari.
clipper.488 cnenad,
ŁŁŁ Zna li neko zasto zasto ne mozemo da se smeskamo? ŁŁŁ ŁŁŁ> @24,0 say "Pritisni Ctrl-ScrollLock dirku da dobijes ŁŁŁ> smile..." do while !(i:=INKEY()=K_CTRL_C) Malopre sam pregledao i sredjivao bazu SOR-a pa naletih na ovo (sve izvlacim neke stvarcice iznebuha a ?) a posto sam bas ovih dana ponovo namestio igricu SUPAPLEX u kojoj menjah fajl gde su zapisani predjeni nivoi setih se da dopisem kao odgovor na ovu poruku iz prosle konf. da za smajlije treba pritisniti valjda CTRL-A i CTRL-B. Jedan je beo a drugi crn smajli. Valjda zato nije sve radilo kako treba u ovom Bulajinom modulcicu ?
clipper.489 cnenad,
Iz prosle konf. ŁŁŁ pravio izvestaj pre godinu dana; otkako sam presao na 'Modify ŁŁŁ report' (FoxPro :), programi za stampe koji su tako pisani ŁŁŁ sveli su se sa prosecnih 6K na 1,5K. U vezi sa ovim posto mi trenutno nije potrebna neka bolja kontrola stampe imam pitanje za FRM datoteke radjene u DBASU IV koje kliper ne podrzava --------------- (mada me iznervira kad se napuni bafer stampaca prilikom stampe sa REPO FORM.. [na EPSONU LX-400 (valjda je tako) je radilo kako treba tj. cekao je nekih 10 sec. za ON-LINE signal stampaca kod zamene papira - promene strane npr.; dok kod LX-800 ili LQ-1070 cim zavrsi stampanje strane izbaci PRINTER OUT OF PAPER i nakon IGNORE dodje do prestampavanja nekoliko slova koja su vec odstampana tekstom koji bi trebao da bude u pocetku) (uf, ala zakomplikova) --------------- jer preko njih stampam sve izvestaje (jer generator tih izvestaja je jedno 1000 puta bolji i od kliperovog i od DBASE 3+) da li bi se one nekako mogle preraditi. Malo sam ih pregledao ali nisam nista zanimljivo otkrio. Ukoliko je neko zainteresovan, uz poruku je prikacen fajl u kome se nalaze FRM, FRG, FRO i PRF fajlovi koje formira DBASE-ov generator. Za stampu u DBASE-u je dovoljno da postoje PRF i FRO ali me interesuje da li se moze u kliperu iskoristiti FRM koji je prilozen pa ih zato saljem. nivmfrg.zip
clipper.490 cnenad,
evo jos nesto iz pc.os. - poruka od NBATOCANIN-a ŁŁŁ Nekoliko ljudi me je pitalo da li mogu moje programe sa ŁŁŁ Sezama da ugraduju u svoje aplikacije. U uputstvima za ... ŁŁŁ prodajete - puno srece pri tome! Necu vam zameriti i ako ŁŁŁ nesto izmenite. Ako negde napisete i poreklo ovog dela ŁŁŁ programa, bicu zahvalan i pocastvovan, mada nije obavezno. A u principu, ako si vec tako nesto dozvolio bio bi red da te i pomenu u dokumentaciji programa - cisto to smatram kao moralnu obavezu (ha, cuj moral !?!? - sta je to ?) onoga ko koristi tvoj kod)
clipper.491 cnenad,
ŁŁŁ nalaze FRM, FRG, FRO i PRF fajlovi koje formira DBASE-ov ŁŁŁ generator. Za stampu u DBASE-u je dovoljno da postoje PRF i ŁŁŁ FRO ali me interesuje da li se moze u kliperu iskoristiti FRM ŁŁŁ koji je prilozen pa ih zato saljem. Nalazi se samo FRG. Naknadno sam izbacio FRM, PRF, I FRO jer se u njima nista ne vidi a ovaj FRG je generisao DBASE IV REPORT GENERATOR i lici mi na proceduru za stampu pa sam zato samo njega poslao.
clipper.492 dvesic,
Cao ! Da li je za update sa Clipper 5.2 na Clipper 5.2c dovoljan samo 52cus.exe ili je (kao sto se u readme kaze) potreban i PATCH.EXE ? Ako je potreban, gde se moze nabaviti ? Pozdrav, Vesa.
clipper.493 snemcev,
>>>>> Slazem se (za J), moj propust. Samo, kako bi u datom slucaju >>>>> (11.420) uklonio I iz {|x| i++, ... ? >>> >>> Jel moze ceo kodni blok? >> >> Znaci ne moze? Nisi me razumeo, a ni ja nisam bio baš jasan - hteo sam da kažem da napišeš ceo kodni blok, da se vidi kontekst famoznog I, pa ćemo onda da vidimo.
clipper.494 cnenad,
Interesuje me (i ranije sam pitao) da li je neko uspeo da resi problem ispisa realnog vremena (casovnik). Dobro znam da to ima u DBASE IV i FOX sa SET CLOCK TO X,Y i SET CLOCK ON, ali kako stoje stvari sa CLP ? Video sam ranije da je neko slao nesto radjeno u ASM za to ali je navodno imalo bagova (ili nesto nije bilo u redu). Priznacete da funkcija TIME() nije pogodna za to narocito ako ne dirate program nekih 10-15 minuta a vrednost funkcije ostaje ispisana onakva kakva je bila kad je pozvana.
clipper.495 dr.grba,
>> Kad smo vec kod toga, najveci broj za koji sam cuo naziv je GUGOL >> to jest broj koji ima u sebi 100 nula. Ima li veci ? Pisao sam davno, u nekoj koferenciji o tome, prepisavši iz knjige "Kosmos" Karla Segana. Gugol je deset na stoti. A GUGOLPLEKS je deset na gugol stepen. Toliko je besmisleno velik... ...kada bi kugla prečnika petnaest milijardi svetlosnih godina bila ispunjena elektronima u stanju mirovanja, dakle bez praznog prostora, bilo bi ih jedva 10 na 3000 (ups! da li je 300 ili 3000, moram da pronađem, zaboravio sam...).
clipper.496 dr.grba,
>> u principu, ako si vec tako nesto dozvolio bio bi red da te i >> pomenu u dokumentaciji programa - cisto to smatram kao moralnu >> obavezu (ha, cuj moral !?!? - sta je to ?) onoga ko koristi tvoj >> kod) Kada u mom demo programu CEK uključiš kalkulator, na dnu njegovog helpa je oznaka da je Nenad autor kalkulatora. To je najmanje što sam mogao da učinim za uslugu dobijenu korišćenjem istog.
clipper.497 bulaja,
│Da li je za update sa Clipper 5.2 na Clipper 5.2c dovoljan samo │52cus.exe ili je (kao sto se u readme kaze) potreban i PATCH.EXE ? │Ako je potreban, gde se moze nabaviti ? └─── Potreban je i patch.exe. Ako ga nema u top 5.2c update paketu, onda ga sigurno ima u dogradnjama za verzije 5.2a i 5.2b (neka od njih je valjda jos na Sezamu:). Pogledacu danas da ubacim u odvojen patch.exe u dir, pa da se pobrisu ti stari update-ovi.
clipper.498 cnenad,
ŁŁŁ je oznaka da je Nenad autor kalkulatora. To je najmanje sto ŁŁŁ sam mogao da ucinim za uslugu dobijenu koriscenjem istog. Tacno tako, lepo od tebe !
clipper.499 snemcev,
Da li i kako u svojim programima koristite naredbu PACK? Da je korisna, jeste, al' je spora do zla boga.
clipper.500 vision,
> Da li i kako u svojim programima koristite naredbu PACK? Da je korisna, > jeste, al' je spora do zla boga. Spora jes (kada se ima vise recorda). Kada se na primer odredjeni record trazi odredjenim field-om (indeksno ili ne), onda ja lepo taj kljuc samo mu promenim tekst, naprimer ako je kljuc tekst, onda napravim jedan 'REPLACE field_name with "Delete"', i naravno uradim i jedan DELETE. Iduci put kada se na primer index-uju baze, pre index-a uradim jedan PACK, i to je to. Reci ces da tada PACK je spor, ali sta ces bolje jednom nego 100 puta:).
clipper.501 dejanr,
>> Da li i kako u svojim programima koristite naredbu PACK? Ja je maksimalno izbegavam. Recept je dat još u prvim danima Sezama - umesto da se slog briše, u neko polje po kome postoji indeks treba upisati neku "levu" vrednost koja tu nikako ne može da se pojavi. Posle kada se unosi novi slog sa seek može da se potraži ta vrednost i da se upiše podatak. Tek jako retko može se ukazati potreba da se ti podaci stvarno obrišu i da se uradi pack.
clipper.504 paki,
­> A GUGOLPLEKS je deset na gugol stepen. Toliko je besmisleno velik... K'o iMflacija ;)
clipper.505 gari,
> Uz ovaj fajl ide NG koji se instalira uz > DGE za clipper 5... > Nisam instalirao, a lepo me je pitao za: > DB3, DB4, CLIP87, FOXBASE, FOXPRO, DBFAST, > VULCAN, QS, FORCE, C, RC, DBCOMMON, DBXL,... > > Ukoliko nadjete jos neku biblioteku sa ovakvim > funkcijama, ja Vam svima skidam kapu (a uz to > i da rade na ovoliko raznovrsnih prog. jezika) E, da 3 puta ne uspe upload to vec prevazilazi moje zivce, pa saljem ponovo... ;>>>>>>>>>>>>>> pozdrav, Gari. dge_ng.zip
clipper.506 d.petrovic,
Ă> Interesuje me (i ranije sam pitao) da li je neko uspeo da resi Ă> problem ispisa realnog vremena (casovnik). Dobro znam da to ima u Ă> DBASE IV i FOX Ostavio je nenad ovde funkciju za skeniranje tastature. Pogledaj malo unazad i ja sam je UL pre jedno mesec dana: conf li /t, treba da se zove ninkey.zip ili slično...
clipper.507 dr.grba,
>> Video sam ranije da je neko slao nesto radjeno u ASM za to ali je >> navodno imalo bagova (ili nesto nije bilo u redu). Priznacete da >> funkcija TIME() Stvar stoji ovako: ako ne paziš sa tom ASM funkcijom, ili ti program padne u trap, jedino cold reboot rešava stvar. Ako želiš da imaš sat samo na poziv nekog tastera (kod mene Alt-T), upotrebi ovo: *************************************************** * proc TIMING vraca tekuci dan, datum i sat * prikladno za spice i za pozive **************************************************** proc timing() set century on // postavke za sat set cursor off set date german private t_i, t_k, t_bl, t_qtime, t_a, t_biper, t_poruka private t_por_col, t_xx, t_yy private danŠ7Ć // inizijalizacija naziva dana dan := š"Nedelja, ","Ponedeljak, ","Utorak, ","Sreda, ", ; "Cetvrtak, ", "Petak,", "Subota, "ć t_i = dow(date()) // pripremni racun t_k = int((19 - len(danŠt_iĆ))/2) // za centrirani izlaz t_bl = replicate(" ",t_k) // displeja t_xx = 10 // pozicija casovnika na ekranu t_yy = 20 save screen set color to w/n č t_xx-1,t_yy-5 clear to t_xx+4,t_yy+47 č t_xx-1,t_yy+2,t_xx+1,t_yy+42 box ; replicate(chr(220),3) + replicate(chr(222),2) + space(3) set color to n/w t_poruka := " Pritisni bilo koji taster ... " t_por_col := t_yy + 40 - len(t_poruka) č t_xx+3, t_por_col say t_poruka set color to w+/n č t_xx,t_yy to t_xx+2,t_yy+40 double set color to w/n do while .t. // petlja displeja // displej sata č t_xx+1,t_yy+1 say t_bl+danŠt_iĆ+dtoc(date())+" "+time()+t_bl t_qtime = time() t_a = 0 t_biper = .t. do while t_qtime = time() // zadrska sata if t_biper tone(1200, 0) t_biper = .f. endif ++t_a enddo if inkey() <> 0 // proverava da li je set cursor on // pritisnut neki taster set color to // proverava da li je dat // zahtev za izlazak iz programa č 24,79 say nil restore screen return endif enddo // kraj petlje displeja *********** kraj programa ********** Ovo je neka starija verzija programa, u test varijanti. Za dalje sam razvio i neke komplikujuće efekte, ali ovoliko radi. Vi sad, ako vam se dopada, razvijajte dalje do mile volje. I izvinite što je tako vrljavo napisano, ali mislim da ćete se snaći.
clipper.508 snemcev,
>> Ja je maksimalno izbegavam. Recept je dat još u prvim danima Sezama - >> umesto da se slog briše, u neko polje po kome postoji indeks treba >> upisati neku "levu" vrednost koja tu nikako ne može da se pojavi. To mi je poznato, ali nikako da sebe nateram da izmenjam sve svoje programe tako da ovo podržavaju. Nisam bio siguran da ne postoji neko "prelazno rešanje" dok ne izbacim pack u potpunosti.
clipper.509 stosic,
> ...hteo sam da kazem da napises ceo kodni blok, da se vidi kontekst > famoznog I, pa cemo onda da vidimo. Clipper ne dozvoljava da se parametar definisan u spoljasnjem kodnom bloku cita u unutrasnjem, pa je potrebna pomocna promenljiva (i). aeval(ekran, { |x, xi| i := xi, ; aeval(x, { |y, j | iif( y <> nil, ; ( element := array(3), ; element[ROW] := i, ; element[COL] := j, ; element[CHA] := y, ; aadd(sadrzaj_ekrana,element) ), ; .f. ) ; } ) ; } )
clipper.510 dsisic,
Mala, malecka funkcija za racunanje kontrolnog broja fakture po modelu 05, za one koji nemaju svoju f-ju je prikacena uz ovu poruku. control5.zip
clipper.511 snemcev,
>> Mala, malecka funkcija za racunanje kontrolnog broja fakture >> po modelu 05, za one koji nemaju svoju f-ju je prikacena uz >> ovu poruku. To beše onaj po modulu 11, ne?
clipper.512 nbatocanin,
>> SIx driver, Clip4Win, ... > > Sta rade doticni? SIx drajver je drajver za Clipper koji omogućava korišćenje Fox kompatibilnih indeksa i ima masu korisnih funkcija za rad sa istim. Veoma hvaljen proizvod. Clip4Win je biblioteka (?) koja omogućava da u Clipper-u pišete aplikacije koje će raditi pod Windowsima u protected modu.
clipper.513 nbatocanin,
> u principu, ako si vec tako nesto dozvolio bio bi red da > te i pomenu u dokumentaciji programa - cisto to smatram > kao moralnu obavezu (ha, cuj moral !?!? - sta je to ?) > onoga ko koristi tvoj kod) Kao što rekoh: ko hoće, ok; ko neće nije obavezno. Važno je da se nešto radi :)
clipper.514 nbatocanin,
> Interesuje me (i ranije sam pitao) da li je neko uspeo da > resi problem ispisa realnog vremena (casovnik). Preporučujem rešenje u čistom Clipper-u. Imaš objašnjenje u ovoj temi, a imaš i u "Računarima" (tekst "Programi koji sami rade"). Ako ti nešto ne bude jasno, pitaj!
clipper.515 arazumenic,
-> A GUGOLPLEKS je deset na gugol stepen. Toliko je besmisleno velik... -> ...kada bi kugla prečnika petnaest milijardi svetlosnih godina bila -> ispunjena elektronima u stanju mirovanja, dakle bez praznog prostora, -> bilo bi ih jedva 10 na 3000 (ups! da li je 300 ili 3000, moram da -> pronađem, zaboravio sam...). Ovo mi više liči da je za temu misterije. A što se tiče tih velikih brojeva, negde sam nekad pročitao (Galaksija?) da je ukupan broj čestica u svemiru reda veličine 10 na 80 stepen, ili tako nešto (davno je bilo). E pa sad vidite kome trebaju toliki brojevi. Saša
clipper.516 neman,
> Veoma hvaljen proizvod. Clip4Win je biblioteka (?) koja > omogucava da u Clipper-u pisete aplikacije koje ce raditi > pod Windowsima u protected modu. Jeste za Windowse, al' ne za One :)) vec za Clipper - ove. Inace mi se demo za to dosta svideo, prozori su u tekst modu i svaki predstavlja neki Clipper proces ;) neman
clipper.517 aquarius,
Vec sam pitao, al' izgleda da moram opet... CLIPPER 5.2c \clipper5\obj\NTXLOCK2.OBJ \clipper5\obj\CDXLOCK.OBJ Cemu i kako sluze ova dva OBJ-a. Aquarius
clipper.518 gari,
>> Veoma hvaljen proizvod. Clip4Win je biblioteka (?) koja >> omogucava da u Clipper-u pisete aplikacije koje ce raditi >> pod Windowsima u protected modu. > Jeste za Windowse, al' ne za One :)) vec za Clipper - ove. > Inace mi se demo za to dosta svideo, prozori su u tekst > modu i svaki predstavlja neki Clipper proces ;) Svojevremeno sam sa Mojster-a skinuo DEMO verziju cliper-a koja RADI pod WIN 3.0 (ONAJ WIN)... Ima li ko verziju koja nije demo? pozdrav, Gari.
clipper.519 eotek,
EMM386 i Clipper ================ Programi u S87 i TLINK ne rade (poruka: nedovoljno memorije ??), odnosno rade samo pod windows ili dosshell. Onda uzmem 5.01 i Blinker - rade. Sreci nema kraja.... Ali:>>> kada uradi pack, ili dbedit vece baze sa brzim pregledom program se zblesira, pa ili pisti ko lud ili blokira, onda opet pod win ili dosshell - sada opet radi. Isto se desava i sa dbu, kada pregledam vecu bazu "brzim" PgDn (ako ide polako: ne!?). Isti problem i sa Rtlink... E sad se ja zblesiram >. Ako neko ima resenje molim da ga da, verujem da ce i drugima da bude interesantno. THX ps.: ako zatreba, prilog con'.sys i a'.bat konfgsfx.exe
clipper.520 dr.grba,
>> tako nešto (davno je bilo). E pa sad vidite kome trebaju toliki >> brojevi. Polu Krneti, da opiše perfomanse Alfe.
clipper.521 drdjokic,
Da li postoji mogucnost startovanja programa (koji je napisan u CLIPPER-u 5.01) u expanded EMS ili extended XMS memoriji i KAKo ? Unapred hvala
clipper.522 dvesic,
> Da li postoji mogucnost startovanja programa (koji je napisan u > CLIPPER-u 5.01) u expanded EMS ili extended XMS memoriji i KAKo > ? Pitanje nije bas najjasnije. 1. Clipper programi se (kao i svi ostali) izvrsavaju u osnovnoj memoriji (u onih 640 - 704 k). 2. Clipper-ov MM (memory manager) automatski koristi svu EMS memoriju za privremeni prostor (kreiranje indeksa, sortiranje baze, itd...); to mu se moze eksplicitno zabraniti sa SET CLIPPER=E:0 ili sa APLIKACIJA.EXE //E:0 .. ostali parametri aplikacije ... Umesto 0 moze da stoji kolicina (u Kb) EMS memorije koju odvajas za program. 3. Parametri SWAPK i SWAPPATH (imac detalje u NG bazi za CLIPPER UTILITIES) omogucuju da privremene fajlove smesta na RAM disk ( i time indirektno koristi EMS/XMS memoriju). Paznja : Ovo radi samo ako imas poveliki ram disk (> 1Mb), jer privremeni fajlovi znaju da budu poveliki. Nadam se da ti ovo koristi. Ako su ti potrebni detalji, mail write dvesic. Pozdrav, Dejan.
clipper.523 nbatocanin,
> Jeste za Windowse, al' ne za One :)) vec za Clipper - ove. > Inace mi se demo za to dosta svideo, prozori su u tekst > modu i svaki predstavlja neki Clipper proces ;) Da nisi možda pomešao sa nekim drugim programom? Trenutno su ovakvi programi modni hit, pa može biti da ih ima više sa sličnim imenima. Jeste da sam za ovaj saznao iz reklame, ali bih ipak rekao da su "oni" Njindonjsi: "Clip4Win application will perform significantly faster than those created by Windows conversion products, because Clip4Win provides direct acces to the Windows API". U spisku uslova za korišćenje stoji da treba imati Clipper 5.01, Windows 3.1, 4MB RAM i Windows kompatibilni linker. Pravi ga firma Grumpfish inc.
clipper.524 stosic,
Cekajuci Clipper ++ Ako pokusate da pravite objekte uz pomoc CLASSYVS.LIB-a dobicete ovo: Class(y) - Copyright (c) Anton van Straaten 1991, 1992 All rights reserved. This program incorporates a runtime version of Class(y), the object oriented extension for Clipper 5.01. This runtime version does not allow you to create your own classes, or modify the structure of the classes provided. Class(y) is published by Integrated Development Corporation. For more information, please call us at (603) 329-5522. Integrated Development Corporation 190 Main Street, Hampstead, NH 03841 USA Moze li neko da okrene broj i raspita se o verzijama (za 5.2c) i ceni ? Slaba mi konverzacija :)
clipper.525 neman,
> za koriscenje stoji da treba imati Clipper 5.01, Windows > 3.1, 4MB RAM i Windows kompatibilni linker. Pravi ga firma > Grumpfish inc. Pa izgleda da se radi o dva razlicita proizvoda. A sto se tice Grumpfisha, njima svaka cast. Apropo ovoga, jel neko ima demo ;) neman
clipper.526 d.petrovic,
Ă> Da li postoji mogucnost startovanja programa (koji je napisan u Ă> CLIPPER-u 5.01) u expanded EMS ili extended XMS memoriji i KAKo ? Pokušaj da formulišeš pitanje drugačije. Program se startuje u osnovnoj memoriji, a koristi EMS i XMS. žak mislim da korsiti iextended memoruju bez himen.sys-a.
clipper.527 drdjokic,
Ono sto me je zanimalo je sledece. Zelim da iz svog CLIPPER programa pozovem neki drugi komercijalni softver. Kada to uradim ispise se poruka Out of memory i pukne program. Zato sam zeleo, ako je to moguce da svoj program pokrenem u XMS ili EMS memoriji, tako da mi convencionalna memorija ostane slobodna.
clipper.528 bulaja,
Koristi Blinker i SwpRunCmd().
clipper.529 drdjokic,
> Koristi Blinker i SwpRunCmd(). Da li mozes nesto blize da mi odgovoris. Imam Blinker ali neznam kako da ga iskoristim za linkovanje. ?????? SwpRunCmd() Hvala unapred !
clipper.530 dejanr,
>> Da li mozes nesto blize da mi odgovoris. Imam Blinker ali neznam kako >> da ga iskoristim za linkovanje. ?????? SwpRunCmd() U programu staviš nešto kao r:=swpruncmd("PKZIP -P&f A:BACKUP *.DBF", 300, "", "") i... radi. A za "kako se linkuje BLINKER-om", moraćeš malo da prelistaš uputstvo ili Norton Guide. Nije mnogo različito od RTLINK-a, verujem da ćeš se brzo snaći. A da se isplati, naročito što se tiče brzine linkovanja, isplati se itekako! Pogledaj i tekst o BLINKER-u iz "Računara 90", strana 32.
clipper.531 d.petrovic,
Ă> Out of memory i pukne program. Zato sam zeleo, ako je to moguce Ă> da svoj program pokrenem u XMS ili EMS memoriji, tako da mi Ă> convencionalna memorija ostane slobodna. Stavi u SET CLIPPER=... jedno rnnn (nnn broj kilobajta koliko treba da ostane free, kad poziva dos) ili koristi blinker i swpruncmd() funkciju iz samog linkera
clipper.532 d.petrovic,
Ă> brzo snaći. A da se isplati, naročito što se tiče brzine Ă> linkovanja, isplati se itekako! Zato sto mu nkerementalno linkovanje radi kako treba, za razliku od rtlink-a, inace, deluje mi nesigurno za raznorazne racunare gde ce program raditi.
clipper.533 marzi,
Hi, Zna li neko kako mogu da povezem CLIPPER 5.01 za Borlandovim C-om ? Pozdrav.
clipper.534 dvesic,
> isplati se itekako! Normalno da se isplati ! Ali za razvoj programa :) Iz iskustava koje sam imao sa ovim linkerom i Clipperom (5.01 & 5.2) sledi da je on savrsen za razvoj programa (neprevazidjeno inkrementalno linkovanje !) ali da je finalnu verziju ipak bolje linkovati sa RTlinkom. Kod velikih baza je prilikom indeksiranja (link sa Blinker-om) doslo do pucanja programa ( cuvena 5333 IE) dok je sa RTLinkom sve bilo OK. Ako su ti bas neophodne egzibicije tipa (a potrebne su :) RUN ("VELIKI.EXE") postoje razni programi (ja koristim SHROOM) koji se ucitaju PRE tvoje aplikacije, detektuju zahtev za novim shell-om, swapuju tvoju aplikaciju u mem/disk, izvrse VELIKI.EXE i vrate aplikaciju u memoriju (Uf, kolika recenica). Pozdrav, Dejan. P.S. Pisi ako hoces shroom.
clipper.535 dvesic,
> Zna li neko kako mogu da povezem CLIPPER 5.01 za Borlandovim > C-om ? Vrlo tesko ! Ja sam uspevao da povezem Turbo C 2.0 i Clipper 5.01 ali ne potpuno korektno : Linker javlja neke neresene reference, ali sve radi naizgled ok. Ako ikako mozes, predji na MS C 5.1 /6.0. Ako vec hoces da pokusas koristi : - LARGE model - Alt math (bez koprocesora) - bez startup koda. Pozdrav, Dejan.
clipper.536 dr.grba,
>> Ono sto me je zanimalo je sledece. Zelim da iz svog CLIPPER >> programa pozovem neki drugi komercijalni softver. Kada to uradim Ovo je definitivno posao za Blinker. Posle vrlo kratkog dvoumljenja, totalno sam se preorijentisao na njega. SwpRunCmd() i "Vozi, Miško..."
clipper.537 dr.grba,
>> Zato sto mu nkerementalno linkovanje radi kako treba, za razliku od >> rtlink-a, inace, deluje mi nesigurno za raznorazne racunare gde ce >> program raditi. Ne znam kako se ti ophodiš prema inkrementalnom linku. Ja ga, boga mi, upotrebljavam samo u toku razvoja programa, gde uz pomoć Blinkera, par svičeva u .RMK datoteci i par valjano osmišljenih BAT datoteka dobijam skoro interpretersku okolinu (: Šalu na stranu, definitivne i valjano testirane verzije programa valja kompajlirati sa /l opcijom, a bez /b opcije. Veličina .EXE fajla je manja i manje opterećena nepotrebnim stvarima. A na inkrementalni link se tada ne bi trebalo oslanjati...
clipper.538 dr.grba,
>> linkovanje !) ali da je finalnu verziju ipak >> bolje linkovati sa RTlinkom. Toliko pod kožu uđu stvari omogućene BLinkerom, da ja više neću bez njega. Već i sama mogućnost propuštanja parametara tipa BLINKER EXECUTABLE SERIAL me oduševljava... >> Kod velikih baza je prilikom indeksiranja (link sa >> Blinker-om) doslo do pucanja programa ( cuvena >> 5333 IE) dok je sa RTLinkom sve bilo OK. Posle par nekompletnih rasprava po ovom pitanju, voleo bih da neko da poslednju reč o ovom problemu, sa posebnim osvrtom na Clipper 5.2. >> postoje razni programi (ja koristim SHROOM) koji se ucitaju >> PRE tvoje aplikacije, detektuju zahtev za novim shell-om, >> swapuju tvoju aplikaciju u mem/disk, izvrse VELIKI.EXE i >> vrate aplikaciju u memoriju (Uf, kolika recenica). Ovo definitivno nije valjano rešenje za integritet aplikacije. A razlog što sam kategoričan u ovoj tvrdnji je verovatno već ubeležen u iskustvu nekih od vas: pre ili kasnije neka lujka po paljenju mašine otkrije editor, koji po nepisanom Marfijevom pravilu isprobava na CONFIG.SYS i AUTOEXEC.BAT. Da ne govorimo o gomili osnovaca koji posle dva sata staža na PC-ju u maminoj firmi odluče da optimizuju mašinu, pa onda padne slučaj "ovo ovde ne treba". Pa onda ti kroz tri dana, po kiši, a autobusa nema pa nema, odšpaciraš osam kilometara na intervenciju koja se sastoji u vraćanju jednog u AUTOEXEC.BAT, a nedajbože i čupanju podataka iz posrnule aplikacije. Zato, zasuci rukave i reši stvar na nivoJu programiranja.
clipper.539 dvesic,
>> Posle par nekompletnih rasprava po ovom pitanju, voleo bih da >> neko da poslednju rec o ovom problemu, sa posebnim osvrtom na >> Clipper 5.2. Evo ovako : covek je imao instaliran Novell Lite 1.0 (znam da je stara verzija itd itd ali mu je radila posao) na 486/50 sa 8 Mb i 210 Mb diskom kao glavnim racunarom (386SX su bila dva terminala). Aplikacija je pratila njegovo komplet poslovanje. U najvecoj bazi je imao oko 25.000 slogova (samo). Aplikacija je radjena u Clipper 5.2 verziji. Duzina EXE fajla: oko 800k linkovano sa Blinkerom. (ja autor aplikacije). Tip mi je s vremena na vreme prijavljivao pucanje programa i to uvek u razlicitim situacijama. Posto sam ugradio error handler, i posto on nikad nista nije javljao -> mora da je interna greska ili slicna, koja kroz regularni handler ne prolazi. (pri tom sam se NORMALNO obezbedio od sitacija tipa : nema mesta sa svapovanje i slicno). Jedina intervencija koja mi je prosla je re-link sa RTLinkom. Od tada, nijedna fantom greska se nije ponovila ! >> Ovo definitivno nije valjano resenje za integritet aplikacije. >> A razlog Ne shvatam zasto ovo nije resenje. Isti postupak primenjuje i SwpRunCmd. >> editor, koji po nepisanom Marfijevom pravilu isprobava na >> CONFIG.SYS i AUTOEXEC.BAT. Da ne govorimo o gomili osnovaca >> koji posle dva sata staza Kakve veze ovde imaju AutoExec i Config ? Umesto da se aplikacija stratuje sa : APP.EXE //f:65 /Mono ... startuje se sa : shroom -q -w APP.EXE //f:65 /Mono ... Stavis lepo Shroom u direktorijum aplikacije, napravis ga Hid/Read Only i zaboravis na njega. Ako ga klinci vec izbrisu, ti TeleReplicu - pa prebacis coveku preko modema novu kopiju :)) Pozdrav, Dejan. P.S. A da Blinker ima strava opcije - ima. Ne jednom sam pozalio za njima ! PP.S Verzija Blinkera je 2.01.
clipper.540 gari,
Da li bi neko mogao da stavi ovde komentar u vezi novih datoteka u dir r:\ibmpc\database: pcf70.a01 ... pcf70.a07 Posto je telefonski impuls veoma skup za akrobaciju skidanja ovih fajlova u Novi Sad, voleo bih da znam o cemu se konkretno radi i vredi li skidati to... pozdrav, Gari.
clipper.541 bulaja,
**** new file **** R:\IBMPC\CLIPPER\*.* ---------------------- tbmore zip 7699 Objasnjenje interne strukture TBrowse objekata A description of the internal TBrowse-structure as far as I know it, plus code of 10 funcs I use to access TBrowse-internals
clipper.542 d.petrovic,
Ă> Ne znam kako se ti ophodiš prema inkrementalnom linku. Ja ga, Ă> boga mi, upotrebljavam samo u toku razvoja programa, gde uz pomoć Ă> Blinkera, Možda nisam bio jasan: Blinker koristim samo pri razvoju i samo za inkrementalno linkovanje. Svičevi /l i <bez>/b su mi default I PRI RAZVOJU, treba baš da zaglavim da bih to izmenjao. Za Rtlink i izvršnu verziju mi je po tome dovoljan samo jedan .bat fajl, samo još ostaje da ručno izbacim višak koda ;))). Neverovatno je koliko nepotrebnih funkcija zna da mi ostane u jednom programu kad ga završim ;)))
clipper.543 d.petrovic,
Ă> Zna li neko kako mogu da povezem CLIPPER 5.01 za Borlandovim C-om Ă> ? Pozdrav. Ma jel ti ja rekoh svoja iskustva? ;)) Ne sećam se šta me je zezalo, delimično je radilo, ali znam šta sam naučio iz toga: "Zaboravi na Borland + Clipper"
clipper.544 dvesic,
Evo za zainteresovane, SHROOM ! Pozdrav, Dejan. shroom2d.zip
clipper.545 dsisic,
>>> Ono sto me je zanimalo je sledece. Zelim da iz svog CLIPPER >>> programa pozovem neki drugi komercijalni softver. > Ovo je definitivno posao za Blinker. Posle vrlo kratkog > dvoumljenja, totalno sam se preorijentisao na njega. > SwpRunCmd() i "Vozi, Misko..." The OverLay() Library for Clipper Ć The OverLay() Library Ć Function Library ──────────────────────────────────────────────────────────────────────────── Syntax: <log Successful> = OverLay( [<char Program>] [, <num Memory>] [, <char Pathname(s)>] [, <char Environment>] ) Purpose: To run an external program or shell to DOS with the requested amount of memory free. Args: <char Program> is a string containing the name of the program you want to run and its parameters. If it is an empty string, the function will shell out to DOS. <num Memory> is the amount of memory in K that you want to free up. Specify 0 or a number greater than available memory to free up all the memory possible. <char Pathname> is a string containing one or two DOS path specifications (separated by a semi-colon) to tell OverLay() where to place the temporary disk file(s) produced by OverLay() (if OverLay() needs to use a disk file). <char Environment> is a set of environment strings (separated by CHR(0)s) to modify the parent environment. This can be used to add, delete, or change any environment string in the parent environment. Returns: A logical value. .T. means the function succeeded, and .F. means the function call encountered an error. When a .F. value is returned, the O_ErrMajor() function should be used to determine the cause of the failure. Usage: This function is the main reason for purchasing The OverLay() Library. It allows you to run another large program from your Clipper application. The behavior of this function can be controlled by many of the other 30+ library functions. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Dobra stvar, jel tako ?!!!
clipper.546 dr.grba,
>> Kakve veze ovde imaju AutoExec i Config ? >> Umesto da se aplikacija stratuje sa : >> >> APP.EXE //f:65 /Mono ... >> >> startuje se sa : >> >> shroom -q -w APP.EXE //f:65 /Mono ... OK, OK, OK, nisam znao za ovo, NHF, nadam se. Samo sam zagovarao neko "čisto" rešenje...
clipper.547 dr.grba,
>> višak koda ;))). Neverovatno je koliko nepotrebnih funkcija zna da >> mi ostane u jednom programu kad ga završim ;))) Ajde, leba ti, pričaj mi malo o tome (: Ja jednom kranuo da čistim smeće iz aplikacije. Sutra oko podne sam odustao...
clipper.548 dr.grba,
>> The OverLay() Library for Clipper Ć The OverLay() Library Ć >> Function Library ... >> Dobra stvar, jel tako ?!!! ? A tek boja tapeta u predsoblju mog ujaka! (: Dae gu de gi vidime.
clipper.549 d.petrovic,
Ă> Ja jednom kranuo da čistim smeće iz aplikacije. Sutra oko podne Ă> sam odustao... Negde sam pročitao nešto kao neka pravila... - Teško da će program da proradi iz prve. - Ako proradi velika je verovatnoća da ne radi korektno - Ako radi korektno sigurno će ostati gomila nepotrebnih funkcija .... sad... nisam to baš lepo interpretirao... :(((
clipper.550 ndragan,
/ Ja jednom kranuo da čistim smeće iz aplikacije. Sutra oko podne sam / odustao... Opšti deo: Imam rešenje: napišeš generator dokumentacije, da ti napravi kompletan spisak svih fajlova, rutina, .trt i .mrt fajlova koji čine aplikaciju, pa onda kreneš da premeštaš nepotrebne u poddirektorij (ili da ih brišeš, ako imaš arhivu). E onda probaš da li ti je aplikacija i dalje kompletna. Deo za Foksovce: Iz fajlera (like *.prg) lepo pogledam šta ima, i to po starosti; najstarije rutine potražim (ctrl-f) i ako se ne spominju nigde u aplikaciji, ladno brišem. Epilog: Uspeo sam da svedem neke aplikacije sa 180K zipa na 115, a neke na samo 45.
clipper.551 eotek,
> Da li bi neko mogao da stavi ovde komentar > u vezi novih datoteka u dir r:\ibmpc\database: > pcf70.a01 ... pcf70.a07 Prvi utisci: radi se o nekoj vrsti lepseg dBase III+ sa sledecim dodacima: - radi u tekstualnom i grafickom rezimu, u boji i c/b, podrzava misa,vrsi import i export 6-7 formata (starijih, ne previse zna- cajnih),moguc je telefon dial iz baze (radi i na nasim vezama), moguca izrada grafikona (u grafickom modu) sa nekoliko standardnih opcija na osnovu postojece baze podataka, uz naziv baze daje se i mogucnost dodavanja opisa baze (cca 50 ch), podrzava dovoljan broj stampaca (osnovna lista). - sam .exe ima oko 900 kb, a napisan je - koliko vidim - u Borland C++ i Clipper, uz koriscenje nekih dodatnih drajvera za graficke kartice. ceo program zauzima oko 2 MB na disku. - program je shareware, naznaceno je 60 dana (ne znam sta ce biti nakon toga, ali izgleda da ce traziti serijski broj i/ili sifru), kosta ispod 100 USD (single user) ili oko 500 za LAN (koji, kako - nisam bas nasao)... - down ili ne: pa, informativno je. rgds :) eotek
clipper.552 domana,
Postovane kolege, Cuo sam da postoji Btrieve record drajver za Clipper pod imenom RASQL/B firme Horizon. Da li je jos neko o tome nesto nacuo... Btrive je inace poznat po klijet-server nacinu rada sto je neobicno bitno za Clipper u mrezi ! Ako imate BILO KAKVU informaciju - makar i kontakt tel. molio bih Vas da mi je prosledite na licnu postu... Domana
clipper.553 dvesic,
Cao narode ! Da li neko zna zasto sledeci red NE PROIZVODI gresku ( ni prilikom kompajliranja ni prilikom startovanja ) : ? AllTrim (9) Da podsetim : AllTrim bi trebala da radi samo sa stringovima NE i sa brojevima ! Dejan.
clipper.554 gari,
Skinut fazon sa telepathy_home BBS-a (USA): Ako imate problema sa LIB-ovima (CLIPPER501) stavite u source: ANNOUNCE CLIPPER501 Oni tvrde da ovo sljaka... Ko bude ispitao, neka javi o utiscima... pozdrav, Gari.
clipper.555 snemcev,
>> Ako imate BILO KAKVU informaciju - makar i kontakt tel. >> molio bih Vas da mi je prosledite na licnu postu... Ne, ne, ne i po sto puta neeeeee! ;) Zanima još nekog, dajte u conf.
clipper.556 dr.grba,
>> Da li neko zna zasto sledeci red NE PROIZVODI gresku ( ni >> prilikom kompajliranja ni prilikom startovanja ) : >> >> ? AllTrim (9) >> >> Da podsetim : AllTrim bi trebala da radi samo sa stringovima NE i >> sa brojevima ! Ne znamkako tačno Clipper interpretira ovu situaciju, bilo bi zgodno zaviriti pod haubu pa ispitati. Ono što je moguće kod nekih kompajlera jeste da broj mogu u sličnoj situaciji interpretirati kao string. Baš zanimljivo.
clipper.557 dr.grba,
Da li se nekoigrao sa ORDBAGxxx() funkcijama indeksnih drajvera u Clipperu 5.2 i da li je pokušavao da otkrije neka suštinska poboljšanja njihovim korišenjem? I najzad, da li se neko bavio posebnim sortnim rasporedima u Clipperu? Znam za neka rešenja, ali najpre vas da čujem.
clipper.558 ndragan,
/ ? AllTrim (9) Foks lepo javlja "Illegal parameter type, or count". Šta bi Kliperu?
clipper.559 aquarius,
<> pod haubu pa ispitati. Ono sto je moguce kod nekih kompajlera <> jeste da broj mogu u slicnoj situaciji interpretirati kao <> string. <> <> Bas zanimljivo. Da li su samo brojevi u pitanju ? ? ValType( AllTrim( Date() ) ) =-> C ? Len( AllTrim( Date() ) ) =-> 0 ? ValType( AllTrim( .T. ) ) =-> C ? Len( AllTrim( .T. ) ) =-> 0 ? ValType( AllTrim( { |b| b +1 } ) ) =-> C ? Len( AllTrim( { |b| b +1 } ) ) =-> 0 ? ValType( AllTrim( { 1, 2, 3 } ) ) =-> C ? Len( AllTrim( { 1, 2, 3 } ) ) =-> 0 Gde smo sada ? Aquarius :(
clipper.560 aquarius,
<> A tek boja tapeta u predsoblju mog ujaka! (: <> <> Dae gu de gi vidime. dr Grbi i svim zainteresovanima ! Ne znam za tapete tvog ujaka, ni da li ima predsoblje, ali sto se tice Overlay()-a, evo ga, pa javi iskustva. Aquarius :) overlay.arj
clipper.561 jorad,
Wideo sam u V.Six demou kalendar koji mi se dopao pa sam uradio nešto slično. Evo ga kao prilog, pa ko voli nek izvoli... Rade kalendar.zip
clipper.562 nbatocanin,
> Da li se nekoigrao sa ORDBAGxxx() funkcijama indeksnih > drajvera u Clipperu 5.2 i da li je pokušavao da otkrije > neka suštinska poboljšanja njihovim korišenjem? Pa, suštinska poboljšanja zavise od RDD-a koji koristiš. Na primer, ako koristiš DBFNTX, ne dobija se ništa naročito, ali ako koristiš DBFCDX, dobija se. Najatraktivnija stvar je trpanje više indeksa (ordera) u jednu datoteku. Inače, sve ove funkcije se koriste indirektno u naredbama INDEX, USE, ORDER, ...
clipper.563 dr.grba,
>> Ne znam za tapete tvog ujaka, ni da li ima predsoblje, ali >> sto se tice Overlay()-a, evo ga, pa javi iskustva. Skinuću taj fajl i poigrati se njime prvom prilikom. Zašto se vređaš? Samo sam malo ironično hteo da podržim konstruktivnost u raspravi.
clipper.564 nesa,
Šaljem ovu rutinu u MSC, koja čita i/ili postavlja atribute POSTOJEĆEM fajlu! Iz Clipper-a se poziva sa (npr.): cdos_setfi("file.ext", _A_HIDDEN + _A_RDONLY) Nevolja je što sa C kompajlerom iz verzije 6.0 nakon ove kobasice: CL fileattr.c /c/AL/Gs/Zl/FPa -link /NOE/se:512 dobijam poruku: Command line error D2002:Conflict in memory model ili tako nešto. Svi parametri su po pravilima za povezivanje C sa Clipperom (po Rick Spenc-u). žuo sam da je razlog to što nemam C verziju 5.1! Ovo mi je potrebno hitno. UKOLIKO ima dobrih duša koje će ovo uspešno prevesti i povezati i poslati .OBJ fajl (uz dodatna obaveštenja gde da nadjem C5.1)! Evo i programa: /*** * Dobijanje i definisanje atributa datoteke */ #include "extend.h" #include "dos.h" /*** * BROJNI cdos_getfi(path, attribute) * * ZNAKOVNI path Puna putanja * BROJNI *attributes Broj za smestanje atributa. * Mora biti prenet preko reference. * * Odredjivanje atributa datoteke ili direktorijuma. Atributi su u * attribute (mora biti prenet preko reference). Rezultat funkcije * je 0 ako je ok, u suprotnom je broj greske. */ CLIPPER cdos_getfi() { unsigned attributes, errcode; /* Poziv funkcije iz biblioteke */ errcode = _dos_getfileattr(_parc(1), &attributes); /* Smestanje atributa u parametar prenet preko reference */ _storni(attributes, 2); /* Vracanje kôda greske u Clipper */ _retni(errcode); } /*** * BROJNI cdos_setfi(path, attribute) * * ZNAKOVNI path Puna putanja * BROJNI attribute Novi atributi * * Definise atribute datoteke ili direktorijuma. * Vraca 0 ako je ok, u suprotnom je broj greske.*/ CLIPPER cdos_setfi() { _retni(_dos_setfileattr(_parc(1), _parni(2))); } hederi.zip
clipper.565 nesa,
Postoji li neka asemblerska funkcija za set atributa postojećem fajlu! Pozdrav!
clipper.566 peca.st,
!-> Postoji li neka asemblerska funkcija za set atributa postojećem !-> fajlu! Postoji, naravno. :) DOS funkcija 43h : Postavljanje atributa: AH 43h AL 01h CX atributi DS:DX seg:off na ime fajla. Int 21h U AX će vratiti grešku, ako je ima. Atribute setuješ ovako: 00h - normal 01h - read only 02h - hidden 04h - system 20h - archive Ako hoćeš kombinaciju nekih, samo ih saberi. Greške koje mogu da se vrate u AX: 1 - Invalid function code 2 - file not found 3 - path not found 5 - access denied Ako hoćeš da čitaš atribute, sve je isto, samo što će ti u CX biti vraćeni atributi tog fajla. Peđa.
clipper.567 dcolak,
Momci, potrebna mi je pomoć... Koristi li neko BRIEF pri programiranju u (jel'te) Clipper-u? Potrebni su mi neki makroi napravljeni da bi olakšali programiranje u Clipper-u.. Zovu se DBF*** (zaboravih ime) ili tako nekako, ali uglavnom kao olakšavaju pisanje .prg... So, ako neko ima neke makroe, neka ne bude zamoljen... Sledge DAMMIR!
clipper.568 ematic,
> Postoji li neka asemblerska funkcija za set atributa postojećem > fajlu! Evo. Poziva se kao [nRetVal :=] CHMOD(cImeFajla, nAtributi). Vraća 0 ako je uspelo, broj greške ako nije. Ovo je samo osnova, ko hoće može da doda proveru parametara ili da izmeni funkciju tako da može i da vraća atribute(onda u al ide 0 a atributi se vraćaju u cx) ;--------------------<chmod.asm>------------------------------------ INCLUDE EXTENDA.INC CLpublic <CHMOD> CLfunc int CHMOD <char ime, int atributi> CLcode push ds lds dx, ime mov cx, atributi mov ax, 4301h int 21h jc greska mov ax, 0 greska: pop ds CLret ax END ;--------------------<chmod.asm>------------------------------------ Zgodno je da se atributi definišu u heder fajlu, nešto kao: //--------------------<atributi.ch>------------------------------------ #define _A_RDONLY 01 #define _A_HIDDEN 02 #define _A_SYSTEM 04 #define _A_ARCH 16 //--------------------<atributi.ch>------------------------------------ Kombinacije atributa se dobijaju sabiranjem. Npr. pera := chmod("mika.xyz", _A_RDONLY+_A_HIDDEN) pozdrav emil :)
clipper.569 ematic,
># define _A_ARCH 16 Bože mili, tek sad videh :( Treba 32 umesto 16. Izvinjavam se zbog greške jer sam kucao napamet is sora.
clipper.570 peca.st,
!-> Ako hoćeš da čitaš atribute, sve je isto, samo što će ti u CX !-> biti vraćeni atributi tog fajla. Izvinjavam se, tek sad videh... Nije baš sve isto, u AL se umesto 01h stavlja 00h Sori na grešci... Peđa.
clipper.571 gari,
Ako mislis na Dbrief, imam ga, pa ako ti treba, javi... pozdrav, Gari.
clipper.572 qleq,
U file-u SELFJOIN.ZIP se nalazi primer realizacije rekurzivnog preslikavanja objekta u modelu objekt-veza ( E(ntity)-R(elationship) model ), realizovan na Clipper-u : Tabela(relacija) RADNIK(.Dbf) sadrzi dva atributa(kolone) semanticki slicnog sadrzaja : 'SRADNIK' i 'SRUKOV' - prvo jaĐprimarni kljuc tekuceg record-a (radnika), drugo je spoljni(sekundarni) kljuc, koji referencira na (istu) tabelu (RADNIK) i sadrzi ID(sifru) radnika nadredjenog 'tekucem (radniku)', dakle referencira na neki drugi record u RADNIK.Dbf . Radnik.DBF se otvara u dva radna podrucja, a veza se uspostavlja SET RELATION komandom. Prirodno, CHILD AREA je indeksiran po SRADNIK. PARENT AREA je indeksiran po SRUKOV da bi redosled listanja bio identican kao u izvoru (vidi : SelfJoin.Inf, u SelfJoin.Zip). ┌──────────────┐ (0,1) │ RADNIK ├────────┐ └──────┬───────┘ │ NAD (0,M) │ │ │ ╔══════╗ └─────────────║ STRU ║ //single box : Entity POD ╚══════╝ //double box : Relation Pozvao bih sve, koji kreiranje svog aplikativnog software-a na Clipper-u zasnivaju na bilo kojoj metodologiji projektovanja baza podataka ( BP - informacionih sistema, aplikacija, programa - termin nije bitan) ( relacioni,mrezni,hijerarhijski model, strukturna sistem analiza, model objekt-veza i sl.), da saopste svoja iskustva, savete, misljenja, podsmehe i sl. - kako to cine, zasto to ima i/ili nema smisla itd. B.Vulin P.S. Primer se zasniva na teoriji za cije navodjenje nema mesta, Sam izvor je informativan u tom smislu. Onima kojima je navedeno u primeru poznato : zao mi je zbog Vaseg utroska vremena,prostora,para(phone). selfjoin.zip
clipper.574 dr.grba,
>> Pozvao bih sve, koji kreiranje svog aplikativnog software-a na >> Clipper-u >> zasnivaju na bilo kojoj metodologiji projektovanja baza podataka ... >> P.S. Primer se zasniva na teoriji za cije navodjenje nema mesta, >> Sam izvor je informativan u tom smislu. Primer je zanimljiv, ima smisla. Ali ima i grešku: gde ti je Jovan u levoj tabeli? I kako razrešavaš taj momenat - kada ne postoji nadređeni radnik? Pripazi na takve momente... Na kraju, kroz postupak normalizacije veza već u drugoj normalnoj formi se prepoznaju ovakve tačke, ako se dobro sećam. Kako si obavio normalizaciju? I na kraju jedno pitanje: da li se stvarno vrsta relacije označava kao (0,1) i (0,M)? Koliko je meni poznato, u toku projektovanja baze podataka nakon normalizacije (već u trećoj normalnoj formi) se prepoznaju sledeći odnosi: 1 : 1 - jednom entitetu korespondira jedna i samo jedna relacija po datom ključu (opšti matični podaci na osnovu ključa; postoji npr. jedan i samo jedan vlasnik vozila reg. tablice XY-123456) 1 : C - jednom entitetu korespondira jedna ili nijedna relacija po datom ključu (slučaj koji se dešava u tvom primeru - postoji samo jedan ili nijedan rukovodilac radniku); 1 : M - jednom entitetu korespondira nepoznat broj relacija (0 - n) po datom ključu (komitent 123456 je ostvario promet na 0 - n transakcija); a sve ostale kombinacije ispadaju iz kombinacije nakon normalizacije. Malo me zbunila nomenklatura (0,1)... jer mi je nepoznata. P.S. I stavi SET EDITOR DOD, da ti ne bi pravio one seckalice po tekstu. Takođe, onolika leva margina kroz ceo tekst je sasvim izlišna.
clipper.575 ndragan,
/ P.S. Primer se zasniva na teoriji za cije navodjenje nema mesta, Ova rečenica je podjednako dobra za navod kao i bilo koja druga. Teorija je malo opširnija, ali u praksi čak nije neophodno potrebno otvaranje baze dvaput - dovoljno je definisati do koje dubine se ide u samopozivanju, te brojeve slogova od kojih smo krenuli u dubinu pamtiti na nekoj vrsti steka (u nizu, najbolje). Tako se u običnoj .dbf bazi sa _jednim_ indeksom može napraviti razgranata struktura (drvo), s tim što ja to radim obrnutom logikom, u drugom polju navodim indeksni pojam sloga nižeg nivoa, tako da bi se u tvom primeru rukovodilac pojavio onoliko puta koliko ima neposredno podređenih, svaki od njegovih podređenih onoliko puta koliko _on_ ima neposredno podređenih i tako do nekog nivoa na kojem bismo imali radnika bez podređenih, dakle sa praznim drugim poljem. Za stvar za koju je koristim, ova organizacija je sasvim ok, mada je obrnuta od tvoje, ali logika je ista.
clipper.576 domana,
B00000000000000 Imam jedan predlog "na Clipper programere"... Sve oko nas je otprilike prilicno ruzno a ide Nova godina i verovatno je da nismo u prilici kao nekad' i kako bi smo zeleli... 'Ajde da svaki Clipper programer na Sezamu POKLONI ostalim Clipper programerima (na istom) po neko parce simpaticnog koda nastalog u ovoj neveseloj godini, bez takmicenja ciji je naj* i tako to, jednostavno samo poklon... Eto, pogledajte kod uz ovu poruku "u to ime"... /***************************************************** * * * Sretna <novaGodina> svim Clipper programatorima ! * * * *****************************************************/ Ojasnjenje preUpotrebe, ...piste Clipper aplikaciju koristeci nizove i Clipper umetanje niza u niz u niz u niz u ... ...sigurno Vam je zatrebalo da vidite sadrzaj te carobne tvorevine umetanja SVE SA KOORDINATAMA (indeksima) svakog krajnjeg clana (koji nije niz) i tipom istog... ...fajl koji ide uz ovaj tekst, jedna lepa gledalica umetnutih nizova, je upravo to - umesto: ┌──────────────────────────┐ │ aEval(aNiz,{|q|qout(q)}) │ └──────────────────────────┘ gde vidite samo prvi sloj kazete: ╔═════════════╗ ║ aVidi(aNiz) ║ ╚═════════════╝ i uzivate... Domana avidi.prg
clipper.577 dvesic,
Cao ! Evo nesto za poklon ! Mala ASM rutina (Sat.Obj - 344 bajta) za rezidentan satic koji mozete da ukljucujete/iskljucujete. Fino radi. Ako je vec bilo (ja sam od skora ovde) ili vam se ne svidja, pisite ... poslacu vam neki drugi pokloncic ! Pozdrav, Dejan. sat.arj
clipper.578 dejanr,
Jedno iskustvo sa Clipper-om, možda će nekome pomoći u sličnoj prilici. Računar je AT 12 MHz (zvani kanta ;) sa 1 M memorije, na sebi ima relativno nov IDE disk od 120 mega (pre je imao matori disk primeren sebi, ali je isti crkao pa je bar to moralo da se podmladi) i osmobitnu Arcnet kartu. Vezan je u mrežu koja radi pod Novell-om 2.11 (k'o što vidite, sve same stare verzije al' šta da se radi, tako je :) Na njegovom lokalnom disku je DBF fajl od svojih 90 megabajta, podaci o svim privatnim firmama u Srbiji. Njih oko 95,000. Ukazala se potreba da se ta baza podeli na dve baze, jedna sa firmama čiji je matični broj manji od 7,000,000 a druga sa firmama čiji je matični broj između 7,000,000 i 8,000,000. Ima ih otprilike podjednako, onih manjih oko 45,000, većih 50,000. Krenem ja da izdvajam firme ispod 7,000,000, otprilike ovakvim Clipper programom: use f:srbija6 append from c:srbija for matbroj<=7000000 quit Krene on da žvaće, žvaće i sažvaće za cca 15 minuta, što je bilo izuzetno prijatno iznenađenje, ja očekivao bar sat. E sad krenem da brišem te firme iz baze, otprilike ovako: use c:srbija delete for matbroj<=7000000 quit Krene to da radi, radi, radi, ... , radi, prošlo 15 minuta, pola sata, sat, sat ipo! i ja ga najzad prekinem, da vidim šta se dešava. A on tek prešao 20,000 firmi. Probao sam posle iz dbase-a III (čisto da vidim jel' moguće da je toliko sporo, moguće je), probao da napravim petlju da briše slog po slog, ma sve gore od goreg. Ispalo je po nekom proračunu da bi trebalo 5 sati da se to obavi, ne računajući posle PACK koji tek mogu misliti koliko bi trajao. Onda nekako oslobodih 50 mega na mrežnom disku, pa napravim jedno: use f:srbija7 append from c:srbija for matbroj>7000000 quit I to se opet završi za 15-20 minuta posle čega sam originalnu bazu prosto obrisao. E sad, kako je moguće da je 20 puta brže da podatke "pregura" preko spore Arcnet mreže, nego da samo setuje slogovima jedan bit da su obrisani, to je van moje moći sfatanja.
clipper.579 dvesic,
Pozdravi ! Evo za korisnike Brief editora (v3.1, a verovatno radi i sa 3.0) jedan simpatican makro za clipper programe. Ideja je da vam ubrza pisanje programa, inteligentno dopunjavajuci ono sto pisete ("Template Editing"). Primer : Ako otkucate : F<space>, na ekranu cete dobiti : Function () Return i slicne sitnice... Ako vam se dopadne i ako budete zeleli neke izmene, pisite. Vise nego rado cu vam izaci u susret. Autor makroa je moja malenkost; makro je nastao po ugledu na Pascal.Cb; Autori : Dave Nanian i Michael Strickman. Dejan. macro.arj
clipper.580 gavros,
> preko spore Arcnet mreže, nego da samo setuje slogovima jedan > bit da su obrisani, to je van moje moći sfatanja. Vrlo dobro,ja sam zbog tog jednog bita dobio šest iz Informacionih struktura i procesa,u stvari šta je bilo: Odem ja na usmeni,kao idem da razbijem,nakon dobrog pismenog (85 od 100) i pita me profa zašto kod serijske datoteke nije iskorišćenje 100%. Ja reko' pa to je logično,jer se slogovi ne brišu fizički,već logički. Dakle,kad brišemo bit da li postoji slog,slog i dalje fizički postoji. On reče BIT?????? tu se rastegla rasprava,kao da sam rek'o bar terabajt i nakon 20-minutnog DAVLJENJA,pita on jednog kolegu i ovaj reče bajt. Bajt,kolega,bajt,reče profa. Pozdrav. P.S. Nisam proveravao,ali ako je bit poješću se.
clipper.581 dejanr,
>> > nego da samo setuje slogovima jedan bit da su obrisani, to je >> > van moje moći sfatanja. >> >> Vrlo dobro,ja sam zbog tog jednog bita dobio šest iz Informacionih >> struktura i procesa,u stvari šta je bilo: >> ... >> On reče BIT?????? >> tu se rastegla rasprava,kao da sam rek'o bar terabajt i nakon >> 20-minutnog DAVLJENJA,pita on jednog kolegu i ovaj reče bajt. >> Bajt,kolega,bajt,reče profa. >> P.S. Nisam proveravao,ali ako je bit poješću se. Hm, hm, jel se jedeš ako je DVA bita? Naime, ako me dobro sećanje služi, kod DBF formata svaki slog počinje bajtom 20 (ascii blanko). Ako je slog obrisan, počinje sa 2A (ascii *). Brojevi se, dakle, razlikuju na prvom i trećem bitu (brojano sa desna, počevši od nultog bita). žini mi se da se ostali bitovi tog bajta ne koriste, tako da se na neki način može reći da čitav bajt služi da se obeleži da li je slog obrisan ili ne. Naravno, u nekoj drugoj implementaciji formata baza podataka moglo bi se zamisliti i neko drugačije kodiranje. Najzad, informacija obrisan/ nijeobrisan i jeste jedan bit po prirodi stvari.
clipper.582 arazumenic,
Evo, da ti se pridružim, podržavajući tvoju ideju. ==================== ovde iseći =============================== // Funkcija ZAMENA // Ulazni parametri: nBroj, cOpis // Poziv: ML_ZAMENA (nBroj, cOpis) // Opis: Ovo je zamena za funkciju TRANSFORM i ima iste ulazne parametere // kao i ona, ali ispisuje brojeve u nasem formatu: // hiljade su razdvojene tackom, a decimale od celog dela broja zarezom FUNCTION ml_zamena (Broj, Prikaz) return strtran(strtran(strtran(transform(Broj,Prikaz),'.','!'),',','.'),'!',',') ==================== ovde iseći =============================== Primer: nBroj = 123456.789 cOpis = "999,999.999" ML_ZAMENA(nBroj, cOpis) daje 123.456,789 Nadam se da će nekom trebati. Saša
clipper.583 svaba,
>>> Da li je za update sa Clipper 5.2 na Clipper 5.2c dovoljan >>> samo 52cus.exe ili je (kao sto se u readme kaze) potreban i >>> PATCH.EXE ? │Ako je potreban, gde se moze nabaviti ? >>> >>> Potreban je i patch.exe. Ako ga nema u top 5.2c update >>> paketu, onda ga sigurno ima u dogradnjama za verzije 5.2a i >>> 5.2b (neka od njih je valjda jos na Sezamu:). Pogledacu danas >>> da ubacim u odvojen patch.exe u dir, pa da se pobrisu ti >>> stari update-ovi. E svo vreme potroših tražeći taj famozni PATCH.EXE. Zna li neko da napiše TAžNO gde se on može naći ???
clipper.584 bulaja,
│Opis: Ovo je zamena za funkciju TRANSFORM i ima iste ulazne parametere │ kao i ona, ali ispisuje brojeve u nasem formatu: │ hiljade su razdvojene tackom, a decimale od celog dela broja zarezom └─── Moze to i Clipper :), uz koriscnje @E funkcije u SAY/GET ili Transform(), npr. Transform(nBroj, "@E 999,999,999.99".
clipper.585 dr.grba,
>> E svo vreme potroših tražeći taj famozni PATCH.EXE. Zna li neko >> da napiše TAžNO gde se on može naći ??? U Update za Clipper 5.2 b. Inače, Bulaja je zaboravio da ga tutne solo u dir.
clipper.586 bulaja,
│U Update za Clipper 5.2 b. Inace, Bulaja je zaboravio da ga tutne solo u dir. └─── Priznajem da sam zaboravio :). Bice sutra u dir-u, treba konacno da prebacim jos neke zanimljive stvari za Clip koje smo dovukli iz sveta.
clipper.587 toma,
■> Ako vam se dopadne i ako budete zeleli neke izmene, pisite. ■> Vise nego rado cu vam izaci u susret. Pa valjda je glavna snaga svakog Brief macro-a u njegova otvorenost za moguće izmene. Dakle, očekujemo source!
clipper.588 gavros,
> Hm, hm, jel se jedeš ako je DVA bita? Ako je DVA bita, definitivno se ne jedem. :))
clipper.589 ndragan,
/ I to se opet završi za 15-20 minuta posle čega sam originalnu bazu / prosto obrisao. E sad, kako je moguće da je 20 puta brže da podatke / "pregura" Beats me. Da nije to što kod brisanja sloga pristupa pojedinom slogu, upisuje taj jedan bajt &td, a kod masovnog kopiranja gura u nekakve bafere i ponaša se kulturnije? Set exclusive on? Možda je za njega kopiranje u drugu bazu lepša operacija jer jednu otvara zaključavanjem, a drugu samo za čitanje, dok kod brisanja ima i kontroline kontrole kontrolu?
clipper.590 ndragan,
/ strtran(strtran(strtran(transform(Broj,Prikaz),'.','!'),',','.'),'!',', Za FoksPro: ChrTran(Transform(num,pic),",.",".,") ali je i ovo nepotrebno, jer postoje naredbe Set Point To "," Set Separator To "." ...posle kojih Tran(234552.23,"999,999,999.99") daje 234.552,23 bez pozivanja bilo kakvih UDF. Umesto tačke i zareza može se ubaciti i nešto egzotičnije. Ovo podešavanje preporučujem da se uradi za štampu; za ekran je malo nezgodno, jer onda tokom unosa traži decimalni _zarez_, koji baš nije blizu na tastaturi, što se opet može rešiti sa On Key Label "." Keyb "," ali je malo nezgodno ako zaboravite da ga skinete. Još jedna zgodna stvar: ako koristite juski, često vam zatreba ž (levi apostrof, chr(96)). U foksovom editoru to je prefiks za kontrolne znake, a ako vam treba baš ž, morate ga otkucati dvaput. E, ne mora: On Key Label "ž" keyb "žž" Plain Bez poslednje reči puca sa "do nesting too deep" čim kucnete ž. Ko razume shvatiće :)
clipper.591 dvesic,
>> otvorenost za moguce izmene. Dakle, ocekujemo source! Sto se sorsa tice :))) dobicete ga kada ta kobasica od 22Kb bude licila na bilo sta pristojno - to je pisano '92 kao test znanja Brief macro jezika - i s obzirom da je radila u kucnoj radinosti, ispustena je komercijalizacija ! :))))) Kad uredim source, dobicete ga ! (Kad i novu verziju Sezam softvera ;) Pozdrav, Dejan.
clipper.592 svaba,
==>..>> E svo vreme potroših tražeći taj famozni PATCH.EXE. Zna ==>..>> li neko da napiše TAžNO gde se on može naći ??? ==>.. ==>.. U Update za Clipper 5.2 b. Inače, Bulaja je zaboravio da ga ==>.. tutne solo u dir. Volim jezgrovito izražavanje, ali ne i kada ono dovodi do nepreciznosti. Dakle, skinem ja obe ove datoteke, jerbo ne znam šta je pesnik hteo da kaže sa "Update za Clipper 5.2 b". 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 Raspakujem ja njih: PKSFX (R) FAST! Self Extract Utility Version 2.04c 12-28-92 Copr. 1989-1992 PKWARE Inc. All Rights Reserved. Shareware version PKSFX Reg. U.S. Pat. and Tm. Off. Searching EXE: C:/TELIX/DOWN/CL52ABC/52ABUS.EXE - ┌───────────Ě SEZAM ■ Racunari ■ Beograd ┌───┐ │ S E Z A M ║ +38 11 64-84-22 ■ 15 lines │ o │ ď═══════════╝ 2400/1200 bps ■ N81 ■ MNP5 └─┴─┘ Inflating: 52BRL.EXE Inflating: 52BSAMPL.EXE Inflating: NTXLOCK2.OBJ Inflating: DBUNET.PRG Inflating: 52ABBIN.RTP Inflating: 52ABINC.RTP Inflating: 52ABLIB.RTP Inflating: 52BNG.RTP Inflating: 52ABUS.TXT PKSFX (R) FAST! Self Extract Utility Version 2.04c 12-28-92 Copr. 1989-1992 PKWARE Inc. All Rights Reserved. Shareware version PKSFX Reg. U.S. Pat. and Tm. Off. Searching EXE: C:/TELIX/DOWN/CL52ABC/52BUS.EXE - ┌───────────Ě SEZAM ■ Racunari ■ Beograd ┌───┐ │ S E Z A M ║ +38 11 64-84-22 ■ 15 lines │ o │ ď═══════════╝ 2400/1200 bps ■ N81 ■ MNP5 └─┴─┘ Inflating: 52BUS.TXT Inflating: 52BBIN.RTP Inflating: 52BINC.RTP Inflating: 52BLIB.RTP Inflating: NTXLOCK2.OBJ Inflating: DBUNET.PRG Inflating: 52BRL.EXE Inflating: 52BSAMPL.EXE Inflating: 52BNG.RTP I posle toga napišem svoju gorepomenutu žalopojku. P.S. Problem je dalje nije rešen, tj. i dalje tražim PATCH.EXE.
clipper.593 bulaja,
R:\IBMPC\CLIPPER\*.* ---------------------- clpatch zip 45402 PATCH.EXE program potreban za Clipper 5.2x update :)
clipper.594 gari,
>> @E tralala yu slova... Ovo pisem iz glave: FUNCTION Trans_yu(nBroj,cPicture) RETURN left(transform(nBroj,cPicture),len(transform(nBroj,cPicture))-2)+".-" Ovo bi trebalo da radi sledece: ? trans_yu(123456.80,"@E 999,999,999.99") && 123.456.- pozdrav, Gari. p.s. Posto ovo direktno kucam potkrala se mala greska u liniji RETURN... -> umesto -2 treba -3
clipper.595 dr.grba,
>> 'Ajde da svaki Clipper programer na Sezamu POKLONI ostalim >> Clipper programerima (na istom) po neko parce simpaticnog koda >> nastalog u ovoj neveseloj godini, >> bez takmicenja ciji je naj* i tako to, >> jednostavno samo poklon... Odgovaram na retko lepu inicijativu svojim skromnim prilogom. Naime, beše ovde pre par meseci neka rasprava o okruženju Clippera, kako raditi udobnije itd, itd... Svela se priča na našu lenjost da pripremimo neko standardno okruženje za svoj rad. A LNK i RMK fajlovi su, znamo svi, bogom dati za tako nešto. Ja sam za svoje potrebe (tek pre mesec ipo dana) napravio četiri fajla: TEMPLATE.PRG, TEMPLATE.LNK, TEMPLATE.RMK i R.BAT. Kad kod se zalećem u pisanije nekog programa, prvo nad njima bajam pet minuta, i nikad više dok radim sa programom, osim ako dodajem neki novi modul... Da ne bih slao prazan template, popunio sam ga jednom glupošću, koju možete iskoristiti ako vas interesuju likovnei aspekti primene CLippera (((: A zgodno je i za neke intro ekrane... Taj posao sam iseckao u više .PRG datoteka, u demonstracione svrhe. Obratite pažnju na vodeći .PRG. Ideja je da u njemu postoji samo kontrola tipa kompilacije (radna, demo, final), poziv vodećeg radnog modula i deklaracije init proc i exit proc. A sav ostali teret nosi vodeći radni modul... Ako nešto nije jasno, a vi pitajte. Tu sam. Mislim da se isplati da oni među vama koji se bave Clipperom, a još nisu počeli ovo da primenjuju, da malo prouče sadržaj. Vrlo je na korist. U ovoj prilici, po ko zna koji put, upućujem svoj naklon kolegi Nenadu Batoćaninu, koji je moj nesuđeni Pigmalion. Skrećem vam pažnju na ranije brojeve "Računara", i jedan u kome je Nenad vrlo zanimljivo opisao praktičnu korist onih svičeva radna/demo/final. paleta.zip
clipper.596 dzoric,
Hi :) Imam malečko problemče. Naime na jednoj klasičnoj krš mašini (286/12) trči aplikacija pisana u Clipper-u 5.01. S' vremena na vreme aplikacija pukne sa porukom "Internal stack overflow" :((( i posle resetovanja mašine nekad mi "samo" ostane uništena jedna sistemska baza( uvek na istom slogu upiše "TTTTT" a nekad mi ostane da plačem jer je uništena FAT tabela. Petljao sam sa STACKS u CONFIG.SYS-u, menjao sam DOS 5.0 na 6.0 ali bez promena. Napominjem da ista aplikacija trči na još desetak mašina bez problema i da nema virusa na dotičnoj mašini.
clipper.597 aquarius,
<> Zasto se vredas? Samo sam malo ironicno hteo da podrzim <> konstruktivnost u raspravi. Nema ljutis, nego probaj ti to, pa javi kao ti izgleda. btw - kakve su tapete ? :) Aquarius
clipper.598 aquarius,
<> ...posle kojih Tran(234552.23,"999,999,999.99") daje <> 234.552,23 bez pozivanja bilo kakvih UDF. Umesto tacke i <> zareza moze se ubaciti i nesto egzoticnije. Ovo podesavanje <> preporucujem da se uradi za stampu; za ekran je malo nezgodno, ^^^^^^^^^^^^^^^^^^^^^^^^^ <> jer onda tokom unosa trazi decimalni _zarez_, koji bas nije ^^^^^^^^^^^^^^^^^^^^^^^ <> blizu na tastaturi, sto se opet moze resiti sa <> <> On Key Label "." Keyb "," <> <> ali je malo nezgodno ako zaboravite da ga skinete. Jest' nezgodno to u FOX-u, al' zato nije u Clipperu. :) Ujedno koristim priliku da se pridruzim inicijativi Domane kao i da cestitam svim Sezamovcima Novu:Godinu !!! Ako ima daljih pitanja ili primedbi, tu sam. Fajl Num2Calc - moze li na GET-u da se simulira kalkulator i jos po nesto? Moz' da bide, al' ne mora da znaci! :) Aquarius num2calc.zip
clipper.599 nbatocanin,
Uz poruku je prikačen listing greškom izostavljen u poslednjem "Savetniku". cls.zip
clipper.600 gari,
Svim korisnicima (i korisnicama) sezam-a, zelim sretnu Novu 1994. godinu i saljem moj mali prilog inicijativi "svako po nesto". Uz poruku idi nesto u stili clipper + c, ALI! direktno sa File Bank-a (US) (ne znam ko ce platiti PTT :) pozdrav, Gari. clip_c.zip
clipper.601 gari,
Posto nije beg cicija (kako se to malo nize kaze ;) onda mi bilo zao da samo ja imam demo primer tBrowse -> printer, pa posto je Nova Godina blizu ja reko malo... pozdrav, Gari. tbr2prn.zip
clipper.602 snemcev,
Pridružujući se čestitkama za Novu 1994. godinu, evo mog prvog priloga: ;Name CRC32.ASM ;Author (C) 1986 Gary S. Brown. No restrictions apply. ;1992.04.19 Rewrite - Bruce Gavin Translated C -> ASM. ;1992.11.3 Rewrite - Terry Carmen re-wrote to be callable ; from Clipper S'87 or 5.01 ; CRC32 takes a single argument as a string, and returns ; the CRC32 to Clipper as an 8 digit character string ; Returns NIL if called with incorrect arguments or an empty string ; CRC32 polynomial is edb88320h, and will produce identical CRCs as PKIZP crc32.zip
clipper.603 bulaja,
CRC32 si verovatno preuzeo iz \ibmpc\clipper, ali si to zaboravio :). Inace poslacu i ja neke .prg cestitke kad nadjem vremena ovih dana da skrpim nesto :).
clipper.604 dr.grba,
>> Nema ljutis, nego probaj ti to, pa javi kao ti izgleda. >> btw - kakve su tapete ? :) Od jute, sa aplikacijama od plute (((:
clipper.605 dr.grba,
>> Inace poslacu i ja neke .prg cestitke kad nadjem vremena ovih dana >> da skrpim nesto :). BuMenu 1.4? (((: E, sad bez zezanja... Ovo se događa samo u Clipper temi. Treba da se ponosimo ovom temom, a čoveku koji je inicirao spektakl (domana) da se zahvalimo.
clipper.606 arazumenic,
-> Transform(nBroj, "čE 999,999,999.99". Ovo sam probao pre jedno dve, dve i po godine sa Summer 87 i iz nekog razloga mi nije uspelo. Onda sam napisao onu funkciju, bio zadovoljan kako radi, tako da dalje više nisam razradjivao tu temu. Saša
clipper.607 arazumenic,
-> FUNCTION Trans_yu(nBroj,cPicture) -> RETURN -> left(transform(nBroj,cPicture),len(transform(nBroj,cPicture))-2)+".-" -> ? trans_yu(123456.80,"čE 999,999,999.99") && 123.456.- Ja to radim malo drugačije. Napravio sam heder datoteku "brojevi.ch" koja izgleda ovako: #define OP_PD_8 "99,999,999.- " #define OP_PD_9 "999,999,999.- " itd. U programu korisitm sledeći način ispisa: #include "brojevi.ch" .... ? ml_zamena(nBroj, OP_PD_9) Prednost je u tome što na prvi pogled vidim koji je najveći broj koji se može prikazati, pa ako mi treba veći, jedno Search&Replace obavi posao. Ovako kako si dao je mnogo teže menjati program. Saša P.S. Nije ništa lično, slično sam i ja u početku radio, sve dok nisu počele da se pojavljuju zvezdice. Tada sam morao ručno da vršim ispravke u svakoj PICTURE i ML_ZAMENA. Tada sam napravio heder datoteku, u celom programu izmenjao opise i kada mi je zatrebala prva sledeća izmena - pevao sam.
clipper.608 bulaja,
**** new file **** R:\IBMPC\CLIPPER\*.* ---------------------- fxcolor arj 55257 Specijalni efekti sa bojama na VGA za Clipper 5.x FXCOLOR Special Color Effects For The VGA System Using Clipper 5.01 Written by Jim Fowler April 16, 1992 FxColor omogucava promenu VGA palete, fade in/out i slicne zezalice :). Prilozen je i ASM source.
clipper.609 bulaja,
**** new file **** R:\IBMPC\CLIPPER\*.* ---------------------- rcmplb11 zip 20088 RCmpLib v1.1: Clipper biblioteka za kompresiju datoteka The compression and decompression functions of RCmpLib are based on the so-called Lempel-Ziv principle, to be specific the LZW algorithm. This base principle is used by almost all famous compression programs (as LHARC, ARJ and PKZIP). ---------------------- Stepen kompresije je sasvim zadovoljavajuci, brzina takodje, sto znaci da je biblioteka prilicno upotrebljiva :). Jedini problem je sto je shareware i povremeno izbacuje poruku za registraciju, sto sigurno nije zgodno za ugradnju u aplikacije :). Registracija je svega 10 USD, al' je problem kako to sad poslati.
clipper.610 snemcev,
>> CRC32 si verovatno preuzeo iz \ibmpc\clipper, ali si to zaboravio :). Sorry ako je tako. Imam bar pet verzija tih cvrcova i kud baš da pogodim onu iz direktorijuma... :(( I'll send something else, ok?
clipper.611 bulaja,
**** new file **** R:\IBMPC\CLIPPER\*.* ---------------------- pushbu arj 20796 Push (radio) buttons za ubacivanje u GET system Awhile back I wrote a little program PUSHBU.PRG to produce pushbuttons with pop-out action and a number of people (including myself) have used them without any compaints. Nonetheless, PUSHBU.PRG was really never properly integrated into the Get System, mainly because of the way it handled the waitstate. Meanwhile, another public domain offering by Dan Comeau (RADIOBTN.PRG) is well integrated with the get system, but does not include any push buttons, and if you're not already using RADIOBTN.PRG you may wish to take a look at it. Anyway, to make a long story shorter, I finally have gotten around to putting my push buttons into a modified version of Dan's button engine. The buttons seems to work well based on the way I routinely use them; however, no one else has tested them, so let me know if you find any bugs. All testing of PUSHBUTN.PRG has been done with Clipper 5.01a and RTLINK.
clipper.612 dvesic,
Evo moj mali doprinos radu konferencije ... Nadam se da ce nekom koristiti ... Moja iskustva u radu sa CDX ideksima Verovatno je vecina Vas citala Nenadov (NBatocanin) tekst o novinama u Clipper 5.2 . Ovaj mali tekst je tu da Vam pomogne oko koriscenja istih. (sto bi rekli, prakticna iskustva) Najveca novost (bar za mene) su RDD (replaceable database drivers). E sad, jedan od njih je i DBFCDX, drajver za rad sa FoxPro bazama i indeksima. Baze su normalne, DBF tipa (uz izuzetak za MEMO polja) ali su indeksi ono pravo. Da ne duzim, *.CDX indeksi imaju tri vrlo lepe osobine : I. Svi indeksi nad JEDNOM bazom idu u JEDNU CDX datoteku (sto odmah smanjuje broj otvorenih datoteka; sto se opet itekako da osetiti u mreznom okruzenju) II. Indeksi su *mnogo* manji - kod CDX-a se za susedni slog smesta samo razlika u kljucu u odnosu na kljuc prethodnog sloga (koliko to mnogo : Npr. NTX indeksi u velicini od 2.4 Mb su se konvertovali u 0.7 Mb CDX pandana; naravno, sve zavisi i od tipa kljuca, ali cete ustedeti bar pola) III. Postavljanje aktivnog indeksa mozete vrsiti po imenu umesto po rednom broju (bogu hvala!) : Umesto : Set Order To 34 koristite Set Order To Tag Po_Datumu Osnovno piranje : Kako sto bezbolnije preci na CDX ? Evo nekoliko saveta : Za pocetak, u vasoj aplikaciji nije potrebno nista posebno menjati. Samo u delu za indeksiranje umesto Use Radna Index On Izr1 To Ind1 Index On Izr2 To Ind2 ... Index On Izrn To Indn .... Use Radna Index Ind1,Ind2,...,Indn Napisite Use Radna Via 'DBFCDX' Index On Izr1 Tag Ind1 // BITNO Index On Izr2 Tag Ind2 // JE DA REDOSLED KREIRANJA ... // INDEKSA BUDE IDENTICAN Index On Izrn Tag Indn // REDOSLEDU OTVARANJA INDEKSA UZ // BAZU .... Use Radna Via 'DBFCDX' Index Radna // Slozeni indeks po // defaultu ima ime baze uz // koju se vezuje U jednom od PRG fajlova, dodajte i REQUEST DBFCDX cisto kao naznaku linkeru da vam treba i ta biblioteka. Jos jedan mali savet : Prilikom ponovnog kreiranja indeksa nemojte koristiti REINDEX (ovo je inace opsta primedba, nevezana za RDD; REINDEX ne radi korektno ako je ostecen heder indeks datoteke) vec ponovo INDEX ON. Pre toga obavezno OBRISITE stare CDX indekse, sa npr. : aEval(Directory("*.cdx"),{|o|fErase(o[1])}) Razlog : desava se da stari indeks ostane u cdx datoteci, neaktivan (vazeci je novoizgradjeni) pa samo dzabe zauzima mesto ) Pre nego sto startujete program, moracete da baze koje koriste memo polja prekopirate preko CDX drajvera (razlicita struktura) tj. otvorie originalnu bazu preko NTX drajvera, pomocnu preko CDX drajvera, prekopirate u pomocnu, izbrisete originalnu i preimenujete pomocnu. Posle toga, probajte ! Svi oni Set Order To nnn ce normalno raditi; moze da posluzi dok se definitivno ne prebacite na TAG-ove :) Pozdrav, Dejan. P.S. Izvinjavam se onima koji ovo gledaju drugi ili treci put !
clipper.614 dr.grba,
>> I'll send something else, ok? I to sa kamatom 100%.
clipper.615 dr.grba,
>> P.S. Izvinjavam se onima koji ovo gledaju drugi ili treci put ! Treći put gledam samo ja (((:
clipper.616 svaba,
žudi me da ovo do sada niko nije pitao... Ili se nisam uključio dovoljno rano? Naime, pri prevođenju programa sa CLIPPER 5.xx pojavljuje se poruka u stilu "string space exhausted", sa navođenjem funkcije i rednog broja linije u kome mu je to zasmetalo. Ja shvatim da je prevodilac "prepunio" neko svoje mesto gde drži stringove, pa podelim tu funciju na dve manje (u prvoj stavim poziv one druge). Posle ovoga, poruka se više ne javlja, i sve radi normalno. Inače, problem koji sam opisao mi se pojavio kad sam jedan program koji je fino radio pod '87, hteo da prevedem sa CLIPPER 5.xx. E sad, ja nisam zadovoljan ovim rešenjem - stvarno je seljačko. Zna li neko šta je uzrok ovome i da li se taj "string space" može proširiti?
clipper.617 neman,
> Nadam se da ce nekom koristiti ... > Moja iskustva u radu sa CDX ideksima U tvojoj poruci nedostaje ono sto je najvaznije a to je uporedjenje sa .NTX datotekama po pitanju brzine izvrsavanja indeksiranja i jos vise samu brzinu pretrazivanja. Prvi test koji sam uradio sa CDX indeksima je bilo brzina SEEK naredbe u petlji od vise hiljada puta gde se trazilo jedan slog u bazi od par hiljada slogova. To je bio i poslednji test koji sam uradio zato sto sam na osnovu rezultata merenja dosao do zakljucka da NTX drajver pamti gde se nalazi pri pretrazivanju tj. SEEK-u a CDX iznova cita indeksnu datoteku. Po secanju, NTX je bio oko 50 puta brzi od CDX-a. Kasnije se pojavio i test u Racunarima koji je samo potrvdio tezu da je CDX dosta traljavo realizovan i da vise sluzi sminke radi negoli da se stvarno zelelo unapredjenje Clippera. Pored toga, mislim da brzini pravih CDX indeksa doprinosi u stvari pomenuta cinjenica da se u datoteku upisuje samo razlika u kljucu ( zato valjda i cita od pocetka datoteku :) nego to da postoji samko jedna datoteka. Ti moras da preturis xxx K(M)B indeksa kroz mrezu pa bili oni jedna ili vise datoteka. neman
clipper.618 nbatocanin,
> S' vremena na vreme aplikacija pukne sa porukom "Internal > stack overflow" :((( Vrlo čudno. Kako tačno glasi poruka, tj. je li to poruka Clipper-ovog run-time sistema?
clipper.619 ndragan,
/ <> On Key Label "." Keyb "," / <> ali je malo nezgodno ako zaboravite da ga skinete. / Jest' nezgodno to u FOX-u, al' zato nije u Clipperu. :) Ujedno Šta, definišeš tačku da ti izigrava zarez, i zaboraviš da je skineš, i kompajler sam zna kad ti više ne treba pa skine sam? Ili moraš za svaki GET gde ti to treba da pozivaš premapiranje tastera? Ili mu je svejedno da li kucaš tačku ili zarez - oboje smatra za tačku? Nisi jasan.
clipper.620 dvesic,
>> U tvojoj poruci nedostaje ono sto je najvaznije a to je >> uporedjenje sa .NTX datotekama po pitanju brzine izvrsavanja >> indeksiranja i jos vise samu brzinu pretrazivanja. Prvi test >> koji sam uradio sa CDX indeksima je bilo brzina SEEK naredbe u >> petlji od vise hiljada puta gde se trazilo jedan slog u bazi >> od par hiljada slogova. Nisam hteo da siroke narodne mase davim brojcanim podacima, ali ces me ti naterati ... Prvo, koliko puta ti u tvojim programima trazis jedan te isti slog ? Logika koju ja koristim je : dbSeek(Prvi_Slog koji zadovoljava uslov) While <uslov zadovoljen> Obradi slog dbSkip() End While U obradi n slogova brzina dbSeek-a je (skoro) nevazna u odnosu na brzinu dbSkip-a uz odredjene indekse. >> uradio zato sto sam na osnovu rezultata merenja dosao do >> zakljucka da NTX drajver pamti gde se nalazi pri pretrazivanju >> tj. SEEK-u a CDX iznova cita indeksnu datoteku. Po secanju, >> NTX je bio oko 50 puta brzi od CDX-a. Secanje te vara. Ako bas insistiras, petlja od 1000 dbSeek je kod NTX radila 3.76, kod CDX 17.8 (znaci 5 a ne 50 puta). Grozan rezultat ? Citaj dalje. >> test u Racunarima koji je samo potrvdio tezu da je CDX dosta >> traljavo realizovan i da vise sluzi sminke radi negoli da se >> stvarno zelelo unapredjenje Clippera. Sminke radi ? Gledaj sad ovaj test : dbSeeek(Neki_Slog) For i:=1 to 3000 dbSkip() Next i Brojcano : NTX - 0.61 CDX - 0.71 Gde je razlika od 5 (50) puta ? Nesumnjivo su NTX indeksi za koji procenat brzi, sto je i logicno - ipak su oni genericki format za Clipper. Mozda ce sledeca implementacija CDX-a prevazici decije bolesti. >> Pored toga, mislim da brzini pravih CDX indeksa doprinosi u >> stvari pomenuta cinjenica da se u datoteku upisuje samo >> razlika u kljucu ( zato valjda i cita od pocetka datoteku :) >> nego to da postoji samko jedna datoteka. Ti moras da preturis >> xxx K(M)B indeksa kroz mrezu pa bili oni jedna ili vise >> datoteka. Pa sad, razlika provlacenja 2.4 Mb u odnosu na 700 kb se itekako da osetiti ! 'Jednu datoteku' sam pomenuo u vezi sa brojem otvorenih fajlova u jednom trenutku a NE u vezi sa brzinom indeksa. Da rezimiram: onaj tekst je bio rezime *prakticnih* iskustava sa CDX indeksima - svakom ostavlja na volju da proba i odluci koji tip indeksa nosi bolji odnos brzina/performanse. Ja sam izabrao CDX : mali su, pakuju se u jednu datoteku, mogu im se obracati preko naziva a ne preko broja (doduse, ovo zadnje mogu i NTX). Na vama je da odlucite sta je bolje za vase potrebe. Nemoj da te zavaraju vestacki izgradjeni testovi. Ne sumnjam da bi se slican test dao naci i za NTX. Probaj ih u aplikaciji. U krajnjem slucaju, uvek se mozes vratiti na staro. Pozdrav, Dejan.
clipper.621 dzoric,
Greška "Internal stack overflow" je DOS-ova greška, i u priručniku za DOS je napomenjena i navodno se problem rešava povećanjem broja i veličine stekova( npr. STACKS=9,256 ). U aplikaciji je ugradjen Clipper Error Handler System. Debagiranjem programa ne mogu da otkrijem ništa, pod debagerom sve radi. Baze i indekse otvaram kroz DATA DICTIONARY i uvek kod 5 -og rekorda gde se otvara baza SETUP.DBF program je otvori i u svim poljima upiše "TTTTTT" (blaži slučaj), program stane na prvi Inkey( 0 ) i tu je kraj. Sve mi je jasno, ali da posle resetovanja uništi FAT, to mi nije jasno. Pre mesec dana sam u CONFIG.SYS ubacio naredbu DOS=HIGH,UMB i od tada radi, ali do kada će. Negde sam čuo da DOS > 3.31 nema totalnu kontrolu upada u FAT, i da je po tom pitanju DOS 3.31 najsigurniji. Ako među kliperašima ima i DOS majstora možda imaju odgovor na ovo pitanje. Još nešto :) Da li je neko primetio bag u Expand.lib v3.0 kada se više puta pozove funkcija za promenu palete XPvgaColor() ili XPegaColor(), mašina zablokira. Pozdav .. Dejan
clipper.622 snemcev,
>> Prvo, koliko puta ti u tvojim programima trazis jedan te isti >> slog ? Logika koju ja koristim je : Moram da priznam da se u svim mojim programima, obrada svodi ili na celu bazu, ili na neki njen deo koji pronalazim baš preko dbSeek() , a dalje ide dbSkip() sve dok je uslov zadovoljen. >> Secanje te vara. Ako bas insistiras, petlja od 1000 dbSeek >> je kod NTX radila 3.76, kod CDX 17.8 (znaci 5 a ne 50 puta). >> Sminke radi ? Gledaj sad ovaj test : >> Brojcano : NTX - 0.61 CDX - 0.71 Evo još jedno testiranje(nema mreže, nema cache) FOR i=1 to 1000 dbGoTop() dbSeek('9', .t.) // a devetke ni od korova... // baza ima ¸4,700 slogova u ¸476K NEXT Vremena: NTX: 1.52; CDX: 5.22. Znači, usporenje je oko 3.44 puta. Svodeći to na samo jednu pretragu dobijamo vremena od 0.00152 i 0.00522 sec. Koji korisnik tu razliku primeti (pa još u mreži), svaka mu čast! >> Pa sad, razlika provlacenja 2.4 Mb u odnosu na 700 kb se itekako >> da osetiti ! Mislim da ovde CDX, bar u mreži odnosi pobedu nad NTX-om.
clipper.623 dzoric,
Kako da nateram GET da skroluje numerike s'desna ulevo, kao na klasičnim digitronima. #define NUMERIC_FORMAT "999,999,999.99" E sad kad radim GET npr: LOCAL nVar := 1 č x, y GET nVar PICTURE NUMERIC_FORMAT READ ...dobijam skrolovanje udesno sa "rupama" umesto zareza. Da li mogu klauzuli PICTURE podmetnuti svoju UDF. Pozdrav.. Dejan
clipper.624 neman,
>>> Pored toga, mislim da brzini pravih CDX indeksa >>> doprinosi u stvari pomenuta cinjenica da se u datoteku >>> upisuje samo razlika u kljucu ( zato valjda i cita od >>> pocetka datoteku :) nego to da postoji samko jedna >>> datoteka. Ti moras da preturis xxx K(M)B indeksa kroz >>> mrezu pa bili oni jedna ili vise datoteka. > > Pa sad, razlika provlacenja 2.4 Mb u odnosu na 700 kb se > itekako da osetiti ! 'Jednu datoteku' sam pomenuo u vezi > sa brojem otvorenih fajlova u jednom trenutku a NE u vezi > sa brzinom indeksa. *II. Indeksi su *mnogo* manji - kod CDX-a se za susedni slog *smesta samo razlika u kljucu u odnosu na kljuc prethodnog *sloga (koliko to mnogo : Npr. NTX indeksi u velicini od *2.4 Mb su se konvertovali u 0.7 Mb CDX pandana; naravno, *sve zavisi i od tipa kljuca, ali cete ustedeti bar pola) Pravdanje odnosa 1:5 na stetu CDX-a dolazi u obzir samo kod pojedinacnog pristupa podacima. Kod bilo kog preracunavanja zasnovanog na pristupu podacima preko indeksa tako nesto nije prihvatljivo. Postoji jos jedan problem sa CDX-om. RTlink na zavrsetku povezivanja prijavljueje potrebu za 70Kb vecom memorijom potrebnom da bi se program startovao, pod uslovom da se NTX drajver ne iskljuci iz EXE programa. neman
clipper.625 aquarius,
<> Po secanju, NTX je bio oko 50 puta brzi od CDX-a. 1. Secanje je secanje, al' izmeri jos jednom... Cini se da nije bas toliko drasticno, narocito ne u praksi. Stotinka vise, manje... <> jedna datoteka. Ti moras da preturis xxx K(M)B indeksa kroz <> mrezu pa bili oni jedna ili vise datoteka. 2. Nece biti da je to bas isto :), ima i mreza svoje prohteve, a "Murphy's Law" kaze... Osim toga xxx K(M)B je dosta manje kod CDX drajvera nego kod NTX-a, je'l da ? 3. Use File_1 Index Ind_1, Ind_2, Ind_3, ... Ind_15 via DBFNTX ili Use File_2 Index Indx_1 via DBFCDX Bez komentara... 4. set order to 1 goto recno() -> ovo zbog bug-a, kod DBFNTX drajvera vs set tag to F_ime Komentar kao pod brojem 3. 5. Use File_1 via DBFNTX Index on Filed_1 to Ind_1 FOR Use File_2 via DBFCDX Index on Filed_1 to Ind_1 FOR / WHILE / REST / NEXT / DESCENDING moze ovo i DBFNTX al' REINDEX ne radi, moras da pazis... 6. Memo polja DBFCDX blok 64 bytes vs DBFNTX blok 512 bytes, pa brzina pristupa, velicina, pa binar... <> vise samu brzinu pretrazivanja. Prvi test koji sam uradio sa <> CDX indeksima je bilo brzina SEEK naredbe u petlji od vise <> hiljada puta gde se trazilo jedan slog u bazi od par hiljada <> slogova. To je bio 7. Imas li takvu aplikaciju, koja sadrzi gore opisanu petlju ? :) 8. Verzija 5.2c ima neke izmene u pogledu RDD-a, a ne znam koju verziju ti koristis. 9. Ima tu jos toga, ali svako je kovac svoje srece... 10. A da je DBFNTX brz u pretrazivanju, brz je... Aquarius
clipper.626 aquarius,
<> I'll send something else, ok? Na primer CRC32 :) Aquarius
clipper.627 aquarius,
<> Od jute, sa aplikacijama od plute (((: A pluta, je'l domaca :) Aquarius
clipper.628 aquarius,
<> I to sa kamatom 100%. Jel dnevno ? ;) Aquarius
clipper.629 aquarius,
<> Kako da nateram GET da skroluje numerike s'desna ulevo, <> kao na klasicnim digitronima. Vidi fajl NUM2CALC.ZIP uz poruku 11.598 Aquarius
clipper.630 aquarius,
<> Sta, definises tacku da ti izigrava zarez, i zaboravis da je <> skines, i kompajler sam zna kad ti vise ne treba pa skine sam? <> Ili moras za svaki GET gde ti to treba da pozivas premapiranje <> tastera? Ili mu je svejedno da li kucas tacku ili zarez - <> oboje smatra za tacku? Nisi jasan. Kompajler zna ono sto mu se kaze. Sta ce oznaciti decimalu odredis sam u nizu aKeys, tacka je zgodna zbog toga sto se nalazi na numerickoj tastaturi. Mislim da je "pemapiranje" teska rec u ovom kontekstu. Ovo pisem on-line, ako nisam jasan odgovoricu opet. Osim toga kod je tu, pa svako moze da ga preuredi. Aquarius
clipper.631 dvesic,
>> Kako da nateram GET da skroluje numerike s'desna ulevo, >> kao na klasicnim digitronima. Pogledaj nekoliko dana unazad u ovoj konferenciji, za jednu od poruka je prikacen NUM2CALC.ZIP, koji je pravo resenje tvog problema. Pozdrav, Dejan.
clipper.632 dr.grba,
>> Vremena: NTX: 1.52; CDX: 5.22. Znači, usporenje je oko 3.44 puta. >> Svodeći to na samo jednu pretragu dobijamo vremena od 0.00152 i >> 0.00522 sec. Koji korisnik tu razliku primeti (pa još u mreži), >> svaka mu čast! Mislim da je nadalje izlišno baviti se brzinama koje dobijamo ili gubimo primenom ovog ili onog drajvera indeksa. Hajde malo da se apsolvira utrošak memorije, mislim da je ovo kritičnije. >> Mislim da ovde CDX, bar u mreži odnosi pobedu nad NTX-om. Sa ovim se, već na nivou dvesiceve rasprave, u potpunosti slažem.
clipper.633 dr.grba,
>> Kako da nateram GET da skroluje numerike s'desna ulevo, >> kao na klasičnim digitronima. U 11.598 je aquarius priložio funkciju koja to radi; mada ima prilično čudno ponašanje po pitanju decimalne tačke i onoga iz nje, funkcija radi prilično zanimljivo.
clipper.634 dvesic,
>> prijavljueje potrebu za 70Kb vecom memorijom potrebnom da bi >> se program startovao, pod uslovom da se NTX drajver ne >> iskljuci iz EXE programa. Pa nesto moras da platis ako zelis pristup i vako i nako !
clipper.635 dr.grba,
Molim za pomoć u delu Clippera kojim ne vladam dobro. Dvesic mi je poslao demo program, koji je u cilju uštede UL/DL procedura smlatio PLL opcijom. Prethodno sam i ja njemu slao neki demo, a on nije mogao da ga startuje. Nakon par poruka dobio sam sugestiju da relinkujem BASE52.PLL, jer to nisam uradio nakon PATCH operacije na reviziju Clipper 5.2c. Ja to i uradih, a potom sam startovao program i dobio: error est0003: Error loading required .PLL "BASE52.PLL" .... .RTLink Startup Abort. error est0008: Incorrect PLL Checksum. Važna napomena je da sam prilikom relinkovanja PLL datoteke dobio poruku linkera: UNDEFINED SYMBOL(S) AFTER LIBRARY SEARCH: SYMBOL FIRST REFERENCE ------ --------------- 'RDDSYS' CLIPPER.LIB (Not defined by user request) 'ERRORSYS' CLIPPER.LIB (Not defined by user request) '__START_SYM' CLIPPER.LIB (Not defined by user request) '_end' CLIPPER.LIB '_edata' CLIPPER.LIB These should be resolved at .EXE generation time Obratite pažnju na ovaj poslednji red... Osećam se prilično bespomoćno... Možete li naslutiti u kom smeru je razrešenje? Da se pripremim za preinstalaciju Clippera? (o, ne samo to ne!) Napominjem da sam Clipper instalirao, a potom upotrebio direktan patch na reviziju C, dakle bez međukoraka. Po dokumentaciji, ovo je u redu. Takođe napominjem da su sve putanje, SET varijable i okruženje sistema postavljeni po propisu, višestruko prekontrolisano. Koristim 286 mašinu sa 2 MB RAM, što znači da nikakve egzotike ne leže rezidentno, osim ponekad NG. ---> Whatever you think you see, this is not a tagline.
clipper.636 arazumenic,
Ovo je odgovor na neku od prethodnih poruka, greskom izbrisanom iz SOR-a. Rec je o datoteci PALETA.ZIP, konkretno o PALETA.RMK. Ja koristim PROG.RMK datoteku na sledeci nacin: #ifdef i // instalaciona verzija Linker = rtlink čprog.lnk /silent exefile = prog.exe dirobj = c:ĐprogĐinstall .prg.obj: clipper $** /l /m /n /w /o$(dirobj)Đ$*.obj #else #ifdef d // debug verzija Linker = rtlink prog.lnk /silent exefile = debug.exe dirobj = c:ĐprogĐdebug .prg.obj: clipper $** /b /m /n /w /dDEBUG /o$(dirobj)Đ$*.obj #else // radna verzija Linker = blinker prog.ln1 exefile = radni.exe dirobj = c:ĐprogĐradni .prg.obj: clipper $** /m /n /d /w /o$(dirobj)Đ$*.obj #endif #endif $(dirobj)Đglavni.obj : glavni.prg $(dirobj)Đinit.obj : init.prg ...... $(exefile) : $(dirobj)Đglavni.obj $(dirobj)Đinit.obj Đ .... $(Linker) Ovde koristim tri poddirektorijuma koji mi sluze samo za cuvanje .OBJ fajlova: install, debug, radni. Prednosti: - ne moraju da se brisu .obj fajlovi kada god se prevodi sa drugim svičem što prouzrokuje da se uvek prevode samo menjani fajlovi, a ne svi - manje je fajlova u osnovnom (prog) direktorijumu Mana: - povecan utrosak prostoru na hard disku (oko 500kb - zanemarljivo) Saša
clipper.637 zorand,
> Naime, pri prevodenju programa sa CLIPPER 5.xx pojavljuje > se poruka u stilu "string space exhausted", sa navodenjem > funkcije i rednog broja Bug Clippera 5.2 (CA) - !! Resenje: PATCH na 5.2c Zoran
clipper.638 v.nesic,
> Kako da nateram GET da skroluje numerike s'desna ulevo, > kao na klasičnim digitronima. PC.PROG.3: 11.299, autor toma.
clipper.639 aquarius,
Takav sam covek, pa moram jos da pojasnim :), on-line je on-line, a editor je editor. <> Sta, definises tacku da ti izigrava zarez, i zaboravis da je <> skines, i kompajler sam zna kad ti vise ne treba pa skine sam? <> Ili moras za svaki GET gde ti to treba da pozivas premapiranje <> tastera? nVar1 := 0.00 ... ob1Get:reader := { |oGet| NL_GetReader( oGet ) } OVDE tacka i zarez iniciraju postavljanje kursora na odgovarajuce mesto cVar1 := Spac(10) ... ob2Get:reader := { |oGet| NL_GetReader( oGet ) } OVDE tacka i zarez imaju svaka svoju funkciju ... READMODAL( GetList ) TACKA izigrava ZAREZ samo u slucaju NUMERICKIH promenjivih, i to samo ako se koristi *NL_GetReader()*, -izigrava- ga u smi- slu da postavlja kursor na odgovarajuce mesto, dakle ako pogle- das source, videces da kompajler nema veze s tim, u smislu ne- kog prepoznavanja kad, sta i kako, niti formulacija "premapira- nje" tu ima mesta. A kad smo vec kod "premapiranja", koje izgleda predstavlja problem, sta se dobija komandom FOX-a : <> On Key Label "." Keyb "," i sta tu izigrava TACKA :))), i moze li se poistovetiti sa ne- cim iz mojeg koda? O zaboravljanju i skidanju nema potrebe ra- zmisljati, jer tu nista nije ni pamceno, ni postavljano, sve sto treba uraditi je: oGet:reader := { |oGet| NL_GetReader( oGet ) } a funkcija *fNumsOnly()* brine dalje. <> tastera? Ili mu je svejedno da li kucas tacku ili zarez - <> oboje smatra za tacku? U ovom slucaju TACKA je zgodnija od ZAREZA jer se nalazi na numerickoj tastauri. Clipper 5.2c n := 0.00 @ 10, 10 Get n Pict "999.99" Read Gde ce se postaviti cursor pritiskom na taster TACKA ".", a gde pritiskom na TASTER zarez "," ??? U OBA slucaja na DECIMALU. <> Nisi jasan. Da li sada jesam ? I na kraju, namera je bila da dam svoj prilog lepoj akciji. Svako neka prosudi i presudi, pa ako nadje za shodno ili zgodno da to upotrebi bice dobro, ako ne opet dobro. U sva- kom slucaju, spreman sam da prodiskutujem o svemu. btw - Da li si probao kako radi NUM2CALC.exe ? Moze li nesto slicno da se uradi u FOX-u ? P.S. Ovo me je nateralo da ponovo pregledam kod, te ustanovih da pritisak na ZAREZ nema isti efekat kao pritisak na TACKU. Saljem fajl sa ispravkom ove greske. Sretna Srpska Nova Godina svim Sezamovcima ! Aquarius num2calc.zip
clipper.640 aquarius,
<> U 11.598 je aquarius prilozio funkciju koja to radi; mada ima ^^^^^^^^ <> prilicno cudno ponasanje po pitanju decimalne tacke i onoga iz ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ <> nje, funkcija radi prilicno zanimljivo. ^^^ ? Aquarius
clipper.641 dzoric,
Poziv svim Clipper, C, ASM programerima !!! Imam predlog da zajedničkim snagama uradimo Public Domain Library za Clipper( SEZAM.LIB ), možda po uzoru na Nanfor.lib. Svako bi dostavio predlog funkcija koje bi ušle u LIB. Tačno je da postoje lib-ovi koji rade sve i svašta ali ima i dosta specifičnih stvari koje su vezane za naše podneblje. Ajde da sve to sredimo, dokumentujemo i stavimo svima na raspolaganje. Možda bi moderator konferencije mogao da vodi ovaj projekat. Iznesite svoje mišljenje... P.S. Zahvalan sam za Num2Calc.zip, to je to... Pozdrav.. Dejan
clipper.642 aquarius,
<> Evo moj mali doprinos radu konferencije ... <> <> Nadam se da ce nekom koristiti ... <> <> Moja iskustva u radu sa CDX ideksima Directory of C:\CLIPPER5\OBJ NTXLOCK2 OBJ 302 06-10-93 5:22p CDXLOCK OBJ 6679 08-06-93 5:23p Vec sam pitao dva puta, ali bezuspesno. Imas li iskustva sa ova dva fajla. Narocito me zanima CDXLOCK.OBJ . Cemu sluze. Aquarius
clipper.643 bulaja,
│Imam predlog da zajedničkim snagama uradimo Public Domain │Library za Clipper( SEZAM.LIB ), možda po uzoru na Nanfor.lib. └─── Razmisljao sam ja jos davno o tome, ali sam zakljucio da jos nije vreme za to :). Bice vreme onda kada se na Sezamu skupi kriticna kolicina raznih domacih funkcija i biblioteka za Clipper, a za sada (i pored nekoliko zanimljivih priloga u poslednje vreme) to jos uvek nije slucaj. No, ne treba odustajati od ove ideje :) - mozda vec za mesec-dva budemo mogli konacno da napravimo SezamClip v1.0 Library! :).
clipper.644 nbatocanin,
> U obradi n slogova brzina dbSeek-a je (skoro) nevazna > u odnosu na brzinu dbSkip-a uz odredjene indekse. Ne uvek. Ako je tekuća tabela spojena sa SET RELATION sa 2-3 druge, onda ti je svako pomeranje pokazivača sloga u tekućoj tabeli, u stvari, nekoliko puta SEEK. A ovo je veoma često. > Gde je razlika od 5 (50) puta ? Nesumnjivo su NTX indeksi > za koji procenat brzi, sto je i logicno - ipak su oni > genericki format za Clipper. SIX drajver koristi isti format, pa je (izgleda) brži od NTX drajvera. Pre će biti da CA namerno traljavi sa CDX drajverom i tako ostavlja prostor za druge proizvođače.
clipper.645 ndragan,
/ Kompajler zna ono sto mu se kaze. Sta ce oznaciti decimalu / odredis sam u nizu aKeys, tacka je zgodna zbog toga sto se / nalazi na numerickoj tastaturi. Mislim da je "pemapiranje" Ajmo onda u detalje. Kad ja u foksu stavim on key label "." keyboard "," on mi do daljnjeg (dok ne skinem) svaki pritisak na tačku pretvara u zarez. Zato to i ne radim, nego na GET ostavim decimalnu tačku, a na izveštajima držim decimalni zarez i tačku za hiljade. Mislio sam na premapiranje tog jednog tastera za vreme GETa, što u načelu može da se izvede i ovako. Kada se radi ta predefinicija u kluperu, i odakle dokle važi. Da li na nivou jednog GETa, na nivou jednog READa, ili od stavljanja do skidanja?
clipper.646 ndragan,
/ Racunarima koji je samo potrvdio tezu da je CDX dosta traljavo / realizovan CDX je super, možda je drajver traljav. U samom foksu, gde je taj indeks domaći, doprinosi poprilično. Za pravi test, nemoj hiljadu puta tražiti isti slog. Strpaj sto ključeva iz sto slučajnih slogova u niz, pa traži kroz petlju te slogove redom. Tako ćeš odsimulirati stvarnu situaciju bolje nego u prvom testu. Drugo, ideja .cdx indeksa nije samo u dobijanju kompaktnijeg indeksa, nego da se za masovne pretrage po bazi ne čita sama baza, nego samo indeks. Ubrzanje je u foksu drastično, a čisto sumnjam da je baš cela Rašmor tehnologija ugrađena u CDX drajver za kliper.
clipper.647 dvesic,
>> SIX drajver koristi isti format, pa je (izgleda) brzi od NTX >> drajvera. Pre ce biti da CA namerno traljavi sa CDX drajverom >> i tako ostavlja prostor za druge proizvodace. Razlike u brzini sa SIX i (najnovijim) CDX drajverom su vrlo male (provereno). Sto se tice relacija, opet, kada sve uzmes u obzir korisnik NECE primetiti usporenje u MREZNOJ varijanti (provereno ;) Doduse, malo, malecno usporenje se primecuje u jednokorisnickoj varijanti, ali to sam ja primetio, jer sam na to obracao paznju.
clipper.648 dr.grba,
>> Osećam se prilično bespomoćno... Možete li naslutiti u kom smeru je >> razrešenje? Da se pripremim za preinstalaciju Clippera? (o, ne samo >> to ne!) Preinstalacijom Clippera i patch procedurom ispočetka stvar je sređena. Evidentno sam nešto pobrljavio u prvobitnoj proceduri. Jedinno logično objašnjenje je, dakle, moja greška. I zato se izvinjavam na buci koju sam napravio.
clipper.649 dr.grba,
>> Mana: >> - povecan utrosak prostoru na hard disku (oko 500kb - zanemarljivo) ...koji je po mom viđenju izlišan. Vidiš, onaj RMK koji ja koristim radi dobro zato što ću radnu verziju (bez brisanja .OBJ) koristiti redovno, a DEMO ili FINAL verziju uradiću na samom kraju, a najviše jednom u par dana. Prema tome, izlišno je bojati se praktično retkih prilika kada se svi PRG fajlovi ponovo kompiluju. Taj utrošak vremena kod mene u praksi teško da prelazi pet minuta nedeljno... No, sad, taj tvoj primer je izvrsna ilustracija mogućnosti RMAKE skriptova. Krajnja namera i meni je bila reklamiranje onog što je svima nama ispred nosa, a što mnogi od nas - bez ikakvog logičnog razloga - ne upotrebljavaju. I sa zadovoljstvom ću se poigrati tim skriptom.
clipper.650 snemcev,
>> NTXLOCK2 OBJ 302 06-10-93 5:22p Ovo ima veze sa zaključavanjem .ntx datoteka u mreži. Stari Clipper koristi ofset 1,000,000,000 decimalno, a kako se ispostavilo da to nije uvek dovoljno daleko, nov koristi FFFFFFFFh (što je i maksimum) tako da po tom pitanju nisu kompatibilni, pa ako hoćeš da koristiš novu šemu zaključavanja (što radiš svesno znajući da u neki stari program može da upotrebi ovako zaključan index i izazove ko zna kakve posledice), moraš eksplicitno navesto zahtev za linkovanje ovog .obj u .exe.
clipper.651 arazumenic,
-> dobro zato što ću radnu verziju (bez brisanja .OBJ) koristiti redovno, -> a DEMO ili FINAL verziju uradiću na samom kraju, a najviše jednom u par Da, ovo je tačno. Ali ne užasno nervira čekanje da izvrši prevodjenje svih .PRG fajlova (jedan program ima ih tačno 50, oko 420 kb sorsa). A još kada bi moglo u .LNK fajlu da se napiše nešto kao: #ifdef d ... #endif pa da nemam dva-tri skript fajla za linker, bilo bi izvanredno. Saša
clipper.652 dr.grba,
>> <> prilicno cudno ponasanje po pitanju decimalne tacke i onoga iz ... >> ? Ako otkucam 1234.5<ENTER>, ja očekujem da sam otkucao 1234.50, a ne 1234.05. Ovo je u najmanju ruku čudno, ako ne bismo stvar nazvali i bagom. Da li je sad jesna moja opservacija?
clipper.653 dr.grba,
>> mozda vec za mesec-dva budemo mogli konacno da napravimo >> SezamClip v1.0 Library! :). Podržavam ovu izvanrednu ideju iz sve snage! Mislim da bi Bulaja bio dobar koordinator akcije.
clipper.654 neman,
> indeks. Ubrzanje je u foksu drasticno, a cisto sumnjam da > je bas cela Rasmor tehnologija ugradena u CDX drajver za > kliper. Ja Rushmore tehniku ubacujem sam u program, a i nisam znao da se to tako zove :) neman
clipper.655 dr.grba,
>> Da, ovo je tačno. Ali ne užasno nervira čekanje da izvrši >> prevodjenje svih .PRG fajlova (jedan program ima ih tačno 50, oko >> 420 kb sorsa). Ne znam kako ti to radiš, ali ovi momenti su kod mene posvećeni toploj, crnoj mirišljavoj tečnosti proizvedenoj kuvanjem praha dobijenog mlevenjem prženih semenki jedne tropske biljke (: >> A još kada bi moglo u .LNK fajlu da se napiše nešto kao: (((: A ja mislio da sam jedina lenština među kliperašima na Sezamu (((:
clipper.656 dr.grba,
>> Ja Rushmore tehniku ubacujem sam u program, a i nisam znao da se to >> tako zove :) A kako to radiš? ---> Peek Poke, čaj za bolje programiranje.
clipper.657 dragisha,
-> Drugo, ideja .cdx indeksa nije samo u dobijanju kompaktnijeg indeksa, -> nego da se za masovne pretrage po bazi ne čita sama baza, nego samo Bilo koji indeks koji koristi nešto jače od običnog B drveta ne čita bazu, osim kad radi Get (i piše kad radi Delete)!? Razlika u brzini između ta dva pristupa je ogromna i ne mogu da vjerujem da neko ima komercijalan DBMS koji koristi obično B drvo!? Ima li?:) BTW (da ne pravim dvije replike:) dvesic je rekao da manji broj datoteka doprinosi brzini mrežnog rada. Malo kliperaški ograničeno:), nije mu palo na pamet da je najbrži mrežni rad onaj u kome se datoteke ne bi stalno otvarale-zatvarale kako to radi većina "mrežo-podržavajućih" programa.
clipper.658 madamov,
Interesuje se jedan moj drugar da li postoji neka biblioteka za Clipper za rad sa bar kodom?
clipper.659 dvesic,
>> BTW (da ne pravim dvije replike:) dvesic je rekao da manji >> broj datoteka doprinosi brzini mreznog rada. Malo kliperaski >> ograniceno:), nije mu palo na pamet da je najbrzi mrezni rad >> onaj u kome se datoteke ne bi stalno otvarale-zatvarale kako >> to radi vecina "mrezo-podrzavajucih" programa. Palo mi je na pamet ! Objasni mi samo, molim te, kako da u projektu za celu firmu (Velikoprodaja, maloprodaja, plate, sintetika, analitika, reprodukcija ...) dobijem na brzini drzeci otvorenih 36 baza sa pripadajucim indeksima ? Pozdrav, Dejan.
clipper.660 neman,
> A kako to radis? Zar stvarno neznas sta je Rushmore ;) neman
clipper.661 neman,
>>> onaj u kome se datoteke ne bi stalno otvarale-zatvarale >>> kako to radi vecina "mrezo-podrzavajucih" programa. > sintetika, analitika, reprodukcija ...) dobijem na brzini > drzeci otvorenih 36 baza sa pripadajucim indeksima ? A sto da ne budu otvoreni. Radi se samo o tome da radis dbcommit() redovno i sve je ok. Inace otvaranje & zatvaranje datoteka je spora stvar da bi se non-stop izvrsavala. neman
clipper.662 arazumenic,
-> (((: A ja mislio da sam jedina lenština među kliperašima na Sezamu (((: Nije ovde u pitanju samo lenjost, već mi se dešavalo da zaboravim da dodam funkciju u skript fajl. A najgora stvar je ta kada izbacujem neku funkciju, ako zaboravim da je izbacim iz skript fajla, onda se onda ulinkuje u program i nepotrebno zauzima mesto. Saša
clipper.663 dr.grba,
>> > A kako to radis? >> >> Zar stvarno neznas sta je Rushmore ;) Znam šta je Rushmore. I znam da je inplementiran na niskom nivou. Što će dalje reći da nije na meni kao programeru da se time bavim. A tvoja poruka je aludirala na neke ručne intervencije koje bi trebalo da posećaju na Rushmore tehnologiju. Ako sam te pogrešno razumeo, izvini. A ako te nisam pogrešno razumeo, onda te molim da u par reči kažeš kako ti to radiš, čisto informativno, jer sticajem okolnosti ova tema u ovoj konferenciji se bavi razmenom iskustava u radu sa Clipperom. ----> žaj Peek Poke, za vašeg kompjutera skok!
clipper.664 dr.grba,
>> i sve je ok. Inace otvaranje & zatvaranje datoteka je spora stvar >> da bi se non-stop izvrsavala. Ne non stop. Ali kad treba. Ježim se od programa koji na početku otvore sve moguće baze i pripadajuće indekse, trebale one - ne trebale, po principu "Vozi, Miško". To je u najmanju ruku neozbiljno i nedostojno profesionalnog pristupa programiranju. ---> žaj Peek Poke, low level inspiracija.
clipper.665 dr.grba,
Poznato mi je da postoji jedan bit koji će opredeliti da li će deklaracija boje "N/W*" rezultovati blinkom ili highlight pozadinom. Hteo bih da mogu ovo da iskoristim, tj. da bude pod mojom kontrolom. Dakle, ako hoću jedno, da ekran izgleda tako, ako hoću drugo, takođe. Kako nisam poznavalac asemblera, koji je verovatno neophodan da bi se ovo rešilo, molio bih neku dobru dušu da mi pomogne. Takođe bih voleo da čujem raspravu na temu kako se ovo ponaša na različitim video kartama. Poseban akcenat u mojim potrebama jeste Hercules grafika. ---> žaj Peek Poke, podmladite svoje programe!
clipper.666 djelovic,
> Ježim se od programa koji na početku otvore sve moguće baze i pripadajuće > indekse, trebale one - ne trebale, po principu "Vozi, Miško". To je u > najmanju ruku neozbiljno i nedostojno profesionalnog pristupa programiranju A zašto da se ne radi tako? Ne vidim razloga da se ekonomiše sa otvorenim datotekama. Jel to neka specifičnost Clippera ili opšti princip?
clipper.667 bulaja,
│Poznato mi je da postoji jedan bit koji će opredeliti da li će │deklaracija boje "N/W*" rezultovati blinkom ili highlight pozadinom. │Hteo bih da mogu ovo da iskoristim, tj. da bude pod mojom kontrolom. └─── Nisam bas siguran da sam shvatio sta hoces :), ali u Clipper-u postoji funkcija SetBlink() kojom odredjujes kako ce se tretirati "*" u color atributima: SETBLINK() Toggle asterisk (*) interpretation in SETCOLOR() string between blinking and background intensity ────────────────────────────────────────────────────────────────────────────── Syntax SETBLINK([<lToggle>]) --> lCurrentSetting Arguments <lToggle> changes the meaning of the asterisk (*) character when it is encountered in a SETCOLOR() string. Specifying true (.T.) sets character blinking on and false (.F.) sets background intensity. The default is true (.T.). Returns SETBLINK() returns the current setting as a logical value. Description SETBLINK() is an environment function that toggles the blinking/background intensity attribute and reports the current state of SETBLINK(). When SETBLINK() is on, characters written to the screen can be made to blink by including an asterisk (*) in a color string passed to SETCOLOR(). When SETBLINK() is off, the asterisk (*) causes the background color to be intensified instead. Thus, blinking and background intensity attributes are not available at the same time.
clipper.668 madamov,
> Jel to neka specifičnost Clippera ili opšti princip? Valjda opšti princip, jer ako skikne da se nanese što manje štete po otvorene datoteke.
clipper.669 neman,
> Znam sta je Rushmore. I znam da je inplementiran na niskom > nivou. Sto ce dalje reci da nije na meni kao programeru da > se time bavim. Ja radim to isto, znaci da pri pravljenju upita na bazu sam povedem racuna o tome da li mogu da ubrzam pristup odgovarajucim podacima koriscenjem indeksa. Samim tim smatram da jeste na meni da vodim racuna o organizaciji podataka. A Rushmore tehniku u konkretnoj implementaciji na Foxu nisam koristio, citao sam samo o tome u Racunarima, i informisao se tu i tamo a mislim i ovde:). neman
clipper.670 neman,
> Ne non stop. Ali kad treba. Treba samo kad se izlazi iz programa ili neko pokusava reindeksiranje. > Jezim se od programa koji na pocetku otvore sve moguce > baze i pripadajuce indekse, trebale one - ne trebale, po > principu "Vozi, Misko". To je u Pa i ja mislim i primenjujem to da program treba da otvori sve potrebne datoteke ( mislim i na indekse ) pa bilo njih i 30-40. neman
clipper.671 neman,
> Valjda opsti princip, jer ako skikne da se nanese sto > manje stete po otvorene datoteke. Jel se to opet vracamo na raspravu o DBCOMMIT()-u ?? neman
clipper.672 dejanr,
>> > Ježim se od programa koji na početku otvore sve moguće baze i >> > pripadajuće indekse, trebale one - ne trebale, po principu >> > "Vozi, Miško". To je u najmanju ruku neozbiljno i nedostojno >> > profesionalnog pristupa programiranju >> >> A zašto da se ne radi tako? Ne vidim razloga da se ekonomiše sa otvorenim >> datotekama. Jel to neka specifičnost Clippera ili opšti princip? Ako se radi "po knjizi", datoteku treba otvarati tek onda kada je njen sadržaj potreban i zatvarati u onom trenutku kada njen sadržaj prestane da bude potreban. Tako se, u teoriji (a i u praksi) obezbeđuje maksimalna sigurnost podataka, pošto je zatvorena datoteka manje podložna oštećenjima od otvorene. Sa druge strane, ja ne držim previše do te teorije - prečesto otvaranje datoteka i indeksa troši dosta vremena (uvek probaj, dal' je na disku, dal' su indeksi na disku, može li da se otvori itd), a sigurnost je sasvim dovoljna ako se po intervenciji uradi COMMIT (ili odgovarajuća naredba).
clipper.673 dvesic,
Jedna mala zanimljivost : Usmerite kreiranje OBJ fajlova u (skoro) pun direktorijum i krenite da kompajlirate neki veliki projekat .. Dobija se greska koja nema bas mnogo veze sa problemom ...
clipper.674 snemcev,
>> Usmerite kreiranje OBJ fajlova u (skoro) pun direktorijum i A kakav je to "pun direktorijum"? Zar Dos ne alocira klastere za direktorijume po potrebi?
clipper.675 dr.grba,
>> Nisam bas siguran da sam shvatio sta hoces :), ali u Clipper-u >> postoji funkcija SetBlink() kojom odredjujes kako ce se tretirati >> "*" u color atributima: A? Gubim kosu! I pokrivam se ušima. Da, trebalo mi je to što radi ta funkcija. ...Ali ja i dalje odbijam da naučim napamet sve funkcije i komande Clippera.
clipper.676 dr.grba,
>> Pa i ja mislim i primenjujem to da program treba da otvori sve >> potrebne datoteke ( mislim i na indekse ) pa bilo njih i 30-40. Kako hoćeš. Ja ostajem pri svome.
clipper.677 dr.grba,
>> Usmerite kreiranje OBJ fajlova u (skoro) pun direktorijum i >> krenite da kompajlirate neki veliki projekat .. Dobija se Htede li ti to reći "pun disk"?
clipper.678 madamov,
> Jel se to opet vracamo na raspravu o DBCOMMIT()-u ?? Nemam pojma, u Clipperu samo gostujem ponekad, pratim ovu temu zbog drugara koji se njime bave a nisu na Sezamu. Mislio sam da je dr.grba govorio i generalno o kulturi otvaranja/zatvaranja fajlova.
clipper.679 dr.grba,
>> koji se njime bave a nisu na Sezamu. Mislio sam da je dr.grba >> govorio i generalno o kulturi otvaranja/zatvaranja fajlova. E, da. Moglo bi se pričati i o mnogim drugim sličnim stvarima, ali čak i mene moj sopstveni cinizam ponekad umori...
clipper.680 dvesic,
>> A kakav je to "pun direktorijum"? Zar Dos ne alocira klastere >> za direktorijume po potrebi? Alocira. Greska u izrazavanju. Nisam mislio "pun" u smislu da je npr. u root-u popunjeno 63 od 64 mesta za fajlove vec u smislu da je na tom disku ostalo jos kilobajt - dva.
clipper.681 bulaja,
│A zašto da se ne radi tako? Ne vidim razloga da se ekonomiše sa otvorenim │datotekama. Jel to neka specifičnost Clippera ili opšti princip? └─── Pa svaka otvorena datoteka ti guta odredjenu memoriju za file buffer. Ako je prostor koji se koristi za smestanje buffer-a ogranicen (a mislim da je kod Clipper-a ogranicen na 64 Kb za sve otvorene datoteke), onda ce veci broj otvorenih datoteka znaciti manji prosecan buffer, sto opet znaci dosta sporiji rad sa diskom. Cak i da ovaj prostor nije interno ogranicen, cini mi se da je mnogo bolje da se neke datoteke otvaraju samo po potrebi. Npr. ako imas neku datoteku koja se koristi (i to retko) samo u jednom modulu aplikacije, daleko lakse za odrzavanje ce ti biti da kompletne poslove sa njom (sto ukljucujue i kreiranje, otvaranje i zatvaranje) radis samo u tom modulu.
clipper.682 djelovic,
> Pa svaka otvorena datoteka ti guta odredjenu memoriju za file buffer. > Ako je prostor koji se koristi za smestanje buffer-a ogranicen (a mislim > da je kod Clipper-a ogranicen na 64 Kb za sve otvorene datoteke), onda > ce veci broj otvorenih datoteka znaciti manji prosecan buffer, sto opet > znaci dosta sporiji rad sa diskom. To je daklem Clipper specifičnost :). BTW, što se tiče sigurnosti podataka, pa i onako se pri svakom otključavanju sloga/datoteke svi baferi prazne (da bi promene bile vidljive i ostalim radnim stanicama), te si opet na istom kao da si zatvorio datoteku samo što si posao uradio znatno brže. A ako gledamo logiku programa, ima li šta logičnije i konzistentnije od toga da se sve tabele na jednom mestu otvore i na jednom mestu zatvore, mesto da se to radi po celom programu pa kada naknadno dodaš joj jedan indeks moraš svuda da menjaš program? Izgleda da je jedini valjani razlog da se eksplicitno otvaraju i zatvaraju datoteke po celom programu ušteda fajl hendlova što je bilo bitno na nekim ranijim sistemima (Novell 2.X mi pada na pamet), ali je danas potpuno nebitno. Doduše, troši se i neka memorija ali je ona zanemarljivo mala.
clipper.683 nbatocanin,
> Sto se tice relacija, opet, kada sve uzmes u obzir > korisnik NECE primetiti usporenje u MREZNOJ varijanti > (provereno ;) Odlično, to je dobra vest. Baš sam ozbiljno nameravao da pređem na DBFCDX, ali sam odustao zbog povećane potrošnje memorije. Ipak mislim da je pametno sačekati da nova stvar "odstoji" pa je onda baciti u realan i surov život.
clipper.684 nbatocanin,
> Za pravi test, nemoj hiljadu puta tražiti isti slog. > Strpaj sto ključeva iz sto slučajnih slogova u niz, pa > traži kroz petlju te slogove redom. Tako ćeš odsimulirati > stvarnu situaciju bolje nego u prvom testu. Naravno, tako i radim. O kom testu govoriš (pišeš)?
clipper.685 ndragan,
/ TACKA izigrava ZAREZ samo u slucaju NUMERICKIH / promenjivih, Tj, ti kačiš svoju funkciju kao GET drajver i to je to. Tako nešto ne postoji u foksu, nego se lepo okači da svaki pritisak na tačku gurne zarez u bafer tastature i to je onda to. To je onda OKL (on key label) rutina koja mapira jedan taster, i ako se ne skine na vreme, ostaje aktivna do kraja. To je ta razlika što je kliper otvoren za sve moguće manipulacije koje ti padnu na pamet, a foks već ima sve što mi je dosad palo na pamet. Eventualno bi se moglo postići odgovarajućom kombinacijom When i Valid funkcija postići da se pozove tako neki drajver i onda rezultat ukucavanja direktno krkne u varijablu odnosno polje, i forsirano pređe na sledeći GEt.
clipper.686 ndragan,
/ mu palo na pamet da je najbrži mrežni rad onaj u kome se / datoteke ne bi stalno otvarale-zatvarale kako to radi E pa moraju s vremena na vreme da se zatvaraju. Nemaju sve mušterije UPSove na svim mašinama. Sad je samo štos u tome da se to minimizuje.
clipper.687 ndragan,
/ drzeci otvorenih 36 baza sa pripadajucim indeksima ? Sve otvoreno? Kako izdržavaš tu promaju?
clipper.688 ndragan,
/ Nije ovde u pitanju samo lenjost, već mi se dešavalo da / zaboravim da dodam funkciju u skript fajl. A najgora stvar Aman čoveče napiši neko programče koje će da ti pretrči po direktoriju i ispiše nov .lnk fajl. Ili si ona druga vrsta lenjih programera koju mrzi da napiše nešto nego kuca istu kobasicu sto puta?
clipper.689 arazumenic,
-> Aman čoveče napiši neko programče koje će da ti pretrči po direktoriju -> i ispiše nov .lnk fajl. Ili si ona druga vrsta lenjih programera koju -> mrzi da napiše nešto nego kuca istu kobasicu sto puta? Nije problem u tome da se napiše to programče, a naravno da mi je lakše da ga napišem nego da stalno ispravljam sve .lnk fajlove. Ali (večito ali) tu ima jedan problem. Glavni meni ima 5 izbora. Svaki od njih ima još 3-9 podizbora, a neki od njih još 2-7 podpodizobra. U .rmk i .lnk fajlovima su navedeni po meni najlogičnijim redosledom: // glavni1 podizbor1 podpodizbor1 podpodizbor2 ... podizbor2 podpodizbor1 podpodizbor2 ... // glavni2 E to programče ne može znati gde da ga doda. Saša
clipper.690 arazumenic,
-> ...Ali ja i dalje odbijam da naučim napamet sve funkcije i komande Clippera. Pa ne moraš da ih učiš napamet. Kada ti nešto zatreba, startuj NG, otvori uputstvo, pregledaj ranije poruke... Saša
clipper.691 dr.grba,
>> samo po potrebi. Npr. ako imas neku datoteku koja se koristi (i to >> retko) samo u jednom modulu aplikacije, daleko lakse za odrzavanje >> ce ti biti da kompletne poslove sa njom (sto ukljucujue i >> kreiranje, otvaranje i zatvaranje) radis samo u tom modulu. Amin!
clipper.692 dr.grba,
>> logičnije i konzistentnije od toga da se sve tabele na jednom mestu >> otvore i na jednom mestu zatvore, mesto da se to radi po celom >> programu pa kada naknadno dodaš joj jedan indeks moraš svuda da >> menjaš program? A zar ne bih mogao da iskoristim funkciju Open(dbf_name)? Pa u njoj da obavim sve vudu vradžbine?
clipper.693 bulaja,
Da li je neko slucajno imao prilike da vidi :) fajl C52G03B.NG - Clipper 5.2 Technical Reference? :)
clipper.694 bulaja,
│A ako gledamo logiku programa, ima li šta logičnije i konzistentnije od │toga da se sve tabele na jednom mestu otvore i na jednom mestu zatvore, │mesto da se to radi po celom programu pa kada naknadno dodaš joj jedan │indeks moraš svuda da menjaš program? └─── Logicno je ako se radi o bazama podataka koje se koriste cesto, tj. koje su osnova programa. Ali ako imas baze podataka koje se koriste retko i samo u odredjenim delovima programa, onda nema nikakve potrebe da ti ta baza zvrji otvorena i trosi handle ili file buffer. Ako imas standardizovane funkcije za otvaranje baza i indeksa (npr. preko recnika podataka), za promene koje bi nastale dodavanjem indeksa ne treba uopste da brines. Zamisli slucaj da imas neke baze podataka koje se relativno retko pozivaju - npr. u programu imas popunjavanje nekih obrzaca sa adresama, siframa delatnosti, kursem marke itd. Korisnik moras omoguciti da iz polja za unos pozove help gde iz tabele moze izabrati neki postanski broj mesta, sifru delatnosti, ili kurs marke iz baze kurseva. Mozes uraditi da ti te baze stoje stalno otvorene, a mozes ih otvarati tek po potrebi, iz help procedure. Ako se odlucis da takve baze otvaras tek kad ti zatrebaju (u help proc), onda mozes kompletan help za izbor odredjenog podatka (PostBroj, SifDel, KursDEM) da zatvoris u jedan modul i prekines da brines o bilo cemu. Onda istu proceduru mozes da koristis u drugim programima, ne misleci da li su baze otvorene i ne. Cak i da u nekom programu istu bazu drzis vec otvorenu, ne moras mnogo da lupas glavu oko toga jer se ista baza kao shared moze bez problema otvoriti u vise oblasti.
clipper.695 dr.grba,
>> Pa ne moraš da ih učiš napamet. Kada ti nešto zatreba, startuj NG, >> otvori uputstvo, pregledaj ranije poruke... Nogekako. Moj NG direktorijum ima najveći obim od svih: preko 6 MB. (: Samo je fora videti sve. Nekako nije kunst sedeti i listanjem tražiti šta sve ide kuda kako kome koliko zašto gde i kada. Osim toga, imam Sezam (: P.S. A šta misliš, šta sam uradio 20 sekundi nakon što sam pročitao onu Bulajinu poruku? (:
clipper.696 aquarius,
<> Ako otkucam 1234.5<ENTER>, ja ocekujem da sam otkucao 1234.50, <> a ne 1234.05. Ovo je u najmanju ruku cudno, ako ne bismo stvar <> nazvali i bagom. <> <> Da li je sad jesna moja opservacija? A ako otkucas 1234.50<ENTER> dobices 1234.50 :) . Covek je trazio skrolovanje numerickog GET-a, s desna na levo. Inace mislim da si u pravu, ali bi to sto ti ocekujes bilo malo te- sko za kontrolu. A da ti pravo kazem, meni je to jednom trebalo zbog neke aplikacije, ljudi bili zadovoljni, i ja to tako ostavio, nisam dalje razmisljao. Mozda sad hocu! Uostalom ima li predloga ??? Aquarius
clipper.697 aquarius,
<> Ajmo onda u detalje. Kad ja u foksu stavim <> <> on key label "." keyboard "," ... <> Mislio sam na premapiranje tog jednog tastera za vreme GETa, <> sto u nacelu moze da se izvede i ovako. Kada se radi ta <> predefinicija u kluperu, i odakle dokle vazi. Da li na nivou <> jednog GETa, na nivou jednog READa, ili od stavljanja do <> skidanja? Ta predefinicija ne postoji u Clipper-u, mada bi mogla da se simulira. Ali sto se tice NUM2CALC-a, nema ni potrebe. Aquarius
clipper.698 aquarius,
<>>> logicnije i konzistentnije od toga da se sve tabele na <>>> jednom mestu otvore i na jednom mestu zatvore, mesto da se <>>> to radi po celom programu pa kada naknadno dodas joj jedan ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ <>>> indeks moras svuda da menjas program? ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ <> <> A zar ne bih mogao da iskoristim funkciju Open(dbf_name)? Pa u ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ <> njoj da obavim sve vudu vradzbine? Probaj da iskoristis DBFCDX drajver. :) ! Aquarius
clipper.699 aquarius,
<> Nogekako. Moj NG direktorijum ima najveci obim od svih: preko <> 6 MB. (: ^^^^ Samo ? <> <> Samo je fora videti sve. Nekako nije kunst sedeti i listanjem <> traziti sta sve ide kuda kako kome koliko zasto gde i kada. Treba procitati makar jednom, da ti ostane u secanju da tako nesto postoji, pa posle samo potrazis. Uostalom zar tvoja poruka 11.206 ne zapocinje ovako : <> Mnogi progameri, u koje spada vecina nas, su skloni da <> preskacu drugarske sugestije kojih ima na tone po raznim <> tutorijalima, NG i Hypertext fajlovima, istovremeno se ljuteci <> zasto "bas ovo nedostaje u jeziku, kakva glupost, sad moram to <> sam da resavam....." :))) Aquarius
clipper.700 aquarius,
<> Tj, ti kacis svoju funkciju kao GET drajver i to je to. Tako <> nesto ne postoji u foksu, nego se lepo okaci da svaki pritisak <> na tacku gurne zarez Tako nekako... Samo sto je to o:GetReader, a ne drajver. Aquarius
clipper.701 aquarius,
<> Jezim se od programa koji na pocetku otvore sve moguce baze i <> pripadajuce indekse, trebale one - ne trebale, po principu <> "Vozi, Misko". To je u najmanju ruku neozbiljno i nedostojno <> profesionalnog pristupa programiranju. Mozda me utisak vara, ali ima li smisla stalno otvarati i zatvarati baze ako aplikacija koristi 5-10 baza i isto toliko indeksa (CDX) ? Cini se da Misko brze vozi ako su mu sve baze otvorene, a jos ako ih nema puno, onda moze i vezanih ociju u rikverc :) . Aquarius
clipper.702 aquarius,
<> Da li je neko slucajno imao prilike da vidi :) fajl C52G03B.NG <> - Clipper 5.2 Technical Reference? :) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Bilo bi zanimljivo videti, mada sam nacuo da to ide uz knjigu sa istim nazivom koji si gore naveo. Aquarius
clipper.703 arazumenic,
-> Nogekako. Moj NG direktorijum ima najveći obim od svih: preko 6 MB. (: A tebi je nepotreban gubitak (za slučaj moje aplikacije) od 0,5 MB za .obj datoteke u posebnim direktorijumima? I šta si sve tu nagurao? Saša
clipper.704 dr.grba,
>> Da li je neko slucajno imao prilike da vidi :) fajl C52G03B.NG - >> Clipper 5.2 Technical Reference? :) Trebalo bi zašušuriti po američkim mrežama. Da pitamo snemceva: Ima li toga u onim spiskovima?
clipper.705 dr.grba,
>> A ako otkucas 1234.50<ENTER> dobices 1234.50 :) . Covek je >> trazio skrolovanje numerickog GET-a, s desna na levo. Inace >> ... >> zbog neke aplikacije, ljudi bili zadovoljni, i ja to tako ostavio, >> nisam dalje razmisljao. Mozda sad hocu! Uostalom ima li predloga ??? Ama, stvar je vrlo dobra! Moja primedba je sitnica u odnosu na dobitak. Jedino mesto gde je meni zatrebao takav unos je, srećom, za ceo broj (: A, sad, ne bi bila loša ni ta ispravka, e zbog vremena u dalekoj budućnosti koja ćemo možda doživeti, a u kojima ćemo opet koristiti delove dinara. --< * >-- Nije pravo mesto, ali moram da vam ispričam. Pre par dana došli prijatelji u posetu. Njihov trogodišnji sin pronašao gumenu kasicu prasicu koju je Ana dobila od komšinice da se igra. I dečko video otvor na leđima praseta: - Dlagane, a šta je ovo? - Otvor da ubacuješ novčiće, pa kad uštediš punu kasicu prasicu... Tog trenutka su svi prisutni pogledali u mene, a je se ugrizao za jezik. Hoće li naša deca znati šta je to kasica prasica? ):
clipper.706 dr.grba,
>> Probaj da iskoristis DBFCDX drajver. :) ! žik pogodi čime se aktuelno igram (((:
clipper.707 dr.grba,
>> ... Uostalom zar tvoja poruka 11.206 >> ne zapocinje ovako : >> >> <> Mnogi progameri, u koje spada vecina nas, su skloni da >> <> preskacu drugarske sugestije kojih ima na tone po raznim >> <> tutorijalima, NG i Hypertext fajlovima, istovremeno se ljuteci (((: Imaš piće za ovo! (:
clipper.708 dr.grba,
>> -> Nogekako. Moj NG direktorijum ima najveći obim od svih: preko 6 MB. (: >> ... >> I šta si sve tu nagurao? Kurtu i Murtu (:
clipper.709 dragisha,
-> / mu palo na pamet da je najbrži mrežni rad onaj u kome se -> / datoteke ne bi stalno otvarale-zatvarale kako to radi -> -> E pa moraju s vremena na vreme da se zatvaraju. Nemaju sve mušterije -> UPSove na svim mašinama. Sad je samo štos u tome da se to minimizuje. Ali sve mušterije imaju Flush, zar ne? Od DOS 3.3 pa naviše, standardna funkcija u okviru 21H. -- ["She's sleeping with Prince Valium tonight..."]
clipper.710 dragisha,
-> > Jel to neka specifičnost Clippera ili opšti princip? -> -> Valjda opšti princip, jer ako skikne da se nanese što manje štete po -> otvorene datoteke. Nema štete, bar ne više nego sa Close. Commit (iliti Flush) će završiti isti posao za mnogo kraće vrijeme. E sad, fora je i tome što svaki otvoreni fajl i index guta mem. Kad neko radi u kliperu, teško će se odreći nekih 100 kb za te stvarčice. -- ["Life," said Marvin, "Don't talk to ME about life!"]
clipper.711 dragisha,
-> Ježim se od programa koji na početku otvore sve moguće baze i -> pripadajuće indekse, trebale one - ne trebale, po principu "Vozi, -> Miško". To je u najmanju ruku neozbiljno i nedostojno profesionalnog -> pristupa programiranju. Ježim se od ljudi koji gledaju crno-bijelo:) U svojim programima većinu datoteka otvorim na početku jer mi je veća glupost da pri korištenju otvaram, koristim, zatvaram. Manjina su one datoteke koje su recimo vlasništvo nekog drugog programa i koje se koriste na malo mjesta u programu. Njih otvaram po potrebi i zatvorim vrlo brzo. -- [Where can I get one of those computer bats!!]
clipper.712 snemcev,
>> Ima li toga u onim spiskovima? Sorry, no bonus. Ako sam dobro shvatio dokumentaciju, dobijaš ga kad kupiš štampan Reference Manual. Ko zna, možda je pod copyright-om. Al' opet, kad je to bio problem za nas... ;)
clipper.713 dr.grba,
>> Ježim se od ljudi koji gledaju crno-bijelo:) Nemam komentara, iako trošim poruku da bih to rekao ):
clipper.714 dvesic,
>> Sve otvoreno? Kako izdrzavas tu promaju? Ma ne drzim. Samo pitam kako bi to izgledalo ? (co'ek mi to predlozio)
clipper.715 dvesic,
VAZNO UPOZORENJE !!!! Za sve one koji su zainteresovani za prelazak na CDX indekse... SACEKAJTE ! Primeceno je (ja primetio) da u odredjenom hardversko/softverskom okruzenju postoji velika verovatnoca korupcije CDX indeksa u mreznom okruzenju. U pitanju je Novell Lite 1.0, i CDX indeksi od Clipper-a 5.2c (stara verzija je radila bolje :((( ). Bug se ispoljava na sledeci nacin: prilikom istovremenog unosenja podataka sa dve ili vise stanica, svaka stanica vidi SAMO svoje podatke ali ne i podatke koji su uneseni na drugim stanicama. (nema azuriranja indeksa u memorijskim baferima kod Commit-a, bilo eksplicitnog bilo implicitnog (UnLock)). Ovo su prve preliminarne informacije. Intezivno istrazivanje (debagovanje) je u toku. O novim informacijama cim do njih dodjem. Molio bih one koji imaju mrezna iskustva sa CDX indeksima, da daju svoje misljenje i/ili savete i predloge. U jednokorisnickoj varijanti nema nikakvih problema. Izvinjavam se ako je moje insistiranje na prelazak na CDX nekome donelo iste ili slicne probleme. Pozdrav, Dejan.
clipper.716 dr.grba,
Da vam prenesem početničko iskustvo sa DBFCDX drajverom... U Vern Six demo paketu postoji baza MURPHY.DBF, sa pridruženim MURPHY.DBT, koji je velik 297037 bajtova. Ova baza mi dobro dođe za razne testove, a pogotovo u poslednje vreme... Obzirom na (uobičajeno loš) stepen iskorišćenja memo polja, prelazom na CDX drajver i pretumbavanjem baze, dobio sam MURPHY.FPT veličine 83924 bajta... No comment. Imam neki programčić koji random izbacuje Marfijeve zakone na ekran, do <ESC> tastera. (Ovo možda jednom dam nekom poslušnom korisniku (: ) 'Ajde, pomislih, da časom sredim program da radi sa ovim drajverom. Koji posao, pomislih, samo treba dodati oznaku drajvera za otvaranje: use murphy new via "DBFCDX" i ulinkovati DBFCDX.LIB, jedan red u LNK fajl. Obično se doda, pomislih, i onaj legendarni REQUEST DBFCDX negde u vr' programa, da linker sazna sa kim da radi. Moji nulti testovi su pokazali da je to pomalo i izlišno. E, ali hoćeš..... Prođe pravljenje EXE fajla bez brige, kad tamo: Error DBCMD/1015 Argument error: DBUSEAREA Called from LOCKERRHAN(0) Called from (b)INITHANDL$(0) Called from DBUSEAREA(0) Called from MAIN(16) 16. red je baš onaj use. Odem, vidim da nema greške, zavirim u NG spisak grešaka, kad tamo - nema opisa DBCMD/1015 ž%*č#č#%ž$č!!! Hajde, da vidimo šta bi moglo biti..... .... posle 33. kompilacije stavim REQUEST DBFCDX i sve prođe glat. I tako se po jubilarni, 15.867.093. put uverim da ponekad vredi slušati šta kažu čika projektanti Clippera.... I da ne vredi da verujem sopstvenim nultim testovima ):
clipper.717 bulaja,
Ako koristite CA-Clipper Tools i Blinker, mrzi vas da čitate uputstvo :), a programi vam se cesto zaglavljuju kad koristite extended drivers :), onda znajte da je to zato što CTUS.OBJ treba staviti u root, a ne u overlej!
clipper.718 neman,
> .... posle 33. kompilacije stavim REQUEST DBFCDX i sve > prode glat. Ne moras da stavljas to ako ubacis male izmene u RDDSYS.PRG pa sve to ponovo smuljas u pll.
clipper.719 dvesic,
Cao ! Zna li neko da li je unutar RMK fajla (RMAKE) moguce (i kako, ako jeste) vrednosti enviroment promenljivih ? Nesto kao makepath[.obj] = %OBJ% i slicno.
clipper.720 aquarius,
<> Imas pice za ovo! (: Whiskey ? :) Aquarius
clipper.721 aquarius,
<> Ma ne drzim. Samo pitam kako bi to izgledalo ? <> (co'ek mi to predlozio) Co'ek ti lepo predlozio, al' bih preporucio samo u slucaju da aplikacija koristi malo baza i indeksa. Aquarius
clipper.722 aquarius,
<> Zna li neko da li je unutar RMK fajla (RMAKE) moguce (i kako, <> ako jeste) vrednosti enviroment promenljivih ? Za Blinker je lako, ali RTLink... Medjutim ako je to bas potrebno, a radis sa RTLink-om, onda probaj negde na pocetku aplikacije da stavis nesto kao : !SET CLIPPER=F:50;...itd Aquarius
clipper.723 dvesic,
>> Za Blinker je lako, ali RTLink... >> Medjutim ako je to bas potrebno, a radis sa RTLink-om, onda >> probaj negde na pocetku aplikacije da stavis nesto kao : NE za RTLink vec za RMAKE. Vrednost env.promenljive mi treba unutar RMK, ne untar LNK fajla !
clipper.724 gari,
>>> Ima li toga u onim spiskovima? > > Sorry, no bonus. Ako sam dobro shvatio dokumentaciju, dobijas > ga kad kupis stampan Reference Manual. Ko zna, mozda je pod > copyright-om. Al' opet, kad je to bio problem za nas... ;) Ajde da sumiramo: Da li postoji neko ko to ima, ili neko ko poznaje ove nase ovlascene distributere clipper-a...
clipper.725 dr.grba,
>> Ne moras da stavljas to ako ubacis male izmene u RDDSYS.PRG pa sve >> to ponovo smuljas u pll. U koji PLL? Kompilujem i linkujem bez PLL.
clipper.726 bcetina,
Koleginica pita: Da li je moguće da clipper 87 koristi dbf-ove sa numeričkim poljima većim od 19 cifara? I kako ako je moguće?
clipper.727 neman,
Iznenadjenjima (?) od strane Clippera nikad kraja :) Testirajuci CDX vs NTX uocio sam ( tek sada ) jos jedan slucaj "it's not a bug, but it's a feature". U programu koji generise neke podatke na osnovu prethodnih, posle zavrsenog generisanja podataka u bazama i sa otvorenim indeksima u bazama pojavila se razlika u duzini .NTX datoteka koje pripadaju istoj bazi a kljuc je iste duzine. Kada sam izvrsio indeksiranje kompletne baze, duzine .NTX datoteka su se izjednacile i skratile od slucaja do slucaja 5 - 20 % ( radio sam vise puta generisanja ). Izgleda da Clipper pri azuriranju indeksa i njegovom uvezivanju sa odgovarajucim prethodnikom/sledbenikom pravi rupe u NTX datoteci. VNTX program za proveru ispravnosti datoteka je naravno u svakom slucaju prijavio nepostojanje gresaka. Naravoucenije : povremeno pustajte indeksiranje celokupnih baza. A glede testiranja CDX vs NTX, samo testiranje vrsim na konkretnoj aplikaciji sa konkretnim podacima. Za sada su sva ispitivanja vrsena na jednom racunaru a ponovicu ih i na mrezi. Rezultati su sledeci: - CDX datoteka je kraca od odgovarajucih NTX oko 4.5 - 5 puta - Brzina indeksiranja celokupne datoteke je minimalno veca kod CDX-a u - izvrsenje kljucne obrade podataka u bazi je priblizno isto pri koriscenju i jednog i drugog drajvera. Inace u obradi svakog sloga koristi se vise puta pristup drugim podacima u okviru jedne baze. Posto pocetni rezultati nisu losi, prepravicu celu aplikaciju da radi sa CDX indeksima ( a to i nije neki problem, :)) pa cu da testiram onda izvrsavnaje svih operacija u programu, na jednom racunaru i na mrezi. Glede mreze, nadam se dvesicu da ima, ima rezultata traganja za greskom. Inace moja iskustva sa NetWare Lite mrezom i nisu bas povoljna, tako da cu da testiranje vrsim na Novell 3.11 mrezi. neman
clipper.728 dvesic,
>> Da li je moguce da clipper 87 koristi dbf-ove sa numerickim >> poljima vecim od 19 cifara? I kako ako je moguce? Nije moguce. Interne rutine koje vrse konverziju podatka iz baze u format za MicroSoft Floating Point podrzavaju maksimalno 19 cifara. Ako je problem sa novcem, moze ga resiti tako sto otvori jos jedno polje u kome ce cuvati broj nula sa leve, odnosno desne strane (u zavisnosti da li je broj mnogo veliki ili mali). To mi je jednom pomoglo da resim slican problem. Sada se Replace takvog polja svodi na poziv funkcije koja ce prebrojati nule i upisati ih u bazu. Pozdrav, Dejan.
clipper.729 dr.grba,
>> <> Imas pice za ovo! (: >> >> Whiskey ? :) Odsad striktno pazim šta govorim (: P.S. A jel' može jedna dobra, kisela seljačka brlja? (: --->Uz čaj PEEK POKE volumen vašeg programa se podvrgava vašem duhu!
clipper.730 snemcev,
>> Da li je moguće da clipper 87 koristi dbf-ove sa numeričkim >> poljima većim od 19 cifara? I kako ako je moguće? Sorry. To je maksimum. Btw, ako smem da pitam, šta radi sa tolikim brojevima?!
clipper.732 dvesic,
>> Glede mreze, nadam se dvesicu da ima, ima rezultata traganja >> za greskom. Inace moja iskustva sa NetWare Lite mrezom i nisu >> bas povoljna, tako da cu da testiranje vrsim na Novell 3.11 >> mrezi. Ima, i losi su :((( Pokusavao sam na razne nacine (NW Lite 1.0 ili DV+Share ili Win + Share..) ali su rezultati uvek isti : Stanica koja POSLEDNJA upise indeks u indeksnu datoeku ce prebrisati izmene prethodno upisanih ... :((( Probao sam i da ulinkujem CDXLOCK ali vidljivih rezultata nije bilo. Mozda treba na neki poseban nacin otvarati/zakljucavati baze sa CDX ? (koji nacin ? sto bi to bilo vazno ?? sto lupas u prazno ??? :) ) Jos jednom, ako neko bude imao slicna iskustva (probleme) molim da ih ostavi u konferenciji (bitno je!) Pozdrav, Dejan.
clipper.733 dr.grba,
>> - CDX datoteka je kraca od odgovarajucih NTX oko 4.5 - 5 puta Koliko indeksa držiš u toj CDX datoteci? >> Glede mreze, nadam se dvesicu da ima, ima rezultata traganja za >> greskom. Inace moja iskustva sa NetWare Lite mrezom i nisu bas >> povoljna, tako da cu da testiranje vrsim na Novell 3.11 mrezi. E, ovi rezultati na Netware 3.11 me vrlo interesuju. E, da... Pretpostavljam da se ovo što si napisao odnosi na CDX drajver isporučen sa Clipperom?
clipper.734 djelovic,
> Izgleda da Clipper pri azuriranju indeksa i njegovom uvezivanju > sa odgovarajucim prethodnikom/sledbenikom pravi rupe u NTX datoteci. To je za očekivati. U svim X-Base jezicima se indeksi svode na neku varjantu B+-stabla, za koje je sasvim normalno da ostavljaju rupe. Što se tiče CDX indeksa, čini mi se da je njihova najveća prednost ne brzina već to što drže sve indekse u jednom fajlu. To doprinosi većoj sigurnosti (konzistentnosti) podataka i bržem radu u SHARED modu.
clipper.735 aquarius,
<> NE za RTLink vec za RMAKE. Vrednost env.promenljive mi <> treba unutar RMK, ne untar LNK fajla ! Mislio sam da ti treba da program prilikom starta postavi environment. A sto se tice FILE.RMK, DOS komande unutar njega se izvrsavaju na sledeci nacin: environment: PATH C:\DOS;C:\UTIL;C:\CLIPPER\PROJECT;%PATH% FILES=30 BUFFERS=15 Jedino moras da pazis na FILES i BUFFERS, jer mozes samo da povecas vrednosti, nikako da ih smanjis, ali to je vec DOS. Ako ima daljih pitanja, tu sam. Btw, ono "environment:" moze da bude i "okruzenje:" ili "dvesic:" , a komande koje slede moraju da budu barem za jednu kolonu vise u desno. Aquarius
clipper.736 aquarius,
<> Koleginica pita: <> Da li je moguce da clipper 87 koristi dbf-ove sa numerickim <> poljima vecim od 19 cifara? I kako ako je moguce? Jel vec tolka inflacija ? :) Aquarius
clipper.737 aquarius,
<> Odsad striktno pazim sta govorim (: I treba :) <> P.S. A jel' moze jedna dobra, kisela seljacka brlja? (: Seljacka da, kisela NE. :) P.S. Htedoh reci "tako treba" :))))))) Aquarius
clipper.738 dvesic,
>> Ako ima daljih pitanja, tu sam. Prvo, hvala za iscrpan odgovor. Drugo, ovu varijantu sam znao ( :)) izvini ). Problem je u sledecem : U zavisnosti od okruzenja (ima QEMM / nema QEMM, ima RAMDISK nema RAMDISK), pre nego sto startujem RMAKE st.rtl postavljam env. promenljive CLIPPERCMD, OBJ i TEMP. Hteo bih i da makepath[.obj] postavim na vrednost env.prom. OBJ tj. da se staza kojom RMAKE trazi OBJ fajlove poklapa sa stazom u kojoj ih clipper generise, odnosno RtLink/Blinker uvlaci prilikom linkovanja. Kako to da uradim ? (nesto kao ekvivalent : makepath[.obj]= %OBJ% , tj. nije problem da POSTAVIM vec da PROCITAM env.promenljivu) Pozdrav, Dejan.
clipper.739 snemcev,
Još malo, pa eto nove godine, a ja još nisam poslao iskupljenje za onaj crc32.zip. Evo ga, stiže uz ovu poruku. Program služi za ispitivanje korektnosti žiro računa. ziro.zip
clipper.740 snemcev,
Evo modul za štampanje virmana. Ako ga neko korisno upotrebi, nek me pomene negde u dokumentaciji. Btw, isto važi i za ziro.zip iz prethodne poruke -- public domain, all rights reserved. virman.zip
clipper.741 dejanr,
========== xbase/clipper.code #238, from irae, 1332 chars, Fri Dec 17 12:56:21 1993 ---------- TITLE: Blinker 3.0 About a week ago Blinker 3.0 started shipping. For those who've not heard this version incorporates a DOS exrender allowing your Clipper 5.x applications to be linked in one of three varieties; real mode, just like Blinker 2.x; Extended mode, basically just like ExoSpace and Dual mode which allows your application to decide at runtime if there are enough resources to run in Extended mode or if it should run in good old real mode. For those people building big executables the ability to create Extended mode applications can be the difference between an applications failure and success. For small applications with large amounts of disk access you might find Extended mode slower because it has to switch to real mode whenever the disk is accessed. But for large using things like Classy and ProVision extended mode may allow your application to run dramatically faster. I am beta testing a large ProVision application, 1.4Mb exe and when Don switched to ExoSpace the speedup was dramatic. And his reports on Blinker 3 indicate that it works about the same and it's symbol packer reduces his .exe by about 200K. But he's still waiting for a add-on library to finish Blinker 3 compatibility. CA has announced that Clipper Tools III should be Extended mode compatible winthin a month or two. Ira Ira
clipper.742 neman,
>>> - CDX datoteka je kraca od odgovarajucih NTX oko 4.5 - 5 > puta > > Koliko indeksa drzis u toj CDX datoteci? 2 kljuca tj. dva taga. > E, da... Pretpostavljam da se ovo sto si napisao odnosi na > CDX drajver isporucen sa Clipperom? Da, a ako neko ima nesto novo, neka se (pri)javi. neman
clipper.743 dr.grba,
>> Program služi za ispitivanje korektnosti žiro računa. Zloba je zaboravio, pa da ga ja reklamiram, jer sam bio prvi recenzent programa (: Program ispituje pravilnost i kontrolnog broja žiro računa i individualne partije, te je stoga prikladan za ugradnju na sva mesta gde baratate žiro računima.
clipper.744 dr.grba,
žačkao sam po nekom NG fajlu, kad vidim na jednom mestu: ... ANNOUNCE RDDSYS // This line must not change INIT PROCEDURE RddInit REQUEST DBFNTX // Force link for DBFNTX RDD ... INIT procedure, lepa stvar, ali zar može da bude više od jedne? Zanimljivo. Za minut smlatim sledeće, baš da vidim i to čudo: proc main alert("Hello, world!") quit init proc iproc1() alert(" Init1 ") return init proc iproc2() alert(" Init2 ") return init proc iproc3() alert(" Init3 ") return exit proc eproc1() alert(" Exit1 ") return exit proc eproc2() alert(" Exit2 ") return exit proc eproc3() alert(" Exit3 ") return I primetim zanimljivu stvar. Ne samo da je prošlo, nego radi na zanimljiv, i uostalom logičan način: najpre se izvršio iproc3(), pa iproc2(), pa iproc1(), dakle prvi definisani je uvek najbliži glavnoj proceduri, a svaki sledeće definisani - linkovani ide dalje od procedure. Kod INIT procedura, logično, ono "dalji" od glavne procedure znači da će se izvršiti ranije. Kod EXIT procedura nema iznenađenja, ista logika - prvi viđeni od strane linkera je opet najbliži glavnoj proceduri; ovaj put, dakle, izvršava se prvi. Možda sam otkrio toplu vodu, ali nije zgoreg setiti se ovog ponekad, može da zatreba (:
clipper.745 dsisic,
>> E, da... Pretpostavljam da se ovo sto si napisao odnosi na >> CDX drajver isporucen sa Clipperom? > > Da, a ako neko ima nesto novo, neka se (pri)javi. Ima, ima ( mozda nije novo jer je vec pomenuto ovde ). Radi se o SIXCDX RDD-u za 5.01 i 5.2 od firme SuccessWare. Usput tu je i DBU like utility za rad sa doticnim driverom mada se moze koristiti kao potpuna zamena za sve sto lici na DBU. Inace DBU je malo dete za DBX ( pitaj dVesica za misljene ). Zakaciti cu ga ovde kad me prodje mamurluk, a predlozio bih ga i u CLIPPER dir!
clipper.746 aquarius,
<> (nesto kao ekvivalent : makepath[.obj]= %OBJ% , tj. nije <> problem da POSTAVIM vec da PROCITAM env.promenljivu) Ako sam konacno dobro shvatio, treba ti ovo: ** Ovo na pocetak ST.TRL **************************************** // .obj !ifeq "$(OBJ)" "" !stdout "NAPOMENA: Upisivanje .OBJ fajlova u aktivni DIR" !else makepath[.obj] := "$(OBJ)" !stdout "NAPOMENA: PATH za .OBJ fajlove je: '$(OBJ)'" !end ***************************************************************** Prethodno, ako sam dobro shvatio promenis env., tj. : SET CLIPPERCMD= SET OBJ= SET TMP= ili nesto slicno. E sad, ako je < SET OBJ=C:\NekiDir >, onda ces prilikom startovanja RMAKE ST.RTL dobiti sledecu poruku: "NAPOMENA: PATH za .OBJ fajlove je: C:\NekiDir" a ako < SET OBJ > nije definisan, onda: "NAPOMENA: Upisivanje .OBJ fajlova u aktivni DIR" . Normalno, osim poruke, dobices i ono sto zelis, da staza za .OBJ fajlove bude ocitana preko SET OBJ= , tj. c:\NekiDir . :) Aquarius
clipper.747 aquarius,
<> Inace DBU je malo dete za DBX ( pitaj dVesica za misljene ). Pitam dSisica & dVesica za misljenje i cekam da prodje mamurluk. :) Aquarius
clipper.748 solajac,
Evo još jedne bubice u CA Clipper 5.2c: Slog koji se referencira preko SET RELATION se ne može zaključati! Evo primera (koji ne radi) !!! ------------------------------ USE Baza1 SHARED NEW SET INDEX TO Baza1Ind USE Baza2 SHARED NEW SET RELATION TO Baza2->Sifra INTO Baza1 ... ... SELECT Baza1 * GO RECNO() IF RLOCK() REPLACE Baza1->... WITH ... // ovde program pada i javlja: // LOCK REQUIRED // tj. RLOCK je vratio .T., ali je // očigledno zaključao pogrešni slog. SET RELATION TO ------------------------------ Ubacite već čuveni "GO RECNO()" ispred "RLOCK()" i rešićete problem. ------------------------------ čiveo GO RECNO(), živeo, živeo ... Pozdrav, Solajac. PS. Nek ide sve, GO RECNO.
clipper.750 dsisic,
Evo, ovde je priheftan dbx.arj. Ima ulinkovane sledece drajvere: - DBFNTX - SIXCDX ( Sa stanovista datoteka, identican sa DBFCDX. ) - DBFMDX - DBFNDX dbx.arj
clipper.751 bulaja,
│Zakaciti cu ga ovde kad me prodje mamurluk, a predlozio bih ga │i u CLIPPER dir! └──── dbMAX je zaista odlicna stvar, samo cini mi se da ova verzija koja kruzi kod nas (a dobija se uz dbSIX) nije bas kompletna. Ali na Hekom-u je vidjena neka kompletna verzija, potrudicu da to stigne ovde.
clipper.752 neman,
> Evo, ovde je priheftan dbx.arj. Ima ulinkovane sledece > drajvere: > > - DBFNTX > - SIXCDX ( Sa stanovista datoteka, identican sa DBFCDX. ) > - DBFMDX > - DBFNDX A gde je SIXCDX ??? nema(n)
clipper.755 dsisic,
> A gde je SIXCDX ??? U stvari, kad malo bolje razmislim ja sam trebao da ostavim arhivu sa izvornim datotekama u svom originalnom obliku pa se igraj do mile volje. To cu i da uradim :) Sto se tice SIXCDX drajvera on je ulinkovan u onaj exe koji sam ostavio juce. Ako slucajno nije tamo, majke mi necu vise da ostavljam datoteke u pijanom stanju :) Elem, ja sam dobio od dobre vile iz inozemstva 1.5 verziju SIXCDX RDD-a za 5.01 i 5.2. ( Bivsi DBFSIX ). Ovih dana sam dobio i potvrdu da to mogu da razdelim ljudima u proizvoljnoj epsilon okolini u zavisnosti od interesovanja. Sam po sebi SIXCDX drajver je vrlo slican DBFCDX-u, sa jednom ( bitnom ) razlikom: Uz ovaj drajver ko dupe na noshu pasuje i MACHSIX biblioteka rutina za optimizaciju query-like komandi clippera. Query-like, citaj sve komande za obradu zapisa gde klauzula FOR ima smisla ( COUNT, SUM, AVERAGE ... ). MachSix uzme uslov koji si mu tutnuo u ruke i pregleda tabelu otvorenih indeksa, zatim izvrsi optimizaciju tako sto prvo pretrazuje tabelu po uslovima koji mogu da se podvedu pod otvorene indeksne kljuceve tako da u startu suzi opseg pretrazivanja. Sve to radi bez manuelnog menjanja ordera, seek-inga odredjenog zapisa i slicnih stvari. To znaci da za neku komandu tipa COPY TO ( tmpF ) FOR Ime == "ZIKA" .and.; GodinaRodjenja <= 1950 .and.; GradRodjenja == "BEOGRAD" pod uslovom da su polja Ime, GodinaRodjenja i GradRodjenja indeksirana, MACHSIX pronalazi ( i kopira ) zapise koji zadovoljavaju uslov gotovo trenutno, bez obzira koji je order ( tag ) aktivan. Za kraj bih pomenuo moju bivsu tabu komandu, a to je SET FILTER TO ... Skoro nikad se nisam usudjivao da je koristim, pogotovo ne za filtriranje tabele sa vise od stotinak zapisa. Covece, sada mogu da postavim uslov od 5,6 i vise uslova povezanih .AND.-ovima i/ili .OR.-ovima i da bez imalo stida pustim korisnika da vrsi browsing tabele sve dok je izraz po kome filtriram 'optimizabilan' po MachSixu. provera se vrsi prosto: if m6_IsOptimize( <exp> ) == 2 . . vozi Misko end To bi bilo sve za sada. Ja bih preporucio SIXCDX svakome ko se iole ozbiljno bavi clipperom. Malo mi je bez veze da ga kacim ovde ( mada je moguce ), jer je softver posteno kupljen, licenciran bla bla... iz razloga sto nisam upoznat sa tretiranjem attachinga licenciranog softvera. Ako je to uopste dozvoljeno i ako se ne kosi sa politikom Sezama ja bih ga okacio da vidi bela dana, a ako nije, lako cemo nismo na kraj sveta! Cao! dbx130.arj
clipper.756 djelovic,
> Ako je to uopste dozvoljeno i ako se ne kosi sa politikom Sezama > ja bih ga okacio da vidi bela dana, a ako nije, lako cemo > nismo na kraj sveta! Nije dozvoljeno.
clipper.757 bulaja,
========== newsbytes/ibm #1907, from newsbytes, 2594 chars, Mon Dec 20 17:00:06 1993 ---------- Computer Associates Shows Visual Objects To Oz Developers 12/20/93 SYDNEY, AUSTRALIA, 1993 DEC 20 (NB) -- Computer Associates has been holding developer previews of its upcoming product CA-Visual Objects for Clipper (VO) in Australia. The seminars were held for those Australian developers who were unable to attend CA's TechniCon 93 or last month's Comdex Fall computer show in Las Vegas. Visual Objects is the "wonder product" that has been in production since before Computer Associates bought Nantucket, the developer of Clipper. Clipper is an applications development environment and compiler for xBase products and VO is the Windows-based 'next generation' product. It supports both SQL/ODBC and traditional xBase (.DBF) databases. "CA-Visual Objects for Clipper is a hot item of interest to anybody currently programming in CA-Clipper, FoxPro, C, C++, Visual Basic or any programming tool required to develop robust, mission-critical Windows applications." explained Gary Mitchell, regional manager for Micro Products Division of CA in Australia. According to Mitchell, CA-Visual Objects for Clipper is a natural progression for xBase users wanting to develop Windows applications that benefit from object-oriented programming. "But it is also intended for the developers of the next generation of applications like mission critical, financial, and transaction processing applications that form the backbone of any enterprise," he said. Mitchell added that the speed of VO applications is 'in a different ballpark' to its competitors. "Because it compiles to machine code it runs close to the performance of C, 60 times faster than CA- Clipper and several hundred times faster than dBase." Sydney-based xBase expert Matt Whelan presented at the events. He developed CA's dBase compiler for Clipper and is considered one of the world's top Clipper and xBase authorities. According to Whelan, "Visual Objects is a watershed product - this is the tool that the corporate world has been waiting for. With support for both procedural and true object orientation, repositories, native code compiler technology, GUI screen designer tools, as well as support for xBase, SQL, ODBC and Client Server backends, CA-VO will become a turning point in the software development industry." Unfortunately for CA, Newsbytes notes that the package has been a long time coming. But, so has its main competitor, the dBase for Windows compiler from Borland. Industry observers believe that both products may be finally released by the middle of 1994. (Paul Zucker/19931220)
clipper.758 bulaja,
**** new file **** R:\IBMPC\CLIPPER\*.* ---------------------- 52capi arj 111576 Clipper 5.2c Technical Reference (.ng, .api, .ch)
clipper.759 dejanr,
>> 52capi arj 111576 Clipper 5.2c Technical Reference (.ng, .api, .ch) Konačno! :)) Ovo tražim već duže vreme.
clipper.760 fric,
Ima li koga na Sezamu da je, pišuću u Clipperu mrežne aplikacije, koristio TTS (transaction tracking) Novella 3.11 ? Trenutno eksperimentišem sa tim pa me zanimaju tuđa iskustva na tom polju (da ne otkrivam vruću vodu bez potrebe).
clipper.761 bulaja,
│Ima li koga na Sezamu da je, pišuću u Clipperu mrežne aplikacije, │koristio TTS (transaction tracking) Novella 3.11 ? └─── Ja nisam, ali ce ti zato mozda koristiti da pogledas (ako vec nisi:) poglavlja vezana za TTS u NG-ovima za Netto i CA-Tools.
clipper.762 bulaja,
**** new file **** R:\IBMPC\CLIPPER\*.* ---------------------- rcmplb20 zip 24944 RCmpLib v2.0: Clipper biblioteka za kompresiju datoteka History : v2.0 (20/09/93) - ExoSpace compatible library added (RCmpExo.lib) - <nCmpFact> parameter added to R_Compress() - New function: R_LastErr() - Updated error codes (in RCmpLib.CH) - CAUTION ! Files that are compressed using RCmpLib v1.xx can't be decompressed using RCmpLib v2.0 ! v1.2 (15/09/93) - Initialization error corrected - Bug in the Clipper Summer '87 version corrected (First byte of a decompressed file was always 00h ...)
clipper.763 dejanr,
Ovih dana je sa Hekoma download-ovan veći broj programa i biblioteka za Clipper. Evo spiska nekih od najzanimljivijih: ** 'cldebuge.arj' (7573 bytes) ** 'tbtext.arj' (6214 bytes) ** 'clpvar.arj' (17154 bytes) ** 'cl5_20a.zip' (45137 bytes) ** 'frankg.arj' (86579 bytes) ** 'tdco69.arj' (257559 bytes) ** 'sybcl501.exe' (249211 bytes) ** 'encryp.arj' (10724 bytes) ** 'debin.arj' (6331 bytes) ** 'dbfmem.arj' (2087 bytes) ** 'nb_rnd.arj' (75957 bytes) ** 'dbxexe.arj' (271776 bytes) Verujem da će se sve to ovih dana naći u direktorijumu, a ovde dajem spisak da ne bi neko nepotrebno to ponovo skidao iz sveta. Ako vam već telefon dejuje jeftino :) trošite ga za download nečeg drugog :)
clipper.764 dpredovic,
"Mali" problem sa blinkerom 2.01 i clipperom 5.01: Program ide otprilike ovako: 1. inicijalizacija biblioteke za rad sa modemom 2. swpruncmd(pkzip...) 3. čekam poziv 4. mali handshake 5. swpruncmd(gsz...) 6. hangup 7. čekam poziv 8. mali handshake 9. swpruncmd(gsz...) 10. hangup 11. deinicijalizacija biblioteke za rad sa modemom Problem je u tome što između tačke 2. i 3., i još češće negde između tačke 5. i 8. funkcija koja prima znakove prosto prestane da radi. Verujem da swpruncmd funkcija nešto brlja sa portovima, a ono rešenje sa swpsavcom ne radi, pošto se ovde radi o blinkeru 2.01. Ideje? PS. Jel ima neko neku clipper biblioteku za komunikacije? Ovo moje je kombinacija PCL c biblioteke i mojih extend funkcija. Voleo bih da vidim kako su to rešili u "belom svetu".
clipper.765 dzoric,
> PS. Jel ima neko neku clipper biblioteku za komunikacije? Ovo > moje je kombinacija PCL c biblioteke i mojih extend funkcija. > Voleo bih da vidim kako su to rešili u "belom svetu". U "belom svetu", tj u YUG smo rešavali probleme komunikacije iz Clipper-a, M.Velimirović (mivel) i ja. U pripremi je komercijalna biblioteka za te stvari, još malo da sredimo dokumentaciju. LIB je pisan u Turbo Asembler-u i koristi ZMODEM protokol. Ako te još nešto interesuje MAIL SEND...
clipper.766 bulaja,
**** new file **** R:\IBMPC\CLIPPER\*.* ---------------------- isnet arj 2025 fn_isNet() funkcija, patch za Netto.lib fn_isNet() provides a simple way to determine if the user running your program is logged in. if fn_isNet() == 0, she's in.
clipper.767 bulaja,
**** new file **** R:\IBMPC\CLIPPER\*.* ---------------------- cldebuge arj 7573 Saveti za korišćenje Clipper debuggera In this text I have collected several tips & tricks of the clipper debugger. I discoverd them at daily work. It's intended for all the people who are programming clipper since their child hood ;-), and who like to expand the capabilities of the debugger. I describe here, how to use the BLINKER-swapfunction in the debugger. How to adapt the debugger for your own needs. And the main thing: how to replace the workareainfo of the debugger by a selfmade function to support a data browser or RDDs like the SIX-Driver.
clipper.768 bulaja,
Ovo je neki RND generator (pseudo-slucajni brojevi) za Clipper. Nisam probao na sta lici :), al' mozda nekome posluzi. nb_rnd.zip
clipper.769 bulaja,
**** new file **** R:\IBMPC\CLIPPER\*.* ---------------------- straley zip 28188 Straley's discussion on re-usable subsystems (Nov '92) The key thing to remember in building a re-usable subsystem is that we can take what we know already existing, mimic the behavior, and thus, take control of our programming environment more completely. It also demonstrates the C-like versativilty of the Clipper language in that we use Clipper to build or add-on to the Clipper language. To understand this session, the following topics are needed: arrays, code blocks, structure programming, INKEY(), SETKEY(), and objects. ---------------- Mrzelo me da prevodim opis :).
clipper.770 aquarius,
<> PS. Jel ima neko neku clipper biblioteku za komunikacije? <> Ovo moje je kombinacija PCL c biblioteke i mojih extend <> funkcija. Voleo bih da vidim kako su to resili u "belom <> svetu". Meni poznato i posedujem : - CA-Clipper Tools III - SilverClip Library - Faxual, Fax Software Library Za ostale info, mail me. Aquarius
clipper.772 gari,
Posto pominjete Hekom BBS, molio bih nekog ljubaznog da mi da telefon, pa da platim posti novu centralu :) Unapred ponizno, pokorno, ... ... zahvalan, Vas ponizni, ... ... Gari.
clipper.773 dr.grba,
>> R:ĐIBMPCĐCLIPPERĐ*.* >> ---------------------- >> rcmplb20 zip 24944 RCmpLib v2.0: Clipper biblioteka za kompresiju Je li to onaj što ima SW screen po random uzorku, u trajanju od 8 sekundi?
clipper.774 bulaja,
│Je li to onaj što ima SW screen po random uzorku, u trajanju od 8 sekundi? └─── .T.
clipper.775 bulaja,
│Posto pominjete Hekom BBS, molio bih nekog ljubaznog │da mi da telefon, pa da platim posti novu centralu :) └─── +31 34 834072
clipper.776 ndragan,
/ Ali sve mušterije imaju Flush, zar ne? Od DOS 3.3 pa naviše, / standardna funkcija u okviru 21H. Prc je u tome što Flush (povlačenje kanapčeta na vodokotliću) ne znači da će u direktorij biti upisana ispravna dužina fajla, tako da se prilikom reseta u pogrešnom trenutku u načelu gubi poslednji alociran klaster; obično ga DOS dodeli prilikom sledećeg otvaranja .dbf fajla (tako je radio u mfoxplus, foxpro odbija da otvori), ali to nije _onaj_ klaster, nego neki nov, pun đubreta iz prethodnog fazona. I onda baza bude puna malih kineza. Bue_ Ndragan
clipper.777 ndragan,
/ Što se tiče CDX indeksa, čini mi se da je njihova najveća prednost ne / brzina već to što drže sve indekse u jednom fajlu. To doprinosi većoj To je što se tiče .cdx indeksa _pod_kliperom_. Inače bismo mogli pričati o totalno novim stvarima koje .cdx omogućava u foksu, gde stvari rađene logikom seek/set relation/do while...for itd, koje su radile koliko su radile, mogu da se zamene jednim jedinim Select ... from... into, koji odzviždi desetak puta brže od prethodnog metoda. U foksu, naravno. Bue_ Ndragan
clipper.778 ndragan,
/ Covece, sada mogu da postavim uslov od 5,6 i vise uslova povezanih / .AND.-ovima i/ili .OR.-ovima i da bez imalo stida pustim E, ovo već počinje da liči na ono kako to radi kod kuće. Napredujete.
clipper.779 ndragan,
/ izgleda predstavlja problem, sta se dobija komandom FOX-a : / <> On Key Label "." Keyb "," / i sta tu izigrava TACKA :))), i moze li se poistovetiti sa ne- Pa, ako zadaš evropski format brojeva, sa decimalnim ZAREZOM, on prilikom unosa očekuje da mu za decimale zaista kucaš zarez. Pošto je rečeni taster daleko, rešenje je da se za tu priliku natera taster "." da proizvodi zarez. To može da se setuje u when funkciji a skine u valid, s tim da opterećuje kod. / a gde pritiskom na TASTER zarez "," ??? / U OBA slucaja na DECIMALU. Mašala. A šta se vidi na ekranu? Zarez ili decimalna tačka? Mislim, koliko bi nas koštalo da ubacimo evropski format brojeva u numerički GET? Problem postaje ionako besmislen - decimale ostadoše još na količinama, sve ostalo je u celim dinarima. / Moze li nesto slicno da se uradi u FOX-u ? Pisanje sopstvenog drajvera za GET je možda teoretski izvodljivo, a i kad bi ga neko napisao ne verujem da bi umeo da ga ubaci u postojeći GET sistem; pisanje kompletnog alternativnog sistema samo radi evropskog formata je suludo. Kolji vola za kilo mesa. Za to je dovoljna varijanta sa On Key Label ".". Bue_ Ndragan
clipper.780 ndragan,
/ Bilo koji indeks koji koristi nešto jače od običnog B drveta ne čita / bazu, Ideja je da se indeksi čitaju čak i kod običnog Set Filter, Locate For itd, čak i u slučajevima kada je baza otvorena bez indeksa. Optimizacija je difolt, osim ako se naglasi (npr copy to trt for <uslov> nooptimize). Ako se u For opciji spominje bilo šta po čemu postoji teg, foks će prvo pročitati indeks za taj teg i time prvo stvoriti minimalni skup slogova koji dolaze u obzir za čitanje, pa će tek onda čitati njih. Zato se .cdx otvara automatski čim se otvori baza, i zato informacija o njemu stoji u zaglavlju baze. / mu palo na pamet da je najbrži mrežni rad onaj u kome se datoteke ne / bi stalno otvarale-zatvarale kako to radi većina "mrežo-podržavajućih" Ni u bunilu. Za svaku od otvorenih datoteka rezerviše se jedna brava (ima li neko bolji prevod za lock); za svaku od njih sistem ima posla da ustanovi da li je neko drugi zaključao deo na koji trenutno nišani aplikacija; indekse koji se usput ažuriraju treba osvežiti svima koji ih trenutno koriste; operateri imaju običaj da ostave masku otvorenu na ekranu i odu na doručak, a za to vreme baze zvrje otvorene; od viška otvorenih baza duva promaja po disku, čime se disk preterano hladi i oće da se stegne kolomast u osovini... hm, preterao sam. Tj, otvaranje sigurno ne spada u najbrže radnje, ali je zato zatvaranje stvar koja bitno doprinosi sigurnosti podataka. Ispiranje bafera i ostale zezalice jesu korisne, ali nisu savršene, i zato je sigurno da je zapisano tek onda kad se baza zatvori. Bue_ Ndragan
clipper.781 bstevan,
Zdravo ! Interesuje me dali neko ima iskustva sa Flipper-om, i dali je ta biblioteka pouzdana i koliko. Takodje me interesuju iskustva sa DGE 4.0 i GForce, grafičkim bibliotekama za Clipper. pozdrav, BSTEVAN
clipper.782 bulaja,
│To je što se tiče .cdx indeksa _pod_kliperom_. Inače bismo mogli pričati │o totalno novim stvarima koje .cdx omogućava u foksu, gde stvari rađene │logikom seek/set relation/do while...for itd, koje su radile koliko su │radile, mogu da se zamene jednim jedinim Select ... from... into, koji │odzviždi desetak puta brže od prethodnog metoda. │U foksu, naravno. └─── E pa moracu da te razocaram :) - isto to moze i Clipper koriscenjem SIxRDD drajvera i MachSIx query optimizera. Blizi se dan kada ces i ti poceti da razmisljas o prelasku sa FoxPro-a na Clipper :).
clipper.783 aquarius,
<> Takodje me interesuju iskustva sa DGE 4.0 i GForce, <> grafickim bibliotekama za Clipper. GForce , ? Imam interesantno iskustvo. Aquarius
clipper.784 i.a.n.,
>> To je što se tiče .cdx indeksa _pod_kliperom_. Inače bismo mogli >> pričati o totalno novim stvarima koje .cdx omogućava u foksu, Za brzinu Foxove SQL SELECT naredbe više je zaslužan ugrađeni optimizator nego .CDX indeksi. Ako se tabele pootvaraju klasičnim USE trt IN 1 INDEX teraj_more_do_bele_zore USE mrt IN 2 INDEX ... pa se zada SELECT sa uslovima koji delimično ili potpuno odgovaraju indeksnim izrazima, optimizator stupa u dejstvo i uradi svoje. (Što ne znači da na .CDX-ove ne treba preći što pre.)
clipper.785 i.a.n.,
>> rečeni taster daleko, rešenje je da se za tu priliku natera taster >> "." da proizvodi zarez. To može da se setuje u when funkciji a >> skine u valid, s tim da opterećuje kod. Mogu i da se zamene mesta tačke i zareza, ako je tačka potrebna kod unosa: ON KEY LABEL "." KEYBOARD "," PLAIN ON KEY LABEL "," KEYBOARD "." PLAIN ali ne vidim razlog da se forsira zarez kao decimalni separator, dosad nisam sreo ama baš nikog kome bi decimalna tačka smetala.
clipper.786 mpeti,
Ehej narode ! Ne znam da li sam pogrešio, ali mi se učinilo da je neko pominjao da Clipper brže radi ako se koristi DBFCDX drajver. To me je zaintrigiralo i probao sam da ga koristim u jednoj od mojih aplikacija. Dobro de, nisam očekivao da će raditimnogo brže, ali sam se nadao da će raditi bar istom brzinom ili tek nešto malo sporije nego sa DBFNTX. Medjutim grdno sam se iznenadio. Kod mene je SKIP za oko 75% DUZI (čitaj sporiji :( ) pod DBFCDX u odnosu na DBFNTX. Da li sam ja negde pogrešio, ili je to nedoradjenost RDD drajvera. Ima li neko neku dobru ideju šta bi moglo da se uradi, po ovom pitanju. Mislim voleo bih da koristim CDX zbog malih i višestrukih indexa (čitaj veće pouzdanosti, manje problema pod mrežom, ...), ali ovako drastičan pad performansi ne smem dozvoliti. Zamislite TBrowse tabelu koja radi 75% sporije nego na šta je korisnik već navik'o. Bruka :(. Uz poruku prilažem i test primer, kako bi mogao bilo ko da kontroliše moju tvrdnju, i naravno da se vidi šta to kod mene treba da radi. Isto vas molim da, ako kod nekoga budu razlike ispod 20% da mi se obavezno javi na mail ili još bolje telefonom na (024) 26-618. Pozdrav svima MPeti test.zip
clipper.787 snemcev,
Ima li neko SW biblioteku koja omogućava radio buttons-e u Clipper-u?
clipper.788 dr.grba,
>> To je što se tiče .cdx indeksa _pod_kliperom_. Inače bismo mogli >> pričati o totalno novim stvarima koje .cdx omogućava u foksu, gde >> stvari rađene logikom seek/set relation/do while...for itd, koje su Aman, komšija... Već godinu dana te gledam kako potpaljuješ (:║■, ali izgleda ne ide, pa ne ide. Dođi na kafu da ti pokažem SIXCDX. (:║■ - user wears sombrero
clipper.789 bulaja,
│Ima li neko SW biblioteku koja omogućava radio buttons-e u Clipper-u? └─── R:\IBMPC\CLIPPER\*.* ---------------------- pushbu arj 20796 Push (radio) buttons za ubacivanje u GET system
clipper.790 fric,
> Ima li koga na Sezamu da je, pišuću u Clipperu mrežne > aplikacije, koristio TTS (transaction tracking) Novella 3.11 ? Ajiii... Pa zar niko od silnih kliperaša što prave mrežne aplikacije ne koristi TTS !? A ja naivan još mislio: kakav blam, svi ozbiljni ga sigurno koriste a ja još ne, itd. Elem, evo u par reči osnovnih rezultata eksperimentisanja (Clipper 5.01 & Novell 3.11 & nflib 2.0): TTS radi i sa .dbf i sa .ntx fajlovima, naravno ako se i jedni i drugi fleguju kao TTS-abilni. Prvi problem, za koji trenutno ne vidim rešenje, je kako ih flegovati/unflegovati fajlove direktno iz kliper aplikacije (postoji realna potreba za tim, jer T flegovani fajlovi ne mogu da se brišu, a i pri instalaciji sa diskete treba fajlove flegovati kad stignu na mrežni disk). I implicitni i eksplicitni TTS rade, ali se javlja drugi problem koji se uz pažnju i žrtvovanje komfora pri radu ipak može rešiti: kada se u toku trajanja transakcije sa jedne stanice menja sadržaj zapisa (replace) i potom isprazne write baferi (commit, go to, stabilize(), itd.), druga stanica se blokira ako se sa nje pokuša čitanje tog zapisa čiji je sadržaj upravo flushovan. Ta stanica ostaje blokirana sve dok se transakcija na prvoj stanici ne završi. Ako prva stanica padne u toku transakcije, ova druga koja pokušava da čita ostaje blokirana sve do trenutka kad se stanica (tj. user) sa kojoj je transakcija započeta ponovo ne uloguje. Znači - promene koje nastaju u toku transakcije su kod drugih korisnika vidljive tek kad se ista završi, a ne daj Bože da neko pokuša da ih pročita pre toga ! Pored navedenih problema, ostaje dilema ima li još anomalija (koje očekujem, imajući u vidu dosadašnje iskustvo). Takođe je evidentno da postoje mnoge stvari o korišćenju TTS-a i Novell-a o kojima u standardnim Novell manualima (Concepts i sl.) nema reči. U Nanfor ng-u piše u stilu: for further information ... consult your NetWare manuals, no to je već možda stvar za PC.OS:mreže. Toliko za sada.
clipper.791 dzoric,
Imal' neko NG za Blinker 2.01. Ako moze na mail. Pozdrav ... Dejan
clipper.792 bulaja,
**** new file **** R:\IBMPC\CLIPPER\*.* ---------------------- dm_101 exe 18689 Vern Six's DemoMaker: olaksava pravljenje demo verzija What is DemoMakr.Lib? DemoMakr.Lib is a function library designed to help you easily create a functioning demonstration version of your Clipper v5.0x application(s). What DemoMakr.Lib does DemoMakr.Lib provides functions that allow you to limit the execution of your application by date, number of executions or both. DemoMakr.Lib also provides a function that allows you to "register" your application and allow it to function normally in non-demo mode. You can also store up to three fifteen character user defined fields that you can later retrieve from within your application.
clipper.793 snemcev,
>> pushbu arj 20796 Push (radio) buttons za ubacivanje u GET system Push buttons-i rade perfektno, a radio... Em ih nema (morao sam da čupam .obj iz .lib), em horizontalno poređani pokazuju neprijatan bag koji se ispoljava po pravilu čas sam ovde, čas onde. Anything else? Please? :(
clipper.794 bestbp,
I ja sam imao slicnih problema. Bsd, zna li neko kako moze da se napravi sopstvena biblioteka kao i NG za nju. Imam par desetina funkcija pa bi mi to bilo jako interesantno zato sto te funkcije cesto koristim. pozdrav
clipper.795 goranr,
>> Interesuje me dali neko ima iskustva sa Flipper-om, >> i dali je ta biblioteka pouzdana i koliko. Gledao sam Flipper, i ne čini mi se loš. Ono što on nudi je skoro čista statistika+kontrola miša. žini mi se vrlo pouzdan, tj. nisam primetio nijedan bag, ali baš se nisam ubijao od gledanja :))) >> Takodje me interesuju iskustva sa DGE 4.0 i GForce, >> grafičkim bibliotekama za Clipper. Za DGE 4.0 ne znam, ali sam radio i sa Gforce, i _JAKO_ mi se dopao. Jedino je šteta što radi samo sa VGA, ali ono što radi mi se jako sviđa. Još jedan plus je što ima font editor, screen editor i icon editor, i te stvari su pisane baš u GForceu... ÔOPAH
clipper.796 mpeti,
>> Push buttons-i rade perfektno, a radio... Em ih nema (morao sam da >> čupam .obj iz .lib), em horizontalno poređani pokazuju neprijatan >> bag koji se ispoljava po pravilu čas sam ovde, čas onde. Anything >> else? Please? :( Evo nešto sam čačkao oko radiobuttons-a (neke prepravke source-a za push button-e iz pushbu.arj). Tu ti je prikačen modifikovani .ch i prepravljeni .prg. Ti pogledaj pa vidi možda možeš da ga iskoristiš. Inače radio sam samo minimalno testiranje, ali imaš source pa ako nadješ neki bug verujem da ćeš se snaši. Tu je i doterana verzija pushbu.prg, koja ne koristi statički niz nego get:cargo, pa ne moraš da lupaš glavu o funkcijama u stilu ...BtnKill. Ambicija mi je bila inače da uvedem podršku za miša, unutar get sistema ali još nisam imao vremena. Ako ima nekih problema ti se javi pa da vidimo. Pozdrav MPeti. radiobtn.zip
clipper.797 ematic,
> │Posto pominjete Hekom BBS, molio bih nekog ljubaznog > │da mi da telefon, pa da platim posti novu centralu :) > └─── >+ 31 34 834072 <──────────────────────────────────────────────────────┐ │ Clipper Developers Group of Netherlands │ │ Address: Posbus 506 │ 7100 AM Winterswijk │ NETHERLANDS │ Phone #: 31 -543-018058 Fax #: 31 -543-015399 │ │ BBS : Hekom BBS │ Line(s): - 34-833613 <─────────────────────────────────────────────┘ Contact(s): Group Coordinator .......... Group Coordinator Nisam proveravao, ali bih želeo da saznam pre nego što pozovem Hekom koji je broj ispravan, 834072 ili 833613. Možda oba?
clipper.799 bulaja,
│Nisam proveravao, ali bih želeo da saznam pre nego što pozovem │Hekom koji je broj ispravan, 834072 ili 833613. Možda oba? └─── Ovaj prvi je sigurno ispravan :), a provericu i ovaj drugi. Dont' worru nego zovi i pokupi nam nesto lepo odatle :). Uz poruku je okacen spisak fajlova (uglavnom Clipper related) sa Hekom BBS-a. Takodje je stavljen u dir spisak svih Clipper User Groups-a around the world gde ima i nekih dvadesetak telefona BBS-ova vezanih za Clipper, pa ko ima Jupak ili darezljivu firmu :), moze da pogleda sta se tamo korisno moze naci :). hekomcl.zip
clipper.801 nbatocanin,
Nedavno se pojavio dugo očekivani Clipper za Windows. Proizvod se zove Visual Objects i trenutno je u fazi testiranja. Oni koji su ga videli predstavljaju ga kao razvojni sistem sledeće generacije. Stvar je izuzetno interesantna, pa evo nekoliko reči o tome. Radi se o razvojnom sistemu namenjenom pisanju poslovnih programa pod Windowsima. Zove se Visual Objects i ima elemente paketa Visual Basic, Visual C++, Pascal, dbFast i naravno Clipper. Cela aplikacija se definiše kao skup "objekata" koji mogu biti različite stvari: procedure, klase, metodi, meniji, ... Program se kreira interaktivnim alatkama za kreiranje menija, maski za unos, izveštaja itd. Na programeru je da izabere objekat koji želi da menja, a integrisana okolina poziva odgovarajuću alatku u zavisnosti od tipa objekta: editor, generator izveštaja i sl. Sav posao oko smeštanja procedura itd. u datoteke preuzima integrisana okolina. Uopšte rad je visoko automatizovan. Za user interface zadužena je OO biblioteka CommonView. Podaci u bazi podataka će biti u različitim formatima. Pominje se DBF i SQL format. Sudeći po fleksibilnosti RDD-a, ne bi me čudilo da konačan spisak bude podugačak. Osnovni jezik je Clipper sa izmenama: puna OO implementacija, pa se sada mogu kreirati klase, može se koristiti nasleđivanje i sl. Što se tiče performansi, stvari stoje jako dobro: VO će biti PRAVI kompajler i generisaće ne p-kod nego mašinski kod. Ponašanje kompajlera je inteligento: ukoliko se u delu programu ne koriste dinamičke promenljive, makroi i sl, on generiše mašinski kod, a u suprotnom p-kod. Ovo je ono što sam lično nestrpljivo očekivao i što će konačno rešiti problem povezivanja sa C-om jednom za svagda: ubuduće neće ni biti potrebno! Preliminarni testovi kažu da je VO prevod brži od Clipper-a oko 60 puta! Uvedeno je još dosta tipova podataka (VOID, INT, FLOAT, BYTE, PTR, ...), a sudeći po priloženim listinzima time nije završena prepravka jezika. Šta kažete na deklaraciju LOCAL lRet AS LOGIC ili FUNC Test (nVal AS FLOAT) AS LOGIC PASCAL Lepo je što se ova tipizacija ne mora koristiti. Što se tiče izmena jezika, obećava se stepen kompatibilnosti između 60 i 90%. Ovo je razumljivo s obzirom da je Win različita platforma u odnosu na DOS, ali ipak pomalo zabrinjava. VO će će bez problema prevesti stari program (rađen verzijom 5.x) i napraviti pravi Win EXE, ali će interfejs biti karakter orijentisan. Rad u pravom Win stilu se može postepeno ubaciti. E sad, šta će od ovoga na kraju ispasti, ke vidime!
clipper.802 bestbp,
> Nedavno se pojavio dugo ocekivani Clipper za Windows. Proizvod se > zove Visual Objects i trenutno je u fazi testiranja. Oni koji su ga > videli predstavljaju ga kao razvojni sistem sledece generacije. Stvar > je izuzetno interesantna, pa evo nekoliko reci o tome. I ja sam cuo slicno o ovome jos dosta ranije, jer sam bio zainteresovan za CL4WIN. Naime, postoji par biblioteka od kojih je verovatno "najpoznatija" CL4WIN biblioteka koja omogucava rad pod WINDOWS-ima. Video sam demo od nje, a uz gore navedenu je stajala napomena: ... biblioteka je zvanicno nagradjena od strane CA i predstavlja preliminarny verziju until VISUAL OBJECTS ne dodje na svet. Tu je bio i mali opis VO ali je ipak siri ovaj od nbatocanina - Hvala. Usput, ako je neko zainteresovan za ovo, imam demo, pa neka mi ostavi mail. pozdrav
clipper.803 ematic,
> Takodje je stavljen u dir spisak svih Clipper User Groups-a > around the world gde ima i nekih dvadesetak telefona BBS-ova Odatle sam i iskopao ovaj drugi broj za Hekom. Uglavnom videćemo šta može da se uradi :)
clipper.806 bestbp,
Pravim neku aplikaciju u CLipperu pa su mi potrebni ziro-racuni organizacija sa njihovim imenima (organizacija) . Da li neko zna da li se negde moze nabaviti ova baza (da je ne bih ponovo unosio). Usput, obavesten sam da to imaju IRC (Informativni Racunski Centar) 683-411 je tel, pa ako neko zna nesto vise o ovome ... pozdrav
clipper.807 dejanr,
>> Pravim neku aplikaciju u CLipperu pa su mi potrebni ziro-racuni >> organizacija sa njihovim imenima (organizacija) . Da li neko zna >> da li se negde moze nabaviti ova baza (da je ne bih ponovo unosio). Ima raznih baza tog tipa, i vrede otprilike koliko koštaju. Za reda 1000 maraka može se dobiti vrlo dobra baza sa pouzdanim podacima o svih 200-tinak hiljada firmi u Srbiji i Crnoj Gori (imena, žiro računi, adrese, matični brojevi i ostali podaci). Za reda 100-tinak maraka može se dobita baza manjeg broja firmi, sa znatno nekvalitetnijim podacima. Od raznih statističkih zavoda se uz malo truda i mnogo moljakanja može dobiti neka baza i besplatno, ali obično još slabijeg kvaliteta. Ako te interesuju detalji, može na mail :)
clipper.808 bcetina,
SeMća li se ko kako se u FRM izveštajima kod CLIPPERA 87 rešava problem TOTALA koji su veći od 10 cifara. Kuca zvezdice iako su i polja i prostor u izveštaju veći. Na primer to kod foxa radi, normalno.
clipper.809 d.petrovic,
1. Izvinjenje svima kojima nisam odgovorio blagovremeno na mail ili poruku u konferenciji. Privremeno sam bez telefonske linije pa PAD skidam koz_zna_odakle i EXEC šaljem ko_zna_kada... :((((( 2. Ovo ne radi kako treba: ====================== mm := Select(1) blabla() Select(mm) ====================== Ovo radi ono što prethodni zajebe: ====================== mm := Select() Select(1) blabla() Select(mm) ====================== 3. Unapred se izvinjavam, ako se nekad, negde, pojave duple poruke. Ni sam neznam gde je koji exec ;)))
clipper.810 d.petrovic,
Ă> Valjda opšti princip, jer ako skikne da se nanese što manje štete Ă> po otvorene datoteke. Ako (!!!) skikne (izem ti ga što ga reče ;)))) ) nema štete. Jedino ne može niko da ih otvori ekskluzivno, a u principu na to ima pravo samo jedan čovek.
clipper.811 d.petrovic,
Ă> E sad, fora je i tome što svaki otvoreni fajl i index guta mem. Ă> Kad neko radi u kliperu, teško će se odreći nekih 100 kb za te Ă> stvarčice. Kad neka mašina ima > 640 KB (trenutni standard je recino 2-4 MB) nije mu kritično 100 KB. Ne zamerite što se uključujem u diskusije sa zakašnjenjem, ali ima razloga :)). Zna li neko koliko memorije zauzme otvorena jedna baza, a akoliko otvorenih 10 baza ? Po mogućstvu i indekse uzimati u obzir.
clipper.812 d.petrovic,
Ă> A zar ne bih mogao da iskoristim funkciju Open(dbf_name)? Pa u Ă> njoj da obavim sve vudu vradžbine? Da obavim sve vradžbine i uštedim na veličini aplikacije (i brzini) treba mi da znam unapred šta je u kojo radnoj oblasti. Ne moram sve da otvorim, ali čak i kad mi ne treba BAZA2.DBF BAZA1.DBF se otvara u oblasti 1, a BAZA3.DBF se otvara u oblasti 3. Konfiguraciona datoteka se UVEK otvara i otvorena je STALNO da bi se onemogućile sve radnje koje zahtevaju ekskluzivno otvaranje baza (dok je ona otvorena neko radi, može se videti i ko) i šef na programi ne može da vrši pakovanje baza. Kad je već taki slučj što ne bi i ostale ostale otvorene. Logično je da ih sve zatvorim kad se korisnik vrati u glavni meni (jer program može tu da zvrji od 6:30 - 14:30), ali zbog nekih drugih razloga (svaki korisnik ima svoj username i prema njemu drugačije menije) ni to ne radim.
clipper.813 d.petrovic,
Ă> E pa moraju s vremena na vreme da se zatvaraju. Nemaju sve Ă> mušterije UPSove na svim mašinama. Sad je samo štos u tome da se Ă> to minimizuje. Kakve veze sad zatvaranje ima sa UPS-ovima? Pa svi se slažemo da, ako ne zatvaraš, koristiš redovno DBCommit().
clipper.814 d.petrovic,
Ă> -> (((: A ja mislio da sam jedina lenština među kliperašima na Ă> Sezamu (((: Ă> Ă> Nije ovde u pitanju samo lenjost, već mi se dešavalo da zaboravim Ă> da dodam funkciju u skript fajl. A najgora stvar je ta kada Ă> izbacujem neku funkciju, Sa Blinker-om sam se ponovo rodio :)). Nije sporo prevođenje, samo me nervira kad počne novi modul da me zeza pa pre RMAKE-a (.rmk je po defaultu na "/n /a /l" moram zbog ručnog "clipper novi /n /a" (bez /l) da čekam puno linkovanje. Znam, znam... ja to NEĆU da izbacim iz radnih verzija. Moje ustavno pravo je da budem mazohista i nemoj da se neko usprotivio ;>>> Retko se to dešava u poslednje vreme na sreću :))
clipper.815 d.petrovic,
Ă> Imam predlog da zajedničkim snagama uradimo Public Domain Ă> Library za Clipper( SEZAM.LIB ), možda po uzoru na Nanfor.lib. Ă> Svako bi dostavio predlog funkcija koje bi ušle u LIB. Tačno je Ă> da postoje lib-ovi koji rade sve i svašta ali ima i dosta Ă> specifičnih stvari koje su vezane za naše podneblje. Ajde da Ă> sve to sredimo, dokumentujemo i stavimo svima na raspolaganje. Ă> Možda bi moderator konferencije mogao da vodi ovaj projekat. Predlog za početak: - Svako da ostavi spisak funkcija iz NANFOR-a koje koristi (za to ima source, ja lično koristima 10-ak funkcija, ostale su blesave ;)) ). - Jedan dobrovoljac da spakuje source, .obj-ove i sezam.lib u jednu arhivu i po novim predlozima redovno upgraje i prosleđuje bulaji.
clipper.816 d.petrovic,
Ă> Interesuje se jedan moj drugar da li postoji neka biblioteka za Ă> Clipper za rad sa bar kodom? žitač bar koda nisam koristio, ali sam čuo da se vezuje između tastature i računara. Ako je tako ne treba mu funkcija.
clipper.817 d.petrovic,
Ă> Treba procitati makar jednom, da ti ostane u secanju da tako Ă> nesto postoji, pa posle samo potrazis. Uostalom zar tvoja poruka Ă> 11.206 ne zapocinje ovako : Jel neko negde pročitao da postoji funkija StrZero() ?? Kad mi je zatrebalo nešto takvo napravio sam svoju funkciju i rekao banex-u posle 2-3 dana. On mi kaže da postoji i onda ja obriišem svoju ;))) Nisu dovoljne ni knjige ni NG. BTW. ko ima najsvežije vesi o cajper_radnoj_grupi ?
clipper.818 snemcev,
>> Ako te interesuju detalji, može na mail :) Nemoj u mail, interesuje još nekog.
clipper.819 bulaja,
│Pravim neku aplikaciju u CLipperu pa su mi potrebni ziro-racuni │organizacija sa njihovim imenima (organizacija). Da li neko zna da │li se negde moze nabaviti ova baza (da je ne bih ponovo unosio). └─── Firma u kojoj radim prodaje baze podataka (zajedno sa programima koji omogućavaju pregled, pretraživanje, mailing,..) svih firmi u SRJ, sa statističkim (naziv firme, adresa, delatnost, žiro račun, matični broj, ...) i poštanskim (naziv firme, adresa, telefoni, podela po sektorima za veće firme) podacima. Zainteresovani mogu da mi se obrate na mail.
clipper.821 arazumenic,
-> Sa Blinker-om sam se ponovo rodio :)). Nije sporo prevođenje, samo me -> nervira kad počne novi modul da me zeza pa pre RMAKE-a (.rmk je po -> defaultu na "/n /a /l" moram zbog ručnog "clipper novi /n /a" -> (bez /l) da čekam puno linkovanje. Nisam razumeo šta si hteo da kažeš, pogotovo onim "ručnog". Saša
clipper.822 madamov,
> Ako (!!!) skikne (izem ti ga što ga reče ;)))) ) Pa, nije riknuo. B) Kad skikne, nastaviće sledeći put da radi, a kad rikne - gotov je. B)
clipper.823 dr.grba,
Dva pitanja za nbatocanina, zbog sadrzaja ih stavljam ovde, budući da me zanima mišljenje i ostalih... U umetku "Clipper 5.2" u poslednjim "Računarima" se pominje tzv. mađarska notacija. Potpuno je jasno šta ona znači i čemu služi. Voleo bih da znam poreklo ovog naziva. I jedna stvar u kojoj želim da izrazim svoje neslaganje, a to je terminološki momenat pojma "relaciona baza". Dopusti da najpre citiram sporni deo (str. 22, poglavlje "Rad sa bazom podataka") : "Clipper koristi takozvani RELACIONI MODEL baze podataka. U relacionom modelu se realni objekti i njihovi odnosi predstavljaju preko relacija, odnosno tabela. Svaka od tih tabela čuva podatke o nekom objektu. Na primer,.. ...Ovakav način organizovanja podataka je veoma jednostavan, pregledan i lako shvatljiv. Naziv RELACIONE baze podataka dolazi od matematičke osnove na kojoj je zasnovana ovakva organizacija. Naime, u matematici se koristi pojam RELACIJA za određeni skup uređenih n-torki i to se može najjednostavnije predstaviti tabelom kao na slici...." E, sad... Slažem se sa matematičkim pojmom relacije, kao i sa prikladnošću da podaci budu prezentirani kao tabela. Ali se ne slažem sa uravnilovkom tabela <=> relacija u kontekstu pojma "relaciona baza podataka". Naime, naziv "relaciona baza" ne potiče zbog te mogućnosti prezentacije u tabeli, već zbog mogućnosti da se uspostavi relacija između dve ili više baza postedstvom zajedničkog podatka - ključa relacije. Da ne zalazimo u implementaciju, mislim na "set relation...". Relacioni model predstavlja poslednju generaciju u razvoju i projektovanju baza podataka. Prethodili su tzv. mrežni model i hijerarhijski model. Ovaj drugi je čak još uvek zastupljen na tržištu (IDS II DBMS). Relacioni model u sebi podrazumeva implementaciju mreže i hijerarhije. A tabelarna prezentacija podataka tek predstavlja jedan zgodan vid implementacije korisničkog pogleda, koji je uostalom ostvariv i u hijerarhijskom modelu. Nadam se da sam bio jasan u onome što sam mislio. Spreman sam i dalje da razjasnim, ako je potrebno. Ukoliko sam na pogrešnom tragu, a mislim da nisam, spreman sam da korigujem svoj stav, naravno uz prikladnu argumentaciju drugačijeg mišljenja. Nenade, nadam se da te ne vređa ovo što napadam ovaj deo tvog (inače odličnog) umetka. Uostalom, tebi je već dobro poznato šta mislim o tvom radu. Od tebe bih najpre voleo da čujem par reči na ovu temu.
clipper.824 bulaja,
**** new file **** R:\IBMPC\DATABASE\*.* ---------------------- dbx132 arj 188705 dbMAX v1.32, utility za rad sa DBF datotekama (obj+hlp) dbx132ex arj 271776 dbMAX v1.32, utility za rad sa DBF datotekama (exe) dbMAX(tm) Version 1.32 Copyright (c) 1991-1993 David A. Kennedy. All rights reserved. INTRODUCTION ============ dbMAX is an xBASE utility that will allow complete multi-user access to any xBASE databases and indexes. The program uses a CUA-type menu system with Brief(R)-style hot keys and can browse databases in up to 250 moveable, sizable windows. Almost every Clipper(R)/dBASE(R) command is available, allowing dbMAX to replace the dBASE Assist/Control Center or Computer Associates' DBU utility. dbMAX also has a partially open architecture, allowing programmers to create their own menus and operate on dbMAX internal data structures.
clipper.825 milanv,
Iz ovog pitanja verovatno će delovati kao da sam upravo pikirao s marsa :) al' ja propisno olupah glavom zid a i dalje mi nije jasno kako da dođem do pojedinačnih fajlova sa instalacionih disketa CLIPPER-a 5.1, konkretno GETSYS.PRG, kome sam namerio izvesne ispravke. Da podsetim, fajlovi su u meni nepoznatom .LIF obliku.
clipper.826 bulaja,
│kako da dođem do pojedinačnih fajlova sa instalacionih disketa CLIPPER-a │5.1, konkretno GETSYS.PRG, kome sam namerio izvesne ispravke. │Da podsetim, fajlovi su u meni nepoznatom .LIF obliku. └─── GetSys.prg se instalira u \clipper5\sample\sys\ zajedno sa ostalim primerima, ako prilikom instalacije zadas da ti se kopiraju i primeri.
clipper.827 nbatocanin,
> U umetku "Clipper 5.2" u poslednjim "Računarima" se > pominje tzv. mađarska notacija. Potpuno je jasno šta ona > znači i čemu služi. Ima u BYTE od 1991. lep tekst. Autor teksta je autor i ove notacije (Charles Simonyi). Kaže da je prvi put upotrebio ovu notaciju 1972. Zove se ovako zato što je ovaj tip Mađar i što se u njoj tip promenljive stavlja pre imena, kao kod ličnih imena u Mađarskoj. Mislim da je članak odličan i rado bi ga video prevedenog u R. > I jedna stvar u kojoj želim da izrazim svoje neslaganje, a > to je terminološki momenat pojma "relaciona baza". > Ali se ne slažem sa uravnilovkom tabela <=> relacija u > kontekstu pojma "relaciona baza podataka". C.J. Date: Database Systems - "The reasons such systems are called 'relational' is because the term 'relation' is essentially just a mathematical term for a table. For most practical purposes, indeed, the terms 'relation' and 'table' can be taken as synonymous." > Nenade, nadam se da te ne vređa ovo što napadam ovaj deo > tvog (inače odličnog) umetka. Taman posla, već sam mislio da te teorijske delove svi preskaču ;)
clipper.828 ndragan,
/ ali ne vidim razlog da se forsira zarez kao decimalni separator, dosad / nisam sreo ama baš nikog kome bi decimalna tačka smetala. Ne vidim ni ja - čak sam celu ovu pantljičaru od niza poruka posvetio prebrojavanju problema koje to stvara. Kad su se pojavili šifonjeri, kružila je priča da će računari naterati ceo svet da standardizuje mere, da će se uvesti SI itd. Jedino su Englezi napravili decimalnu lovu, a sve ostalo je ostalo na "svaka vaška obaška". Obično ispisivanje datuma, po kalendaru koji je svetski priznat više vekova, ima desetak varijanti. Ameri i Englezi uporno forsiraju colove, unce, jarde (i milijarde :), nemački predlog o podeli pravog ugla na sto gradi je ugrađen u nešto kalkulatora i ni u jedan programski jezik, i najzad, Evropa uporno koristi decimalni zarez i tačku za hiljade, osim na računarima koji su američka izmišljotina i rade upravo obratno. Nije problem odštampati broj sa decimalnim zarezom, to se uveliko radi, ali za unos je to maksimalno bezvezna tehnika kad je zarez tako daleko. Mada, kad se setim PAKA terminala, imali su i zarez (iznad entera, a plus je bio upola manji). Bue_ Ndragan
clipper.829 ndragan,
/ fn_isNet() provides a simple way to determine if the user / running your program is logged in. if fn_isNet() == 0, Da ne bude samo fn_isNovel()? Imam nezgodno iskustvo sa sličnim funkcijama, koje prepoznaju neke mreže, a neke ne. U Foksu, sys(0) treba da da ime čvora/stanice na kome se nalazite, propraćeno jednobajtnim id brojem. To radi pod RPTI mrežom bez problema. Ista funkcija pod Novelom daje "# 0", tj. "nisi u mreži". FoksPro, inače, ume da sarađuje sa Novelovim spulerom, tj ima naredbu tipa Set Print To Spooler <ime> ili tako nešto. Pretpostavljam da se ta i slične funkcije oslanjaju na neke službene adrese na koji mreže ostavljaju neke svoje oznake dok rade; stvar je uveliko problematična zbog poznate "standardnosti" DOSa. Nema garancije da postoji bajt u onih 640 K koji sve mreže koriste, pa još na isti način. žak sam spremniji da poverujem da postoje značajne razlike i među verzijama iste mreže. Bue_ Ndragan
clipper.830 ndragan,
/ SIxRDD drajvera i MachSIx query optimizera. Blizi se dan kada ces i / ti poceti da razmisljas o prelasku sa FoxPro-a na Clipper :). Da sam imao vremena da naučim C, možda. Previše sam razmažen interpreterskom okolinom. Gooomilu stvari uradim iz komandnog prozora. Kad bih za to sve morao da pišem rutine, pa da ih kompajliram, život bi mi bio mnogo kraći - dok sam radio u (kobolu i u) petlji editor-> kompajler-> linker-> run, za svako linkovanje duže od minuta palio sam cigaru. Sve što možete da uradite na računaru, a traje preko deset sekundi od editovanja do testiranja, škodi zdravlju :> Btw, Kliper to nema u dućanu, to se dokupljuje na buvljaku pa se instalira pa dojavljuje linkeru pa je često i kompatibilno jedno s drugim. Foks sve to ima u startu i radi odmah. Dakle, nismo iz iste ulice (nisam ni ja iz iste ulice, preselio sam se :) Bue_ Ndragan
clipper.831 ndragan,
/ Za brzinu Foxove SQL SELECT naredbe više je zaslužan ugrađeni / optimizator nego .CDX indeksi. Ako se tabele pootvaraju klasičnim A optimizator upravo najbolje voli cedeiksove. Baška što dobro odabranim tegovima možeš da ubrzaš mnoge stvari. Btw, setih se da priupitam kliperaše da li cdx drajver ima isti bugi ko u foksu: indeksirajte jednu datoteku pet ili deset puta uzastopce po istom tegu, ne brišući već postojeći istovetan teg. Ako to uradite iz Foksa, .cdx će nenormalno da raste. Zato smo u rutine za indeksiranje ubacili da se generiše jedno Delete Tag All pre samog indeksiranja. Nije neki bag, baš i ne pravi neku štetu, osim što malo pojede diska dok ga ne primetite. Kako se ponaša Kliper? Bue_ Ndragan
clipper.832 saks,
Pazi ovako: U uputstvu za SixDrivers (imam verziju 1.0), lepo pise da se reindeksiranjem taga isti ne brise, vec se nadopisuje na postojeci CDX. Ako hoces da CDX ne raste, nemoj reaindeksirati ni tagove pojedinacno, ni CDX u celini, vec ih kreiraj. Sledi => Porast CDX-a nije bug vec osobina. Sory. Sasa
clipper.833 i.a.n.,
>> Slažem se sa matematičkim pojmom relacije, kao i sa prikladnošću da >> podaci budu prezentirani kao tabela. Ali se ne slažem sa uravnilovkom >> tabela <=> relacija u kontekstu pojma "relaciona baza podataka". Na ovo je nbatocanin već odgovorio... >> Naime, naziv "relaciona baza" ne potiče zbog te mogućnosti prezentacije u >> tabeli, već zbog mogućnosti da se uspostavi relacija između dve ili više >> baza postedstvom zajedničkog podatka - ključa relacije. Da ne zalazimo u >> implementaciju, mislim na "set relation...". ... a ovo je bilo i moje uverenje dok me C.J. Date nije prosvetlio. ;) Posle toga sam počeo da sumnjam da li Fox ili Clipper uopšte zaslužuju naziv "relacioni sistemi". Evo šta Date kaže (svi navodi su iz "An Introduction to Database Systems", Vol. I): Data independence can most easily be understood by first considering its opposite. [...] the way in which the data is organized in secondary storage and the technique for accessing it are both dictated by the requirements of the application under consideration, and moreover _knowledge of that data organization and that access technique is built into the application logic and code._ Example: [...] Then the (data-dependent) application in question will typically be aware of the fact that the index exists, and aware also of the file sequence as defined by that index, and the internal structure of the application will be built around that knowledge. USE tabela INDEX ind1, ind2... Upravo to. A dva od Coddovih dvanaest pravila (o tome koji se sistem može smatrati potpuno relacionim) zahtevaju "physical" i "logical data independence". Ima tu još zahteva po kojima Fox i Clipper definitivno padaju. Dobro, da vidimo onda tzv. "early 1980s definition", po kojoj je sistem minimalno relacioni ako podržava sledeće: - Relational databases (i.e., databases that are perceived by the user as tables, and nothing but tables); - The operations restrict, project, and (natural) join, without requiring any predefinition of physical access paths to support these operations. Pa sad. Fox ovde prolazi kroz iglene uši, za Clipper ne bih bio siguran, zbog zahteva #2. Još jedan sistem koji zadovoljava ove zahteve je Paradox, koji ima i neke zgodne dodatne operacije, npr. "outer join", za šta se na Foxu treba mučiti sa UNION. Sve u svemu, xBase sistemi još i najviše liče na ono što Date naziva "inverted list systems" (Dodatak A). A tu se nalazi i ohrabrujuća tvrdnja: "Many relational systems -- though not all -- can be thought of as inverted list systems at the internal (i.e. physical) level". Što znači da se možemo nadati da xBase sistemi postanu pravi relacioni -- kad malo porastu. :)
clipper.834 djelovic,
> Ima u BYTE od 1991. lep tekst. Autor teksta je autor i ove notacije > (Charles Simonyi). Kaže da je prvi put upotrebio ovu notaciju 1972. > Zove se ovako zato što je ovaj tip Mađar i što se u njoj tip > promenljive stavlja pre imena, kao kod ličnih imena u Mađarskoj. > Mislim da je članak odličan i rado bi ga video prevedenog u R. Inace se ova notacija najvise koristi u C programima za Windowse da bi se odrzala jaka tipizacija podataka. U modernijim jezicima za tako nesto nema potrebe jer o tipovima podataka brine kompajler - ako pokusas da pozoves funkciju sa argumentima pogresnog tipa, on ti javi gresku.
clipper.835 petrovics,
>> Naime, naziv "relaciona baza" ne potice zbog te mogucnosti prezentacije u >> tabeli, vec zbog mogucnosti da se uspostavi relacija izmedu dve ili vise >> baza postedstvom zajednickog podatka - kljuca relacije. Da ne zalazimo u >> implementaciju, mislim na "set relation...". Ja pak delim misljenje Nenada Batocanina :). Smatram da je njegova interpretacija termina "relacione baze podataka" ispravna i da naziv bas dolazi od toga sto su podaci organizovani u tabelama (relacijama) izmedju kojih je moguce uspostavljati veze (ono sto neki Clipper-asi nazivaju relacijama ;). U Clipperu, kao relacionoj bazi podataka, relacija je DBF fajl a SET RELATION TO veza izmedju relacija. Ovakva terminologija je saglasna i sa Oracle-om koji je jedan tipican predstavnik relacione baze podataka. Inace na ovu temu se svojevremeno u SETNetu vodila rasprava koja nije dala rezultata. Svi su ostali na svojim stanovistima. Zato bih zamolio nekog ko je dovoljno kompetentan ili jos bolje ima adekvatnu literaturu da objasni pojam *relaciona baza podataka* jednom za svagda ;). Inace ova diskusija na SETNetu je vodjena i oko toga da li je izraz "baza podataka" ili samo "baza" adekvatan za .DBF datoteku ? Ja mislim da nije a vi?
clipper.836 ndragan,
/ Kakve veze sad zatvaranje ima sa UPS-ovima? Pa svi se slažemo da, ako / ne zatvaraš, koristiš redovno DBCommit(). Hm... jedino čemu bih verovao je da taj DbCommit() uredno forsira DOS da upiše sve i u FAT i u direktorij (mislim na dužinu fajla, alocirane klastere). Uostalom, pokušaj da posle svakog dodatog sloga u bazi pratiš njenu dužinu onako kako piše u direktoriju. Ako je ne povećava uredno, onda ipak ima opasnosti. Bue_ Ndragan
clipper.837 ndragan,
/ Na primer to kod foxa radi, normalno. Foks iznutra radi do 15 značajnih cifara, bar toliko pristaje da upiše u .dbf, međutim otkako me inflacija naterala da pravim izveštaje sa 18 i 20 cifara (bez decimala), primećujem da ih sabira tačno. Zblanut sam. Btw, i select 000000000000000+sum(iznos) as iznos from... itd, daje bazu širu od one koja se može stvoriti redovnim Create ili Create Table, i u njoj iznosi tačno sabrani na više od 15 cifara. Sad ili su na nekim mestima odustali od IEEE formata brojeva, ili foks ipak podržava više cifara, jedino se pravi blesav tamo gde treba da ostane kompatibilan sa dibejzom? Bue_ Ndragan
clipper.838 bestbp,
Sta je najbolje uraditi sa bazama ukoliko se radi na racunarima na kojima su cesti ispadi struje ? Naime , program je kasa za PP pa bi bilo pozeljno da se max jedan racun izgubi u slucaju nestanka struje . Da li bi najbolje bilo da se baze otvaraju samo pri upisu ili neko ima bolju ideju. hvala GM
clipper.839 dragisha,
-> Ima u BYTE od 1991. lep tekst. Autor teksta je autor i ove notacije -> (Charles Simonyi). Kaže da je prvi put upotrebio ovu notaciju 1972. -> Zove se ovako zato što je ovaj tip Mađar i što se u njoj tip -> promenljive stavlja pre imena, kao kod ličnih imena u Mađarskoj. -> Mislim da je članak odličan i rado bi ga video prevedenog u R. I tip radi u Microsoft-u i šef je ili tako nešto tima za Windows, i notacija je napravljena prvenstveno za potrebe tog projekta (što se vidi u svakoj liniji Windows.H:). Bilo bi lijepo da neko barem dovuče ASCII formu članka, pretpostavljam da je ima na bix::byte91. -- [Postscript,..Prescript,..what's the difference?]
clipper.840 i.a.n.,
>> Inace ova diskusija na SETNetu je vodjena i oko toga da li je >> izraz "baza podataka" ili samo "baza" adekvatan za .DBF >> datoteku ? Ja mislim da nije a vi? Ditto. Odgovarajući izraz bi bio "tabela".
clipper.841 dr.grba,
>> Mislim da je članak odličan i rado bi ga video prevedenog u R. I ja. >> > Ali se ne slažem sa uravnilovkom tabela <=> relacija u >> > kontekstu pojma "relaciona baza podataka". >> >> C.J. Date: Database Systems - "The reasons such systems are called >> 'relational' is because the term 'relation' is essentially just a >> mathematical term for a table. For most practical purposes, indeed, >> the terms 'relation' and 'table' can be taken as synonymous." No comment. E, šta da se radi, evo 16.589-og primera neusaglašenosti referentne literature. Organizaciju podataka sam slušao kod Radmila Simića na Višoj informatičkoj, i neke stvari koje sam čuo od njega mi ostadoše u glavi, pogotovo kada je u pitanju princip projektovanja baza. Ne bi me čudilo ni da naletim na neko n-to objašenjenje, sasvim komplementarno svim ostalim koje sam do sada čuo. Ovo me priseti na predavanja na PMF-u, gde nema šanse da čuješ dva predavača mat. analize da pričaju istu priču... >> Taman posla, već sam mislio da te teorijske delove svi preskaču ;) Jes', pa posle "Kako ovo?"... (: Tvoje tekstove čitam veoma pažljivo, na sopstvenu korist i zadovoljstvo. Već ti rekoh da bih voleo da pročitam tvoju knjigu u kojoj se baviš projektovanjem programa u Clipperu. Kako ono beše? A, da, SetBlink(.F.)... (:
clipper.842 dr.grba,
Vrlo zanimljiv prilog! >> USE tabela INDEX ind1, ind2... Upravo to. A dva od Coddovih >> dvanaest pravila (o tome koji se sistem može smatrati potpuno >> relacionim) zahtevaju "physical" i "logical data independence".... Može li svih dvanaest, ako nije zametno da prepišeš? I uostalom, molio bih par reči i bližu referencu na knjigu koju pomenuste nbatocanin i ti.
clipper.843 dr.grba,
>> Inace na ovu temu se svojevremeno u SETNetu vodila rasprava koja >> nije dala rezultata. Svi su ostali na svojim stanovistima. Zato Bio ja u pravu ili ne, drago mi je da je ono moje pitanje Nenadu pokrenulo ovu raspravu, jer bi trebalo da bude svima na korist. Jer sam siguran: kada bismo bolje razumeli teorijske koncepte, u praksi bi se mogli videti bolji rezultati. A ja rekoh da sam spreman da korigujem svoje mišljenje uz valjanu argumentaciju. Prvi argumenti su već stigli i ja sam veoma raspoložen da ih proučim. Hvala Bogu, najzad konstruktivna rasprava na Sezamu! >> Inace ova diskusija na SETNetu je vodjena i oko toga da li je >> izraz "baza podataka" ili samo "baza" adekvatan za .DBF >> datoteku ? Ja mislim da nije a vi? Za mnoge je XXX.EXE program. Za mene nije. To je za mene datoteka u kojoj se nalazi kod nekog programa, koji se učitava u memoriju blablabla... E, pa šta je YYY.DBF? Baza? Datoteka čiji se sadržaj može interpretirati kao baza podataka u dBase i sličnim sistemima? Skup formatiranih podataka u ASCII obliku? ________________? (dopisati po želji...) Ovde smo tek kod pojma datoteke, pazite. Još nismo došli do pojma baze ili baze podataka. Tu bi rasprava mogla da ide u nedogled... To su mutne vode, te terminološke zavrzlame...
clipper.844 bulaja,
**** new file **** R:\IBMPC\CLIPPER\*.* ---------------------- frank arj 242263 Frankie lib v2.1: Clip. mouseable User Interface Engine frankg arj 86579 Frankie lib v2.1: Norton Guide frankn arj 11015 Frankie lib v2.1: Newsletter frankr arj 66109 Frankie lib v2.1: Reference (text) What is the Frankie Library? ──────────────────────────── The Frankie library is a collection of Clipper 5.01/5.2 mouseable and configurable user interfaces. Every UI is built upon an engine that has default looks and functionality, but can be reconfigured. The reconfiguration takes place by sending messages to the engine via APIs. The Engines ─────────── The following UI engines are available in version 2.0: 1. Database Browser 2. Get/Read Subsystem 3. Boxed Gets 4. Vertical Menu 5. Horizontal Menu 6. Dialog Box 7. Push Buttons 8. Radio Buttons 9. Scroll Bar 10. File Viewer The APIs ──────── Each engine has its own set of API functions that serve to configure the engine (a Config API), interrogate its state (an Info API), or instruct it to do something (an Action API). Specialized UI Fucntions ──────────────────────── In addition to the generic engines, Frankie contains a number of specialized UI functions: 1. Drives picklist 2. Directory picklist 3. Files picklist 4. Fields picklist 5. "Drive Not Ready" dialog box 6. "Printer Not Ready" dialog box 7. "Which Drive?" dialog box 9. "Which Floppy?" dialog box 10. Switch toggler dialog box 11. Database browser scroll bars 12. Horizontal and vertical push buttons 13. A Read of one Get (two variants) Miscellaneous Functions ─────────────────────── Aside from the engine functions and their APIs, Frankie contains a wide variety of miscellaneous and useful functions. These, however, are primarily for the purpose of supporting the Frankie engines. They are not intended to serve as a full repertoire of Clipper functions. Frankie is primarily a UI engines library.
clipper.845 gari,
Da li bi neko znao da mi objasni zasto 1. primer radi, a drugi radi nekoliko desetina puta u petlji X pa onda odjednom izleti sa sledecom porukom: Error BASE/1003 Variable does not exist: T_DATUM Razumem ja da on izleti prvi put kad udje u petlju zbog koriscenja LOCAL varijabli u makrou, ALI da to uradi N-ti put (N=promenljiva velicina, koja zavisi od raspolozenja mikroprocesora, vremenske prognoze, gravitacije,... ;), E TO MI NIJE JASNO! Evo saljem primere (ko voli probleme, ETO IH): ********************** *** GLAVNI PROGRAM *** ********************** do while ...neka petlja X ... t_kol := Vrati_Kolicinu(t_sif_robe,t_objekat,t_datum) ... enddo **************** *** PRIMER 1 *** OVO RADI ... **************** FUNCTION Vrati_Kolicinu(t_sif_robe,t_objekat,t_datum) LOCAL t_kolicina:=0, t_uslov if valtype(t_datum) == "D" t_uslov:={|p1,p2|p1==SIF_RO .and. p2==DATUM .and. !eof()} else t_datum:=date() t_uslov:={|p1,p2|p1==SIF_RO .and. !eof()} endif select POCETNO seek t_objekat+t_sif_robe if found() t_kolicina+=KOLICINA endif select PRODAJA set order to 2 seek t_objekat+t_sif_robe do while eval(t_uslov,t_sif_robe,t_datum) t_kolicina-=BOMBONA skip enddo ... ... RETURN t_kolicina **************** *** PRIMER 2 *** ... A OVO NE RADI UVEK !? **************** ^^ FUNCTION Vrati_Kolicinu(t_sif_robe,t_objekat,t_datum) LOCAL t_xxx, t_yyy, t_zzz, t_kolicina:=0, t_uslov if valtype(t_datum) == "D" t_uslov:="t_sif_robe==SIF_RO .and. ; t_datum>=DATUM .and. !eof()" else t_uslov:="t_sif_robe==SIF_RO .and. !eof()" endif select POCETNO seek t_objekat+t_sif_robe if found() t_kolicina+=KOLICINA endif select PRODAJA set order to 2 seek t_objekat+t_sif_robe do while &t_uslov && <- OVDE GA IZBACI, A PRE t_kolicina-=BOMBONA && TOGA PROSAO DESETAK PUTA skip enddo ... ... RETURN t_kolicina
clipper.846 ppekovic,
>> organizovani u tabelama (relacijama) izmedju kojih je moguce Tabela nije isto što i relacija. Tabela je skup pojavljivanja jedne relacije. Tako, može postojati više tabela (skupova pojavljivanja) jedne relacije. Paya
clipper.847 i.a.n.,
>> Može li svih dvanaest [Coddovih pravila], ako nije zametno da prepišeš? 1. The information rule 2. The guaranteed access rule 3. Systematic treatment of null values 4. Active online catalog based on the relational model 5. The comprehensive data sublanguage rule 6. The view updating rule 7. High-level insert, update, and delete 8. Physical data independence 9. Logical data independence 10. Integrity independence 11. Distribution independence 12. The nonsubversion rule (1) je drugi način da se kaže da svi podaci u bazi treba da budu predstavljeni na jedan jedini način, u vidu tabela. (2) zahteva da se svakoj pojedinačnoj vrednosti unutar baze može pristupiti, što povlači postojanje primarnog ključa za svaku relaciju, pošto se po relacionoj teoriji do određenog sloga (n-torke) može doći jedino njegovim korišćenjem. (3) je po Dateovom mišjenju slaba tačka većine današnjih relacionih sistema. žesto je potrebno da se u bazi nađu podaci tipa "nepoznat", "ne postoji" itd. koji bi trebalo da budu a) predstavljeni vrednostima različitim od svih ostalih mogućih vrednosti, i b) dosledno tretirani od strane relacionog sistema. SQL rešenje (NULL vrednosti) je daleko od potpunog. (4) traži postojanje on-line kataloga sa podacima o bazama i tabelama unutar njih. Katalogu treba da je omogućen pristup putem standardnog upitnog jezika, naravno ako korisnik ima dovoljna ovlašćenja. (5) znači da treba da postoji bar jedan relacioni jezik koji se može koristiti za celokupan rad sa bazom: upite, ažuriranja, definiciju novih tabela/baza, transakcioni rad, davanje prava pristupa i postavljanje pravila integriteta. Dodatni zahtev je da se jezik dostupan i interaktivno i u aplikacijama, bez znatne izmene sintakse u bilo kom slučaju. Po pravilu (6), sistem mora biti sposoban za ažuriranje svih pogleda za koje teorija kaže da je ono moguće. I ovde stvari stoje klimavo, i teorijski i praktično. (7) zahteva operacije INSERT, UPDATE i DELETE koje ne bi bile ograničene na rad slog po slog, već sposobne da deluju nad više slogova odjednom. (8) i (9) sam ranije spomenuo. Prema (10), pravila integriteta moraju da se zadaju nezavisno od aplikacija i da budu smeštena u katalogu. Takođe se mora omogućiti njihova izmena bez uticaja na postojeće aplikacije. (11) se odnosi na uvođenje distribuirane verzije sistema i kasniju preraspodelu podataka u njemu: postojeće aplikacije i dalje treba da rade bez izmena. Najzad, (12): ako sistem omogućava pristup podacima na niskom nivou, pri čemu se ne misli na direktno brljanje po datotekama, već rad sa pojedinačnim slogovima, onda se u takvom načinu rada ne sme dozvoliti narušavanje postojećih pravila integriteta i prava pristupa. >> I uostalom, molio bih par reči i bližu referencu na knjigu koju >> pomenuste nbatocanin i ti. C.J. Date: "An Introduction to Database Systems", Vol. I (5th ed.), Addison-Wesley, Reading, MA, 1990. Knjiga se smatra za standardni priručnik/udžbenik opšteg tipa. Neki zameraju Dateu isključivost (relacioni model, i šlus!), ali Bože moj. Lični utisak: pred ovim bi svi YU udžbenici organizacije podataka trebalo da se posakrivaju u mišju rupu. Toliko je jasno i dobro napisano da ne shvatiš da ti u stvari nemilosrdno trpa u glavu hrpu činjenica i teorije do trenutka kad se malo osvrneš. Praktičan rezultat čitanja je, u najmanju ruku, ovaj: moje aplikacije B.D. (Before Date :) su nastajale tako što bih pet dana pisao program, a posle ga tri meseca doterivao. A.D. postupak je dve nedelje projektovanja, istih onih pet dana pisanja, nedelju-dve doterivanja i to *radi*. Da ne spominjem koliko su sva kasnija dodavanja i menjanja lakša.
clipper.848 djelovic,
> (2) zahteva da se svakoj pojedinačnoj vrednosti unutar baze može > pristupiti, što povlači postojanje primarnog ključa za svaku relaciju, > pošto se po relacionoj teoriji do određenog sloga (n-torke) može doći > jedino njegovim korišćenjem. Jel može šire objašnjenje zašto je primarni ključ neophodan? Još bolje, ukoliko bi mogao da nađeš neki ilustrativan primer...
clipper.849 petrovics,
>> Bio ja u pravu ili ne, drago mi je da je ono moje pitanje Nenadu >> pokrenulo ovu raspravu, jer bi trebalo da bude svima na korist. Svaka konstruktivna rasprava je korisna :). Inace slazem se sa tobom da na Sezamu bas i nema puno konstruktivnih rasprava :(. >> Jer sam siguran: kada bismo bolje razumeli teorijske koncepte, >> u praksi bi se mogli videti bolji rezultati. Nista bez teorije :). Na zalost mnogi i ne haju za ovu vaznu komponentu bavljenja racunarom. Da ne pominjem one sto misle da su naucili da programiraju u trenutku kad su zapamtili sve rezervisane reci nekog jezika... Inace i ja sam za to da ovde cujem nesto pametno i konstruktivno o relacionim bazama podataka.
clipper.850 petrovics,
>> Sta je najbolje uraditi sa bazama ukoliko se radi na racunarima na kojima >> su cesti ispadi struje ? Naime , program je kasa za PP pa bi bilo >> pozeljno da se max jedan racun izgubi u slucaju nestanka struje . Da li >> bi najbolje bilo da se baze otvaraju samo pri upisu ili neko ima bolju >> ideju. Smatram da je dovoljno samo da se posle svake izmene/dodavanja sloga forsira upis na disk naredbom tipa COMMIT. Mislim da nije od nekog sireg znacaja da li su u trenutku nasilnog prekida rada programa datoteke bile zatvorene. Ipak ne mogu sa sto posto sigurnosti ovo da tvrdim jer se zasniva na mom iskustvu a to nije dovoljno da se izvede generalni zakljucak.
clipper.851 i.a.n.,
>> Jel može šire objašnjenje zašto je primarni ključ neophodan? Još >> bolje, ukoliko bi mogao da nađeš neki ilustrativan primer... Teorija definiše telo relacije kao skup (n-torki), a u skupu nisu mogući duplikati. Definicija primarnog (zapravo kandidatskog) ključa zahteva da obeležje koje ga čini zadovoljava uslov da ni u jednom trenutku ne postoje dve n-torke sa istom vrednošću tog obeležja. Ovo znači da svaka relacija ima primarni ključ -- za razliku od tabele, gde se može desiti da postoje istovetni slogovi, u kom slučaju tabela više ne može da se smatra fizičkom predstavom relacije. Dopuštanje duplikata u tabelama može da dovede do anomalija prilikom brisanja ili ažuriranja, recimo. Primer? Svakom primeru koga bih ovde mogao da navedem suđeno je da deluje budalasto, ali ajde: Ime Kompjuter ----------------------------- Ivan 80386SX Dejan 80386 Dejan 80386 Operacija UPDATE oprema SET Kompjuter = "80486" WHERE Ime = "Dejan" AND Kompjuter = "80386"; bila bi logički uspešna samo ako oba Dejana dobijaju 486-icu. A šta ako treba promeniti samo jednog? Morao bi da se uvede redosled (prvi i drugi Dejan u tabeli), a relacije (opet zbog toga što su definisane kao skupovi) nemaju uređenje.
clipper.852 djelovic,
> UPDATE oprema > SET Kompjuter = "80486" > WHERE Ime = "Dejan" AND Kompjuter = "80386"; > > bila bi logički uspešna samo ako oba Dejana dobijaju 486-icu. A šta > ako treba promeniti samo jednog? S obzirom da ti ovde pričaš o velikim sistemima (SQL i sl.), sasvim sam saglasan da svaka tabela mora da ima primaran indeks. Međutim, kod standardnih aplikacija koje se danas vrte u 99% firmi korisnik slog koji se menja bira interaktivno, kroz nekakvu vrstu tabele (mislim da se to na Clipperu zove TBrowse?), tako da postojanje primarnog ključa koji ničemu ne služi a veštački se kreira zaista ničemu ne služi (?). Kad treba - treba, al kad ne treba zašto onda sistem da još dodatno opterećuje programera kreiranjem "veštačkog" primarnog ključa kao što to radi Paradox Engine?
clipper.853 nbatocanin,
> U modernijim jezicima za tako nesto nema potrebe jer o > tipovima podataka brine kompajler - ako pokusas da pozoves > funkciju sa argumentima pogresnog tipa, on ti javi gresku. Ne bi se baš složio, iz više razloga: prvi razlog je čitljivost programa. Na primer, čitaš neki program, a ono u sredini modula od 5000 linija (ne, ljudi nisu savršeni => ne pišu savršene programe) nađeš f(x). Da, prevodilac će javiti grešku ako X nije dobrog tipa, ali tebi treba u trenutku čitanja da znaš tačan tip. E, a za to moraš da trčiš na početak modula, ili da imaš editor sa dva prozora u svet ;) Nije ni malo bezveze što FORTRAN ima konvenciju sa prefiksom promenljivih. Mislim da je deklarisanje promenljivih u strogo tipiziranim jezicima tehničko ograničenje koje će vrlo brzo (?) doći na red za usavršavanje. Klasična deklaracija na početku bloka je čista usluga koju programer pravi prevodiocu da bi ovaj lakše uradio posao. Mislim da će se to bolje rešiti. Razmislite: zašto ne bi prevodilac na osnovu primene određene promenljive sam provalio kog je tipa, a ako baš ne može da ukapira, nek pita. Jedini razlog koji mi pada na pamet je brzina rada, a to je već njegov problem ;)
clipper.854 nbatocanin,
> Ne bi me čudilo ni da naletim na neko n-to objašenjenje, > sasvim komplementarno svim ostalim koje sam do sada čuo. Nikako ne bi smelo. O tome zašto se relacioni *model* zove tako, nema nikakvog spora: zato što se realni objekti modeliraju relacijama. A relacione baze podataka se zovu tako zato što koriste relacioni model kao osnovu.
clipper.855 nbatocanin,
> Posle toga sam počeo da sumnjam da li Fox ili Clipper uopšte > zaslužuju naziv "relacioni sistemi". Evo šta Date kaže (svi navodi > su iz "An Introduction to Database Systems", Vol. I): Da, ovde može uslediti jedna pošira rasprava o tome. Ono što je sigurno to je da nijedan xBase jezik neće zadovoljiti sve uslove za pravi relacioni sistem. Osnovni razlog za to je nivo obrade: u relacionom sistemu se zahteva da taj nivo bude mnogo viši od onoga u kome se radi sa xBase jezicima. E, sad tu ima par kvaka: prvo, ni jedan sistem se ne pravi tako što sednu neki tipovi i kažu: "ajde da napravimo jedan relacioni sistem" ili se bar to retko radi. Skoro uvek se pravi alatka za određenu vrstu problema, a rezultat - gde upadne. dBase je nastao kao mala baza podataka na računaru sa veoma skromnim mogućnostima, pa nije bilo ni govora o tome da se implementira mogućnost transparentnog rada sa relacijama. Clipper i ostali su nastali kao naslednici dBase-a, pa nisu imali mnogo izbora. Osim toga, ovi proizvodi i nisu bili namenjeni izradi "pravih" baza podataka, već poslovnih aplikacija koje, doduše, skoro uvek rade sa većim količinama podataka. Druga stvar je shvatanje relacionog modela. To je jedno formalno predstavljanje realnog sistema čija je osnova da se realni objekti i njihove veze predstavljaju relacijama. Praktična *realizacija* tog modela je drugi problem: može biti na ovom ili onom nivou. Ali, po osnovnom principu svi xBase derivati spadaju u grupu relacionih sistema. Mada, nije nemoguće neki drugi model (mrežni, na primer) realizovati u xBase-u. Kao što rekoh, to je pitanje realizacije.
clipper.856 nbatocanin,
> Inace ova diskusija na SETNetu je vodjena i oko toga da li > je izraz "baza podataka" ili samo "baza" adekvatan za .DBF > datoteku ? Ja mislim da nije a vi? Baza podataka ima više značenja. Osnovno značenje je otprilike "organizovan skup podataka koji kontroliše sistem za upravljanje bazom podataka". U širem značenju, baza uključuje i te podatke i softver. To znači da DBF nije baza podataka. Međutim, iz ko zna kog razloga se vrlo često sreće termin "baza" za DBF datoteku i kod nas i u inostranstvu. Moja deviza je: važno je da se razumemo :)
clipper.857 djelovic,
> Ne bi se baš složio, iz više razloga: prvi razlog je čitljivost > programa. Na primer, čitaš neki program, a ono u sredini modula od > 5000 linija (ne, ljudi nisu savršeni => ne pišu savršene programe) > nađeš f(x). Da, prevodilac će javiti grešku ako X nije dobrog tipa, > ali tebi treba u trenutku čitanja da znaš tačan tip. E, a za to moraš > da trčiš na početak modula, ili da imaš editor sa dva prozora u svet ;) Mađarska notacija nastala je (ili se prvi put primenjivala u većem obimu) za pisanje Windows programa u C-u. Kao takva ona je inžinjersko rešenje (prljavo al' efikasno) za problem koji ti navodiš, a nikako nešto čemu treba težiti. Dalje, i kao rešenje za čitljivost programa Mađarska notacija je uveliko zastarela. Ajmo redom: 1. "žitljivost programa". Danas skoro da ne postoji editor koji ne može da prikaže više fajlova u raznim prozorima. U jedan prozor staviš tekst programa, u drugi deklaracije, i problem je rešen. Štaviše, ukoliko koristiš programski jezik koji ne podržava deklaracije funkcija (fuj!), uvek postoje programi koji protrče kroz sors i povade ih, makar samo za dokumentaciju. Danas je ta mogućnost ugrađena i direktno u većinu C kompajlera. 2. Opet "čitljivost programa". Dodavanje dva slova na početak imena promenljive direktno krši pravilo da "ime promenljive ne sme da bude kriptično i treba jednostavno i jasno da govori čemu ona služi". (Iz ovog pravila se naravno izuzimaju promenljive 'i' i 'j' koje svi koristimo kao brojače :).) 3. Dobar dizajn je zasnovan na podacima, i to je jedan od razloga zašto se programski jezici okreću ka objektnoj orijentaciji. Ako me sećanje dobro služi, i ti misliš da je OOP dobra stvar. Kako onda misliš da koristiš Mađarsku notaciju kada nemaš pet osnovnih tipova podataka nego pet hiljada tipova podataka, tj. sve klase koje si do sada napravio? > Nije ni malo bezveze što FORTRAN ima konvenciju sa prefiksom > promenljivih. Od popularnih jezika samo Fortran i Bejzik koriste takve konvencije. Nije slučajno da su oba ta jezika nastala u predhistojiji :) računarstva. > Mislim da je deklarisanje promenljivih u strogo tipiziranim jezicima > tehničko ograničenje koje će vrlo brzo (?) doći na red za > usavršavanje. Klasična deklaracija na početku bloka je čista usluga > koju programer pravi prevodiocu da bi ovaj lakše uradio posao. Mislim > da će se to bolje rešiti. Razmislite: zašto ne bi prevodilac na > osnovu primene određene promenljive sam provalio kog je tipa, a ako > baš ne može da ukapira, nek pita. Jedini razlog koji mi pada na pamet > je brzina rada, a to je već njegov problem ;) Dva su razloga za deklaraciju promenjljivih: Klasičan: Deklaracija promenljivih te rešava muke kada negde u programu pogrešno napišeš promenljivu a to ne primetiš. Recimo, imaš promneljivu "brojacLjudi" a na jednom mestu u programu napišeš "broavLjudi". Kompajler ti ne javlja grešku, a program ne radi. Takođe, ukoliko se promenljive ne deklarišu postoji zabuna kada globalna i lokalna promenljiva treba da imaju isto ime, što sa količinom podataka u današnjim programima nije nimalo redak slučaj. OOP: Naslednik neke klase ponaša se isto kao i ona sama, tako da kompajler nema načina da sazna na osnovu primene promenljive da li se radi o promelnjivoj tipa X, ili nekog naslednika klase X. P.S. > ne, ljudi nisu savršeni => ne pišu savršene programe Pokušavajući da napišem savršen C++ program često se setim metode William J. Buckleya kako naslikati savršenu sliku: "Postanite vi savršeni i onda slikajte prirodno."
clipper.858 i.a.n.,
>> S obzirom da ti ovde pričaš o velikim sistemima (SQL i sl.), sasvim >> sam saglasan da svaka tabela mora da ima primaran indeks. Izgleda da sam bio nedovoljno precizan -- nisam naglasio da u teorijskom smislu, u kome ga spominjem, postojanje primarnog ključa ne povlači postojanje *indeksa* definisanog po njemu. Indeksi su neophodni kod implementacije relacione baze, u teoriji nisu. Znači, u onome što sam pisao: "mora postojati primarni ključ" = "ne sme biti duplikata u tabelama". A Paradoxovske zavrzlame sa indeksima su i meni gazile po nervima. ;)
clipper.859 dr.grba,
>> Jel može šire objašnjenje zašto je primarni ključ neophodan? Još >> bolje, ukoliko bi mogao da nađeš neki ilustrativan primer... Po ovom, ako dobro shvatam, taj kriterijum obezbeđuje ostale kriterijume. To znači, na primer (teoretski i praktično): ne smem izbrisati podatke o nekom komitentu jer imam živu neku analitičku karticu sa njegovim podacima. Dakle, uvodeći *obavezni* primarni ključ, i (sigurno) neke dodatne mehanizme, obezbeđen je integritet podataka. Osim toga, primarni ključ je jedinstven, bar bi trebalo da bude. Dakle, ne mogu da imam dva komitenta 233-001.
clipper.860 dr.grba,
>> saglasan da svaka tabela mora da ima primaran indeks. Međutim, kod >> standardnih aplikacija koje se danas vrte u 99% firmi korisnik slog >> koji se menja bira interaktivno, kroz nekakvu vrstu tabele (mislim >> da se to na Clipperu zove TBrowse?), tako da postojanje primarnog >> ključa koji ničemu ne služi a veštački se kreira zaista ničemu ne >> služi (?). Kad treba - treba, al kad ne treba zašto žovek pomenu PROJEKTOVANJE baza, a dobro projektovan sistem za rad sa nekom bazom neće dozvoliti ad hoc brisanje - izmenu podataka, bar ne legalno. Ne mali broj projektanata (barem dvojica koje poznajem) vrše neko kriptovanje slogova baze ne zbog nekog straha od zloupotrebe, nego da bi sprečili korisnika i njegove prijatelje da čeprkaju po bazi na nepredviđen način.
clipper.861 dr.grba,
>> usavršavanje. Klasična deklaracija na početku bloka je čista usluga >> koju programer pravi prevodiocu... ...i sebi.
clipper.862 dr.grba,
>> Da, ovde može uslediti jedna pošira rasprava o tome. Ono što je >> sigurno to je da nijedan xBase jezik neće zadovoljiti sve uslove za >> pravi relacioni sistem. Osnovni razlog za to je nivo obrade... >> ... >> njihove veze predstavljaju relacijama. Praktična *realizacija* tog >> modela je drugi problem: može biti na ovom ili onom nivou. Ali, po >> osnovnom principu svi xBase derivati spadaju u grupu relacionih >> sistema... Ovaj momenat pomalo liči na raspravu o sistemima koji (ne) zadovoljavaju atribut "objektni". Izgleda da su kompromis i popustljivost u principima projektovanja sistema postali sasvim uobičajena stvar. Na sreću ili na žalost...
clipper.863 ndragan,
/ tagove pojedinacno, ni CDX u celini, vec ih kreiraj. Sledi => Porast / CDX-a nije bug vec osobina. Sory. Ružna osobina, preuzeta iz originala. Stvar postaje bezvezna, jer ako imaš dva istovetna tega, održavaju se oba, a praktično se čita samo onaj prvi. Očekivao sam da kraj toliko drugih pametnih stvari prepozna ponovno indeksiranje po nečem što već postoji. U mom generatoru programa za indeksiranje stoji da uvek prvo obriše .cdx fajl, pa onda da pravi tegove ispočetka. Očetkivao sam da je siks malo pametniji. Bue_ Ndragan
clipper.864 bestbp,
Eeee, ljudi, ovaj BLINKER 3.0 je bas... Izgleda da su se bas potrudili. Do sada se odlicno pokazuje. Videcu dalje. Usput , sto se tice Visual Objects-a, pravo ime bi trebalo da mu bude ASPEN. pozdrav
clipper.865 domana,
Primetio sam da postujes teoriju (ja takodje) pa 'ajde da podelimo onda ovo sto ja usput skupljam baveci se bazama... Upozoravam da tekst nije u originalu vec je onako kako ga ja shvatam - pa mozda negde i gresim... ****************************************************************************** 12 ZLATNIH PRAVILA RELACIONE TEORIJE ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ (E.F.CODD 1970.) ! 1. PRIKAZ INFORMACIJE - iskljucivo na LOGICKOM NIVOU kao TABELARNI iznos !!! 2. PRISTUP PODATKU - kombinacija imłna: tabele + kljuca + kolone ~~~~~~~~~~~~~~~~~~~~~~~~ ! 3. OBRADA VRIJEDNOSTI kojih nema u relaciji ali se dobiju izvedeno 4. PROMJENLJIVI "ON LINE" KATALOG za tipove datoteke i programe 5. RAZVIJEN JEZIK unutar postojeceg relacionog modela !! 6. AZURIRANJE SISTEMA nezavisno od konceptualne seme 7. AZURIRANJE TABELE - bilo po jednom ili vise podataka (skupova) !! 8. FIZICKA NEZAVISNOST PODATAKA od logicke konstrukcije i koncepta ! 9. LOGICKA NEZAVISNOST PODATAKA kod promene konceptualne seme 10. NEZAVISNOST SIGURNOSTI na svim nivoima a ne u programima 11. NEZAVISNOST OD DISTRIBUCIJE PODATAKA i BAZE PODATAKA (lokacija) 12. NEMOGUCNOST SUBVERZIJE - INTEGRITET kod izmene i manipulacije podacima ------------------------------------------------------------------------------ 12 ZLATNIH PRAVILA RELACIONE TEORIJE ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ (E.F.CODD PC Magazine, May 1988.) ...tabela: 1. Struktura baze podataka se na LOGICKOM nivou prestavlja TABELOM, na fizickom je to bilo sta, recimo dvostruko ulancana lista... ...pristup: 2. Pristup SVAKOM podatku (u relacionoj bazi podataka) moguc/ostvariv je preko kombinacije imłna: tabele/relacije + kljuca + kolone/atributa znaci BEZ: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - unapred zadatih pristupnih puteva - rekurzija - iteracija ...relaciona nula: 3. Postoji SPECIFICNI INDIKATOR/podatak za predstavljanje NULA VREDNOSTI BEZ OBZIRA NA TIP PODATKA (razlicit od bilo kog znaka normalno upotrebljivog). Sistem podrzava/omogucava i sve MEDJUSOBNE operacije izmedju nula vrednosti (tog specificnog indikatora) i svih ostalih tipova podataka. ...katalog, meta podaci: 4. Postoji KATALOG/recnik tipova PODATAKa i PROGRAMa koji se LOGICKI prestavlja na ISTI nacin kao i sama baza podataka tako da KORISNIK moze da pristupi tim META podacima koristeci ISTI jezik koji koristi i pri pristupu svarnim podacima u bazi podataka. ..jezik: 5. Sistem mora posedovati BAR 1 jezik koji podrzava: 1 - definiciju podataka/DATA 2 - definiciju pogleda/VIEW 3 - manipulaciju podacima - kroz programe i interaktivno 4 - definiciju pravila integriteta 5 - granice transakcija/BEGIN - COMMIT - ROLLBACK 6 - autorizaciju/sigurnost podataka ...azuriranje sistema, SAMOodrzavanje: 6. AZURIRANJE SISTEMA nezavisno od konceptualne seme - algoritmom koji za svaki definisani pogled/VIEW u TRENUTKU NJEGOVOG DEFINISANJA OD STRANE KORISNIKA moze da odredi da li se i koje operacije odrzavanja MOGU da primene na taj pogled/VIEW i koji te operacije SMESTA U KATALOG baze podataka (po zelji korisnika). ...azuriranje tabela (baznih): 7. I nad BAZNIM RELACIJAMA i nad POGLEDIMA mogu se izvrsavati ne samo operacije pretrazivanja vec i operacije odrzavanja baze podataka bilo po jednom ili po vise podataka (skupova). ...fizicka nezavisnost: 8. FIZICKA NEZAVISNOST PODATAKA od logicke konstrukcije i koncepta - i aplikacioni program i interaktivna komunikacija korisnika OSTAJU NEIZMENJENI kada/ako se promeni: - fizicka organizacija baze ili - fizicki metod pristupa, record-manager, Btrieve ...logicka nezavisnost: 9. LOGICKA NEZAVISNOST PODATAKA kod promene konceptualne seme - i aplikacioni program i interaktivna komunikacija korisnika OSTAJU NEPROMENJENI kada/ako se dese BILO KOJE promene u strukturi baznih tabela OSIM promena samih podataka koje bazne tabele cuvaju, recimo promena redosleda polja/atributa (a mozda i naziva polja - ipak malo teze...) ...integriteti u katalogu: 10. PRAVILA INTEGRITETA se definisu u okviru/trenutku definisanja baze podataka i cuvaju u katalogu podataka, ne implementiraju se kroz aplikacioni program/kod. ...nezavisnost od distribucije: 11. Sve gore navedene karakteristike nezavise od DISTRIBUCIJE podataka i baze podataka, lokacije/mesta FIZICKOG smestanja podataka... ...integritet promena podataka: 12. Ako relacioni sistem radi sa nekim jezikom trece generacije koji u jednom trenutku obradjuje/menja samo jenu n-torku/zapis kroz taj jezik se NE MOGU zaobici pravila integriteta zadana preko samog relacionog jezika. ****************************************************************************** E, sad, moja razmisljanja: Prvo, svi kazu a i meni se cini, da ZASTA NE POSTOJI relacini jezik koji zadovoljva POTPUNO SVIH 12 principa; mozda im se najvise priblizi Magic... Drugo, relaciona teorija je samo jedna od ostalih - postoje i drugaciji nacini SHVATANjA i PRISTUPA problematici OBRADE PODATAKA izmedju kojih narocito svi isticu Chen-ov model OBJEKTI-VEZE. Model je zaista krajnje prirodno elegantan jer, bar se meni cini, polazi od toga kako covek razmislja - a razmislja na nivou OBJEKATA izmedju kojih pravi VEZE - i gotovo, nema vise, to su TEMELjI svega... Gde su onda aplikacije koje se oslanjaju na ostale pristupe podacima ? Jednostavno ih nema jer teoreticari NISU prakticari - kud' bi oni da pored toga sto smisle nov nacin GLEDANjA NA PODATKE jos se bakcu i sa jezikom koji bi podrzao sve to... Bar se meni cini da tako stvari stoje, mozda i gresim, ali znam da postoji standardan postupak da se Chen-ov model KONKRETNOG RESENJA nekog problema PREBACI na relacio fazon. Cini mi se da teoreticari modela samo teoretisu a kada resenje treba pretociti u aplikaciju - 'ajmo na relacione dijalekte... A Chen-ov model je tako divan... Gledas graficki prikaz i BUKVALNO citas RECENICE kojima svi mi tako prirodno komuniciramo medjusobom... Da ne budem pristrasan evo i spiska ostalih modela: - MODEL OBJEKT-VEZE (MOV) (Chen 1976) //obrati paznju na godinu ! - BINARNI MODEL PODATAKA - PROSIRENI RELACIONI MODEL (RT/M) (Codd 1979) //u praksi je stari model ! - SDM-IBM (IBM) - MODEL PODATAKA SEMANTICKIH MREZA (Roussopoulos & Mylopoulos) - SEMANTICKI MODEL PODATAKA (SDM) (Hammer & McLeod 1978) - PETRI-jeve mreze (Reti di Petri) - SEMANTIC ASSOCIATION MODEL (SAM) (Stanlay) - D-GRAPH MODEL (Weber) - PALMER (Palmer) - DIAM II (Senko) Spisak je prepisan iz: _"Sistem analiza i modeliranje podataka", Mile Pavlic_ i to samo iz grupe modela podataka III generacije a kazu postoji i IV... KnjiziCA je zaista zgodan PRIRUCNIK za nuzdu, preporucujem je svim NAIVNIM UMETNICIMA koji su problematici obrade podataka pristupali direktno kroz neki aplikacioni jezik (recimo Clipper) - i sebe ubrajam u iste... Mozda tek posle njenog DETALJNOG iscitavanja naivac shvati da jezik na kome se pisu aplikacije nije sustina vec samo KRAJNjI CIN celog postupka, da su jezici orijentisani ka obradi podataka samo "igle i makaze" ili mozda oko 20% cele problematike... Jednostavno, po meni, treba bar zavrsiti FON ili BAR citati njihove udzbenike ili BAAAR koristiti CASE alate... Da malo "elaboriram" one "igle i makaze". Svi mi koji zivimo od pisanja poslovnih aplikacija smo ustvari ZANATLIJE u smislu da kada nekom zatreba odelo ode kod krojaca da mu ga PO MERI sasije. Ne sporim da, kao sto krojaci treba dobro da barataju iglama i makazama, treba i "kreatori" aplikacija da detaljno vladaju finesama jezika kojim MODELIRAJU ali majstor se ne postaje cistom vestinom baratanja alatima svog zanata - treba imata i nesto vise, ono sto razlikuje krojaca od modnog kreatora; vestina igala i makaza je samo TRECI obavezan PREduslov (drugi je poznavanje teorije a prvi je ideja, po meni). NajLepse od cele price je cinjenica da je sivenje/kreiranje odela LICNI CIN stvaranja NECEG NOVOG - dakle MOZE nastati i umetnicko delo (gde ja odoh...). Izvinjavam se na opsirnosti sve u nadi da cu biti konstruktivan... Miki P.S. Prosto su mi smesne one tirade od "diskusija" koje se bave tackama i zarezima... Naiva...
clipper.866 ppekovic,
>> 12 ZLATNIH PRAVILA RELACIONE TEORIJE >> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ >> (E.F.CODD 1970.) U knjigama sam najčešće čitao o kriterijumima za ocenu relacionih SUBP-a (DBMS-a). >> Prvo, svi kazu a i meni se cini, da ZASTA NE POSTOJI relacini jezik koji >> zadovoljva POTPUNO SVIH 12 principa; Tačno. Codd navodi da IBM-ov DB2 zadovoljava samo 7, a neki kao Cullinet-ov IDMS/R ili CA Datacom, čak nijedan. Kritični su uglavnom kriterijumi koji se odnose na pravila integriteta, zatim održavanje pogleda, nula vrednosti, ditribucija, i dr. >> relaciona teorija je samo jedna od ostalih - postoje i drugaciji nacini >> SHVATANjA i PRISTUPA problematici OBRADE PODATAKA Da, mrežni i hijerarhijski na primer, ali je relacioni model najrasprostanjeniji i najviše SUBP-a (DBMS-a) podržavaju ovaj model. >> izmedju kojih narocito >> svi isticu Chen-ov model OBJEKTI-VEZE. Model je zaista krajnje prirodno >> elegantan jer, bar se meni cini, polazi od toga kako covek razmislja - a >> razmislja na nivou OBJEKATA izmedju kojih pravi VEZE - i gotovo, nema vise, >> to su TEMELjI svega... Ne možeš porediti relacioni model i model objekti-veze jer pripadaju različitim "generacijama" modela podataka. Takođe, niti jedan do sada poznati DBMS ne podržava implementaciju modela objekti-veze, već se ovaj model mora prevesti u neki model druge generacije (relacioni, mrežni, hijerarhijski, ...) koji se zatim implementiraju u neki od postojećih DBMS-a. Takođe, moguće je model treće generacije prevesti i u modele prve generacije tj. konvencionalne programske jezike. Paya P.S. Veliki deo podataka je iz skripte za vežbe i predavanja iz predmeta "Baze podataka" autora prof. dr. Branislava Lazarevića.
clipper.867 i.a.n.,
>> Po ovom, ako dobro shvatam, taj kriterijum obezbeđuje ostale >> kriterijume. To znači, na primer (teoretski i praktično): ne >> smem izbrisati podatke o nekom komitentu jer imam živu neku >> analitičku karticu sa njegovim podacima. Smeš, ako postoji mehanizam koji će obezbediti da budu obrisani i svi podaci koji su vezani za njega. Drugo je pitanje da li je takvo brisanje poželjno ili ne. >> Dakle, uvodeći *obavezni* primarni ključ, i (sigurno) neke >> dodatne mehanizme, obezbeđen je integritet podataka. U primeru koji navodiš, referencijalni integritet. Ideja je da se u sistemskom katalogu čuvaju i pravila za njegovo očuvanje, na primer DELETE RESTRICTED ili DELETE CASCADES. Prvi slučaj dopušta brisanje samo ako nema vezanih podataka, drugi briše i njih.
clipper.868 bulaja,
**** new file **** R:\IBMPC\CLIPPER\*.* ---------------------- ct_bli arj 3414 Automatically overlaying CA-Clipper Tools with Blinker Ustedite 20 Kb root prostora: -------------- Most of the networking functions of CA-Clipper Tools are dynamically overlayable with Blinker. The easiest way of taking advantage of this is to split the original CL.LIB library in two seperate libraries, one of them being automatically overlayable and one of them still having to be linked into the root. If you own a copy of a Microsoft library manager (LIB.EXE) you can create this two libraries easily by using the batch file SPLIT_CT.BAT. ... The script file CA-CON.LNK for Blinker shows how to use the two libraries to create the CA-Clipper Tools sample CA-CON.EXE. The load size displayed by Blinker using CTROOT.LIB and CTOVL.LIB is 248 KB compared to 267 KB when using CT.LIB without any overlaying features.
clipper.869 nbatocanin,
> Mađarska notacija nastala je (ili se prvi put primenjivala > u većem obimu) za pisanje Windows programa u C-u. "I (Simonyi) first used the Hungarian style in 1972. Since then, programming teams at Xerox, Apple, and 3Com have used it, as well as hundreds of Microsoft programmers in most Microsoft applications (e.g. Multiplan, Word, and Excel) and also in large parts of Microsoft Windows systems. Since its inception, many people have contributed to the refinement of the Hungarian style" > 1. "žitljivost programa". Danas skoro da ne postoji editor > koji ne može da prikaže više fajlova u raznim prozorima. U > jedan prozor staviš tekst programa, u drugi deklaracije, i > problem je rešen. Štaviše, ukoliko koristiš programski > jezik koji ne podržava deklaracije funkcija (fuj!), uvek > postoje programi koji protrče kroz sors i povade ih, makar > samo za dokumentaciju. Danas je ta mogućnost ugrađena i > direktno u većinu C kompajlera. Ovo je direktan argument meni u prilog. Ako uvek kada treba da analiziram parče programa treba da otvaram dva prozora, pa da trčim na deklaracije, pa search, ... Da ne govorim o ponovnom startovanju kompajlera zbog generisanja deklaracija ;( Zar nije jednostavnije potrebne podatke pročitati upravo na mestu na kome ti i trebaju? Ako si radio na nekom iole većem (naročito timskom) projektu, prosto mi je neverovatno da nisi došao do nekog sličnog rešenja. Sećam se da smo uvek u timovima uvodili neke prefikse za svakog člana ekipe, pa za funkcionalne celine i sl. u zajedničkim delovima koda kako bi se lakše pratio i održavao program. > 2. Opet "čitljivost programa". Dodavanje dva slova na početak imena > promenljive direktno krši pravilo da "ime promenljive ne sme da bude > kriptično i treba jednostavno i jasno da govori čemu ona služi" Prvo, mađarska notacija ne podrazumeva navođenje prefiksa od samo dva slova: može ih biti i manje ili više i odnose se na tip promenljive. Dalje se mogu dodavati atributi promenljive (brojač, privremena, save, ...) itd. U suštini, MN je *predlog* za oformljavanje celog imena promenljive. E, sad, da je nečitko, ne slažem se: onaj ko čita takav listing duže od 2 minuta navikne se da preskače prefiks pisan malim slovima pri čitanju, a ako mu zatreba, tu je. Da su u "sredini" programa potrebne dodatne informacije, dokazuje i pojava "kolor" editora koji za sada boje oficijelne stvari kao što su rezervisane reči i sl. Ne vidim prepreku da tako na neki način olakšam razumevanje i mog dela ;) > Kako onda misliš da koristiš Mađarsku notaciju kada nemaš pet > osnovnih tipova podataka nego pet hiljada tipova podataka, tj. sve > klase koje si do sada napravio? Uopšte nije stvar u strogo formalnom pokrivanju svih klasa koje sam kreirao. Dovoljno je za važnije napraviti mnemonik od 1-3 slova koji označava objekte iz te klase pa da ih daleko lakše uočavam u programima. Uostalom, dovoljno mi je samo "o" za "object", pa da bude korak napred. >> Nije ni malo bezveze što FORTRAN ima konvenciju sa >> prefiksom promenljivih. > Od popularnih jezika samo Fortran i Bejzik koriste takve > konvencije. Nije slučajno da su oba ta jezika nastala u > predhistojiji :) računarstva. Nisam mislio da je ova osobina nešto što je i danas dobro, nego da se još davno ukazala potreba za dodatnim informacijama o promenljivim. > Recimo, imaš promneljivu "brojacLjudi" a na > jednom mestu u programu napišeš "broavLjudi". Kompajler ti > ne javlja grešku, a program ne radi. Opet da ponovim: mislim da je deklarisanje promenljivih u strogo tipiziranim jezicima tehničko ograničenje koje će vrlo brzo doći na red za *usavršavanje*. Znači, ne izbacivanje, nego usavršavanje.
clipper.871 saks,
>> Ruzna osobina, preuzeta iz originala. Stvar postaje bezvezna, jer >> ako imas dva istovetna tega, odrzavaju se oba, a prakticno se cita >> samo onaj prvi. Ocekivao sam da kraj toliko drugih pametnih stvari >> prepozna ponovno indeksiranje po necem sto vec postoji. Nije bas da istovremeno azurira i stari i novu verziju istog taga vec se jednostavno stara verzija taga pretvara u nekoristan prostor. Uostalom, evo navoda iz njihovog NG-a: Q: Why does my .CDX keep growing when I re-create an existing tag?: A: When an existing tag in a compound index (.CDX) is rebuilt using INDEX ON ... TAG ... the space from the original tag is not automatically reclaimed. Instead, the new tag is added to the end of the file, causing the file size to increase. You can use the REINDEX command to "pack" the index file. REINDEX rebuilds each tag, eliminating any unused space in the file. If you rebuild your indexes on a regular basis, it is recommended that you either delete your .CDX files before rebuilding the tags or use the REINDEX command to rebuild them instead. Sasa
clipper.872 petrovics,
>> u inostranstvu. Moja deviza je: vazno je da se razumemo :)
clipper.873 smoki,
Ako neko ima NULLHERC.OBJ iz paketa DGX neka me emajlira. Miloš ps. mislim da se tako nekako zove.
clipper.874 dr.grba,
>> 2. Opet "čitljivost programa". Dodavanje dva slova na početak imena >> promenljive direktno krši pravilo da "ime promenljive ne sme da >> bude kriptično i treba jednostavno i jasno da govori čemu ona >> služi". (Iz ovog pravila se naravno izuzimaju promenljive 'i' i 'j' >> koje svi koristimo kao brojače :).) Dodavanje dva slova po mnemoničkom principu ničim ne krši jednostavnost. Sorry, ali nisam baš najbolje shvatio negiranje kvaliteta mađarske notacije. BTW, da li ti programiraš u Clipperu? Znam da si zaražen sa C++++++++++.....
clipper.875 dr.grba,
>> U mom generatoru programa za indeksiranje stoji da uvek prvo obriše >> .cdx fajl, pa onda da pravi tegove ispočetka. Nema šta, tako verovatno radi većina nas. >> Očetkivao sam da je siks malo pametniji. E, sad... Očetkaj malo bolje, možda nestanu fleke (:
clipper.876 dr.grba,
>> Eeee, ljudi, ovaj BLINKER 3.0 je bas... Izgleda da su se bas >> potrudili. Do sada se odlicno pokazuje. Videcu dalje. Šta konkretno najviše voliš? Dual mode? >> Usput , sto se tice Visual Objects-a, pravo ime bi trebalo da mu >> bude ASPEN. Radiš li sa njim? Imaš praktična iskustva? De, pričaj malo, zanima nas sve, siguran sam.
clipper.877 bestbp,
ASPEN nije jos zvanicno izasao. U uputstvu za Clip-4-Win od Skelton Softwarea stoji: "Aspen is a code name for the Windows xBase product that CA are busy working on. It will no doubt be marvellous, but is not expected to be shipping for 6-9 months. You can use Clip-4Win to gain invaluable expirience with Windows raedy for Aspen." Ovo je iz jula '93. Imam problem kod burazera na racunaru u vezi novog Blinker-a. Naime, on ima 386DX/33/240ÚM i instalirao sam mu Funcky II i CA Tools zajedno sa novim Blinker-om 3.0. Medjutim , pri linkovanju on javlja sledece: BLINKER : 1115 : FUNCKY88.LIB(_malloc) : '__str_alloc' :unresolved external Funcky88.lib je na putanji i navedena je u link fajlu, ali on ovo i dalje javlja. U drugim programima (examples od FUNCKY-ja) javlja po vise gresaka. So, ako neko zna ... Usput, evo jedan koristan program koji kupi sve podatke iz baza, probajte... pozdrav clipvars.exe
clipper.878 djelovic,
> Dodavanje dva slova po mnemoničkom principu ničim ne krši jednostavnost. > Sorry, ali nisam baš najbolje shvatio negiranje kvaliteta mađarske > notacije. Uzmi neki srpski tekst i dodaj na kraj svake reči u superskriptu slovo koje označava šta je ona (p za pridev, g za glagol itd.). To mnogo manje smeta nego par slova na početku promenljive a ipak će te izluđivati. Sve ovo pričam zato što sam svojevremeno i ja koristio Mađarsku Notaciju. Kao rešenje za jedan tadašnji problem ona je bila odlična. Danas, ona je potpuno nepotrebna i, po mom mišeljnju, čak i kontraproduktivna. > BTW, da li ti programiraš u Clipperu? Znam da si zaražen sa C+++++++++... Ne programiram u Clipperu. Smatram da je on dobar za pravljenje baza podataka zbog svojih low-level rutina, ali da je kao jezik dosta loše koncipiran. Doduše, vidim da njegovi autori polako izbacuju iz njega razne "arhaizme" i kradu iz drugih jezika koliko god mogu, tako da će se verovatno kroz par verzija razviti u moderan jezik. Videćemo...
clipper.879 djelovic,
> Zar nije lakše potrebne podatke pročitati upravo na mestu na kome ti i > trebaju? Jes' vala, oduvek sam se čudio onim budalama koje u knjige stavljaju fusnote umesto da ih smeste direktno u tekst :). > Ako si radio na nekom iole većem (naročito timskom) projektu, prosto mi > je neverovatno da nisi došao do nekog sličnog rešenja. Sećam se da > smo uvek u timovima uvodili neke prefikse za svakog člana ekipe, pa > za funkcionalne celine i sl. u zajedničkim delovima koda kako bi se > lakše pratio i održavao program. Prefikse za svakog člana ekipe nikada nismo uvodili i ne znam čemu vodi takva praksa? No, uvođenje prefiksa za različite module, ili u mom slučaju hijerarhije, sasvim je normalna stvar. Na taj način se uvodi red u izvorni kod i izbegava se "name space polution". No stavljanje prefiksa na imena funkcija i/ili klasa sasvim je različita stvar od stavljanja prefiksa na promenljive. > Opet da ponovim: mislim da je deklarisanje promenljivih u strogo > tipiziranim jezicima tehničko ograničenje koje će vrlo brzo doći na > red za *usavršavanje*. Znači, ne izbacivanje, nego usavršavanje. Naravno. I kod i podaci se sve više kreću ka dinamičnim formama, pa će se i mehanizmi deklaracije u skladu s time promeniti i usavršiti. S tim što sam ja skeptik po pitanju tvog 'vrlo brzo' - ući ćemo mi u 21. vek pre nego što se to dogodi.
clipper.880 dr.grba,
>> >> Dakle, uvodeći *obavezni* primarni ključ, i (sigurno) neke >> >> dodatne mehanizme, obezbeđen je integritet podataka. >> >> U primeru koji navodiš, referencijalni integritet. Ideja je da se u >> sistemskom katalogu čuvaju i pravila za njegovo očuvanje, na primer >> DELETE RESTRICTED ili DELETE CASCADES. Prvi slučaj dopušta brisanje >> samo ako nema vezanih podataka, drugi briše i njih. Da li je ovo implementirano u Oracle-u ili Progress-u? žini mi se vrlo zanimljivim alatom. Šta kaže praksa?
clipper.881 d.petrovic,
Ă> -> Sa Blinker-om sam se ponovo rodio :)). Nije sporo prevođenje, Ă> samo me -> nervira kad počne novi modul da me zeza pa pre RMAKE-a Ă> (.rmk je po -> defaultu na "/n /a /l" moram zbog ručnog "clipper Ă> novi /n /a" -> (bez /l) da čekam puno linkovanje. Ă> Ă> Nisam razumeo šta si hteo da kažeš, pogotovo onim "ručnog". Pre nego što otkucam "rmake bla" moram "clipper truc /n /a"
clipper.882 i.a.n.,
>> >> DELETE RESTRICTED ili DELETE CASCADES. Prvi slučaj dopušta >> >> brisanje samo ako nema vezanih podataka, drugi briše i njih. >> >> Da li je ovo implementirano u Oracle-u ili Progress-u? žini mi se >> vrlo zanimljivim alatom. Šta kaže praksa? Oracle 7 nešto od toga ima, ako je suditi po reklamama. DB2 u novoj verziji takođe. Za ostale ne znam. Stvar je u praksi i te kako potrebna, a implementacija je problem utoliko što treba omogućiti da mehanizam dejstvuje za proizvoljan broj nivoa veza, a da se održe razumne performanse celog sistema.
clipper.883 ndragan,
/ se kreira zaista ničemu ne služi (?). Kad treba - treba, al kad ne / treba zašto onda sistem da još dodatno opterećuje programera / kreiranjem "veštačkog" Da, to i jeste praktična mana toga. Banalan primer su dani pred denominaciju, gde se iznos ukucava iz pet puta po 9000000...000, jer broj sa nulom više ne može da stane, a numerička polja su već proširena do daske. Pojavljuju se parovi, trojke, ... entorke istovetnih slogova. Izmišljanje unikatnog ključa je nepotrebno - stavke imaju broj naloga, datum i ostalo što im treba. Kad malo bolje razmislim, većini prometnih datoteka uopšte ne smeta što je najčešće nemoguće napraviti unikatni ključ od postojećih polja. S druge strane, u .dbf sistemima su baze istovremeno sekvencijalne, relativne i indeksne, dok su raniji sistemi ove tipove držali strogo odvojeno: ako ste imali pristup po broju sloga, niste imali indekse i obratno (VAX RMS, naprimer). Unikatni ključ je bio bitan, da bi se slog uopšte mogao locirati. Nije se mogao menjati, ni duplirati. Paradoks prati tu logiku; .dbf sistemi to ne moraju, i čini mi se da je zahtev za postojanjem unikatnog indeksa nastao dok je takav sistem bio jedini moguć. Situacija sa ovako komfornim indeksima s kojima je moguće bukvalno da se igramo, zahtevaće doradu teorije. Bue_ Ndragan
clipper.884 ndragan,
/ Jes' vala, oduvek sam se čudio onim budalama koje u knjige stavljaju / fusnote umesto da ih smeste direktno u tekst :). E, ozbiljno: oduvek sam se čudio onim budalama koje u knjigama stavljaju fusnote na kraj knjige umesto da ih smeste na dno strane Bue_ Ndragan
clipper.885 arazumenic,
-> Pre nego što otkucam "rmake bla" moram "clipper truc /n /a" Ne moraš. Pogledaj još jednom moju poruku 11.636 iz ove konferencije. Saša
clipper.886 bestbp,
Da li je moguce zadati neki format PICTURE, tako da se pri unosu u GET polje ono ponasa kao kasa, dakle ako se unosi 90000, da on ima zarez - 90.000,00. Bolje receno, da unos ide s desne na levu stranu, a ne sa leve na desnu. pozdrav
clipper.887 fric,
> Uzmi neki srpski tekst i dodaj na kraj svake reči u > superskriptu slovo koje označava šta je ona (p za pridev, > g za glagol itd.). To mnogo manje smeta nego par slova na > početku promenljive a ipak će te izluđivati. Nije vic u izluđivanju, već da čitajući s leva u desno odmah znaš o čemu se radi, a prvo veliko slovo u imenu na koje se naiđe označava kraj prefiksa i početak samog imena. > Kao rešenje za jedan tadašnji problem ona je bila odlična. > Danas, ona je potpuno nepotrebna i, po mom mišeljnju, čak > i kontraproduktivna. U (glupom) kliperu nemaš tipove, ne moraš ništa da deklarišeš na početku ... Kako drugačije, sem uz pomoć konvencija (u koje spada i mađarska notacija), mogu sa kakvom-takvom preciznošću znati na šta se odnosi neko _ime_ na koje naletim u sred procedure: na logučku promenljivu, znakovnu, numeričku, niz, polje u bazi (ne daj Bože), neku ko-zna-gde definisanu global ili private ili parameter (sve gore od goreg) promenljivu ... Idealna pravila za kliper bi po meni bila: strogo deklarisanje svega, nema makroa, kompajliranje /w, uz sve to mađarska notacija i još neke konvencije (o imenima globalnih promenljivih i o imenima polja u bazama), i sve treba da bude ok (valjda:). Radio sam nekad u Moduli 2 (timski rad, veliki projekat) i zavoleo njenu _strogu_ tipiziranost, case-sensitive & unlimited (almost) length imena (procedura, modula, promenljivih), itd. Doduše, bilo je ponekad kilavo (bez pomoći pametnog, 'uradi umesto mene' editora) zaroniti u duboko ugnježdene .def fajlove da bi se stiglo do pra-definicije nekog tipa podataka da bi se se razjasnila njegova _prava_ suština. Lepa vremena to behu, kad me nije mogao s*ebati neki variable-not-found error.
clipper.888 nbatocanin,
> ali da je kao jezik dosta loše koncipiran. Šta mu konkretno zameraš?
clipper.889 nbatocanin,
> Prefikse za svakog člana ekipe nikada nismo uvodili i ne > znam čemu vodi takva praksa? Da, zaista nije neko rešenje, ali to je bio projekat od nekoliko godina na kome je radilo kuso i repato. Skoro sve procedure su bile PUBLIC, pa ajde ti izaberi neko ime koje neko već nije upotrebio ;) A tek da u *tom* trenutku ne piše f-ju sa istim nazivom.
clipper.890 nbatocanin,
>>> Usput , sto se tice Visual Objects-a, pravo ime bi >>> trebalo da mu bude ASPEN. > > Radiš li sa njim? Imaš praktična iskustva? De, pričaj > malo, zanima nas sve, siguran sam. VO se *ne* zove Aspen: to je bio radni naziv projekta koji je započeo Nantucket, a sada je deo VO. Imam ja neki tekst na nemačkom, al' ga ič ne razumem :( Znam samo da gledam slike.
clipper.891 nbatocanin,
> Ako neko ima NULLHERC.OBJ iz paketa DGX neka me emajlira. > Miloš Misliš li na NULEXHRC.OBJ iz dGE?
clipper.892 ndragan,
/ potrebna, a implementacija je problem utoliko što treba omogućiti da / mehanizam dejstvuje za proizvoljan broj nivoa veza, a da se održe Imao sam sličan problem par puta; recimo, u bazi kupaca ima nekih indikatora (npr. šifra magacina iz kojeg pazari), koji se prevlače u prometnu bazu. Onda, kad se indikator u matičnoj promeni (mušterija se sad snabdeva iz drugog magacina), treba protrčati kroz prometnu i prepraviti u svim stavkama. U neku ruku bi bilo elegantnije da se taj indikator ne prepisuje u prometnu, nego čita iz matične, ali s druge strane taj baš služi za grupisanje po magacinima kad se vuku izveštaji. Verovatno se stvar može i elegantnije rešiti nekom SQL kombinacijom, ali zasad stoji tako i radi pristojnom brzinom. U većini slučajeva nema načina da se korisnik spreči da uništi neku šifru - jer čak i ako se to zabrani iz aplikacije, on uvek može da nekim drugim programom uleti u bazu i sve to pročačka ručno. Zasad se stvar rešava banalnim upozorenjima, tj niko nije lud da brljavi po sopstvenim podacima, i da posle doživljava zaslužene probleme baš u vreme završnih računa. Međutim, ne bih se čudio da se pojavi neki uvređeni kućni programer da to uradi iz osvete. DOS ne omogućava zaštitu. Bue_ Ndragan
clipper.893 dr.grba,
>> Da li je moguce zadati neki format PICTURE, tako da se pri unosu u >> GET polje ono ponasa kao kasa, dakle ako se unosi 90000, da on ima >> zarez - 90.000,00. Bolje receno, da unos ide s desne na levu >> stranu, a ne sa leve na desnu. Dremaš, a? (: Pogledaj, za početak poruku (i skini priloženi fajl) 11.639, u kojoj Aquarius predlaže jedno prilično kvalitetno rešenje. A usput pročitaj i pratećE reference posle te poruke.
clipper.894 dr.grba,
>> VO se *ne* zove Aspen: to je bio radni naziv projekta koji je >> započeo Nantucket, a sada je deo VO. Imam ja neki tekst na >> nemačkom, al' ga ič ne razumem :( Znam samo da gledam slike. Potpuno isti slučaj: postoji neki bilten što izlazi u nekom nemačkom 'PC magazine' časopisu, a koji se bavi Clipperom. Tamo videh nešto o Win verziji Clippera, ali sam, kao i ti, samo bespomoćno zurio u ilustracije...
clipper.895 ficus,
Pogledaj, za pocetak poruku (i skini prilozeni fajl) 11.639, u kojoj Aquarius predlaze jedno prilicno kvalitetno resenje. A usput procitaj i pratecE reference posle te poruke. pOGLEDAH NABRZAKa predlozeno resenje i ... to je i meni padalo napamet ako sam dobro provalio o cemu se radi ali .... :(((((( kolko sam provalio moram stalno da se zezam sa preblock i postblock moja ideja i ja sam tako kod sebe uradio je da se izmeni getsys.prg (funkcija aplykey kolko se secam) tako da standardni readmodalpoziva tu drugu varijantu. doda se jos jedna proverica za tip parametra i .... program ne zahteva nikakve izmene samo se ulinkuje novi getsys i calc unos radi a u programu sve isto ko da se unosi numerik.
clipper.896 saks,
Imam neki casopis QBS Software News, koji se bavi samo Clipperom. Tu je izasao neki prikaza prvih utisaka o VO. Tu se ne kaze previse, ali ima nekoliko bas lepih slika. Elem: "Clipper programeri su na Techniconu bili impresionirani onim sto VO pruza. Isti obuhvata elemente XBase, Clipper-a, VBasica, VC++-a i Windows API-ja. Postojece aplikeacije se mogu direktno prebaciti u njega. Radice pod Win-om kao prava W31 aplikacija, bez mem ogranicenja, ali u karakter rezimu. Garantovano je 90+ posto kompatibilnosti C5.01 i C5.2 sa VO. VO ima u sebi "form painter", "menu painter", "report painter", "visual debugger" itd. Aplikacija razvijena pomocu njega podrzava Multiple Document Interface lako i brzo (zan li neko sta to znaci?). VO-ov "Repositoru" uklanja potrebu za make fajlovima, automatski, bez programerskih zahvata. Kad se klikne na "build button", Repositoru automatski kompiluje samo one entitete aplikacije koji su menjani. Entiteti imaju svoje browsere koji se automatski startuju u zavisnosti od toga koji je entitet pozvan na izmenu. Kod koji se dobija kompilacijom je pravi (ne pseudo) kod, brzi oko 60 puta od dosadasnjeg. Najveca snaga VO-a lezi u "CommonView class library". To je GUI biblioteka objekata. Ti objekti su svesni tipa podataka kojim manipulisu i automatski predlazu browsere, formatiranje, validaciju... Inicijalno VO database server podrzava operacije u DBF i ODBC/SQL formatima." Sasa
clipper.897 dsisic,
Da li se nekad nekom desilo da program povezan blinkerom sa opcijama: - BLINKER INCREMENTAL PAD ... radi, za razliku od - BLINKER INCREMENTAL OFF gde se javlja nedefinisano pucanje programa ( potpuna blokada ) na komandi : SET RELATION TO ... Potpuno je iskljucena mogucnost greske u postavljanju relacije ( to je prva SET RELATION komanda), inace radi se o CLIPPER 5.2c. Greska se ne javlja pod CLIPPER 5.01a. Greska se javlja prilikom upotrebe blinkera 2.01 i 3.0. RDD je SIXCDX. Vrlo cudno !?
clipper.898 dpredovic,
Jel to stvarno samo ja imam problema sa Blinkerom 3.0 i Funcky-jem, ili svi ostali ćute? Problem sam locirao na __videoinit, ali šta sa tim? Cu, Dejan
clipper.899 bestbp,
Probaj da izbacis neku FUNCKY biblioteku iz CL.BAT. I ja sam imao slicne probleme , a izgleda da on mesa razlicite LIBeĘ._nä pzdrav
clipper.900 saks,
FUNCKY Ima problema sa EXO-Space-om. Tako na primer i FUNCKY-jeva funkcija FRead() izaziva blokadu masine linkovane sa ES-om. Citao sam pre par dana da je F sada kompatibilan sa istim, pa verovatno treba potraziti novi upgrade. Ako je kompatibilan sa ES-om, verovatno je i sa B3.0, jer je sustina problema u radu u protected modu. Sasa
clipper.901 dpredovic,
> Probaj da izbacis neku FUNCKY biblioteku iz CL.BAT. I ja sam > imao slicne probleme , a izgleda da on mesa razlicite LIBeĘ._nä > pzdrav Da izbacim neki lib? Ne moze, svi trebaju...
clipper.902 smoki,
Da, treba mi NULEXHRC.OBJ i DGEHRC kao i iskustva sa DGE-om na Herc-u. HK Miloš. PS. DGEHRC.OBJ :)KKK
clipper.904 neman,
> podacima, i da posle dozivljava zasluzene probleme bas u > vreme zavrsnih racuna. Medutim, ne bih se cudio da se > pojavi neki uvredeni kucni programer da to uradi iz > osvete. DOS ne omogucava zastitu. > > Bue_ Ndragan Mada je poruku potpisao ndragan, ide mi u soru kao rzoltan, ali nema veze :) Ja nameravam da bas zbog tog problema uvedem kontrolni znak za svaki zapis a da u samom programu proverim definiciju dbf datoteke. Glede toga, bas je zgodan onaj programcic Clipvars neman
clipper.905 bestbp,
//a da u samom programu proverim definiciju dbf datoteke. Glede toga, bas je //zgodan onaj programcic Clipvars Hvala, hvala. Nadao sam se da ce vam koristiti kao sto i meni koristi. pozdrav
clipper.906 cnenad,
Instalirao sam novi BLINKER 3. i primetio da nešto nije u redu sa inkrementalnim linkovanjem. Ubacio sam u LNK datoteku BLI INCREMENTAL ON, mada po NG-u to je stanje po DEFAULT-u. Svako linkovanje mu traje oko 12-14 sec. dok 2.01 INCREMENTAL radi oko 0.4-0.6 sec. Da li treba još nešto da se podesi ?
clipper.907 arazumenic,
Juče sam saznao tužnu istinu. Htedoh da isprobam NUM2CALC, pustih kompajler, kad ono ne može da nadje getexit.ch. Pogledam lepo na mestu gde bi trebao da bude, kad tamo su svi ostali .ch fajlovi, samo ovog nema. Verovatno sam ga greskom izbrisao. Stoga molim dobru dušu da mi gorepomenuti fajl pošalje. Saša
clipper.908 gari,
Evo ti getexit.ch (Clipper 5.2c) Nadam se da ce pomoci. pozdrav, Gari. getexit.ch
clipper.909 ndragan,
/ svega, nema makroa, kompajliranje /w, uz sve to mađarska notacija Nema makroa? žoveče, pa vraćaš se u kameno doba. Dobro, u poslednje vreme makroe zamenjujem sa Eval ili (ime) gde ima smisla, ali svejedno - makroi ti omogućuju da prenosiš imena ili delove imena procedura, funkcija, .fr? i drugih fajlova kao _argumente_ u potprograme opšte namene. Blago rečeno, ne bih mogao da živim bez toga. Bue_ Ndragan
clipper.910 bulaja,
│Nema makroa? žoveče, pa vraćaš se u kameno doba. Dobro, u poslednje vreme │makroe zamenjujem sa Eval ili (ime) gde ima smisla, ali svejedno - makroi │ti omogućuju da prenosiš imena ili delove imena procedura, funkcija, .fr? │i drugih fajlova kao _argumente_ u potprograme opšte namene. └─── Bljak, discusting. :) Jesi li nekad prosao pored nekog CODE BLOCK-a?
clipper.911 arazumenic,
-> Evo ti getexit.ch (Clipper 5.2c) Zahvaljujem. Saša
clipper.912 arazumenic,
Povodom NUM2CALC. Fino uradjeno. Postoji par sitnih problema koje sam ustanovio isprobavajući. 1. Ako se kreira get objekt za unos promenljive nVrednost, a nVrednost nije 0, onda bi trebalo da pritiskom na prvu cifru obriše prethodnu vrednost, kao što to radi "normalan" READ. 2. Kurzor nije na pravom mestu ako se stavi picture "čE 999,999.- ". Možda ovo i nije toliko bitno, ali kvari utisak. 3. nVrednost se mora zadati na sledeći način: nVrednost := 0.00, jer na obično nVrednost := 0 javlja se isti problem kao i pod 2. Nadam se da će se autor ovog veoma korisnog dodatka potruditi da ovo ispravi, jer smatram da ovo zaslužuje da se nadje u predloženom SEZAM.LIB. Saša
clipper.913 djelovic,
> Šta mu konkretno zameraš? Uffff... puno toga. Clipper je, po mom mišeljnju, najviše osakaćen dBase kompatiliblnošću, pa tamo i treba potražiti njegove najveće mane: mali broj osnovnih tipova podataka, nepostojanje struktura i unija, nekonzistentnu i lošu sintaksu, slabu tipiziranost podataka i sl. Da se sada po meni ne bi osulo drvlje i kamenje, odmah da naglasim da je po meni i C++ daleko od idealnog jezika, zbog svoje šugave C sintakse. Najbliže idealu bi čini mi se bio nekakav Turbo Pascal 5.0 + objektne ekstenzije identične onima iz C++-a. Na žalost, taj je voz već propušten :(. P.S. Da li je u Clipperu moguće odvojiti definiciju i implementaciju? Ako nije, eto još jednog minusa :(.
clipper.914 ndragan,
/ Bljak, discusting. :) De gusibus non est disputandum :). Ovo mi omogućava da pravim rutine opšte namene, koje rade jedan deo posla, a kao parametre im prosleđujem druge stvari, te upravo postižem ono što je cilj modularnog programiranja: manje koda, manje ponavljanja. / Jesi li nekad prosao pored nekog CODE BLOCK-a? Hm, u firmu stiže ukupno jedan primerak Računara te promakne da ga ne primetim, a kad je to bilo na jelovniku imali smo nesporazum sa pretplatnom službom, ili sam iz nekih drugih razloga džonjao na času... Jel može u kratkim crtama šta je tu suštinski novo? Bue_ Ndragan p.s. nisam potencijalni kliperaš, nego radoznao.
clipper.915 .bale.,
> P.S. Da li je u Clipperu moguće odvojiti definiciju i implementaciju? > Ako nije, eto još jednog minusa :(. Pa Clipper je polu-interpreter. To razdvajanje mu dođe samo kao još jedna komplikacija.
clipper.916 bulaja,
**** new file **** R:\IBMPC\CLIPPER\*.* ---------------------- bumenu14 zip 12460 BuMenu 1.4, poboljšani sistem menija za Clipper(bulaja) 04.02.94 - v1.4 ───────────────── - dokumentacija u obliku NG (Norton Guide) - ukljucena BuMenu.ch include datoteka za lakse koriscenje BuMenu sistema i emulaciju standardne @..PROMPT.. i MENU TO.. sintakse - ispravljene jos neke sitnice, samo se vise ne secam koje :) 02.09.93 - v1.31 (never released:) ────────────────── - ispravljen mali bug :) u bu_MenuColor(), zbog koga nije Ok radilo ne-automatsko podesavanje boja
clipper.918 fric,
> Nema makroa? žoveče, pa vraćaš se u kameno doba. Dobro, u > poslednje vreme makroe zamenjujem sa Eval ili (ime) gde ... > Blago rečeno, ne bih mogao da živim bez toga. Well, _teoretksi_, upotrebom kodnim blokovima je moguće izbaciti potrebu za makroima. Makroe, kaže dalje teorija, treba izbegavati jer se zbog njih (ako se samo jednom pojavljuju u kodu) ulinkljuje :) i ceo interpreter za iste. Drugi razlog za izbegavanje istih je, normalno, pouzdanost: kompajler ne može da provali da li ono što je protureno kroz makro ima smisla; error bupne tek kad se makro lepo razvije :) U praksi, makroe i dalje koristim :) ponekad kad me mrzi da provalim kako bih isto uradio sa kodnim blokovima.
clipper.919 vlaslo,
hi :-) da li neko moze da mi objasni oblik ntxXXX.obj filea u clp 5.2 jer zeleo bih da napravim index za madjarski jezik. cu
clipper.920 drdjokic,
Imam sledeci problem. U mrezi koristim svoj program, kada posaljem stampu na stampac on ne reaguje. Stampa tek kada izadjem u DOS. Isti problem imam i sa nekim komercijalnim softverom. Sta da radim ? Hvala u napred !
clipper.921 bulaja,
Moze li se nekako iz #command / #translate direktiva pristupati članovima niza? Standardnim načinom aNiz[i] to naravno nije moguće, pošto pretprocesor [ ] smatra kao separatore opcionih argumenata. Pod rešenjem ne podrazumevam pravljenje neke funkcije kao što je: FUNC ArrayElement (aArray, nIndex) RETURN aArray[nIndex] :) već me interesuje da li #command/#translate omogućavaju direktan pristup članovima niza?
clipper.922 cnenad,
ŁŁŁ - ispravljene jos neke sitnice, samo se vise ne secam koje :) Jel ono sa MESSAGE ako je negde na sredini pa seče ram koji je iscrtan na ekranu ?
clipper.923 dsisic,
Stigao je patch za SIXCDX 1.5. Po nekom mom rezonu bilo bi OK da ga tutnem ovde, ako ni to ne moze, bicu dostupan preko mail-a.
clipper.924 nbatocanin,
>> Šta mu konkretno zameraš? > mali broj osnovnih tipova podataka, Da, ovde bi se moglo dodati ponešto... > nepostojanje struktura i unija Strukture on ima: kako drugačije da zoveš ovo: {1, "ABC", Date()}. Što se tiče unija, nisam baš lud za njima: to je mašinska caka za uštedu prostora koji se u Clipper-u ne štedi ni na mnogo važnijim mestima ;) > nekonzistentnu i lošu sintaksu, Paaa... Ne bih se baš složio. Šta je nekonzistentno? Meni jedino smetaju "doslovni argumenti" (USE Test, a ne USE "Test"), ali i to je sad sređeno. > slabu tipiziranost podataka i sl. ;) E, ovde se ne slažemo. Meni čak odgovara netipiziranost. Izgleda da je najbolje rešenje zlatna sredina primenjena u VO: 'oš tipizirane, 'oš netipizirane podatke, pa biraj :) > Da se sada po meni ne bi osulo drvlje i kamenje, odmah da naglasim da > je po meni i C++ daleko od idealnog jezika, zbog svoje šugave C > sintakse. Najbliže idealu bi čini mi se bio nekakav Turbo Pascal 5.0 > + objektne ekstenzije identične onima iz C++-a. Na žalost, taj je voz > već propušten :(. C je svoje pristalice dobio tako što je bio prvi jezik koji je zaista oslobodio programera: lično me je strašno nerviralo što kad radiš u nekom jeziku ne možeš sve da uradiš u njemu, nego spajaj sa ovim, pa sa onim, itd. C je tu napravio revoluciju - prevodilac ti skoro kaže: "bato, piši šta oćeš, pa šemo da vidimo". I to je nešto što se i meni kao programeru zaista sviđa - uostalom, ko voli ograničenja? E, sad: naravno da se tako nešto i gubi. Pascal (ili Modula) su mnogo lepši jezici za čitanje, ali nisu postali tako popularni uglavnom samo zato što su imali glupa ograničenja (je*eš jezik bez stepenovanja). Eto, Borland je dodao par caka u TP i vidite šta je napravio. No, tu smo gde smo i nema nam izlaza ;) A da je voz propušten, nisam siguran - ko zna šta će sutra biti... > P.S. Da li je u Clipperu moguće odvojiti definiciju i > implementaciju? Ako nije, eto još jednog minusa :(. Slušaj, razmišljanje ti je kontekstno vezano: probaj malo da se prebaciš u drugu klasu problema. Clipper je sa te strane tipičan izvršibilan jezik: čak su i deklaracije poput PUBLIC izvršne naredbe. Tačno, ima to nedostataka. Međutim, imaj u vidu pri proceni Clipper-a da su neke stvari zaista originalne: pretprocesor, koncepcija core jezika kome pretprocesor daje finalni izgled; kod blokovi - jedna zaista odlična ideja - *akcije* koje se tretiraju kao podaci (sasvim u duhu OOP-a); potpuno modularna struktura: pristup bazi podataka, terminal, GET sistem, obrada grešaka... Naročito sistem za obradu grešaka.
clipper.925 bulaja,
│Stigao je patch za SIXCDX 1.5. Po nekom mom rezonu bilo bi OK │da ga tutnem ovde, ako ni to ne moze, bicu dostupan preko mail-a. └─── Baci ga meni na mail :), pa ako može da ide u dir (a trebalo bi da može:), prebacicu ga.
clipper.926 bulaja,
│Jel ono sa MESSAGE ako je negde na sredini pa seče ram koji je iscrtan │na ekranu ? └─── Nemam pojma, uopšte ne koristim MESSAGE :)).
clipper.927 ndragan,
/ ono što je protureno kroz makro ima smisla; error bupne tek / kad se makro lepo razvije :) Nisam rekao da to ne zahteva stanovitu disciplinu ;). Ali je zato moćna stvar kad uklaviriš šta sve možeš da uradiš. / U praksi, makroe i dalje koristim :) ponekad kad me mrzi da / provalim kako bih isto uradio sa kodnim blokovima. Ama u čemu je stvar sa kodnim blokovima? Samo čujem priče o tome a niko da provali poentu. Bue_ Ndragan
clipper.928 dvesic,
Naravno da moze ! Dovoljno je da ispred [ MM] dodas \ i resen problem ! (provaljeno probanjem ne znam da li pise i u dokumentacijMi) Pozdrav, Dejan. P.S. Posto odgovaram On-Line, pitanje je bilo na referenciranje elemenata niza u xcommand/xtranslate direktivama pretproc.
clipper.929 djelovic,
> Imam sledeci problem. U mrezi koristim svoj program, kada posaljem stampu > na stampac on ne reaguje. Stampa tek kada izadjem u DOS. Isti problem imam > i sa nekim komercijalnim softverom. Sta da radim ? Ako misliš na mrežni štampač, on štampa tek posle određenog vremenskog time-outa. Možda je u tome problem?
clipper.930 djelovic,
> Strukture on ima: kako drugačije da zoveš ovo: {1, "ABC", Date()}. Ja to zovem "niz" :). Clipperovi nizovi u koje može svašta da se trpa pri dinamičkom pogledu (objekti i tokovi podataka) na sistem možda i liče na strukture, ali u statičkoj slici sistema (procedure i podaci) oni su kilometrima daleko. Struktura je, kada se definiše, novi tip podataka potpuno ravnopravan sa onim koje neki jezik već nudi. Ako uzmemo da je pravilan dizajn "data driven", onda je jasno da su strukture veoma bitne jer omogućuju da se tipovi realnih objekata, klase, što bolje preslikaju u program. U vezi Clipperove slabosti sa tipovima podataka: Ameri imaju izreku "when the only tool you've got is a hammer, everything starts looking like na nail." Strašno često vidim Clipper programere kako koriste tabele tamo gde bi mala uvezana lista ili nešto slično bilo na mestu :(. Znate li vi ljudi za itša drugo sem tabela? :) > ;) E, ovde se ne slažemo. Meni čak odgovara netipiziranost. Izgleda > da je najbolje rešenje zlatna sredina primenjena u VO: 'oš > tipizirane, 'oš netipizirane podatke, pa biraj :) Jel znaš kako je nastala objektna orijentacija? Iz potrebe! Naime, strukturirani programi su udarili u zid kada su došli do nekih 100,000 linija. Postali su užasno teški za održavanje i proširivanje, a često se dešavalo da jedna ispravljena greška unosi pet novih u program. Iz istih razloga je nastalo strukturirano programiranje, jaka tipizacija podataka, provera argumenata pri pozivu funkcije i slične "moderne" tekovine: da bi se programi preko neke kritične veličine lakše održavalii proširivali. Rešenje koje nudi jaku tipiziranost a u isto vreme i veliku slobodu pri manipulaciji podacima jeste dinamička tipizacija koju implementira recimo Smalltalk, a moja opklada je da će je implementirati i Clipper kroz verziju-dve. > Tačno, ima to nedostataka. Međutim, imaj u vidu pri proceni Clipper-a > da su neke stvari zaista originalne: pretprocesor, koncepcija core > jezika kome pretprocesor daje finalni izgled; kod blokovi - jedna > zaista odlična ideja - *akcije* koje se tretiraju kao podaci (sasvim > u duhu OOP-a); potpuno modularna struktura: pristup bazi podataka, > terminal, GET sistem, obrada grešaka... Naročito sistem za obradu > grešaka. Mane koje Clipper ima su većinom zaostaci iz dBase dana kojih će se on sa vremenom rešiti. Clipper ima sjajnu budućnost jer je interpretiran, što mu omogućuje fleksibilnost kakvu kompajlirani jezici nikada neće moći da imaju. Kodni blokovi su upravo odličan primer toga što interpreter može da uradi dok kod kompajlera to ide dosta nategnuto, kroz pointere na funkcije. Toliko mi se sviđaju da ću da poludim što ih C++ nema :). P.S. GET sistem baš i nije neki argument u korist Clippera, jer je: a) prevaziđen b) lako se implementira u bilo kom jeziku c) ne nudi ništa posebno Takođe, obrada grešaka u Clipperu je zbog toga što je interpeter zaista dobra, ali ima i boljih. Ada već odavno a C++ odskora implementiraju izuzetke, exceptions, koji de facto predstavljaju najbolji način za kontrolu grešaka do danas. čivi bili pa videli.
clipper.932 herak,
> Imam sledeci problem. U mrezi koristim svoj program, kada posaljem stampu > na stampac on ne reaguje. Stampa tek kada izadjem u DOS. Isti problem imam > i sa nekim komercijalnim softverom. Sta da radim? Ne znam o kojoj mreži je reč, ali ako je Novell, ovo se najčešće dešava zbog dve stvari: 1) Nije dobro (ili uopšte) startovan capture (mada sumnjam). 2) Nije zatvoren lpt port. Ovo drugo je verovatnije, jer sudeći po tome da ipak štampa kada se normalno izadje u DOS, a to je trenutak kada program zatvara sve fajlove, strimove (lpt port je jedan od njih), vrata, šlic... Pogledaj, daklem, svoju funkciju za štampanje i po izlasku iz funkcije (potprograma) zatvori port. Kliper, na žalost, ne znam, tako da ne znam ni kako, ni da li se za štampanja prave posebne funkcije ili postoje gotove koje otvaraju port, štampaju...Simptomatika je, medjutim, tipična tako da mislim da će ti ovo pomoći. Pozdrav, Herak.
clipper.934 kermit,
Uzmi bilo koju biblioteku za rad u mrezi i pornadji komandu koja daje znak da je stampanje zavrseno u netto mislim da bese ft_flpt() flush lpt port i tvoj problem je resen !!! Kermit
clipper.935 fric,
> Imam sledeci problem. U mrezi koristim svoj program, kada > posaljem stampu na stampac on ne reaguje. Stampa tek kada > izadjem u DOS. Isti problem imam i sa nekim komercijalnim > softverom. Sta da radim ? > > Hvala u napred ! Na početku štampe stavi SET PRINTER TO cPrintPort Na kraju štampe stavi samo SET PRINTER TO You are well come !
clipper.936 dr.grba,
>> Ali je zato moćna stvar kad uklaviriš šta sve možeš da uradiš. Da li će mi neko objasniti kako se može raditi bilo šta kad se uđe u klavir? Pa još ako je pijanino, bože blagi... >> Ama u čemu je stvar sa kodnim blokovima? Samo čujem priče o tome a >> niko da provali poentu. Pa u tome je i poenta, da ne shvatiš u čemu je stvar. Je*eš jezik bez takvog elementa. P.S. Sorry, folks, moram malo da udaram kontru komšiji, i on peca nas (:
clipper.937 snemcev,
>> Baci ga meni na mail :), pa ako može da ide u dir (a trebalo bi >> da može:), prebacicu ga. A ako ne može, opet znaš gde ćeš ga prebaciti ;))
clipper.938 vlaslo,
Evo saljem vam moj skromni program, pa ga vi upotrebite potrebi cu :-) spec.zip
clipper.939 nbatocanin,
> da li neko moze da mi objasni oblik ntxXXX.obj filea u clp > 5.2 jer zeleo bih da napravim index za madjarski jezik. Šta podrazumevaš pod NTX za mađarski? Ako hoćeš sortiranje po nekom kodnom rasporedu, dovoljno je da napraviš par funkcija.
clipper.940 nbatocanin,
> :) već me interesuje da li #command/#translate omogućavaju > direktan pristup članovima niza? a\[ i \]
clipper.941 nbatocanin,
> Stigao je patch za SIXCDX 1.5. Po nekom mom rezonu bilo bi > OK da ga tutnem ovde, ako ni to ne moze, bicu dostupan > preko mail-a. To! Moram javno da izjavim da je SIx RDD jedan od najboljih proizvoda koji sam ikada video :)
clipper.942 cnenad,
ŁŁŁ Nemam pojma, uopšte ne koristim MESSAGE :)). U dokumentaciji si naveo da ako koristim CL 5.01. BUMENU.LIB je potrebno prevesti ponovo. Šta sve tačno treba uraditi ?
clipper.943 rzoltan,
/ ono što je protureno kroz makro ima smisla; error bupne tek / kad se makro lepo razvije :) Nisam rekao da to ne zahteva stanovitu disciplinu ;). Ali je zato moćna stvar kad uklaviriš šta sve možeš da uradiš. / U praksi, makroe i dalje koristim :) ponekad kad me mrzi da / provalim kako bih isto uradio sa kodnim blokovima. Ama u čemu je stvar sa kodnim blokovima? Samo čujem priče o tome a niko da provali poentu. Bue_ Ndragan
clipper.944 ndragan,
/ smetaju "doslovni argumenti" (USE Test, a ne USE "Test"), ali i to je Da, to je i meni smetalo kad sam se prvi put sreo s Kliperom (u leto 88, dok je S87 još bio svež). Onda sam ukapirao da tih implicitnih navodnika ima tušta i tma, i da je kompajler dovoljno pametan da ih sam posadi gde treba. Iduće godine sam uleteo u foks i uopšte se nisam čudio. Nek mašina odradi svoje, a ja imam o čemu da vodim računa. Bue_ Ndragan
clipper.945 ndragan,
/ Pod rešenjem ne podrazumevam pravljenje neke funkcije kao što je: Al me vučeš za hezik: AELEMENT(<array>, <expN1> Š, <expN2>Ć) ─────────────────────────────────── Returns array element's number from its row and column subscripts. Return value - Numeric ─────────────────────────────────── Some FoxPro functions (ACOPY(), ASCAN() , ASORT() ... ) that manipulate two-dimensional arrays require that elements be referred to by their element number. AELEMENT() facilitates conversion from subscripts to an element number for these functions. The corresponding row and column subscripts may be returned from an element number with the ASUBSCRIPT() function. Bue_ Ndragan
clipper.946 bulaja,
│U dokumentaciji si naveo da ako koristim CL 5.01. BUMENU.LIB │je potrebno prevesti ponovo. Šta sve tačno treba uraditi ? └─── Clipper BuMenu.prg /n /w TLib BuMenu.lib +-BuMenu.obj // ili Lib umesto TLib
clipper.947 dvesic,
Cao ! Vidim da ste se zainteresovali za kodne blokove, a Bulaja nesto zauzet, pa da mu pripomognem malo :) Kodni blok je totalno nova koncepcija u Clipper jeziku. Kodni blok je i tip podatka i inline funkcija. Tacnije kodni blok je iskompajlirani deo koda na koji se moze referisati. Osobine kao podatak : Moze se dodeljivati promenljivama, prenositi kao argument funkcijama i vratiti kao rezultat funkcije. Kao funkcija : Moze imati argumente, i moze vracati rezultat svog izracunavanja. Posto ovo gore sto napisah ni meni nije bas najjasnije, probacu kroz primere : Definicija kodnog bloka je : { | opcionalni parametri odvojeni zarezom | Telo kodnog bloka } Izracunavanje kodnog bloka se radi preko xxEval funkcija : Eval( cbName [,parametri kodnog bloka] ) Rezultat je izracunata vrednost bloka za date parametre, ako ih ima. aEval( aNiz, cbIme ,[nStart],[nEnd] ) Kodni blok se izracunava sa svaki element niza pocev od nStart do nEnd (ako ih nema, ceo niz je u pitanju). Blok mora (cuj, mora - treba) imati definisan jedan formalni parametar; on zamenjuje elemenat niza koji mu se sukcesivno prosledjuje. dbEval .... Pogledajte u Norton Guid-u Primeri : A := {|| Qout( RecNo() / LastRec() ) } Eval( A ) // Daje procenat predjenosti baze QOut( Eval( {|x,y| x + y } , 1, 2) ) // daje 3 ;) Vise naredbi u kodnom bloku se odvaja zarezima : A := {|x,y,z| QOut("Argumenti su ") , ; QOUT(x,y,z) } Sada kada ste dobili predstavu (dal' ste ? ;) ) o tome kako se definisu i izracunavaju, pitanje je : Cemu to sluzi, a uz to i ne radi ? Primena je neverovatna. Preko 40% svih komandi i funkcija je realizovano preko kodnih blokova : SUM, AVERAGE, DELETE FOR, REPLACE FOR... za detalje, koga zanima, pogledajte fajl \clipper5\include\std.ch (standardni header). U prakticnom programerskom zivotu, omogucava neverovatnu fleksibilnost. Skoro na svakom mestu gde su makroi mogu se zameniti kodnim blokom. Pri tome se kompajliraju samo jednom, izvrsavaju trenutno. Prakticni primeri : Neka je vas funkcija definisana na sledeci nacin : MojaFunkc(.......,cImeFunkcije) gde je cImeFunkcije string sa imenom funkcije koji preko makroa izvrsavate tj. &cImeFunkcije Ako ste pozivali funkciju sa MojaFunkc(........,"NekaFunk()") biva pozvana i izvrsena NekaFunkc(). Sada je dovoljno zameniti &cImeFunkcije sa Eval( cImeFunkcije) , "NekaFunk()" sa {|| NekaFunk() } i dobijate ekvivalent sa gornjim uz mnogo vise pogodnosti. Ili, napravite opsti Browse-r nad bazom, koji bi za razne baze trebao razlicito da reaguje na odredjene tastere. Nista lakse; neka jedan od parametara vaseg browse-ra bude dvodimenzionalni niz koji sadrzi parove { nKey, cbBlok } ; sada, ako se pritisne taster nKey izvrsi kodni blok cbBlok : funkciju, brisanje sloga, RECALL sloga, ili bilo sta drugo sta vam padne na pamet : Function Browser(....,aAkcije) ^--------- pominjani dvodimenzionalni niz Primer poziva : Browser(....., { { K_DEL, {|| If( Deleted(), ; dbDelete(), ; dbRecall ) },; { K_ENTER, {|| EditRec() } , ... }) // Deo koda koji obradjuje pritisnuti taster. A := Inkey (0) If ( Tmp:= aScan( aAkcije, {|x| (x[1]==A) } ) <> 0 Eval( aAkcije[Tmp][2] Endif Zar nije lepo i elegantno ? Raspisah se. Ako nekog jos nesto interesuje ( kako deo koda sa makroom zameniti kodnim blokom i sl ) nek samo samo pita. Budite pozdravljeni ! Dejan.
clipper.948 dejanr,
Hvala na zanimljivom i korisnom opisu :)
clipper.949 ficus,
:)> Sta mu konkretno zameras? :) Uffff... puno toga. Clipper je, po mom miseljnju, najvise osakacen dBase :) kompatiliblnoscu, pa tamo i treba potraziti njegove najvece mane: mali :) broj osnovnih tipova podataka, nepostojanje struktura i unija, :) nekonzistentnu i losu sintaksu, slabu tipiziranost podataka i sl. Sto se tipova podataka tice ajd reci koj tip ti konkretno fali sto se struktura tice nizovi su istovremeno i strukture p.s. sto se unija tice probaj: local a:="aaaaa" //a je string ? a a:=1 //a je numeric ? a a:=ctod("01.01.93")//a je datum ? a to ce kolko se secam da radi tako da sa te strane gledista clipper je mnogo iznad ostalih prg jezika naravno to smanjuje preglednost prog. i... ali cisto reda radi prava zamerka na clipper je: ZASTO CLIPPER PRIHVATA SAMO PRVIH 10 SLOVA ZA NAZIV IDENTIFIKATORA TJ KREIRAJ_FAJL_KONTA I KREIRAJ_FAJL_NALOGA SU ZA NJEGA ISTE F-IJE POSTOJI LI NEKI NACIN DA GA UBEDIM DA RADI DRUKCIJE AKO POSTOJI KOJI JE AKO NE NIKOM NISTA. :(
clipper.950 todorp,
Evo i ovde da pitam: > =============================== > 12.170 PC.PROG.3:baze.podataka > todorp, 10.02.Cet 15:34, 207 chr > --------------------------------------------------------- > Hi! > Da li neko ima neke rutine u C-u za rad sa .dbt fajlovima (znaci dbaseIII memo > polja), ili barem ako ima strukturu .dbt fajla. I need it badly. Zar je moguce da niko nema pojma?
clipper.951 bulaja,
│Sto se tipova podataka tice ajd reci koj tip ti konkretno fali └─── Vrlo jednostavno :), fale integeri (short, long,..).
clipper.952 bulaja,
**** new file **** R:\IBMPC\CLIPPER\*.* ---------------------- six15_p1 zip 59852 SIx Driver 1.5 Fix #1 Maintenance Update (SIXCDX, Intl) NOTE: This patch is for the INTERNATIONAL release of SIXCDX v1.5 only, and does NOT apply to the US SIXCDX v1.5 release. This ZIP file includes patch files for updating v1.5 of The SIx Driver (SIXCDX, Int'l) and Mach SIx to Maintenance Update #1. This new release is still v1.5, but the time stamps of the updated files have been changed indicate the newer revision. =========================================================================== This maintenance update corrects the following items: 1. Opening .DBF/.DBT without DBT.OBJ would NOT generate an error. 2. Associated .INI file not loaded if data file extension was not .DBF. 3. Sx_IndexCount() could return incorrect value in some cases. 4. Encrypting a previously decrypted DBF file could fail in some cases. 5. 'TRIGGER' keyword in .INI file was not setting new trigger. 6. ZAP with DBT.OBJ would produce an incorrect .DBT file. 7. Sx_DBFencrypt() was not encrypting .FPT if password parameter was not specified. 8. With a SCOPE set to <higher than any key>, Sx_KeyCount() would move the record pointer. 9. Calling Sx_KeyNo() repeatedly with a SCOPE active would eat memory. 10. A GPF error would occur (Under ExoSpace or Blinker 3.0 Protected Mode) when doing a SET TAG TO following deletion of another TAG. 11. Sx_KeyData() would return incorrect data w/ non-selected index. 12. USE w/ Structural .CDX would cause GPF w/ Blinker 3.0 and Clipper 5.01a. This is corrected with the BLXCDX51.OBJ file, which should ONLY be used with Blinker 3.0 and Clipper 5.01a. ------------------ <Thanks to dsisic>
clipper.953 nbatocanin,
> Ama u čemu je stvar sa kodnim blokovima? Samo čujem priče > o tome a niko da provali poentu. Bilo je rasprava o tome ovde, da ne ponavljam. Ukratko, kodni blokovi su obične funkcije bez imena koje se mogu tretirati kao i ostali podaci. Osnovna namena je za zadavanja metoda objekata i za definisanje novih naredbi. Na primer, mogu se dodeljivati promenljivim: b := {|x,y| x+y } Ova naredba kodni blok (bezimenu funkciju) za sabiranje dva broja dodeljuje b-u. Takve funkcije se mogu i izvršavati: ? Eval (b, 4, 6) // 10 U suštini, radi se o pokazivačima na funkcije. Međutim, sintaksno rešenje pruža veoma lepe mogućnosti. Najbolje je što se mogu prosleđivati funkcijama: Sort (a, {|x,y| x <= y } ) Značenje: sortiraj niz A pri čemu je kriterijum za poređenje zadat kodnim blokom tim i tim. Ukratko, podaci sad mogu da sadrže i informacije tipa "kako", a ne samo "šta".
clipper.954 nbatocanin,
> Struktura je, kada se definiše, novi tip podataka potpuno ravnopravan > sa onim koje neki jezik već nudi. U čemu se ogleda ta ravnopravnost? Pa po ovoj definiciji ni čist C ni Pascal nemaju strukture, jer su osnovni tipovi favorizovani - za sve izvedene tipove ne mogu se definisati operatori ;) Ozbiljno, Clipper-u nedostaje samo jedna stvar da bi imao prave slogove: imenovanje elemenata niza. Međutim, to su upravo objekti bez metoda. E, sad još samo da sačekamo 6.0 pa da dobijemo naredbu za kreiranje klasa ;( > :(. Znate li vi ljudi za išta drugo sem tabela? :) Kažu knjige: relaciona baza podataka je model realnog sistema gde su svi realni objekti predstavljeni pomoću tabela i ničeg drugog sem tabela ;) > Rešenje koje nudi jaku tipiziranost a u isto vreme i > veliku slobodu pri manipulaciji podacima jeste dinamička > tipizacija koju implementira recimo Smalltalk, a moja > opklada je da će je implementirati i Clipper kroz > verziju-dve. Već jeste: po prvim vestima tako upravo radi VO. > Kodni blokovi su upravo odličan primer toga što > interpreter može da uradi dok kod kompajlera to ide dosta > nategnuto, kroz pointere na funkcije. Zašto bi se kodni blokovi lakše napravili u interpreterima? Njihova prednost u Clipper-u je upravo to što se prevode (dobro, u p-kod), a ne interpretiraju kao makroi. > P.S. GET sistem baš i nije neki argument u korist > Clippera, jer je: a) prevaziđen > b) lako se implementira u bilo kom jeziku > c) ne nudi ništa posebno a) Možda ako misliš na nivo SAY..GET b) Da, ali bi imao da poludiš od pokazivača na sve i svašta ;) hint: @ 0,0 GET x WHEN x > y READER MyReader() c) Šta bi ti dodao? Ja još nisam našao nešto što mi je zatrebalo, a da dodavanje nije bilo na granici trivijalnog. > Takođe, obrada grešaka u Clipperu je zbog toga što je > interpeter zaista dobra, ali ima i boljih. Ada već odavno > a C++ odskora implementiraju izuzetke, exceptions, koji de > facto predstavljaju najbolji način za kontrolu grešaka do > danas. Stao sam i razmislio: ne vidim vezu između Error sistema i interpretera (možda sam nešto prevideo?). Kada se desi greška u programu, nafiluje se jedan slog podacima o greški i pozove aktuelna procedura za obradu greške. E, a drugi nivo sa BEGIN/END SEQUENCE je takođe čist: kada se dođe do BREAK, očisti se stek i ide se na sledeću naredbu.
clipper.955 cnenad,
ŁŁŁ TLib BuMenu.lib +-BuMenu.obj // ili Lib umesto TLib Gde naći TLib ili LIB ? Linkovati sa ovim priložnim BUMENU.LIB-om od verzije 1.4 ?
clipper.956 dejanr,
>> ZASTO CLIPPER PRIHVATA SAMO PRVIH 10 SLOVA ZA NAZIV >> IDENTIFIKATORA TJ KREIRAJ_FAJL_KONTA I KREIRAJ_FAJL_NALOGA SU >> ZA NJEGA ISTE F-IJE >> POSTOJI LI NEKI NACIN DA GA UBEDIM DA RADI DRUKCIJE AKO POSTOJI >> KOJI JE AKO NE NIKOM NISTA. :( Nikom ništa :(
clipper.957 ficus,
:)> Strukture on ima: kako drugacije da zoves ovo: {1, "ABC", Date()}. :) :) Ja to zovem "niz" :). Clipperovi nizovi u koje moze svasta da se trpa pri Pa sta onda fali tom nizu jos par define-ova i eto ti struktura uzgred a sta bi sa oClip-om on nudi objekte(klase) i eto ti opet struktura :) Strasno cesto vidim Clipper programere kako koriste tabele tamo gde bi :) mala uvezana lista ili nesto slicno bilo na mestu :(. Znate li vi ljudi za :) itsa drugo sem tabela? :) Sta podrazumevas pod tablama ako su to visedimenzionalni nizovi u clipperu je niz istovremeno i lista :) Jel znas kako je nastala objektna orijentacija? Iz potrebe! Naime, :) strukturirani programi su udarili u zid kada su dosli do nekih 100,000 ok ali ja smatram da ako ja u programu od 10.000 linija mogu da se snalazim sa komentarom tu i tamo i bez pisanja dokumentacije... uzgred imas klasu podatak koju naslede podatak_int i podatak float napises funkciju koja prima objekat klase podatak jer ti odgovara da prenosis i int i float e a onda definises podatak string i ode sve u pi*du materinu. Moje misljenje je da se svaki program moze napisati i neobjektno ali obicno klase i objkte koristim iskljucivo zbog preglednosti.Mada tu i tamo i malo nasledjivanja i virt. fija nije na odmet ali... to trenutno jako malo programera koristi dodacu nazalost. :) linija. kod kompajlera to ide dosta nategnuto, kroz pointere na funkcije. :) Toliko mi se svidaju da cu da poludim sto ih C++ nema :). Meni se vise svidja pretprocesor koj istini za volju u clipperu i ne koristim puno u c-u bi mozda pravio nepregledne komande ali i dalje mislim da je kao mogucnost veoma dobra sra znate jednog dana "D++" ;))) Druga stvar koja mi fali u c-u je dobra podrska za baze podataka mislim na nesto mnogo bolje od onog u clipperu ali :((( uz to bi mogo i jedan fini user interface.
clipper.958 ficus,
:) Ama u cemu je stvar sa kodnim blokovima? Samo cujem price o tome a niko :) da provali poentu. Code block: nesto slicno makrou i slicno funkciji u principu mozes da pozoves funkciju da izracunas izraz itd.. primeri: b1={||blockfunct()} i sada mozes da b1 koristis u naredbama aeval dbeval itd i onda ti se za svaki elemenat (slog) izvrsi funkcija blockfunct. mogu primati argumente npr {|x,y|max(x,y)} i vracaju vrednost slicno ko f-ija zgodni su za prenos isto ko i makroi ali su mnogo brzi jer se prevode pri kompajliranju... Rezime: Zaboravi na makroe ako nisi preterano naviko na njih i ako ti bas ne treba nesto sasvim posebno u svkom slucaju nauci code blockove jer ti omogucavaju dosta toga a i brzi su i ako ti bas treba makro a neces ga izvrsiti samo jednom probaj nesto ovako: block:=&("{||"+tekst tvog makroa+"}") for i:=1 to 1000 eval(block) next ovo ce jednom prevesti makro u blok pa ga ti upotrebljavaj ko blok kolko oces bice brze.
clipper.959 dr.grba,
>> uzgred a sta bi sa oClip-om on nudi objekte(klase) ... Jeste, nudi *implementaciju* klasa na korisničkom nivou. Ali niko ne garantuje da će ta implementacija biti kompatibilna sa eventualnim pravm sintaksom rada sa objektima u budućnosti. žak čovek nije načisto da li bi se igranje sa #command i #translate u takvoj situaciji isplatilo... Zato, bar što se mene tiče, čekam nešto pravo...
clipper.961 neman,
Pre nekog vremena je neko napisao poruku u kojoj je prijavio slucaj da CDX drajver lose zapisuje indeksnu datoteku na Novell Lite mrezi ( brisao sam poruke u SORu pa nisam lupio reply :). Danas sam pustio test program ( sto sam ranije obecao da cu da uradim pa nisam :( )koji je upisivao jednu vrednost u polju kljuca a drugi upisivao drugu vrednost. Obe vrednosti polja su fiksne, "a" za jedan racunar a "b" za drugi racunar. Programi su se naravno izvrsavali paralelno :). I jedan i drugi su u bazu upisali po 1000 slogova, i to ispravno i nisu se javljali mali kinezi ;). To sam proveravao iz DBASEa. Kada sam pokusao da sumiram iznose drugog polja ( za oba programa to je bilo 10 ) program je video samo jednu grupu zapisa, bilo "a" bilo "b", u zavisnosti od toga koji je program kasnije zavrsio rad !?!!?. Prvo popunjavanje baze sam vrsio samo sa APPEND BLANK, bez provere gresaka ( nije ih ni bilo ), a zatim sam iza svako REPLACE dodao DBCOMMIT(); UNLOCK par. Za CDX datoteku to nije bilo dovoljno :((. Programcic sam testirao samo jednom, u zurbi, na kraju danasnjeg pristupa mrezi, ali mislim da nije bilo drugih gresaka. Ovaj bag, ukoliko postoji, iz daljeg razmatranja promene indeksnog drajvera :) dafinitivno izbacuje CA CDX. Ocekujem da dobijem za neki dan SIXCDX :) pa cu da nastavim testiranje. neman
clipper.962 neman,
A da, mreza je Novell Netware 3.11, 10-tak radnih stanica fercera 8 - 10 sati dnevno, ima ugradjen bridz i uospte se ne ponasa ;) neman
clipper.963 aquarius,
Evo malo poboljsane verzije Num2Calc, koja ispunjava neke od zahteva koji su postavljeni ovde na Sezamu, samo se fajl sada zove NLabSGRd. Sto se mene tice ovo moze i u Clipper dir, naravno ako Bulaja nadje za shodno. Ako ima primedbi, kritika, sugestija, tu sam... :) Aqarius nlabsgrd.zip
clipper.964 nbatocanin,
>> Da li neko ima neke rutine u C-u za rad sa .dbt fajlovima > (znaci dbaseIII memo Trebalo bi da ima u Code Base.
clipper.965 ndragan,
/ U suštini, radi se o pokazivačima na funkcije. Međutim, sintaksno / rešenje pruža veoma lepe mogućnosti. Najbolje je što se mogu Pa onda ja to imam u foksu odavno, samo što više ne moram to da trpam kao makro zamenu, nego nešto a la by reference. Već smo imali varijante sa formulama spakovanim u polja u bazi, ili sa imenom procedure u bazi. Foks svaki .prg kompajlira kad ga spazi prvi put, tj samo jednom. Zato ako u slogu u polju 'metod' piše 01, a u programu piše _proc='metod'+metod do (_proc) Rutina metod01.prg se kompajlira samo jednom, i radi en puta. E sad, samo mi je problem što moram da pazim da mi ne naiđe neko 'šđ' u tom polju, jer rutina metodšđ sigurno ne postoji. Funkcija Eval isto postoji u foksu, i radi nad izrazom tipa string, a izraz koji se nađe u njemu može da bude šta bilo (ko nekad na spektrumu - mogao si da kucaš ime promenljive na inputu). Da li će se kompajlirati unapred ili u trku, u foksu uopšte nije bitno, traje između pola trenutka i pet sekundi, zavisno od makine, i radi se samo jednom (interno sravnjuje vremena na sorsu i .fxp kompajliranom fajlu). Zato mogu da pravim program koji piše rutinu, kompajlira je i odmah izvodi :) Bue_ Ndragan
clipper.966 ndragan,
/ ZASTO CLIPPER PRIHVATA SAMO PRVIH 10 SLOVA ZA NAZIV / IDENTIFIKATORA TJ KREIRAJ_FAJL_KONTA I KREIRAJ_FAJL_NALOGA SU Sa istim se pati i foks - razlog je u kompatibilnosti sa dbejzom, inače bi to odavno bilo 20 ili 32. Bue_ Ndragan
clipper.967 ndragan,
/ c) Šta bi ti dodao? Ja još nisam našao nešto što mi je zatrebalo, a / da dodavanje nije bilo na granici trivijalnog. Ako se kliperu nema šta dodati, zašto svi kliperaši jure biblioteke? Dobro, ovo je bila zlobna foksovska zajebancija. Koncepcija je takva, jelda? Kliper mi nekako najviše liči na VW bubu - kao auto nije bog zna šta, ali kakve divne bagije možeš da napraviš od njega... Ajd, da ne zvuči ružno, primerenije je poređenje sa PC računarom - osnovna verzija radi, a ko voli još i VGA, SB, CD-ciga itd... Foks mu više dođe ko ono kad su dvoje matorih Amera bili u Veneciji, pa ih kući posle pitali kako im se sviđa varoš, a oni "pa bili smo u kampu, i tamo smo imali sve, i bioskop, i poslastičarnicu, i piceriju, i pijacu... uopšte nijednom nismo morali da idemo u grad". Bue_ Ndragan --> od svih rasa pasa najbolje preferiram foks enterijera
clipper.968 ficus,
:) Vrlo jednostavno :), fale integeri (short, long,..). A sta fali ugradjenim tipovvima podrazumevam da ako vec radis bazu podataka netreba da budes sitnicav sa memorijom i brzinom posto netreba da se bavis animacijom u realnom vremenu nego obicnim sabiranjima i oduzimanjima. p.s. jel nekom trebalo mnozenje ;)))))
clipper.969 ficus,
:) Clipper-u nedostaje samo jedna stvar da bi imao prave slogove: :) imenovanje elemenata niza. Medutim, to su upravo objekti bez metoda. :) E, sad jos samo da sacekamo 6.0 pa da dobijemo naredbu za kreiranje :) klasa ;( #define ??? :) Zasto bi se kodni blokovi lakse napravili u interpreterima? Njihova :) prednost u Clipper-u je upravo to sto se prevode (dobro, u p-kod), a :) ne interpretiraju kao makroi. a sta bi sa nebih se slozio da je clipper interpreter mada nije ni cist kompajler on je nesto izmedju naprimer on ce ovo: {|x|f(x)} izrsiti ko kompajliran kod ali ce zato ovako nesto: cb:=&("{|x|f(x)}") pozati interpreter a zatim raditi ko da je c.b. tj da je kompajliran sad druga je stvar sto clipper ima svoje bubice o cuvanju promenljivih i prosledjivanju parametara ali ... :(( :)))
clipper.970 djelovic,
> A sta fali ugradjenim tipovvima podrazumevam da ako > vec radis bazu podataka netreba da budes sitnicav sa memorijom > i brzinom posto netreba da se bavis animacijom u realnom vremenu > nego obicnim sabiranjima i oduzimanjima. Moje tabele (urađene na C++-u) su tipično 30-40% kraće od ekvivalentnih urađenih na Clipperu. Isto toliko su i brže, a sve to zbog "manjih" slogova koje C++ zahvaljujući svojim tipovima podataka ima.
clipper.971 bulaja,
│Evo malo poboljsane verzije Num2Calc, koja ispunjava neke od zahteva │koji su postavljeni ovde na Sezamu, samo se fajl sada zove NLabSGRd. └─── Prebačeno u CLIPPER dir, thanks.
clipper.972 ficus,
Moje tabele (uradene na C++-u) su tipicno 30-40% krace od ekvivalentnih uradenih na Clipperu. Isto toliko su i brze, a sve to zbog "manjih" slogova koje C++ zahvaljujuci svojim tipovima podataka ima. ---- Jest ali zato se ispostavi da vise int nije dovoljan da treba long i :((( Salu na stranu to si u pravu ali ako si bas sitnicar ima neceg slicnog i u clipperu pogledaj malo nanforum toolkit. p.s. Cisto da napomenem da nebi neko pomislio da sam iskljucivo na strani clippera i ja vise volim c++ ali se trudim da budem objektivan. Ono sto bi bilo zanimljivo napisati je baza podataka koja mnogo brze pretrazuje rec- orde kad su podfilterom. a sto se duzine gorepomenute tice apsolutno je nebitna. Ako imam exe od 500 kb nista mi nece smetati kojih 100 kb u bazi vise
clipper.973 nbatocanin,
> Pa onda ja to imam u foksu odavno, samo što više ne moram > to da trpam kao makro zamenu, nego nešto a la by > reference. :))) E, od ovog ndragana se ne moš' odbranit ;) Nemaš, bre! Nije to to :) > Funkcija Eval isto postoji u foksu, i radi nad izrazom > tipa string, a izraz koji se nađe u njemu može da bude šta > bilo (ko nekad na spektrumu - mogao si da kucaš ime > promenljive na inputu). To su standardni makroi i to nije to: x := "1 + 23 + y" ? &x
clipper.974 nbatocanin,
> :) Clipper-u nedostaje samo jedna stvar da bi imao prave > slogove: :) imenovanje elemenata niza. > ># define ??? Uh, to mi je nekako ružno rešenje. > :) Zasto bi se kodni blokovi lakse napravili u > interpreterima? Njihova :) prednost u Clipper-u je upravo > to sto se prevode (dobro, u p-kod), a :) ne interpretiraju > kao makroi. > > a sta bi sa Aaaa, pa to je lako: ;) > nebih se slozio da je clipper interpreter mada nije ni > cist kompajler on je nesto izmedju Pa da, prevodi u p-kod.
clipper.975 nbatocanin,
> Ono sto bi bilo zanimljivo > napisati je baza podataka koja mnogo brze pretrazuje rec- > orde kad su podfilterom. a sto se duzine gorepomenute tice > apsolutno je nebitna. Pogledaj malo SIx drajber - prijatno ćeš se iznenaditi :)
clipper.976 umajstorovic,
Drug me zamolio da ostavim sledece pitanje: kako povezati clipper program sa biblioteckim f-jama c-a? Kratko i jasno :)
clipper.977 dpredovic,
> Jeste, nudi *implementaciju* klasa na korisničkom nivou. Ali > niko ne garantuje da će ta implementacija biti kompatibilna sa > eventualnim pravm sintaksom rada sa objektima u budućnosti. žak OO ekstenzije koje se dobijaju oclip-om su toliko rudimentarne da ispod toga ne može. Bilo kakva promena u samom clipper-u svešće se verovatno na mali s&r u sorsu i to je sve, mada ni u to baš neverujem. Ne znam zašto bi se klasa deklarisala drugačije nego sa CLASS-ENDCLASS, članovi sa VAR, metodi sa METHOD... Cu, Dejan
clipper.978 bulaja,
Ukoliko se kod indeksiranja (INDEX ON...) ključ navede preko aliasa (npr. INDEX ON xAlias->Polje TO cFile) u indeksnu datoteku će biti upisan ključ koji sadrži oznaku aliasa odnosno "xAlias->Polje". Da li se u tom slučaju Clipper ponaša drugačije neko što je uobičajeno (kada index key sadrži samo naziv polja, bez alias pointera) tj. da li je npr. pretraživanje preko takvog indeksa sporije?
clipper.979 ndragan,
/ :))) E, od ovog ndragana se ne moš' odbranit ;) Nemaš, bre! Nije to to Znam da nije, ovi kodni blokovi mi više liče na inlajn funkcije ili nonejm funkcije, s tim što te baš briga za njihova imena; ili ih navedeš na licu mesta ili ih strpaš u promenljivu. A jel možeš da je strpaš u polje u bazi? Koliko puta se kodni blok, naveden direktno, ponavlja u .exe fajlu ako je naveden više puta? Tj, da li kompajler prepoznaje da je to isto? / x := "1 + 23 + y" / ? &x Neee, ovo je suviše prosto. Vidi ovo: x=seek(eval(key(1,'druga'))) Kao parametar za eval može da bude bilo šta što vraća neki rezultat, naprimer č trt, mrt get baza.polje1 valid eval(baza2.valid) Tako da kompletnu funkciju (ok, jednorednu) možeš da držiš kao polje u bazi; tj. to treba da je izraz koji daje vrednost, a on u sebi može da sadrži bilo kakve pozive funkcija. Štaviše, može i ovo: ... valid eval(trim(baza2.valid2)+'()') Sve spomenute funkcije se kompajliraju samo prvi put. U slučaju da se pravi projekat (koji, kod foksa, kao rezultat daje .app, mali .exe ili veliki .exe sa ili bez Vatkomovog ekstendera), onda treba sve te funkcije pretkompajlirati, naravno. Razlika između Eval() i & u foksu je što za većinu stvari eval() radi brže, jer ne prevodi celu liniju u kojoj se nalazi, nego samo deo izraza u kojem se spominje; tako se učitava manji deo kompajlera i manje ostaje za kompajliranje u trku. Mada, kad mu onako podmetnem nepoznatu funkciju, mogu svašta da mu napravim. Dok radim iz samog foksa, nema problema, sve on pojede, međutim... trpanje takvih stvari u samostalni .exe je već problematična stvar, jer nikad ne znam da li sam ubacio u projekat sve što se može spomenuti. Bue_ Ndragan
clipper.980 aquarius,
<> <> Evo malo poboljsane verzije Num2Calc, koja ispunjava neke od <> zahteva koji su postavljeni ovde na Sezamu, samo se fajl sada <> zove NLabSGRd. <> aRazumenic me naterao da jos malo cackam i evo, ovu stvar sam jos malo doradio, pa sad moze i matematicka operacija nad nVar, a doradjeno je jos po nesto. Cu... :) aquarius nlabsgrd.zip
clipper.981 nbatocanin,
> A jel možeš da je strpaš u polje u bazi? Može, ali ne baš direktno: upisuje se kao string, a prilikom čitanja se koristi makro za restauraciju: FIELD->f := "{|| x + y }" b := &f > Koliko puta se kodni blok, naveden direktno, ponavlja u > .exe fajlu ako je naveden više puta? Tj, da li kompajler > prepoznaje da je to isto? Ne. Ne znam za druge, ali moje iskustvo kaže da se kodni blokovi izuzetno retko ponavljaju - ne umem sad da dokučim razlog. > / x := "1 + 23 + y" > / ? &x > > Neee, ovo je suviše prosto. Vidi ovo: > > x=seek(eval(key(1,'druga'))) Ajde malo pojasni šta radi key. > Kao parametar za eval može da bude bilo šta što vraća neki > rezultat, naprimer > > č trt, mrt get baza.polje1 valid eval(baza2.valid) E, nisam znao da je makro u Fox-u tako ograničen: ovo je jedna od slabijih mogućnosti Clipper operatora "&". > Štaviše, može i ovo: > > ... valid eval(trim(baza2.valid2)+'()') Naravno. Može i ovo: String1 := "&String2" String2 := "&String3" String3 := "String4" String4 := "KRAJ!" ? &String1 x := "Alfa" &(x + "01") := 12.5 ? Alfa01 cProc := "Fora" &cProc ()
clipper.982 aquarius,
Moze li neko da objasni ??? :((( ---------------------------------------------------------------- doit( 10, 0, 1 ) // U ovom slucaju petlja DO WHILE !b = a // ce biti prekinuta kada b = a doit( 1, 0, 0.10 ) // U ovom slucaju kada je b = a nikom nista FUNC doit( a, b, c ) do while !b = a b := b + c enddo RETURN(nil) ---------------------------------------------------------------- Da li je to jos jedan bug ili nesto drugo ? aquarius
clipper.983 dvesic,
>> doit( 10, 0, 1 ) // U ovom slucaju petlja DO WHILE !b = a >> // ce biti prekinuta kada b = a >> doit( 1, 0, 0.10 ) // U ovom slucaju kada je b = a nikom nista >> Da li je to jos jedan bug ili nesto drugo ? Ne, nego odluka konstruktora Clipper-a ! Stari problem sa float brojevima; moras da primenis poredjenje tipa IF abs(b-a)<eps .... ENDIF gde je EPS dovoljno mala konstanta. Npr, broj u drugom slucaju koji ti smatras nulom je 0.000000000000000111 sto, strogo govoreci i nije nula ! Pozdrav, Dejan.
clipper.985 jorad,
>> doit( 1, 0, 0.10 ) // U ovom slucaju kada je b = a nikom nista >> >> FUNC doit( a, b, c ) >> do while !b = a >> b := b + c >> enddo >> RETURN(nil) I meni je to jednom prilikom pravilo probleme. Rešenje je jednostavno: DO WHILE ROUND(b,2) # ROUND(a,2) jer ćeš na zaokruživanju izgubiti onih nevidljivih 0.000000001
clipper.986 ndragan,
/ (kada index key sadrži samo naziv polja, bez alias pointera) tj. da li / je npr. pretraživanje preko takvog indeksa sporije? Foks za .cdx indekse izričito tvrdi da spominjanje aliasa u indeksnom izrazu izbacuje Rašmor pretrage, tj. indeks će biti korišćen samo za redosled, a pretrage idu preko baze a ne preko indeksa (ko razume shvatiće). Mislim da je razlog tome što taj alias uopšte ne mora biti alias te baze; sasvim je legalna konstrukcija use kupci orde 1 sele 0 use promet set rela to sifra into kupci inde on kupac.naziv to trt (ili tag trt, svejedno) To sam ponekad i koristio, ali samo u krajnjoj nuždi. E sad, takav indeks sigurno ne može da se koristi za optimizovanu pretragu, a kao kriterijum za optimizaciju uzima se izgleda brza sintaksna kontrola indeksnih pojmova; na spisku stvari koje znače odustajanje od Rašmora su i aliasi, i funkcije tipa upper(), stuff() i još dosta toga. Bue_ Ndragan
clipper.987 ndragan,
/ Može, ali ne baš direktno: upisuje se kao string, a prilikom čitanja / se koristi makro za restauraciju: Hm, a pošto je makro, ne kompajlira se, osim u trku? /> x=seek(eval(key(1,'druga'))) / Ajde malo pojasni šta radi key. Daje indeksni izraz; u ovom primeru bi tražio slog u tekućoj bazi čija je vrednost trenutno aktivnog indeksa jednaka indeksnom pojmu prvog indeksa iz baze sa aliasom Druga; obratno x=seek(eval(key(1)),'druga') bi tražio u bazi Druga slog čiji je aktivni ključ jednak prvom ključu u tekućoj. / E, nisam znao da je makro u Fox-u tako ograničen: ovo je jedna od / slabijih mogućnosti Clipper operatora "&". Makro & je istih mogućnosti, i s njim se i u foksu radi svašta, međutim čim se u liniji nađe taj znak, ona se ne kompajlira do izvođenja. Zato se radije koriste funkcije Eval() koja jeste makro nad svojim argumentom, ali se ograničava na izraz (ne može biti naredba), i još lepša stvar, imenski izrazi, tj ona mesta gde treba dati ime nečega (alias, ime pendžera, fajla...), promenljiva ili izraz koji to ime sadrže se navedu u zagradi. To je blagi povratak na ono iz bejzika ime$="podaci.dat" ili open #3, ime$ open #3, "podaci.dat" Pošto se u xBase jezicima na ovakvim mestima navodnici ne pišu (a očekuje se string), onda se ne zna da li tu i kako može da dođe promenljiva. E sad može, strpa se u zagrade i to onda radi ko u bejziku (primer levo). Dok to nije bilo, moralo se bz='trtmrt' use &trtmrt sad ide bz='trtmrt' use (trtmrt) pri čemu se druga linija ne kompajlira u trku, nego samo jednom. / cProc := "Fora" / &cProc () tj Do (cproc) Sad je pitanje koliko puta će ovaj cproc da se kompajlira? U foksu će jednom, kad prvi put bude pozvan. Linija koja sadrži & se ne kompajlira; u ovoj varijanti je ni nema. Da li za kliper treba ovakve stvari ručno poterati kroz kompajler/linker/mejk, ili je dovoljno bistar da to uradi u trku? Hoće li sam od sebe da to ubaci u .exe, a ako neće, hoće li ga izvesti ako nije ručno ubačen? U foksov .exe, lepo kaže u helpu, ulazi ono što se eksplicitno poziva; ono što se poziva po imenu ili makrou nije dostupno generatoru projekta i mora se ubaciti ručno. Ako se sve tera iz normalnog foksa (iz IDE) tih problema nema, dohvati šta nađe. Bue_ Ndragan
clipper.988 bdm.,
Hi, ukoliko imate problema sa pisanjem help-a za Vaše aplikacije izaberite već gotovo rešenje, poruke 13.466, ima primer za povezivanje sa Clipper-om. Vrlo je jednostavno... :) BDM.
clipper.989 bulaja,
SIx CDX v1.5 Da li se neko igrao sa patchovanjem onih .OBJ-ova za national support (sixger, sixswe,..) tako da podrzavaju nasa slova?
clipper.990 dvesic,
>> SIx CDX v1.5 >> Da li se neko igrao sa patchovanjem onih .OBJ-ova za national >> support (sixger, sixswe,..) tako da podrzavaju nasa slova? Ideja postoji, ali mi nedostaje kvalitetan OBJ2ASM. Cisti disk edit bi bilo greota upotrebljavati.
clipper.991 nbatocanin,
> Hm, a pošto je makro, ne kompajlira se, osim u trku? Da, prevođenje makro izraza radi makro prevodilac koji je deo Clipper-ovog run-time modula za vreme izvršavanja programa. > / cProc := "Fora" > / &cProc () > > tj > > Do (cproc) žini mi se da je malo različito. Ovo može i u izrazima: PROC Main a := "p" b := "q" c := "(1, 2, 3)" x := &(a + b + c) + 2 ? x RETURN PROC PQ (x, y, z) RETURN x + y + z > Sad je pitanje koliko puta će ovaj cproc da se kompajlira? E, u Clipper-u je filozofija drugačija - on je mnogo bliži pravom prevodiocu od Fox-a: implicitno prevođenje je označeno kao zastarela stvar. Procedura se prevodi kada kažeš CLIPPPER <ttt>, gde je TTT datoteka sa izvornim kodom procedure. Poziv nema nikakvog efekta na prevođenje.
clipper.993 djelovic,
[Pišem bilten, pa naiđoh na jednu poruku koju sam ranije propustio.] > Zašto bi se kodni blokovi lakše napravili u interpreterima? Njihova > prednost u Clipper-u je upravo to što se prevode (dobro, u p-kod), a > ne interpretiraju kao makroi. Zbog oblasti važenja promenjljivih. Štoćereći, kodni blokovi se daju bez problema implementirati i u kompajliranim jezicima, ali onda gube pola snage jer imaju problem sa "vidljivošću" (scope) promenljivih. > b) Da, ali bi imao da poludiš od pokazivača na sve i svašta ;) > hint: @ 0,0 GET x WHEN x > y READER SLćYXYY.ąą╚ > da dodavanje nije bilo na granici trivijalnog. b) Kod mene to je: if (editvar == &x) ... To znači: U jednoj funkciji radim razne GET-ove, a u drugoj kontrolu unosa. Ovo je nesumnljivo komplikovanije od Clippera, no pogledajmo šta time dobijam: c) CUA/SAA kompatibilnost sa mišem i svim onim poljima za unos kakve ima recimo Windows.
clipper.994 bulaja,
│Ideja postoji, ali mi nedostaje kvalitetan OBJ2ASM. │Cisti disk edit bi bilo greota upotrebljavati. └─── Sourcer radi posao :), ali mislim da će ipak običan DiskEdit najbolje poslužiti :). Nego, kako se uopšte aktivira taj alternativni index order? Nisam primetio da se prostim linkovanjem u aplikaciju (i naravno reindex-a) nekog drugog SIx*.obj umesto SIxUK.obj bilo šta menja u redosledu index-a.
clipper.995 dvesic,
>> order? Nisam primetio da se prostim linkovanjem u aplikaciju >> (i naravno reindex-a) nekog drugog SIx*.obj umesto SIxUK.obj >> bilo sta menja u redosledu index-a. Ubaci svedska slova u stringove, pa probaj opet ! :)))
clipper.996 zorand,
Sve ovde napisano o SIX drajveru, kao i text u racunaljkama, teraju me da ga nabavim. Da li neko zna mogucnost kupovine kod nas - ima li ga legalno u prodaji? Mislim na legalnu kupovinu jer placanje (preko firme) nije problem.
clipper.997 bulaja,
│Ubaci svedska slova u stringove, pa probaj opet ! :))) └─── Hm, sa svedskim slovima radi :) ali ako se patchuje translaciona tabela u SIxSwe.obj (samo jedna od njih ima strana slova) i ubaci neki drugi raspored, onda nece da radi :). Znaci, mora jos nesto da se promeni :).
clipper.998 vlaslo,
hi :-) evo mene ponovo. posto vidim da Vam se moj prethodni program nije dopao... saljem vam ovaj, mozda bolji ? cu conn.zip
clipper.999 petrovics,
Interesuje me postoji li nacin da se Clipper-ska aplikacija projektovana za rad u mrezi testira tako sto bi se visekorisnicki rad simulirao pomocu multitaskinga iz DeskView-a ili Windows-a ? Potrebno je uglavnom testirati zakljucavanje datoteka i slogova.
clipper.1000 djelovic,
> Interesuje me postoji li nacin da se Clipper-ska aplikacija > projektovana za rad u mrezi testira tako sto bi se > visekorisnicki rad simulirao pomocu multitaskinga iz DeskView-a > ili Windows-a ? Naravno. Učitaš SHARE.EXE i pičiš kao da si pod mrežom.
clipper.1001 dvesic,
>> Interesuje me postoji li nacin da se Clipper-ska aplikacija >> projektovana za rad u mrezi testira tako sto bi se >> visekorisnicki rad simulirao pomocu multitaskinga iz >> DeskView-a ili Windows-a ? Nego sta ! Samo uradi sledece : 1. EXE fajl proglasi za readonly 2. Staruj SHARE 3. Stratuj DV (DesqView) i vozi Misko ! P.S. NEMOJ koristiti DBFCDX.LIB iz Clipper-a 5.2 jer NE PODRZAVA korektno mrezni rad (bug).
clipper.1002 ndragan,
Probao; zbog sintakse ispalo ovako, i radi: a = "p" b = "q" c = "(1, 2, 3)" x = eval(a + b + c) + 2 (& ispred zagrade neće, moralo bi u ? x neku promenljivu) PROC PQ para x, y, z RETURN x + y + z Hm, jel' rezultat stvarno 8 ili je nameštaljka? / stvar. Procedura se prevodi kada kažeš CLIPPPER <ttt>, gde je TTT / datoteka sa izvornim kodom procedure. Poziv nema nikakvog efekta na Da, tu se gubi upravo ono što ja obožavam da radim: imam nekoliko rutina kojima se prosleđuju dugački parametri, koji se onda analiziraju, muljaju i prepakuju u nekoliko nizova, pa se onda trči kroz niz i serijom makro zamena u petlji radi šta već treba (ređaju se getovi sa validima, promptovima itd). Učini mi se da je to sporo za neke situacije, pa umesto makro zamena napravim da taj niz naredbi ispiše u neko programče, kompajlira ga i izvede (sve u vreme izvvođenja!). Sledeći put, ako su se parametri već pojavljivali (vadim nekakav crc iz njih i pomoću toga zadajem ime generisanog programa), on nalazi programče na disku i to već kompajlirano, te ga samo pozove, preskočivši kompletnu analizu i makro zamene. E ako nekome to proradi u nekom drugom jeziku, svaka čas. To može samo interpleter; prednost foksa je što i to prevodi u pe kod. Bue_ Ndragan
clipper.1003 nbatocanin,
>> Zašto bi se kodni blokovi lakše napravili u >> interpreterima? > > Zbog oblasti važenja promenjljivih. Štoćereći, kodni > blokovi se daju bez problema implementirati i u > kompajliranim jezicima, ali onda gube pola snage jer imaju > problem sa "vidljivošću" (scope) promenljivih. Ne bih rekao: dovoljno je pri prevođenju funkcije iza poslednjeg RET staviti prevod svih kodnih blokova definisanih u toj funkciji, pa će kodni blokovi videti sve što i matična funkcija, a to je to :) > b) Kod mene to je: > > if (editvar == &x) ... > > To znači: U jednoj funkciji radim razne GET-ove, a u > drugoj kontrolu unosa. Ovo je nesumnljivo komplikovanije > od Clippera, no pogledajmo šta time dobijam: > > c) CUA/SAA kompatibilnost sa mišem i svim onim poljima za > unos kakve ima recimo Windows. Da, ali štos je što to što dobijaš ne dobijaš zbog razdvojenog unosa i kontrole, zar ne? :) A Clipper-ove *naredbe* za korisnički interfejs su na nižem nivou od *sistema* za komunikaciju za korisnikom. Ono iznad tek treba napraviti i čini mi se da je GET sistem sasvim solidna osnova za to.
clipper.1004 nbatocanin,
> Sve ovde napisano o SIX drajveru, kao i text u > racunaljkama, teraju me da ga nabavim. Da li neko zna > mogucnost kupovine kod nas - ima li ga legalno u prodaji? Koliko ja znam, ne postoji mogućnost legalne nabavke u zemlji.
clipper.1006 nbatocanin,
> Hm, jel' rezultat stvarno 8 ili je nameštaljka? :)) > Da, tu se gubi upravo ono što ja obožavam da radim: imam > nekoliko rutina kojima se prosleđuju dugački parametri, > koji se onda analiziraju, muljaju i prepakuju u nekoliko > nizova, pa se onda trči kroz niz i serijom makro zamena u > petlji radi šta već treba (ređaju se getovi sa validima, > promptovima itd). > E ako nekome to proradi u nekom drugom jeziku, svaka čas. > To može samo interpleter; prednost foksa je što i to > prevodi u pe kod. I Clipper prevodi u p-kod. Principijelno ne bi trebalo da ima problema da radi isto to, nisam te baš najbolje razumeo oko detalja, ali nije ni bitno.
clipper.1007 zorand,
>> Sve ovde napisano o SIX drajveru, kao i text u >> racunaljkama, teraju me da ga nabavim. Da li neko zna >> mogucnost kupovine kod nas - ima li ga legalno u prodaji? > > Koliko ja znam, ne postoji mogucnost legalne nabavke u > zemlji. Da preformulisem pitanje. Kako uopste da nabavim SIX ?? Legalno - nelegalno, ovde ili napolju, potpuno mi je svejedno :)). Salim se, s obzirom da placanje nije problem, voleo bih legalan i kompletan paket. Adresa u Evropi bi dobro dosla kao i sve druge sugestije :).
clipper.1008 dzoric,
Imal' neko CAS driver za SilverClip v4.02. Unapred zahvalat Dejan
clipper.1009 ndragan,
/ I Clipper prevodi u p-kod. Principijelno ne bi trebalo da ima / problema da radi isto to, nisam te baš najbolje razumeo oko detalja, / ali nije ni bitno. Mogu ti eventualno poslati sors jedne rutine tog tipa da ga isprobaš, ali prva verzija nije moja... mogao bih umesto toga da pustim ovo kao primer set alte to trt.prg set alte on ? 'use', the_dbf && the_dbf je promenljiva, definisana negde ? 'list' ... && popuniti tekstom po želji ? 'use' set alte off do trt E ovde je trt.prg napisan iz samog programa, kompajliran u trku, i izveden. Varijantska razlika je u tome što još samo nedostaje uslov da znam na ulasku u rutinu da li je trt.prg već izgenerisan ili nije; ako jeste, preskačem generisanje, i prevođenje isto tako - pe kod je napravljen prošli put. Prilikom pisanja takvog programa bitna je procena broja izvođenja generisane rutine; sve naredbe koje se u njoj pojavljuju mogu se napisati unapred i u trku ubacivati makro zamene, tj to ne mora da bude izgenerisana rutina, može da bude opšta rutina sa gomilom makroa. Treba samo ošacovati šta se bolje isplati. Ono što je lepo, je što uopšte ne moram da znam kako će to programče da se zove; to mora da zna samo rutina koja ga generiše i/ili poziva. To je onaj luksuz koji mi omogućava integraljeni kompajler i nestašica linkera. Bue_ Ndragan p.s. kako da patentiram ovu ideju?
clipper.1010 bulaja,
│Da preformulisem pitanje. Kako uopste da nabavim SIX ?? │Legalno - nelegalno, ovde ili napolju, potpuno mi je svejedno :)). │Salim se, s obzirom da placanje nije problem, voleo bih │legalan i kompletan paket. └─── SIx u USA kosta oko 160 USD. Evo ti brojevi fax-a nekih USA firmi gde bi se to moglo nabaviti (pozivni za USA je 991): C Programmers Warehouse fax: (602) 443 0659 Zac Catalog fax: (617) 551 0857
clipper.1011 neman,
> b) Da, ali bi imao da poludis od pokazivaca na sve i > svasta ;) hint: @ 0,0 GET x WHEN x > y READER MyReader() Nisam bio neko vreme na Sezamu, pa tek sada postavljam pitanje, mada je mozda bilo,: ajd objasni sta se menja u std.ch da bi gornji hint funkcionisao kako treba. To pitam glede aquariusovog pozivanja GETa u nekoliko redova. neman
clipper.1012 dvesic,
Cao ! Da li neko mozda zna odgovore na sledeca pitanja : - Da li je moguce u Clipper programu utvrditi da li jos neka kopija istog programa radi negde na mrezi i za to ne koristiti mrezno specificne stvari (npr. NetBios signalizaciju i sl.) ? (Pazite, pitanje glasi da li je kopija AKTIVNA a ne da li je pocela sa radom, tako da odgovori tipa : "neka svaka aplikacija setuje neki flag" ne pasuju; ko mi garantuje da ista u medjuvremenu nije pukla i "zaboravila" da spusti svoj radni flag, pa ostane ativna vecno) - Sta se desava sa bazom koju neka aplikacija zakljuca (bilo celu, bilo jedan ili vise slogova) a zatim ista neregularno zavrsi rad ? Da li se lokovi skidaju ili ne ? Postoji li mozda neko generalno pravilo koje zavisi od Dos-ovog Share ili alternativnog mehanizma zakljucavanja ? Pozdrav, Dejan.
clipper.1013 dejanr,
>> - Sta se desava sa bazom koju neka aplikacija zakljuca >> (bilo celu, bilo jedan ili vise slogova) a zatim ista >> neregularno zavrsi rad ? Da li se lokovi skidaju ili >> ne ? Koliko sam ja primetio, stvari otprilike ovako idu: ako je ta aplikacija kako-tako završila rad, fajlovi se uglavnom zatvore, dakle slobodni su za druge. Ako se računar zaglupeo, onda uglavnom fajl ostane zaključan sve dok je korisnik na "zaglupljenom" računaru logovan. A logovan je obično dok se ne izloguje (što ne može da uradi, ako je računar totalno zaglupljen). Dakle, taj će resetovati računar, i ponovo se logovati, u kom će se trenutku fajl osloboditi. Najgora varijanta je da taj korisnik prosto ugasi računar i ode, u kom slučaju će Novell posle nekog vremena (ne naročito dugačkog) primetiti da je čvor neaktivan i sam ga izlogovati. Dakle, reklo bi se da nema problema, ali sam imao slučajeve da uz sve to fajl ostane zaključan. Nekada se to moglo srediti iz raznih Novell-ovih uslužnih programa (ili čak iz Load Monitor sa konzole), dakle "ubiti" korisnik i osloboditi fajlove. Međutim, u bar dva slučaja je fajl ostao totalno zaključan dok nije oboren i ponovo dignut server.
clipper.1014 bulaja,
Da li je neko video kako rade Clipper biblioteke koje omogućavaju pravljenje Windows aplikacija u standardnom Clipper-u? Npr. napolju se reklamiraju Grumpfish Clip 4 Win i DolceVita biblioteke. Ima li slucajno neko demo verziju (mislim zaista DEMO, čini mi se da je neko ovde skoro spominjao da ima demo za Clip4Win)?
clipper.1015 dr.grba,
>> ajd objasni sta se menja u std.ch da bi gornji hint funkcionisao >> kako treba. Zašto da diraš STD.CH? On je priložen da vidiš kako su preprocesirane funkcije Clippera prilikom generisanja CLIPPER.LIB. Inače ti nije potreban u redovnom radu. Ako već hoćeš da napraviš neke svoje komande koje se preprocesiraju (a na kraju, zašto da ne?), nazovi je nekako drukčije, npr. MYSTD.CH ili slično, pa je eksplicitno pozivaj u PRG fajlovima. Ako nisi upoznat sa tehnikom rada preprocesora i načina pravljenja komandi kroz njega, moja preporuka je da se obratiš gospodinu Ricku Spenceu. On će ti vrlo pažljivo, detaljno i sa primerima rado objasniti kako se ovo radi. Nešto koncizniji opis imaš u umecima kolege Batoćanina izdatim u "Računarima". žinjenica je da ovo nije lak posao, ali da daje isplative rezultate...
clipper.1016 dr.grba,
>> u kom će se trenutku fajl osloboditi. Najgora varijanta je da taj >> korisnik prosto ugasi računar i ode, u kom slučaju će Novell posle >> nekog vremena (ne naročito dugačkog) primetiti da je čvor neaktivan >> i sam ga izlogovati. Ne sećam se da sam video, pa da pitam: da li se vreme neaktivnosti pre logout procedure može setovati kroz mrežni softver?
clipper.1017 neman,
> Zasto da diras STD.CH? On je prilozen da vidis kako su > preprocesirane funkcije Clippera prilikom generisanja > CLIPPER.LIB. Inace ti nije Pa dobro :) nisam mislio da se tu menja, nego sam odatle video da nema READER opcije. A i mnogo je dugacko :) > drukcije, npr. MYSTD.CH ili slicno, pa je eksplicitno > pozivaj u PRG fajlovima. Koristim modifikovani "common.ch", a pravi cuvam :) A sto se tice Spence-a, hvala na uputstvu, pogledacu to kod prijatelja neman
clipper.1018 nbatocanin,
Ništa naročito: samo izmeniš standardnu definiciju tako da bude nešto u stilu: #command @ <row>, <col> GET <var> ; [READER <r>] ; => SetPos( <row>, <col> ) ; ; AAdd( ; GetList, ; _GET_( <var>, <(var)>, , <{valid}>, <{when}> ) ; ) ; ; ATail(GetList):reader := <{r}>
clipper.1019 nbatocanin,
> set alte to trt.prg > set alte on > ? 'use', the_dbf && the_dbf je promenljiva, > definisana negde ? 'list' > ... && popuniti tekstom po želji > ? 'use' > set alte off > do trt A ne: ovo neće moći. Clipper-ov run-time prevodilac je ograničen samo na izraze. Doduše, 95% Clipper-ovih naredbi se svode na funkcije. Cela koncepcija ide ka pravim prevodiocima, gde se sve određuje za vreme pisanja programa. Gde koristiš ovo gore?
clipper.1020 nbatocanin,
> Pa dobro :) nisam mislio da se tu menja, nego sam odatle > video da nema READER opcije. A i mnogo je dugacko :) Uh, moj previd. U žaru diskusije prevideo sam da Clipper nema READER opciju u GET sistemu. Al' se lako dodaje ;)
clipper.1021 cnenad,
Da li se povećava veličina EXE fajla ako u svakoj proceduri na njenom početku imam ubačeno #include "tralal.ch" ? Naravno, u svakoj proceduri je u pitanju isti .ch fajl ali ako ga samo stavim u glavnu proceduru definicija se ne prenosi na ostale podprocedure.
clipper.1022 ficus,
Da li se povecava velicina EXE fajla ako u svakoj proceduri na njenom pocetku imam ubaceno #include "tralal.ch" ? Naravno, u svakoj proceduri je u pitanju isti .ch fajl ali ako ga samo stavim u glavnu proceduru definicija se ne prenosi na ostale podprocedure. -------- Nebi trebalo jer u tralal.ch nemas izvrsnog koda vec samo direktive koje promene prg u preytprocesovan fajl (nadam se da je prava rec)
clipper.1023 ndragan,
/ zaglupljen). Dakle, taj će resetovati računar, i ponovo se logovati, / u kom će se trenutku fajl osloboditi. Najgora varijanta je da taj Ne na svim mrežama. Na RPTI ostaje zaključan; postoji program (netfile) kojim se to zatvara, a uglavnom je dovoljno da je još neko tog trenutka držao iste datoteke otvorene pa da se svi baferi regularno zapišu kada ovaj drugi pozatvara. Za nevolju, niko nov ne može da ih otvori, jer su zaključane. Za rad sa posadom nije neki problem, to i najbelje ptice nauče iz dve tri seanse, ali za rad bez nadzora, sa serverom koji čuči negde u nekoj kabini, baš i nije zgodno. Bue_ Ndragan
clipper.1024 bulaja,
│Da li se povećava veličina EXE fajla ako u svakoj proceduri na njenom │početku imam ubačeno #include "tralal.ch" ? └─── Ako u include datoteci nema nikakvog izvršnog koda (definisane funkcije i sl.), a preporuka je da ga nikako nema :), onda se ne povećava.
clipper.1025 petrovics,
>> Da li se povecava velicina EXE fajla ako u svakoj proceduri na njenom >> pocetku imam ubaceno #include "tralal.ch" ? Ne. Definicije iz inklud datoteke se u toku kompajliranja ubacuju u sors umesto simbolickih naziva koji su u sorsu bili.
clipper.1026 nameci,
> P.S. NEMOJ koristiti DBFCDX.LIB iz Clipper-a 5.2 jer NE > PODRZAVA korektno mrezni rad (bug). Ukratko u vezi ove poruke da li neko ima Upgrade za Clipper 5.2 ali ne za US verziju. CU:)
clipper.1027 dr.obradovic,
Zamolio bih nekoga ko ima (valjda svi imate :)) biblioteku TERMINAL.LIB, da mi je posaljeÚ. Pojavila mi se neobjasnjiva greska na instalacionim disketama, i nadam se da je samo ovaj fajl falican. Hvala unapred... cu Dragoljub B. Obradovic
clipper.1028 dvesic,
Izvoli. terminal.arj
clipper.1029 bstevan,
>>>GForce, ? Imam interesantno iskustvo. Pa prenesi ga, opiši onako ukratko, ima tu još koga bi interesovalo. ---BSTEVAN---
clipper.1030 bstevan,
>>> Jedino je šteta što radi samo sa VGA, Da, ja imam Hercules ... >>> ima font editor, screen editor i icon editor, Fino i još pisan u samom GForce-u .... Šteta dok sam na Hercules-u nemam šanse da to vidim. ---BSTEVAN---
clipper.1031 bstevan,
Gorane imam problema sa funkcijom RMDIR iz tvoje biblioteke CLIPTOOL.LIB Parce koda izgleda ovako: dirname = "C:ĐFPĐDAT" IF RMDIR(dirname) != 0 TONE(300,1) ELSE SET COLOR TO R/W č 24,0 SAY "RMDIR -------> C:ĐFPĐDAT" SET COLOR TO END IF dirname = "C:ĐFP" IF RMDIR(dirname) != 0 TONE(300,1) ELSE SET COLOR TO N/W č 24,0 SAY "RMDIR -------> C:ĐFP " SET COLOR TO END IF Kad prođe kroz ovo događa se sledeče, izbriše pod direktorijum, C:ĐFPĐDAT a ostavi direktorijum C:ĐFP ili neizbriše ni jedno ni drugo, i ako u njima nema ni jednog fajla. Ja sam rešio ovako: Propustim da mi program prođe još jednom kroz to parce koda i tada izbriše sve. Muci me zašto sve neradi u prvom prolazu. ---BSTEVAN---
clipper.1032 dr.obradovic,
>> Izvoli. Hvala! cu Dragoljub B. Obradovic
clipper.1033 cinfo,
Da lise neko igrao sa novim indexima Clippera 5.2 ? Probao sam nest ovto ovako: set order to 1 // on sif_grada seek 'BGD' index on sif_grada into bgdindex rest while sif_grada = 'BGD' ; for sif_grada = 'BGD' To bi trebalo kreirati potpuno isti indeks kao i index on sif_grada into bgdindex for sif_grada = 'BGD' samo sto je daleko brze. I radi. Skoro. Naime, stvarno kreira indeks kao sto i treba, ali kad mu probam dodati novi slog (zgodno za BROWSE) potpuno podivlja. U NG-u pise da je jedina razlika izmedju ove dvije varijante u, cini mi se, sestom bitu jednog bajta u zaglavlju. Jel' neko probao da ga "rucno" prepravi tako da izgleda kao da nije privremeni?
clipper.1034 nbatocanin,
Vidim da se dosta ljudi zainteresovalo za SIx RDD posle teksta u Računarima. Interesovanje je zaista razumljivo, jer se radi o vanserijskom proizvodu velikih mogućnosti. U novim Računarima će takođe biti reči o novoj verziji SIx drajvera, koja ima veoma značajne izmene u odnosu na verziju 1.1c. Što se tiče mogućnosti, one su zaista fascinantne i o tome možete pročitati u Računarima. Ono što bih ovde napomenuo je da svakako treba nabaviti verziju SIx drajvera koja podržava NSX indekse. Naime, SIx drajver se sada prodaje u dve varijante: jedna podržava standardni FoxPro DBF/CDX/FPT format, a druga radi po internom formatu DBF/NSX/SMT koji je projektovan da izvuče maksimum iz SIx RDD-a. Na žalost, ova druga verzija nije još stigla do nas, ali bi je svakako trebalo nabaviti. Sledeća važna napomena se odnosi na probleme: od sitnijih stvari SIx RDD će vam praviti veoma male komplikacije oko prepravki starih programa: veoma malo standardnih funkcija je izmenjeno. U principu, trebalo bi da samo linkovanjem vaš program proradi sa SIXCDX drajverom. Međutim, problem je memorija: SIx traži znatno više memorije od DBFNTX drajvera (što je razumljivo). Korišćenje sa RTLinkom je skoro nemoguće: on ne stavlja ASM module u overleje i tako rezultujući program traži mnogo više memorije. Rešenje je Blinker: on može i ASM module da stavlja u overleje i program odlično radi sa veoma malo memorije (primer: EXE od oko 1MB se izvršava sa oko 400K RAM-a i to se još može smanjiti.). Na žalost, tu se javlja jedan veliki problem: kada sam u svoje programe ubacio SIx drajver, program je počeo da iskače sa greškom VM integrity failure. U čemu je tačno problem, teško je reći. Moguće je da je reč o nekom sukobu između Blinker-a, SIx drajvera i Clipper-a 5.2, ali je to u principu svejedno: za sada je dosta riskantno koristiti ovu kombinaciju i mislim da treba sačekati nove verzije, jer je ovaj bag uočljiv i mislim da će ga brzo ispraviti. Po ranijim iskustvima mislim da je problem u Blinker-u.
clipper.1035 ndragan,
/ vreme pisanja programa. Gde koristiš ovo gore? Pa, upravo je danas zatrebalo Tibiju (TArva na Sezamu, mislim da mu je istekla pretplata). Napisao je jedan duži dijalog za generisanje uslova pomoću kojeg se dobija probran skup slogova iz neke baze, i onda radi ovo: Select * from (_baza); Where &uslov; into cursor trtmrt Browse Itd, tu se još definiše nekakav pendžer u koji ide brauz itd. U promenljivoj Uslov je sadržan tekst uslova kakav bi se pojavio u programu, recimo ' datum < š31.12.93ć and broj between 13 and 145 and ...' i tome slično, što je napravio onaj prvi dijalog. Ispalo je da je preterao, promenljiva Uslov je duža od 256 bajta, što je granica za raspakivanje makroa. Onda smo stvar preuredili ovako sy = 'se'+alltrim(sys(2007,uslov))+'.prg' && izmisli ime if !file(sy) && ako ga već nismo napravili set alte to (sy) set alte on && onda da ga napravimo set cons off ?' Select * from (_baza);' ?' Where',uslov,';' ?' into cursor trtmrt' set cons off set alte off set alte to comp (sy) && kompajliraj ga endif do (sy) && i izvedi Sys(2007,<cExp>) daje nekakav čeksum od drugog parametra, taman dovoljno da se raspozna da li se isti sadržaj parametara već pojavljivao. Razlog da radim ovakve stvari je da zaobiđem češće raspakivanje istih makroa - čemu, ako istom lakoćom mogu da izgenerišem programče koje će ih sadržati raspakovane i kompajlirati samo jednom, i u ovom slučaju, da izbegnem ograničenje na dužinu makroa. U originalnom primeru nije bilo ispisa sa Set Alternate, nego u stvari ovako set text to (sy) set text on set cons off Đ Select * from (_baza); Đ Where <<uslov>>; Đ into cursor trtmrt set cons off set text off set text to Ono Đ na početku linije je ascii 92, tj beksleš (vidim ga kao Đ, ali mi ne smeta). Najlepše od svega je što su prerada i testiranje rutine da radi ovako trajali dva do tri minuta (okačio torbu o rame i krenuo nekud, pa sve s nogu i ne skidajući ono s ramena). Najduže je trajalo dok smo u helpu pronašli koji ono sys(200* ) daje čeksum ;). Bue_ Ndragan
clipper.1036 snemcev,
>> jedan veliki problem: kada sam u svoje programe ubacio SIx drajver, >> program je počeo da iskače sa greškom VM integrity failure. Simptomatično je da se ova greška mnogo češće javlja na 386 mašinama nego na 286 -- otprilike 1:100, a možda i više. Zašto? Samo nebo zna...
clipper.1037 dvesic,
>> Simptomaticno je da se ova greska mnogo cesce javlja na 386 >> masinama nego na 286 -- otprilike 1:100, a mozda i vise. >> Zasto? Samo nebo zna... Dajte jos informacija ! Da li je to SixCdx 1.5 sa ili bez Uprade-a sa Sezama ? Koji (da li) memory.menager je prisutan ? Ima li Double Space ? Koristi li se Stealth DblSpc od Qemm-a ? A Stacker ? itd, itd... Koji kod greske javlja ? (ima ih vise VM Int Fal)
clipper.1038 nbatocanin,
> Jel' neko probao da ga "rucno" prepravi tako da > izgleda kao da nije privremeni? šta ćeš time dobiti? Za mnogo komotnije operacije za indeksima preporučujem SIx :)
clipper.1039 dzoric,
Hi, pisem On Line. Sto se tice gresaka SIx RDD-a tice, problem sa VM Integrity Failure sam nekako izbegao koristeci FUNCKY II Lib, i to MFUNCkyVM.LIB, koji po NG-u bolje hendla VM od Clipper-a. Probajte kombinaciju SIx, Funcky, Blinker 3.0. Pozdrav, Dejan.
clipper.1040 dzoric,
OOOOOOOOOOOOHHHHHHHHH NEEEEEEEEEEEEEEEEE Ipak definitivan bug ( or feature ) SIx RDD-a. I pored FUNCky-ja program je pukao sa cuvenim VM Integrity Failure. Steta, velika steta...... Dejan.
clipper.1041 snemcev,
>> Da li je to SixCdx 1.5 sa ili bez Uprade-a sa Sezama ? Verzija 1.5 sa upgrade-om. >> Ima li Double Space ? Ne. >> Koristi li se Stealth DblSpc od Qemm-a ? Ne. Nikakvi programi za kompresuju "u letu" nisu prisutni. >> Koji (da li) memory.menager je prisutan ? Qemm 7.01 >> Koji kod greske javlja ? (ima ih vise VM Int Fal) E ovo stvarno nisam zapisivao. Da li ga uopšte ispisuje? Znam da dâ neku levu adresu u zagradi, ali kod greške...
clipper.1042 snemcev,
>> Probajte kombinaciju SIx, Funcky, Blinker 3.0. Prva i treća stavka su tu, ali Funcky... Jesi voljan za razmenu?
clipper.1043 dr.grba,
>> Ipak definitivan bug ( or feature ) SIx RDD-a. >> I pored FUNCky-ja program je pukao sa cuvenim >> VM Integrity Failure. Opiši uslove pucanja, da pokušamo da rekonstruišemo. Mašina, okruženje, broj baza i veičina,....
clipper.1044 dzoric,
Evo, ovako izgledaju moja iskustva sa SIx RDD-om. U postojecu aplikaciju za knjigovodstvo sam ulinkovao SIx čisto probe radi. Posle početnog oduševljenja i izbacivanja iz koda gomile SKIP funkcija za TBrowse prikaze i uvođenjem SET SCOPE klauzula (CDX indekse neću ni da pominjem) program je počeo s'vremena na vreme da puca sa porukom "VM Integrity Failure" :((( i u zagradi da adresu gde se zablesavio. Posle mnogo testiranja, izbacivanja QEMM-a 7.03, raznih kombinacija BLINKER 3.0 Script fajlova, dešavalo se isto. Kad sam već bio kod unapređenja aplikacije izbacio sam NANFOR.LIB i ubacio FUNCky II za koji tvrdim da je jedan od najboljih LIB-ova za Clipper. FUNCky je na 5 X 1.44 i uz gomilu primera i dodatnih alata kao sto je FPATCH pandam PATCH-u dobija se izvorni kod LIB-a + NG od oko 3 Mb. LIB ima istovetne funkcije za Clipper i za C. Unutar FUNCky-ja postoji i FUNCkyVM.LIB koji se obavezno linkuje i koji po dokumentaciji bolje resava Virtual Memory. Elem, posle linkovanja FUNCky-ja program nije više pucao i izdržao je 7 dana intenzivnog testiranja. Ali osmi dan ponovila se ista stvar :(((. Ipak sumnjam u SIx, jer je već imao problema sa Blinker-om. Linkovanje sa RTLNIK-om ne dolazi u obzir kod vecih aplikacija. Jedino ako neko ima RTLINK PLUS (koji radi overleje C i ASM koda) pa da probamo. Posle svega smatram da je SIx RDD najbolji proizvod koji sam imao prilike da koristim i pored toga što jede memoriju i ovoga BUG-a, ali više ga niko ne izbaci iz mojih aplikacija. Sve dodatne informacije o FUNCky.LIB-u (razmena, itd.) na MAIL. Pozdrav, Dejan :)
clipper.1045 dzoric,
Po poslednjim informacijama od dsisic-a postoji PATCH br. 2 za SIx RDD koji mozda resava nase probleme. Ima izgleda da stigne u nase krajeve sledece nedelje. Dejan.
clipper.1046 neman,
> > Simptomaticno je da se ova greska mnogo cesce javlja na > 386 masinama nego na 286 -- otprilike 1:100, a mozda i > vise. Zasto? Samo nebo zna... Da, na mojoj 386 se javlja ta greska, ali sam do sada to pripisivao recimo sukobu sa kes programom ( PCKWIK ), nisam posvecivao vise paznje tome. BTW, da se nadovezem na nbatocanina, sada nema onog groznog pisanja skipkey bloka za TBrowse, vec kazem SET SCOPE i pici. A WILDSEEK je posebna poslastica :), bas sam napisao takvu rutinu koja analizira uneti podatak i radi trte mrte. Zaboravio sam na taj modul :) Ostaje samo pitanje brzine. Naime, indeksiranje ( konkretnih ) baza traje nesto duze a zauzvrat dobijam indeksnu datoteku 2-4 puta kracu, a sama SEEK naredba je i dalje sporija od NTX-a. Zbog toga bi trebalo razmotriti :) taj NSX drajver. Medjutim, samo prethodne pogodnosti umanjuju ovaj problemcic. A tek sto mi padaju na pamet mogucnosti koriscenja RYO indeksa, ali otom poto(p) :) I jos nesto glede clanka. Pominjes Advantage RDD koji izvrsava obradu nad indeksima ( bazi ??? ) na samom serveru. Takav pristup mi je sumnjiv jer zahteva valjda mnogo mocnije servere na mrezama nego sto je to kod obicnog ;) deljenja resursa, i tu bi trebao da se vidi odnos brzine/cene takve realizacije. neman
clipper.1047 dvesic,
>> Qemm 7.01 Uradi upgrade na 7.03. To ce resiti deo problema. Ako te ne mrzi, posalji mi : - AUTOEXEC.BAT - CONFIG.SYS, - ispis od MEM /C (ili od nekog drugog programa za raspodelu memorije) - informaciju o inicijalnim zahtevima programa za memorijom (Ono sto RTlink/Blinker jave na kraju u zagradama) - Ako imas sors programa koji pravi probleme, postavi mu kao prvu izvrsnu liniju jedno WAIT "", pa program startuj sa APP.EXE //INFO pa mi i to posalji ako te mrzi, onda nista :)))
clipper.1048 dvesic,
Da li su svi koji imaju problema sa SIx & VM uradili upgrade sa Sezama ? Mozda je potreban jedan DownUpGrade na originalnu verziju ... :)) Meni programi radjeni sa cistom 1.5 jos nisu (cuk, cuk) pucali na ovaj nacin, dok me je jedan skoro menjan u firmi bas danas lepo obradovao :(
clipper.1049 dr.grba,
>> prvu izvrsnu liniju jedno WAIT "", pa program startuj sa >> APP.EXE //INFO pa mi i to posalji Šta znači ovo //INFO? Je li ovo neki Clipper hint??? De, da probam... ... Gle, vraga.... GDE JE OVO BILO DOSADA???
clipper.1050 bulaja,
│Po poslednjim informacijama od dsisic-a postoji │PATCH br. 2 za SIx RDD koji mozda resava nase probleme. └─── Izgleda da se sprema i SIx 2.0 :). U katalogu dobijenom od nekog USA software dilera već se prodaje i SIx v1.5 sa besplatnim upgrade-om na verziju 2.0. Takodje izgleda da će skoro izaći i FUNCky 3. Btw da li je neko ovde video na delu ExoSpace ili neki GrumpFish Lib?
clipper.1051 nbatocanin,
>>> jedan veliki problem: kada sam u svoje programe ubacio >>> SIx drajver, program je počeo da iskače sa greškom VM > integrity failure. > > Simptomatično je da se ova greška mnogo češće javlja na > 386 mašinama nego na 286 -- otprilike 1:100, a možda i > više. Zašto? Samo nebo zna... Ne bih rekao: meni je sa skoro istim procentom program iskakao na 286/12MHz.
clipper.1052 nbatocanin,
> Dajte jos informacija ! > Da li je to SixCdx 1.5 sa ili bez Uprade-a sa Sezama ? 1.5a. Clipper 5.2c, Blinker 2.01 ili 3.0 svejedno. Probano na raznim mašinama, javljalo se i na klot DOS 3.31, a o 5.0 + QEMM da i ne pričam... Dakle, nema veze sa drugim programima. > Koji kod greske javlja ? (ima ih vise VM Int Fal) Nema ga u spisku: "VM integrity failure".
clipper.1053 nbatocanin,
> I jos nesto glede clanka. Pominjes Advantage RDD koji > izvrsava obradu nad indeksima ( bazi ??? ) na samom > serveru. Takav pristup mi je sumnjiv jer zahteva valjda > mnogo mocnije servere na mrezama nego sto je to kod > obicnog ;) deljenja resursa, i tu bi trebao da se vidi > odnos brzine/cene takve realizacije. Pa to je klasična klijent - server organizacija. Rekao bih da performanse zavise od obrade: može se lako desiti da posao oko prosleđivanja podataka bude značajno veći od operacije koju treba obaviti! Na žalost, o ovom drajveru sam pročitao svega nekoliko rečenica i nisam imao prilike da isprobam. Mada, svakako deluje izuzetno interesantno.
clipper.1054 nbatocanin,
> Mozda je potreban jedan DownUpGrade na originalnu verziju > ... :)) Ne, ja sam imao istih problema sa čistim 1.5. Na žalost, upgrade nije doneo poboljšanje. A nije da se nisam nadao :(
clipper.1055 neman,
> Gle, vraga.... GDE JE OVO BILO DOSADA??? U uputstvu ;) neman
clipper.1056 neman,
> obaviti! Na zalost, o ovom drajveru sam procitao svega > nekoliko recenica i nisam imao prilike da isprobam. Mada, > svakako deluje izuzetno interesantno. Ta informacija ide iz nekog biltena ( gde ima slika i Visual Objects-a ), pa posto je sve to u koloru, pretpostavljam da spada pod ono "svaki ciga svoga konja fali". Inace i u Blinker reklami nema "VM ... " ;) neman
clipper.1057 neman,
> ovde video na delu ExoSpace ili neki GrumpFish Lib? Ja sam imao neki stari GrumpFish. Svidela mi se ona slagalica brojeva ( 1 - 15 ) ;) neman
clipper.1058 snemcev,
>> Uradi upgrade na 7.03. To ce resiti deo problema. Radio sam x puta, ali 7.03 mi pravi probleme sa VGA karticom (Trident 8800 (ili beše 8900, koja li je bila aktuelna '90-te kad sam kupovao računar?)) po izlasku iz nekih programa sve boje su crne. Ništa, osim reseta, ne pomaže. Baš mi se ne mili da posle svakog startovanja više se i ne sećam kojih programa radim reset.
clipper.1059 dvesic,
>> Radio sam x puta, ali 7.03 mi pravi probleme sa VGA karticom >> (Trident 8800 (ili bese 8900, koja li je bila aktuelna '90-te >> kad sam kupovao racunar?)) po izlasku iz nekih programa sve >> boje su crne. Nista, osim reseta, ne pomaze. Bas mi se ne mili >> da posle svakog startovanja vise se i ne secam kojih programa >> radim reset. Ima gomila parametara koje mozes da pokusas pre nego sto odustanes :) Ne secam se tacno, ali NV (NoVideoFill) ili NVR (NoVideoRam) ili VIDEO bi na liniji QEMM386.SYS u Config-u mogli da pomognu Mozes detalje da potrazis u TECHNOTE poddirektorijumu.
clipper.1060 snemcev,
>> Mozes detalje da potrazis u TECHNOTE poddirektorijumu. Mislim da ću za detalje zloupotrebiti i tvoj mail ;) Tnx in advance. Imaš piće u Kikindi...
clipper.1061 bstevan,
Zdravo ! Interesuje me gde se može nabaviti LIB - menadjer, i koja je cena. Dali postoji neki SW/PD LIB - menadjer i dali ga ima negde na SEZAM-u ? ---BSTEVAN---
clipper.1062 bstevan,
Interesuje me dali ima neko funkciju za ispitivanje dali je disketa stavljena u drajv A ili B. Funkcija bi trebala da je pisana u S87'. ---BSTEVAN---
clipper.1063 bulaja,
│Interesuje me dali ima neko funkciju za ispitivanje │dali je disketa stavljena u drajv A ili B. │Funkcija bi trebala da je pisana u S87'. └─── Slao sam nekad davno (mislim da je tada S87 još uvek bio šire aktuelan:) trik za otkrivanje da li je disketa u drajvu odnosno ili da li postoji hard disk particija (valjda ga je u Dejan bio objavio u Bajtovima...). LM, samo pozovi funkciju DiskSpace() za zeljeni drajve (A: = 1, B: = 2,...) i ako ti vrati neku razumnu vrednost onda je disketa u drajvu odnosno posoji HD particija, a ako javi neki nenormalan broj (reda nekoliko Gb slobodnog prostora na disketi:) onda nema diskete u drajvu.
clipper.1064 nbatocanin,
> Ta informacija ide iz nekog biltena ( gde ima slika i > Visual Objects-a ), pa posto je sve to u koloru, > pretpostavljam da spada pod ono "svaki ciga svoga konja > fali". Inace i u Blinker reklami nema "VM ... " ;) čitao sam u nekoliko novina, ali su uglavnom bile vesti, pa je teško nešto preciznije reći. Međutim, ideja mi se svakako sviđa.
clipper.1065 dpredovic,
> Unutar FUNCky-ja postoji i FUNCkyVM.LIB koji se obavezno > linkuje i koji po dokumentaciji bolje resava Virtual > Memory. Meni se čini da je fazon da funckyvm _koristi_ VM, a ona druga (funckycl) ne, da bi bila kompatibilna sa S87. Inače, koliko odvajate za stack? Ja sam bogami sa funcky i six-om dogurao do lepih 15k. Cu, Dejan
clipper.1066 dpredovic,
> Šta znači ovo //INFO? Je li ovo neki Clipper hint??? > > De, da probam... > > ... > > Gle, vraga.... GDE JE OVO BILO DOSADA??? A tek //SWAPTRACE... Možda bi moglo biti korisno povodom cele ove priče? Cu, Dejan
clipper.1067 dr.grba,
>> > Gle, vraga.... GDE JE OVO BILO DOSADA??? >> >> A tek //SWAPTRACE... Možda bi moglo biti korisno povodom cele >> ove priče? Jel' može neko da baci sve ove prekidače?
clipper.1068 snemcev,
>> Inače, koliko odvajate za stack? Ja sam bogami sa funcky i six-om >> dogurao do lepih 15k. Kako odvajaš prostor za stack? Zar to VM sistem ne radi sam?
clipper.1069 bstevan,
>>> LM, samo pozovi funkciju DiskSpace() za zeljeni drajv (A: = 1, >>> B: = 2,...) i ako ti vrati neku razumnu vrednost onda je disketa >>> u drajvu odnosno postoji HD particija, Hvala, to mi rešava problem. ---BSTEVAN---
clipper.1070 dpredovic,
> Kako odvajaš prostor za stack? Zar to VM sistem ne radi sam? U Blinkeru sa STACK komandom, sa rtlinkom ne može, ali može naknadno da se "prevari" sa exehdr. Inače stack je jedna od lepih stvari kojima ni VM ni protected mode ne pomaže. žak i windowsi u 386 modu imaju stack od 64K. Koliko sam primetio, kod clipper-a stvar stoji ovako: postoje DVA steka - normalni, mašinski stack i eval stack tj. clipperov interni stack na kojem on (u osnovi stack interpreter) izračunava izraze. Za to je odvojen DS segment koji pored ta dva stacka izgleda sadrži i compile-time inicijalizovane statičke promenljive. Ergo: 1. ako vam program pravi nepredvidljive probleme povećajte stack 2. ako dobijate grešku eval stack fault i sl, smanjite stack 3. ako ste uradili 2., pa vam se javlja 1., UNDO & statičke promenljive inicijalizujte run-time Ako ne funkcionise nijedna varijanta, ostaje: 4. objasnite korisnicima sve mane PC tehnologije, kukajte na nesavršenost alatki, plačite nad segmentnom arhitekturom itd. ;) Cu, Dejan
clipper.1071 dzoric,
A ako mi javi "Internal Stack Overflow" i pri tom mi unisti FAT. Dejan.
clipper.1072 goxx,
Imam jedno pitanje. Počeo sam da radim podsistem za štampu. Ispis svega što postoji u aplikaciji treba da ide preko jedne rutine. U stvari, sve se upisuje binarno u fajl. I štampač se otvara kao fajl (PRN). Problem je (banalno gledano) sledeći : #include "FileIO.Ch" #define CRLF CHR(13)+CHR(10) FUNCTION Main() LOCAL stampac := FOPEN("PRN", FO_WRITE) FWRITE(stampac, "Neki tekst koji se stampa" + CRLF) FCLOSE(stampac) RETURN NIL Funkcija FWRITE() radi normalno kada je štampač spreman za stampu. Medjutim problem nastaje kada se štampač stavi off-line. Tada, funkcija jednostavno čeka da štampač bude spreman. Očekivao sam da se funkcija prekine i vrati broj upisanih bajtova (manji od dužine stringa) i da se kasnije funkcijom FERROR() dobije neki kod greske. Da li postoji neki način da se ovo zaobidje, i da se ispita kada je štampač nespreman. Unapred zahvaljujem na svim odgovorima i konstruktivnim savetima. Goran.
clipper.1073 mpeti,
cao narode ! Ovo pišem on-line pa mi ne zamerite za loš izgled teksta. Možda je već prošo voz, ali samo da kažem moja iskustva o kombinaciji DBFSIX, Blinker. Koristim DBFSIX (v1.1) :( jer još nisam nabavio 1.5. I meni je često ispadao sa VM Integr.... grrrrrrrr :(. Posle nekog čačkanja sa u DBFSIX.lnk forsirao module SXINDEX i SXSETHI u root (skinuti tarabe sa početka redova gde se ovi navode) i posle toga mi je sve lepo radilo. Nisam još radio sa 1.5 ali možda nekome ovo da ideju, pa probajte da experimentišete. Uzgred ima li neko iz Subotice, Novog Sada, Zrenjanina, Sombora ili Kikinde a ima SixCDX drajver. Molio bih dobru dušu koja je voljna za neku trampu da mi se javi na mail ili na (024) 26-618. Pozdrav MPeti
clipper.1074 zizo,
Neko ovde reče da se FoxPro *.APP fajlovi ne isplate zipovati, jer se ništa ne može uštedeti. To je slučaj ako su fajlovi pravljeni sa ENCRYPT(ED) opcijom. U tom slučaju zip ih komprimuje sa uštedom od 0-1%. Ali ako se ne navede ENCRYPT dobijaju se fajlovi koji su u bajt iste dužine a stepen kompresije je i do 75% (25% orig.). Kako sam ovo otkrio? Trebao sam da modemom prebacim izmenjenu verziju programa korisniku, kad vidim stepen kompresije kod ZIP-a 1%. Znam da ZIP-ovan fajl treba da bude 3x kraći od originala, a oni skoro jednaki u bajt. Poverujem, u prvom trenutku, da sam došao do epohalnog otkrića da: ili je ZIP-u istekao period registracije pa zajebava (šta ga znaš) ili ga je Fox navuko da pobrljavi. Tek kasnije se setim da sam se opet zezao sa encrypt. Da remiziramo: FoxPro kod enkriptovanja dobije fajl koji je u bajt iste dužine kao ne enkriptovani, samo što se umesto imena varijabli i sadržaja konstanti, koje ima izvorni kod, pojavljuju tzv. KIKE (Kuke I KvakE) koje se ne mogu komprimovati. U ovom slučaju meni više odgovara 3x manji prenos nego što će neki haker da mi "razbije" program. Pozdrav █ █ █ █ ▄▄█ █ █▄▄ █▄▄
clipper.1075 solomus,
Znate šta ! Iza mene je četiri godine Clipper-a, gomila uradjenih projekata, trenutno za jedno veliko osiguravajuće društvo radim glavne aplikacije sa bazama od par stotina hiljada rekorda a vi meni tako ! :) Molim ? Kako šta vi meni tako ? Pa, evo šta. Godinu dana me nema na Sezamu, pokupim lepo celu temu u rikverc i čitam, čitam i lepo, tu i tamo, nemam pojma o čemu pričate. Pored vas nekoliko *referentnih* Clipper-aša se pogotovo osećam kao malo dete ! Šalim se, naravno, potrčaću malo pa će vas stignem :)). E, i još nešto. Bale mi curile kad god se pričalo o SIx-u, te se dadoh se u poteru za istim. Prevrnuo sam većinu BBS-ova, potegao (ne)legalne veze i NIL ! I sad, kažite vi meni, jel' to lepo :) ! P.S. More, pevajte bre gdi ga krijete !!!
clipper.1076 bulaja,
│Funkcija FWRITE() radi normalno kada je štampač spreman za stampu. │Medjutim problem nastaje kada se štampač stavi off-line. Tada, funkcija │jednostavno čeka da štampač bude spreman. └─── NoRMaLno :), ipak ne možeš tretirati printter kao običan file :). Pre upisivanja koristi funkciju IsPrinter() ili, ako baš hoćeš da sve bude low-level :), Int 17h ili Port 379h (oba služe za kontrolu printer-a, pogledaj neki od INFO fajlova za opis).
clipper.1077 mirche,
> Da li postoji neki način da se ovo zaobidje, i da se ispita > kada je štampač nespreman. ISPRINTER() je valjda ono što tražiš.
clipper.1078 nbatocanin,
> Integr.... grrrrrrrr :(. Posle nekog čačkanja sa u > DBFSIX.lnk forsirao module SXINDEX i SXSETHI u root > (skinuti tarabe sa početka redova gde se ovi navode) i > posle toga mi je sve lepo radilo. Nije to: štos je u memoriji, pa si verovatno ovom intervencijom promenio mem. mapu. > Uzgred ima li neko iz Subotice, Novog Sada, Zrenjanina, > Sombora ili Kikinde a ima SixCDX drajver. Javi se anenad-u, nadam se da ti može pomoći.
clipper.1079 dpredovic,
>> Integr.... grrrrrrrr :(. Posle nekog čačkanja sa u >> DBFSIX.lnk forsirao module SXINDEX i SXSETHI u root >> (skinuti tarabe sa početka redova gde se ovi navode) i >> posle toga mi je sve lepo radilo. > > Nije to: štos je u memoriji, pa si verovatno ovom intervencijom > promenio mem. mapu. AAAAAAAAAAAArrrrrrrrrggghhhhhhh!!!! (Tension breaker, had to be done.) Nakon cca mesec i po dana VM Integrity fai*&%$#, konačno mi se ukazao TAO! Ako je problem u VM, zašto ju ne isključiti? Daklem, jedno BLINKER CLIPPER PAGE OFF rešava problem, barem što se tiče VM Integ %$#%$#. Doduše, blinkerovi overleji porastu na cca 360K, ali šta se može: BLINKER CACHE XMS 512, pa će sve moći sasvim lepo da se podnese... Cu, Dejan
clipper.1080 ndragan,
/ A ako mi javi "Internal Stack Overflow" i pri tom / mi unisti FAT. Na čemu onda napisa ovo? Xm, ne sećam se o čemu je reč... obrisao sam svoju poruku na koju odgovaraš, a pošto nisi ništa citirao, odgovor je nemam pojma
clipper.1081 ndragan,
/ ISPRINTER() je valjda ono što tražiš. Za Foksovce, ova funkcija se zove PrintStatus(), za prijatelje samo Prin().
clipper.1082 cubro,
Pomoc ! Molim nekoga da mi se javi na mail (cubro), ako ima zadnju verziju FoxPro -a (2.5 ?). Potrebne su mi neke informacije. Ne bi bilo loshe, ako mi ostavite Vash broj telefona, pa cu se ja javiti glasom. Unapred thank !
clipper.1083 goxx,
■ ISPRINTER() je valjda ono što tražiš. Hvala na ogovoru. To sam odavno pronašao, ali to nije to. Goran
clipper.1084 goxx,
■ Pre upisivanja koristi funkciju IsPrinter() ili, ako baš hoćeš da sve bude ■ low-level :), Int 17h ili Port 379h (oba služe za kontrolu printer-a, ■ pogledaj neki od INFO fajlova za opis). Hvala na pomoći. ISPRINTER() mi ne završava posao (onako kako sam trenutno zamislio). Pogledaću joć funkciju write (ili još niže _open _write _close) iz C-a. Goran
clipper.1085 dzoric,
>> Xm, ne sećam se o čemu je reč... obrisao sam svoju poruku na koju >> odgovaraš, a pošto nisi ništa citirao Izvinjavam se bio je reply na 11.1070, ali sam pisao on-line pa sam omanuo. >> Ergo: >> 1. ako vam program pravi nepredvidljive probleme povećajte stack >> 2. ako dobijate grešku eval stack fault i sl, smanjite stack >> 3. ako ste uradili 2., pa vam se javlja 1., UNDO & statičke >> promenljive inicijalizujte run-time >> A ako mi javi "Internal Stack Overflow" i pri tom >> mi unisti FAT.
clipper.1086 snemcev,
>> 4. objasnite korisnicima sve mane PC tehnologije, kukajte na >> nesavršenost alatki, plačite nad segmentnom arhitekturom itd. ;) Interesantan prilog. Elem, problema sa stekom još nisam imao, a nadam se da će tako i da ostane. :)
clipper.1087 dsisic,
Hi! SIXNSX 1.5 came in to town!!! Ko voli da proba, mail-me. Takodje je stigao patch br 2 za SIXCDX, ali ne u formi patcha, vec u obliku LIB direktorijuma sa neke xxx masine iz neke xxx zemlje. U principu, mogao bi se napraviti patch iz domace radinosti, zar ne!! Sto se tice VM Int. Failure, ljudi iz inostranstva koji rade sa SIXOM i koji imaju mnogo bolji pristup raznoraznim forumina ... tvrde da je to bug Clippera, a ne Sixa i da Six sa svojim zahtevima za memorijom ili nekim drugim pozivima samo otkriva nemarnost CA programera.
clipper.1088 dsisic,
Sledstveno poruci koju sam nedavno ostavio ovde, obavestavam vas da posedujem patch koji ce od datoteka: sixcdx lib 231,845 5:22a machsix lib 87,677 5:22a machsix ch 36,117 5:20a napraviti: sixcdx lib 232,883 5:23a machsix lib 91,799 5:23a machsix ch 36,245 5:23a Dakle, radi se o patchu u domacoj radinosti koji nije autorizovan. Ovo je uradjeno u nedostatku zvanicnog patcha. Cenim da ovaj patch moze biti downloadovan u ovu konferenciju iako nije autorizovan dok se ne nabavi regularan, kako bi se svi oni koji su presli na SIX zakrpili. O patchu nemam nikakvu dokumentaciju. Voleo bih kratak odgovor od nadleznih u vezi DownLoadinga :) Ko zeli precicom, mail-me. ( Patch je kratak: 38,437 bytes )
clipper.1089 djelovic,
> Voleo bih kratak odgovor od nadleznih u vezi DownLoadinga :) Patch je dobrodošao.
clipper.1090 dsisic,
Evo patcha six2.arj
clipper.1091 nbatocanin,
> Ako je problem u VM, zašto ju ne isključiti? Daklem, jedno > BLINKER CLIPPER PAGE OFF rešava problem, barem što se tiče > VM Integ %$#%$#. Doduše, blinkerovi overleji porastu na > cca 360K, ali šta se može: BLINKER CACHE XMS 512, pa će > sve moći sasvim lepo da se podnese... Teško... Ovakvi programi iskaču i sa 700K osnovne memorije :(
clipper.1092 dmajkic,
Nov sam kliperaš. :) Ne, neću pitati ima li ko SIX v2.0 ili Blinker ili ne_znam_ti_ja_koju_tamo_biblioteku. (To ću da pitam za koji mesec. ;) ) Očekujem vašu podršku u rešavanju problema koji mi tokom učanja budu iskrsli. Prva stvar koju bi hteo da pitam je koji editor koristite? Da li ste ga konfigurisali da radi kao mali CA IDE, i kako? Probao sam brief, međutim, brlja mi po norton gajdu. Druga stvar, kako se koriste vbase52.pll i vbase52.plt? Toliko za sad, unapred hvala i pozdrav svima. :)
clipper.1093 neman,
> Nov sam kliperas. :) Ne, necu pitati ima li ko SIX v2.0 > ili Blinker ili ne_znam_ti_ja_koju_tamo_biblioteku. (To cu > da pitam za koji mesec. ;) ) Ako, ako... > Prva stvar koju bi hteo da pitam je koji editor koristite? > Da li ste ga konfigurisali da radi kao mali CA IDE, i > kako? Ja koristim SideKick 1.1 (?) > Druga stvar, kako se koriste vbase52.pll i vbase52.plt? Clipper ime Rtlink fi ime /pll:vbase52 ime Treba da postoji i jedno SET PLL=put_do_direktorijuma_gde_ti_je_pll npr. SET PLL=D:\CLIPPER5\PLL BTW otkud ti vbase52, obicno je samo base52 ? neman
clipper.1094 dpredovic,
..SOR 2.30 EXEC Z0F72176 CONF JOIN PC.PROG.3 CONF REPLY 11.1091 >> Ako je problem u VM, zašto ju ne isključiti? Daklem, jedno >> BLINKER CLIPPER PAGE OFF rešava problem, barem što se tiče >> VM Integ %$#%$#. Doduše, blinkerovi overleji porastu na >> cca 360K, ali šta se može: BLINKER CACHE XMS 512, pa će >> sve moći sasvim lepo da se podnese... > > Teško... Ovakvi programi iskaču i sa 700K osnovne memorije :( Khm... Radost je bila preuranjena... schmrc... :( U celom teoretskom razmatranju sam zaboravio maaalu sitnicu... Sa PAGE OFF Blinker preuzima na sebe rad sa kompletnim kodom (i clipper i c). Problem je što na clipperu opet ostaje da barata sa podacima. Jeste da ovo pomaže (oko 250-300 kila manje za clipper da se muči), ali sam uspeo i to da oborim. Da bude još gore, ceo program sam (konačno) prebacio u EXECUTABLE EXTENDED, i guess what? Opet isto... ALI... Program takav kakav jeste, puca kada malo jače dune promaja, kod korisnika startujem iz windowsa. Program se muči, krči, radi do zla boga sporo, ali NE puca??? Neću (opet) da kažem da imam neko spasonosno rešenje, ali mi se stvarno čini da je to-to: Izgleda da stvar spasava DPMI, bilo bi vrlo glupo da postoje aktivna dva VM menagera, jedan u dos-u (windowsu), a drugi u clipperu, da rade isti posao. Daklem, izgleda da ako postoji externi DPMI, blinker ne pravi neku njegovu emulaciju, u kojoj učestvuje i clipper, nego se kompletan MM prebacuje na pravi DPMI. Naravno, ne pada mi napamet da korisnike teram da moj program startuju iz windowsa, pa mi na pamet pade QDPMI, ali avaj... Bez obzira na ono što piše u NG blinker NEĆE aktivirati QDPMI, ako je ulinkovan swapruncmd. Nije neka strašno velika greda, pošto u extended modu ostaje ihaha mesta i za običan RUN, ali bi ipak voleo da mi neko pošalje overlay.lib. Imao sam ga nekad, ali sam ga skinuo kad je stigao Blinker 3.0. Cu, Dejan PS. Jel i kod vas u exe fajlu piše Blinker 3.0 Beta 8?
clipper.1095 nbatocanin,
> Probao sam brief, međutim, brlja mi po norton gajdu. ??? Kako? Ja ga koristim otkako znam za sebe :)
clipper.1096 feniks,
Jel pratio neko prva dva časa Clipper-a na Prolupatoru? Dr.ing.prof.Ćosić je čujem doveo nekog da na popularan način nauči ljude. Ako neko ima te demo programe nek mi baci na mail a može i ovde, sigurno još nekog to interesuje. S.P.
clipper.1097 nbatocanin,
> Izgleda da stvar spasava DPMI, bilo bi vrlo glupo da > postoje aktivna dva VM menagera, jedan u dos-u (windowsu), > a drugi u clipperu, da rade isti posao. Daklem, izgleda da > ako postoji externi DPMI, blinker ne pravi neku njegovu > emulaciju, u kojoj učestvuje i clipper, nego se kompletan > MM prebacuje na pravi DPMI. Na žalost, izgleda da puca i u protected modu. Više bi mogao da kaže dsisic.
clipper.1098 dpredovic,
>> Ako je problem u VM, zašto ju ne isključiti? Daklem, jedno >> BLINKER CLIPPER PAGE OFF rešava problem, barem što se tiče >> VM Integ %$#%$#. Doduše, blinkerovi overleji porastu na >> cca 360K, ali šta se može: BLINKER CACHE XMS 512, pa će >> sve moći sasvim lepo da se podnese... > > Teško... Ovakvi programi iskaču i sa 700K osnovne memorije :( Khm... Radost je bila preuranjena... schmrc... :( U celom teoretskom razmatranju sam zaboravio maaalu sitnicu... Sa PAGE OFF Blinker preuzima na sebe rad sa kompletnim kodom (i clipper i c). Problem je što na clipperu opet ostaje da barata sa podacima. Jeste da ovo pomaže (oko 250-300 kila manje za clipper da se muči), ali sam uspeo i to da oborim. Da bude još gore, ceo program sam (konačno) prebacio u EXECUTABLE EXTENDED, i guess what? Opet isto... ALI... Program takav kakav jeste, puca kada malo jače dune promaja, kod korisnika startujem iz windowsa. Program se muči, krči, radi do zla boga sporo, ali NE puca??? Neću (opet) da kažem da imam neko spasonosno rešenje, ali mi se stvarno čini da je to-to: Izgleda da stvar spasava DPMI, bilo bi vrlo glupo da postoje aktivna dva VM menagera, jedan u dos-u (windowsu), a drugi u clipperu, da rade isti posao. Daklem, izgleda da ako postoji externi DPMI, blinker ne pravi neku njegovu emulaciju, u kojoj učestvuje i clipper, nego se kompletan MM prebacuje na pravi DPMI. Naravno, ne pada mi napamet da korisnike teram da moj program startuju iz windowsa, pa mi na pamet pade QDPMI, ali avaj... Bez obzira na ono što piše u NG blinker NEĆE aktivirati QDPMI, ako je ulinkovan swapruncmd. Nije neka strašno velika greda, pošto u extended modu ostaje ihaha mesta i za običan RUN, ali bi ipak voleo da mi neko pošalje overlay.lib. Imao sam ga nekad, ali sam ga skinuo kad je stigao Blinker 3.0. Cu, Dejan PS. Jel i kod vas u exe fajlu piše Blinker 3.0 Beta 8?
clipper.1099 snemcev,
>> Jel pratio neko prva dva časa Clipper-a na Prolupatoru? >> Dr.ing.prof.Ćosić je čujem doveo nekog da na popularan način nauči >> ljude. Ako neko ima te demo programe nek mi baci na mail a može i >> ovde, sigurno još nekog to interesuje. Jel' ti to ozbiljno?!
clipper.1100 dpredovic,
> Na žalost, izgleda da puca i u protected modu. Više bi mogao da > kaže dsisic. Jesi li probao pod DPMI-jem, ja stvarno još nisam uspeo da ga nateram da pukne, a problem sa swpruncmd sam rešio sa shroom-om. Cu, Dejan
clipper.1101 mbole,
> A još kada bi moglo u .LNK fajlu da se napiše nešto kao: ># ifdef d > ... ># endif > pa da nemam dva-tri skript fajla za linker, bilo bi izvanredno. > > Saša Listam ovih dana poruke iz perioda 4.93-3.94 dok me nije bilo ovuda pa natrčah na ovo. Ako sam dobro shvatio šta te muči, reč je o raznim varijantama lnk filea za demo, radnu i final verziju. Davno već ne koristim rtlink (pa se ne sećam da li omogućava include .lnk datoteka), ali kod blinkera sam ovo rešio ovako: Imam tri mala lnk fajla trtradna.lnk, trtdemo.lnk i trtfinal.lnk, u kojima se nalaze razlike za ove verzije što se tiče linkera. Npr u trtfinal.lnk stoji blinker inc off koga nema u trtradna.lnk. Rmake u zavisnosti od prenetog parametra bat fajlu poziva blinker sa nekom od njih. Na kraju svake se nalazi jedno @trt.lnk u kome se ustvari nalaze moduli koje treba povezati, i koji su zajednički za sve verzije. Sada se izmene vrše samo na jednom mestu. PS. Sory ako otkrivam toplu vodu.
clipper.1102 arazumenic,
-> Imam tri mala lnk fajla trtradna.lnk, trtdemo.lnk i trtfinal.lnk, u -> kojima se nalaze razlike za ove verzije što se tiče linkera. Npr u -> trtfinal.lnk stoji blinker inc off koga nema u trtradna.lnk. Rmake u -> zavisnosti od prenetog parametra bat fajlu poziva blinker sa nekom od -> njih. -> Na kraju svake se nalazi jedno čtrt.lnk u kome se ustvari nalaze moduli -> koje treba povezati, i koji su zajednički za sve verzije. Da, ovo funkcioniše, ali samo ako svuda koristiš iste prekidače prilikom kompajliranja programa, odnosno ako koristiš isti .OBJ fajl za sve verzije, što kod mene nije slučaj. Ne znam da li si obratio pažnju na to da za različite verzije .EXE fajla koristim različito kopmajlirane .PRG fajlove. Tako u .LNK za radnu verziju stoji FILE radniĐxxx.obj, u .LNK za debug verziju stoji FILE debugĐxxx.obj, a u .LNK za instalacionu verziju stoji FILE installĐxxx.obj. Osim toga, za radnu i debug verziju koristim blinker, a za instalacionu RTLink. Naravno, da osim ovih glavnih razlika, postoje još i neke druge, manje bitne za ovaj problem .LNK datoteka. Saša
clipper.1103 dmajkic,
+>> Probao sam brief, međutim, brlja mi po norton gajdu. +> +> ??? Kako? Ja ga koristim otkako znam za sebe :) Pa pojavi se okvir NG-a, ali nema teksta. Počne da se nazire kada mrdam "štanglu" kursorskim tasterima, a onda počne da sipa đubre. Plus što se stalno kači sa brifovim satom u ćošku. :(
clipper.1104 mbole,
> različite verzije .EXE fajla koristim različito kopmajlirane > .PRG fajlove. Tako u .LNK za radnu verziju stoji FILE > radniĐxxx.obj, u .LNK za debug verziju stoji FILE > debugĐxxx.obj, a u .LNK za instalacionu verziju stoji FILE > installĐxxx.obj. Zašto ovo ne rešavaš u samom programu sa #ifdef debug ..... #endif #ifdef inst .... #endif ili sličnim konstrukcijama. Jedino ako postoje baš žestoke razlike. Al nikako ne vidim razlog zašto bi razlike između radnog i finalnog filea trebale (a i smele) da budu velike. Lično se trudim da tu razliku održim na što manjem nivou, recimo preskačem uvodni ekran i neke slične gluposti, da bi mogao da testiram aplikaciju u što realnijim uslovima. > Da, ovo funkcioniše, ali samo ako svuda koristiš iste prekidače > prilikom kompajliranja programa, odnosno ako koristiš isti .OBJ > fajl za sve verzije, A što bi prekidači morali da budu isti? Recimo: !ifdef debug !ifdef demo .prg.obj: clipper $* /m /n /b /w /o$@ /ddebug /ddemo !else .prg.obj: clipper $* /m /n /b /w /o$@ /ddebug !endif !else !ifdef demo .prg.obj: clipper $* /m /n /l /w /o$@ /ddemo !else .prg.obj: clipper $* /m /n /l /w /o$@ !endif !endif Naravno kada se kompajlira finalna verzija ide i jedno /f u pozivu rmake-a tako da ga nateram da prevede sve što postoji iz početka. Doduše /f je ponekad neophodan i u toku rada, ali je to ipak srazmerno retko.
clipper.1105 arazumenic,
-> Zašto ovo ne rešavaš u samom programu sa -> # ifdef debug -> # endif Ovo tako i rešavam. Inače, razlika izmedju radnog i finalnog fajla je minimalna, odnosno da mi u pojedinim fazama rada prikaže neke informacije. -> A što bi prekidači morali da budu isti? Recimo: Upravo je problem u različitim prekidačima. -> Naravno kada se kompajlira finalna verzija ide i jedno /f u pozivu -> rmake-a tako da ga nateram da prevede sve što postoji iz početka. -> Doduše /f je ponekad neophodan i u toku rada, ali je to ipak srazmerno -> retko. E sada ovako. Način na koji ti radiš je sledeći: Ispravljaš neki deo programa, startuješ rmake sa /ddebug, Clipper prevodi ispravljeni fajl sa "clipper $* /m /n /b /w /o$č /ddebug", i posle toga se linkuje. Završiš razvoj tog fajla, i startuješ rmake bez prekidača. E sada ti Clipper NE prevodi ponovo taj fajl, već se samo startuje linker, i linkuje .OBJ fajl koje preveden sa /b /ddebug, jer svuda ti .OBJ fajlovi idu i isti direktorijum. Ako si pažljivo čitao moju poruku, video si da su kod mene 3 direktorijuma za .OBJ fajlove. U jednom je radna verzija, u drugom debug verzija, a u trećem je instalaciona verzija .OBJ fajlova. Zbog toga što su u različitim direktorijumima, zbog potrebe za dodatnim .OBJ fajlovima za debug verziju, moram da imam 3 .LNK datoteke. Zato mi nedostaje prenos prekidača iz rMake u skript fajl za linker. Saša
clipper.1106 drdjokic,
Kako da deaktiviram u Cliper programu kombinaciju tastera ALT cŤC, kako bih sprecio nasilni izlazak iz programa. Hvala unapred !
clipper.1107 bulaja,
│Kako da deaktiviram u Cliper programu kombinaciju tastera ALT cŤC, │kako bih sprecio nasilni izlazak iz programa. └─── SetCancel (.F.)
clipper.1108 mbole,
> Ispravljaš neki deo programa, startuješ rmake sa /ddebug, > Clipper prevodi ispravljeni fajl sa "clipper $* /m /n /b /w > /o$č /ddebug", i posle toga se linkuje. Završiš razvoj tog > fajla, i startuješ rmake bez prekidača. E sada ti Clipper NE > prevodi ponovo taj fajl, već se samo startuje linker, i linkuje > .OBJ fajl koje preveden sa /b /ddebug, jer svuda ti .OBJ > fajlovi idu i isti direktorijum. Neće biti :) Tj. bilo bi tako da nisam startovao rmake sa prekidačem /f koji tera rmake da prevede sve iz početka, bez obzira na vremena kreiranja .obj odnosno .prg fajlova. Tačnije rečeno ovo se sve poziva iz jednog .bat fajla kome šaljem prekidače d(debug-poziva debuger nakon linkovanja), e(konačna exe verzija), m(demo verzija), f(full-prevodi se sve što postoji bez obzira na vremena kreiranja), bez parametara (radna verzija- podrazumevana opcija ako nije navedeno m ili e, tj isto kao prekidač d samo nema poziva debugera već se samo startuje program). Ima tu još komplikacija kao naprimer ako je pozvan samo sa parametrom m onda se prevodi sa /b a ako je pozvan sa m e prevodi se bez /b i sa /l. E sad nisam probao da različite .obj držim u raznim direktorijumima (mada mi se čini da bi i to moglo da se reguliše, probaću ovih dana). Priznajem da ne vidim neke preke potrebe za ovim, osim ako je računar na kome radiš zaista spor. Konačne verzije u principu prevodiš jednom ili najviše par puta, tek nakon što si sve živo proverio na radnoj verziji. Znači sve vreme u obj dir-u mi stoje radne .obj verzije, tj ponovo se prevodi samo menjani fajl. Kad završim sa razvojem, pokrenem bat fajl sa f opcijom (plus e i/ili m) tako da se svi sorsevi ponovo prevedu, i imam konačni exe. Da ne bih davio previše evo ti uz poruku garnitura .bat;.rmk;*.lnk fajlova pa ako ti se sviđa koristi, a ako ne teraj po svome. Ah da ovaj .bat je prilično glomazno i ružno napisan (znam da to može mnogo elegantnije), al prvi(i jedini :)) put kad sam ga radio bilo je negde oko 3 ujutru, a posle me mrzelo da diram stvar koja radi :) PS. Ne pružam nikakve garancije za priložene fajlove tj upotrebljavate ih na svoj rizik. Biću zahvalan za dojavu svakog uočenog bug-a. Beše ovako se to piše? ;) make.zip
clipper.1109 nbatocanin,
> Pa pojavi se okvir NG-a, ali nema teksta. Počne da se > nazire kada mrdam "štanglu" kursorskim tasterima, a onda > počne da sipa đubre. Plus što se stalno kači sa brifovim > satom u ćošku. :( Mora da si nešto ubrljao sa bojama. To mora da radi.
clipper.1110 toma,
Sećate se svih onih preporuka o nekorišćenju imena tipa 1200, 2200 i sličnih za DBF fajlove. E, ja nisam baš obratio pažnju na ovo i evo sad kad konačno pređoh na 5.2 on me fino dočeka porukom da to nije regularno ime za DBF fajl. Clipper 5.01 je ladno gutao ovakve nazive. I još nešto. Imao sam na par mesta u programu klauzulu SET COLOR TO To je prouzrokovalo nevidljivost teksta u naredbama tipa @10,10 say "Naziv:" get ime CLEAR GETS Na ekranu je pisalo samo Naziv:, iako je ime <> "" Toliko od mene o razlikama. Pozdrav.
clipper.1111 mbole,
> i evo sad kad konačno pređoh na 5.2 on me fino dočeka porukom > da to nije regularno ime za DBF fajl. Clipper 5.01 je ladno > gutao ovakve Eh ovo je stari problem na koji sam jednom natrčao. Naime u ng fajlu za 5.01 lepo piše da fajlovima ne treba davati imena koja počinju nečim drugim osim slova. Pošto to parče uputstva nisam pročitao na vreme :))) bilo mi je baš zgodno da fajl bude recimo 01_23_93.dbf dok se jednog dana program nije zakucao nakon neke banalne izmene, sa nebuloznim porukama o greškama. Nakon pokušavanja svega i svačega, pozivanja debugera u pomoć, čitanja očenaša, i časne pionirske reči da neću nikad više, ništa nije pomoglo. Nekako tih dana se pojavila rev a za clipper 5.01 pa reko ajd da probamo. Poteram ga ja, a on prijavi dotičnu grešku pri kompajliranju. Opps, šta sad. Instaliram ponovo 5.01 (bez revizije a), promenim imena fajlova, i stvar radi bez problema. Znači, i 5.01 ne radi kako treba (barem ponekad, što je za mene sasvim dovoljno često) kada ime fajla počinje nečim drugim osim slova. E sad, što su momci umesto da isprave ovo samo uveli sintaksnu kontrolu njima na dušu. Naravoučenije: Iako Clipper 5.01 dozvoli da ime fajla počinje brojem, nemojte podleći iskušenju.
clipper.1112 arazumenic,
-> Neće biti :) Tj. bilo bi tako da nisam startovao rmake sa prekidačem /f -> koji tera rmake da prevede sve iz početka, bez obzira na vremena -> kreiranja .obj odnosno .prg fajlova. Poenta držanja .OBJ fajlova u različitim direktorijumima je ta da mi ne prevodi sve .PRG fajlove, već samo menjane. -> Priznajem da ne vidim neke preke potrebe za ovim, osim ako je računar na -> kome radiš zaista spor. Radim na jednom 386/25 i jednom 386/33. -> Konačne verzije u principu prevodiš jednom ili najviše par puta, tek -> nakon što si sve živo proverio na radnoj verziji. Znači sve vreme u obj -> dir-u mi stoje radne .obj verzije, tj ponovo se prevodi samo menjani -> fajl. Kad završim sa razvojem, pokrenem bat fajl sa f opcijom (plus e -> i/ili m) tako da se svi sorsevi ponovo prevedu, i imam konačni exe. Evo nekih aktuelnih podataka: 62 .PRG fajlova, približno 400k .OBJ fajlova, 336k Vreme kompletnog prevodjenja: 3 min i 45 sec. (386/25) Dok nisam počeo da radim na ovaj način, dešavalo se par puta sledeće: Startujem program (debug verzuju), dodjem na kritično mesto, i ustanovim da mi je potrebno da vidim neki drugi deo programa. Po Marfijevom zakonu, taj deo nije preveden sa /b. Onda prekidaj program, briši dotični .OBJ i sve ponovo. Ovako sam siguran da mi takva egzibicija više neće trebati. Saša
clipper.1113 bulaja,
│Poenta držanja .OBJ fajlova u različitim direktorijumima je ta da mi ne │prevodi sve .PRG fajlove, već samo menjane. └─── ???? Pa čemu onda služi (r)make?
clipper.1114 snemcev,
>> Sećate se svih onih preporuka o nekorišćenju imena tipa 1200, >> 2200 i sličnih za DBF fajlove. E, ja nisam baš obratio pažnju na ovo >> i evo sad kad konačno pređoh na 5.2 on me fino dočeka porukom da to >> nije regularno ime za DBF fajl. To jeste regularno ime za dbf, ali nije za alias. Nije šija, nego vrat? Varaš se! Pokušaj USE 1200 NEW ALIAS Kupci
clipper.1115 dpredovic,
> Pa pojavi se okvir NG-a, ali nema teksta. Počne da se nazire > kada mrdam "štanglu" kursorskim tasterima, a onda počne da sipa > đubre. Plus što se stalno kači sa brifovim satom u ćošku. :( Proveri da li među svim onim silnim svičevima za brief postoji -p, ako nema - probaj.
clipper.1116 ndragan,
/ E sad, što su momci umesto da isprave ovo samo uveli sintaksnu / kontrolu njima na dušu. Probao sam nešto slično u foksprou prošle godine (v 2.0). U jednoj firmi su imali kućnog programera koji je krstio dbfove sa I-230.dbf i slično. Učini mi se sumnjivo kako će to čudo da se ponaša, pa uradim use i-230 i prođe. Probam ? i-230.polje i javi 'Variable "I" not found'. Probam da strpam to u imensku promenljivu, opet javlja isto. Ispišem ? Alias() i javi lepo A. žim ime datoteke nije regularno, on mu daje difolt alias (A, B, C itd do Z izuzev rezervisanog M). Probam ? a.polje kad ono radi. Elem, foks neće pući, ali možeš da gledaš u pasulj koji će alias da bude ako sam ne izabereš zonu u kojoj otvaraš (što ja nikad ne radim), ili sam ne odrediš alias (e to već radim, ali tek kad treba).
clipper.1117 petrovics,
Mucim se neko vreme sa Blinkerom pa bih moli za pomoc. Kako da celu aplikaiju (RTLINK-ov EXE je oko 600 KB) izlinkujem Blinkerom ? Moze li on uopste da potpuno automatski obavi posao kao RTLINK ? Za sada ga koristim samo za manje programe :(
clipper.1118 bdm.,
Subject: Files... :( Prijatelji pomagajte, imam ludački problem, stavio sam u CONFIG-u da mi je FILES čak 70 međutim Clipper mi opet ne dozvoljava da otvorim više od 20 fajlova, čista glupost... Kad pozovem aplikaciju sa //F:40 npr. onda sve fercera super, e sad kako izbeći ovo stalno pozivanje sa //F:40 a da to ne bude setovanjem CLIPPER=F:40, pošto ne bih volio da mi korisnik o tome brine već da ja to nekako ugradim u kod aplikacija, da on može samo da otkuca P i da ne mu je sve ok... Please, hitno mi je vrlo... :( BDM.
clipper.1119 mbole,
> Kako da celu aplikaiju (RTLINK-ov EXE je oko 600 KB) izlinkujem > Blinkerom ? Moze li on uopste da potpuno automatski obavi > posao kao RTLINK ? Može. Kažeš lepo blinker fi (imena obj fajlova ili @lnk datoteka) i gotovo Sintaksa je čak potuno ista u najvećem delu. Jedino je neophodno da recimo za finalnu verziju dodaš jedno blinker incremental off u lnk fajl.
clipper.1120 mbole,
> onda sve fercera super, e sad kako izbeći ovo stalno pozivanje > sa //F:40 a da to ne bude setovanjem CLIPPER=F:40, pošto ne bih Postoji način al je vezan za korišćenje blinkera. U lnk fajl dodaš liniju blinker executable clipper f:40 ili bilo šta od opcija (piše u ng fajlu za blink). Sa rtlink-om ovo nije moguće. Jedina dva načina su da mu u autoexec dodaš jedno set clipper=f:40 ili da mu kreiraš .bat fajl u kome piše app.exe //f:40 pa da pokreće aplikaciju preko bat fajla. Ah da. žesto se zaboravi pa da te podsetim. Pazi da ne nazoveš .bat isto kao i aplikaciju jer se onda neće nikada izvršiti .bat već .exe.
clipper.1121 .bale.,
> fajlova, čista glupost... Kad pozovem aplikaciju sa //F:40 npr. > onda sve fercera super, e sad kako izbeći ovo stalno pozivanje > sa //F:40 a da to ne bude setovanjem CLIPPER=F:40, pošto ne bih Mislim da netje motji drugačije...
clipper.1122 arazumenic,
-> Pa čemu onda služi (r)make? Da mi prevede samo menjane fajlove. Saša
clipper.1123 bulaja,
│Mucim se neko vreme sa Blinkerom pa bih moli za pomoc. Kako da celu │aplikaiju (RTLINK-ov EXE je oko 600 KB) izlinkujem Blinkerom ? Moze │li on uopste da potpuno automatski obavi posao kao RTLINK ? └─── Naravno da može. Pogledaj primere LNK fajlova koji se dobijaju uz Blinker, a za početak će i ovo raditi isto što i RTLink: Blinker FI <lista OBJ> LIB <lista LIB> BLI INC OFF
clipper.1124 dejanr,
>> imam ludački problem, stavio sam u CONFIG-u da mi je FILES čak >> 70 međutim Clipper mi opet ne dozvoljava da otvorim više od 20 >> fajlova, čista glupost... Kad pozovem aplikaciju sa //F:40 npr. >> onda sve fercera super, e sad kako izbeći ovo stalno pozivanje >> sa //F:40 a da to ne bude setovanjem CLIPPER=F:40, pošto ne bih >> volio da mi korisnik o tome brine već da ja to nekako ugradim >> u kod aplikacija, da on može samo da otkuca P i da ne mu je sve >> ok... Ako koristiš BLINKER, dosta je da negde na početku LNK fajla staviš: BLINKER EXECUTABLE CLIPPER F40;
clipper.1125 nbatocanin,
> Mucim se neko vreme sa Blinkerom pa bih moli za pomoc. > Kako da celu aplikaiju (RTLINK-ov EXE je oko 600 KB) > izlinkujem Blinkerom ? Moze li on uopste da potpuno > automatski obavi posao kao RTLINK ? Ja koristim sledeću proceduru (navodim datoteku APP.LNK): BLINKER EXECUTABLE CLIPPER //F:50 OUTPUT app.exe FILE app BEGINAREA FILE p1, p2, p3, p4, ... // spisak datoteka LIBRARY l1, l2, ... // spisak bibl. ENDAREA @cl52min.lnk // ovo se dobija uz Blinker i sad kad treba link za radnu verziju kažeš: BLINKER @APP.LNK Za finalnu verziju kažeš: BLINKER @APP.LNK BLI INC OFF i to je to. > Za sada ga koristim samo za manje programe :( Ja imam programe od preko 1MB EXE urađene na ovaj način.