PCPROG.2

06 Nov 1992 - 26 Jul 1993

Topics

  1. algoritmi (223)
  2. ms.dos (250)
  3. asembler (141)
  4. jezici (278)
  5. pascal (1307)
  6. cccc (752)
  7. cpp (91)
  8. clipper (1027)
  9. baze.podataka (229)
  10. razno (379)
  11. van.teme (189)
  12. basic (56)

Messages - clipper

clipper.719 ematic,
Bug or feature ? Iako je stigao i Clipper 5.2, neki inertniji korisnici (npr. ja ;) još koriste 'stari' 5.01 i zadovoljni su i njime (dok se ne ispita novi ;). Međutim, prilikom apdejtovanja (dobar izraz, a ? ;) na CA 5.01a pomoću patcha sa Sezama i ponovnog prevođenja, program koji mi je do tada sasvim lepo radio počeo je da puca. To parče je otprilike ovakvo: > static function swap(b) > > local col1 := b:getColumn(1), col2 := b:getColumn(2), searcher, slican > > set order to if( indexord() == PERA_ORD, MIKA_ORD, PERA_ORD ) > searcher := fieldget(indexord()) > slican := alltrim(searcher) > > // col1:colorBlock := NIL // Ovde CA update daje runtime grešku > col1:colorBlock := {|x| NIL } // zato mora npr. ovako > // col1:colorBlock := {|x| {6,2}} // ili ovako, mada preferiram gornje > > col2:colorBlock := { |x| if( x == searcher, {5,5},; > if( at(slican, x) == 1, {4,4}, {6,2})) } > > b:setColumn(1,col2) > b:setColumn(2,col1) > b:configure() > b:refreshAll() > donebeep() > > return NIL (u programu se b prenosi po referenci, to je ok) Xmmmm ;(. Reko' ajd' da pročitam uputstvo ;). Elem, u gajdama za CA update piše sledeće: > Assigning invalid data to TBrowse and TBColumn > instance variables would not generate an error in > Clipper 5.01. Type checking during instance <- axa ! > variable assignment has been added in Clipper 5.01a > to trap invalid values and produce a recoverable > runtime error. > > The problem commonly occurs when assigning a NIL <- to li je, al' ipak... > value to an instance variable as a result of an > optional parameter: > blablatruć, sledi primer... Dobro, slažem se, nije to loše. Međutim, prilikom prvog poziva swap f-je, colorBlock *ima vrednost NIL* za obe kolone u objektu, a ne kodni blok (što se vidi u dibageru). Prema tome, ne razumem kako bi bilo nedozvoljeno dodeljivati vrednost koja je već inicijalno postavljena (ili nepostavljena, kako hoćete :)), pa prema tome i dozvoljena ? Ako se npr. colorBlock instanci dodeljuje kodni blok, zašto onda nije odmah definisana kao blok, već kao NIL ? Cccc, traljavo. Moj zaključak je da se u CA Clipperu instancama objekta koje trebaju da imaju vrednost NIL, odnosno default vrednost (kao što sam ja radio), ista dodeljuje preko kodnog bloka oblika { |x| NIL }. Stoga, probajte da u starim listinzima, gde se služite sličnom tehnikom kao ja gore, upotrebite to rešenje. Šta kompetentniji od mene (npr. nbatoćanin) misle o ovome ? p.s.izvinjavam se što je poruka konfuzno napisana, al' valjda će neko da shvati šta sam mislio da kažem/pitam :))) p.s.s. da, znam šta je to NIL, al lakše mi je da govorim o istom kao o vrednosti :))
clipper.720 pusa, -> #682, nbatocanin
> Ocigledno problemi sa memorijom. Ili da iskljuci INCREMENTAL ili > koriscenje EMS memorije Covek stvarno sad radi sa incremental iskljucenim ali onda slaba korist od tog drugog linkera. Kojom opcijom da proba da iskljuci koriscenje EMS? Hvala unapred
clipper.721 ppekovic, -> #713, snemcev
>> odreknu kompatibilnosti, a sudeći po najavama, ništa nije epohalno novo. Što se komaptibilnosti tiče i ne treba da bude ništa epohalno novo, ali je za mene epohalno novo sistem izmenjivih database driver-a. Paya
clipper.722 bulaja,
**** new file **** R:\IBMPC\CLIPPER\*.* ---------------------- dbuplus arj 66367 DBU Plus, update za Clipper 5.01 (CA) DBU Plus -------- This version of DBU resolves several problems found with the supplied version. More importantly it adds some additional functionality to the utility, including o Network aware - access/modify files already opened share o Import/Export memo fields o Maximize/Minimize memoedit window o Indexing Gauge Bar o Dates in British Format o Delete/Recall records with FOR, WHILE and NEXT criteria o UDF functions within index expression including DESCEND
clipper.723 bulaja,
**** new file **** R:\IBMPC\CLIPPER\*.* ---------------------- fedo10 arj 26172 FastEdit 1.0ß, objektno orijentisana zamena za MemoEdit() FastEdit is an object oriented editor library for use within Clipper 5.01 applications. Since Clipper 5.01 is not truly object oriented, FastEdit depends on external libraries, such as Class(y) and o:Clip, to provide the OO extensions. FastEdit is a complete replacement for the Clipper MEMOEDIT() function. While MEMOEDIT() gives a small amount of control over your memo editing capabilities, FastEdit gives you total control. FEATURES ──────── Here are a few of the things you can do under FastEdit which are impossible using MEMOEDIT(): - Block operations. Move, copy, delete, & save are just a few of the operations you can do on blocks. - Embedded printer codes. Use these to support operations such as bold and underline. These embedded codes may be displayed as part of the text being editing (ie [BOLD] shown where bold is turned on) or cause a color change of the specified text (ie text to be made bold is displayed hilited). - Rectangular Gets. Using this feature you can edit long character strings in a rectangular area. For example, suppose you have a character field of length 150 characters and you want to edit this across 3 lines of 50-characters each. To do this in Clipper, you would have to break the line into 3 different strings and do a GET on each one. With FastEdit, just define the rectangular area and the user will get full editing capabilities--and you don't have to worry about the resulting string being longer than 150 characters. - Enhanced cursor control. Including word operations, horizontal and vertical panning, and completely configurable key control. Emulating your favorite word-processor within Clipper is not out of the question. - Multiple edit windows. Display multiple edit windows on the screen at the same time, and switch between them at the press of a key. Or, incorporate FastEdit directly into your GET system. - Search & Replace. (Not completely implemented yet) - A completely configurable editor environment. The possibilities are too numerous to mention!
clipper.724 bulaja,
Evo ga Class(Y). Nazalost ovo je verzija samo za Clipper 5.0, tako da je slabo upotrebljiva, ali bar se moze videti cemu to sluzi :). Welcome to Class(y).lib, the object oriented extension to Clipper 5.0. Class(y).lib allows the creation of user-defined object classes (UDOs) in Clipper 5.0 and 5.01. It also provides all the features required to develop fully object oriented programs. Class(y).lib elevates Clipper to the level of languages such as C++ and Smalltalk, making it one of the most attractive choices for software development in today's market. The software associated with this file is being released free of charge for evaluation purposes. It will only work with Clipper 5.0. The version for Clipper 5.01, which is currently under production, will be sold as a regular product. For those who have already deleted 5.0 off their hard disks <g>, a restricted demonstration version for 5.01 is being prepared. classy.arj
clipper.725 nbatocanin, -> #707, neman
> INIT FUNCTION ime_funkcije Ovo je postojalo u Clipper-u 5.0, ali nije bilo dokumentovano. U 5.0 postoje INIT PROC i EXIT PROC i dokumentovane su.
clipper.726 nbatocanin, -> #710, dr.grba
> Da li je Clipper 5.2 vertikalno kompatibilan sa Clipperom > 5.01? Bilo bi veoma glupo od njih da nije.
clipper.727 ndragan, -> #705, snemcev
/ Al' ipak ima da se misliš što inicijalizacija traje x (x>>2) minuta... E, šta kliperaši podrazumevaju pod inicijalizacijom? Kod nas to čudo ne postoji, ili ne mislimo na istu stvar. A procedura za indeksiranje je dostupna iz menija, a mušterijama u tri rečenice objasnimo u kojim situacijama nije zgoreg da se pusti, što piše i u uputstvu.
clipper.728 dr.grba, -> #713, snemcev
>> Vidiš, ovo mi upošte nije palo na pamet kao pitanje već kao nešto što >> treba po defaultu da važi. E, zbog tog "defaulta" su mnogi sate i sate izgubili ):. Jasno je da najpre STD.CH, a potom i neke druge smicalice postoje da bi se obezbedila kompatibilnost. Uostalom, U NG fajlu lepo piše da se za obsolete komande i funkcije ne garantuje kompatibilnost, a za ... bla-bla. >> Zaista bi im trebao debeli razlog, pa da se >> odreknu kompatibilnosti, a sudeći po najavama, ništa nije epohalno novo. Već spomenu Dejan u replici na moje pitanje, "može biti da ima nekih suptilnih različica", i time je strefio na šta sam mislio pitajući. A što se tiče novina U Cl 5.2, već smo pričali o raznim aspektima noviteta koji postoje...
clipper.729 dr.grba, -> #716, nbatocanin
>> :(((( Bogami, ovaj Blinker i nije baš previše pouzdan. I meni se juče >> žalili korisnici na neki Internal Error. Znate šta? Nisam siguran, ali ovo mi smrdi na loš odnos sa programom za keširanje diska... ---> "Tvoj kešer smrđi!". "Nje, Blinher smrđi".
clipper.730 dr.grba, -> #717, nbatocanin
>> Ja ne koristim SET TMP, jerbo imam dosta RAM-a, pa rTLink i ne kreira >> one tmpove. Da li to znači da se rTLink inteligentno ponaša u odnosu na EMS / XMS memoriju? Ovo je vredno eksperimentisanja... >> ...A u NG-u lepo stoji da LIB i >> INCLUDE sadrže *listu* kataloga, a TMP samo jedan. Da, tačno, iako mi je promaklo... Ali opet, prvi put u MS DOS-u 6.0 sam doživeo probleme zbog toga... Sada smo se sasvim spontano dotakli jedne teme, za koju bi možda bilo zanimljivo da je ovde apsolviramo : kako optimalno setovati mašinu za rad / programiranje u Clipper-u 5.xx. Ja već rekoh da sam se odrekao keša nasuprot RAM drajva i ubrzanje je dvostruko... imam 286 mašinu sa žestoka 2 megabajta i zver od diska čije vreme pristupa se meri kretanjem sunca. Izbor nije baš velik, a svaka sugestija je dobrodošla. Dakle?
clipper.731 dr.grba, -> #721, ppekovic
>> Što se komaptibilnosti tiče i ne treba da bude ništa epohalno >> novo, ali je za mene epohalno novo sistem izmenjivih database >> driver-a. Sa kojima ću se sigurno dooooooooooobro poigrati pre nego što se rešim na korak definitivne migracije na Cl 5.2.
clipper.732 snemcev, -> #721, ppekovic
>> Što se komaptibilnosti tiče i ne treba da bude ništa epohalno >> novo, ali je za mene epohalno novo sistem izmenjivih database >> driver-a. Pa zar to nije moglo i iz Clipper-a 5.01 naredbom USE ... VIA <cDriver>? Da nije novo to što se sad ovo da proveriti i u praksi?
clipper.733 bingo, -> #687, nbatocanin
Greska takvog tipa da skrati niz u 100 puta 3ga skrati.Aeval pravi gresku jedino u kombinaciji sa Lenom inace dobro radi vidi sta se desava. Probano je na puno masina i uvek se dogadja isto cak je i procenat greske isti. Molio bih te za detaljnija objasnjenja za rad sa pregledom pre stampe u mrezi kako to da uradim. Pozdrav Bingo o7ŐóÍy`▄ÝőĂl)¤áŞ}[y box.prg
clipper.734 bulaja, -> #727, ndragan
││Al' ipak ima da se mislis sto inicijalizacija traje x (x>>2) minuta... │└─── │E, sta kliperasi podrazumevaju pod inicijalizacijom? Kod nas to cudo │ne postoji, ili ne mislimo na istu stvar. └─── Ili si propustio pocetak diskusije :). Pod "inicijalizacijom" se podrazumevalo vreme da se svaki put uradi ponovni INDEX ON, sto je neko predlozio kao resenje za probleme sa corrupted indeksima.
clipper.735 bulaja, -> #730, dr.grba
│Da li to znaci da se rTLink inteligentno ponasa u odnosu na EMS / XMS │memoriju? Ovo je vredno eksperimentisanja... └─── Znaci, ali to i nije neka inteligencija :). RTLink uzima EMS memoriju dok je ima, kad mu nestane memorije pravi swap file na disku. Koliko memorije memorije mu treba zavisi od aplikacije, ali cini mi se da to nikako nije ispod 500-600 Kb.
clipper.736 ppekovic, -> #732, snemcev
>> Pa zar to nije moglo i iz Clipper-a 5.01 naredbom USE ... VIA <cDriver>? >> Da nije novo to što se sad ovo da proveriti i u praksi? Moglo je, ali od drajver-a ni traga, a struktura je bila poznata samo nantucket-u (CA-u). Paya
clipper.737 snemcev, -> #727, ndragan
>> E, šta kliperaši podrazumevaju pod inicijalizacijom? Kod nas to čudo >> ne postoji, ili ne mislimo na istu stvar. Podrazumevam sve ono što treba uraditi od momenta startovanja aplikacije pa dok korisnik ne dobije meni na ekranu. To znači provera i po potrebi kreiranje baza podataka, provera integriteta podataka, provera i (po potrebi) kreiranje indekasa (jel' tako, koji to padež beše...;) a ovo poslednje je jedino što ume da potraje nerazumno dugo vremena.
clipper.738 ematic,
U vezi Internal error-a, dal' neko može da dobavi ovo ?: > INTERNAL ERRORS No documentation. See User-upload, CL5IEn.ZIP > ══════════ > Clipper Version 1.29 dtd 04/15/91. > > Problem Statement > > Nantucket(r) has not supplied Internal Error documentation. > > Work Around > > None; however, CL5IEn.ZIP in the NanForum library may be of some help. ══════════════════════════════════
clipper.739 nbatocanin, -> #720, pusa
> slaba korist od tog drugog linkera. Kojom opcijom da proba > da iskljuci koriscenje EMS? BLINKER CACHE EMS
clipper.740 nbatocanin, -> #719, ematic
> Bug or feature ? Očigledno je da CA pokušava da završi posao započet prelazom S'87 -> 5.0, a to je strožija sintaksa. Mislim da je ovaj prelaz odlično (tj. bezbolno) napravljen. E sad, ove poslednje izmene nisu tako krupne, ali vidim da prave probleme u programima. Nadam se da će se to kasnije isplatiti: bolje da sad da sintaksnu grešku, a da posle imamo OK objekte ;) I dalje mislim da ako se 5.2 pokaže pouzdanim (testiranje je u toku) da se isplati preći na njega!
clipper.741 dusanp,
Imam problema sa koriscenjem SWPRUNCMD-a. Bilo kako ga pozvao (da, sve sam lepo podesio) on swapuje na disk. Ima 4 mega slobodno gore, sto xms-a sto ems-a, a on nikako da ih konstatuje. Jel sam bio jasan? Kako svima vama radi ok, nisam primetio da se jos neko zali?
clipper.742 ematic, -> #740, nbatocanin
> kasnije isplatiti: bolje da sad da sintaksnu grešku, a da posle > imamo OK objekte ;) I dalje mislim da ako se 5.2 pokaže > pouzdanim (testiranje je u toku) da se isplati preći na njega! Bilo bi predivno da CA 5.01a daje *sintaksnu* grešku, al' naprotiv :(, sůmo prevođenje ide normalno, što će reći da kompajler *prihvata* stvari tipa c:colorBlock := NIL koje su po 'novom' nelegalne. Zato program radi naizgled normalno, sve dok ne naleti na ovakvo dodeljivanje, a onda... TBROW xxxx greška ili nešto slično, ne sećam se tačno. Ako je nešto 'na površini' onda nije strašno, ali ako se nalazi u nekoj retko pozivanoj f-ji, onda Marfi radi prekovremeno ;). Ovako se javlja nekompatibilnost sa Nantucket-ovim 5.01 koja se ispoljava na najgori mogući način, prilikom rada programa. Druga stvar je što, bar ja tako mislim, ako stvarno hoćemo da imamo OK objekte oni trebalo i da se OK inicijalizuju, dakle, nedopustivo je da neka instanca prilikom inicijalizacije preuzme vrednost koja je ilegalnog tipa, što se upravo i dešava. Kompajler bi ipak trebao da bude dovoljno pametan da primeti takve stvari, bar tamo gde se ilegalna vrednost, tj. neodgovarajućeg tipa, eksplicitno dodeljuje, što se u stvari i desilo. CA je započeo fin posao, ali ga nije realizovao na najkorektniji način. Zanima me kako se Clipper 5.2 nosi sa ovim problemima ? Btw, koliko vidim 5.2 donosi puno lepih stvari, tako da se potpuno slažem s tim da nakon provere treba preći na njega.
clipper.743 ndragan, -> #734, bulaja
/ Ili si propustio pocetak diskusije :). Pod "inicijalizacijom" se / podrazumevalo vreme da se svaki put uradi ponovni INDEX ON, sto je Nisam propustio, nego sam hteo da čujem naglas. Video sam dovoljan broj kliper aplikacija koje počinju sa totalnim indeksiranjem svega i svačega, što je na kilavijim makinama zaista trajalo, pa me zanimalo zašto se to radi. Ja baš nikad ne radim tako (tj. cela mi firma). Procedura za indeksiranje postoji, dostupna je iz menija, a korisniku se kaže kad bi trebalo da indeksira - jednom nedeljno, ili ako primeti neki od simptoma, ili ako mu telefonom poručimo da to uradi. Vredelo bi, takođe, da napravimo test brzine indeksiranja (sve verzije klipera, i tri verzije foksa u opticaju) sa istim .dbf i istim ključevima. Sve mi se čini da je S87 imao dosta sporu rutinu za indeksiranje.
clipper.744 ndragan,
E, našao sam jedan bugi u funkciji Adir() (u FP2.0), a pošto čujem da slična postoji i u kliperu, žajde da vidimo u čemu je štos. Rutine za izradu štampe puštam iz jedne generalne rutine - nekakvog menija sa promptovima "izrada - pregled - štampa - delimična štampa - podešavanje štampača". Iz te rutine usput i popunjavam neku bazu za statistiku štampe. Kad već to radim, ubacim i da popamti vremena, i to ovako: t1=time() do (_rutina) t2=time() Posle toga, proverim da li je _rutina napravila nešto, dakle n=adir(_c,_stampa) _stampa naravno može da već postoji na disku, pa zato sravnim datum i vreme, i tu je zbunj. Vreme nastanka (u stvari, zatvaranja) fajla na disku je ažurno u rezoluciji od dve sekunde, dok je u t1 i t2 ažurno u sekundu; odatle dobijam ovako nešto: Dosovi podaci u direktorijumu, kako ih vidi adir() _C Priv A ( 1, 1) C "KARTROB.TXT" ime fajla ( 1, 2) N 1832 ( 1832.00000000) dužina ( 1, 3) D 27.05.93 datum ( 1, 4) C "19:06:28" vreme ( 1, 5) C ".A..." atributi Prema FoksProovom časovniku, rutina koja je napravila fajl, startovana je u 19:06:38 a završila u 19:06:57. Zašto je dos zapisao ranije vreme? Nije, nego _adir() ne vodi računa o tome da je ono po dve sekunde, ne pomnoži sa dva i napiše "19:06:28" umesto "19:06:56" ili "19:06:57". Ukapiram to i skratim test na sate i minute... i opet nađem situaciju kad se dosov časovnik ne slaže sa funkcijom time() za par minuta; ispada da je fajl za toliko stariji (na disku). E, sad se i babo češka po glavi... Testiraću ovo malo podrobnije.
clipper.745 bulaja, -> #744, ndragan
│Vreme nastanka (u stvari, zatvaranja) fajla na disku je azurno │u rezoluciji od dve sekunde, └─── Nije stvar ni u Foxu (a ni u Clipperu), vec DOS za sekunde u file date/time koristi 5 bita, pa zato vreme ide u rezoluciji od dve sekunde.
clipper.746 nbatocanin,
Bre ljudi, što se danas razočarah! Isprobavao sam Clipper 5.2 i ima zaista lepih stvari. Taman sam se naoštrio da pređem na DBFCDX drajver, kad, ne čuči vraže: performanse su mu po mojim merenjima katastrofalno gore od DBFNTX drajvera! Jedinu malu prednost sam uočio kod veoma malih datoteka (do 1000 slogova), ali i to je za dlaku. Probao sam sve: i različite podatke, i različit broj različitih podataka, i sa kešom i bez keša i ništa: CDX indeksi ispadoše sporiji za oko 30% u svim operacijama. Na stranu što sam našao da ovaj drajver pri indeksiranju menja jedan bajt u DBF datoteci, pa drugi drajveri posle prave probleme. Dal' je greška il' namera, pitanje je sad ;)
clipper.747 nbatocanin, -> #733, bingo
> Molio bih te za detaljnija objasnjenja za rad sa pregledom > pre stampe u mrezi kako to da uradim. Pa evo ovako. Ako tvoj program ima korisnike, uvedi neki identifikator za svakog. Na primer, neki broj. Sada funkciju za pregled izmeni tako da ne radi sa datotekama PART1.PRT i PART2.PRT, već sa PART1_XX.PRT i PART2_XX.PRT, gde je XX taj identifikator. Tako ćeš postići da svaki korisnik ima svoje datoteke za preview. Naravno, ako imaš neki drugi sistem, možeš ovo izvesti na neki drugi način, ali se sve svodi na to da svaki korisnik ima svoju datoteku za preview pre štampanja. Nadam se da sam sad bio jasniji.
clipper.748 nbatocanin, -> #729, dr.grba
> ---> "Tvoj kešer smrđi!". "Nje, Blinher smrđi". Kamo sreće :( Oba računara su imala klot DOS. Uzgred, danas mi se žali drug koji nije na Sezamu da je dobio neki internal error na programu koji radi već nekoliko godina. Naravno upravo kada je sa Tlinka prešao na Blinker!
clipper.749 nbatocanin, -> #730, dr.grba
> Da li to znači da se rTLink inteligentno ponaša u odnosu > na EMS / XMS memoriju? Ovo je vredno eksperimentisanja... Krkne dosta privremenih podataka u EMS, koliko mi je poznato. Kad mu oduzmeš EMS, obavezno bude "creating temporary file 21312312" > kako optimalno setovati mašinu za rad / programiranje u Clipper-u > 5.xx. Ja imam 386/33 sa 4MB. Od toga 1-1.5MB drži HyperDisk, 1.5MB je prazan EMS, a ostatak razne nevažne trice i kučine ;) I ne koristim MBOOT i slične programe. > Ja već rekoh da sam se odrekao keša nasuprot RAM drajva i ubrzanje je > dvostruko... A za šta koristiš RAM disk?
clipper.750 nbatocanin, -> #643, ndragan
> Glavni dobitak kod .cdx indeksa nije samo u tome, nego što > ga foks interno žestoko koristi za pretrage; žuj, ovo mi ne izgleda baš tako moćno na drugi pogled. Ne verujem da je FoxPro pametniji od programera koji će (valjda) uvek prvo izvršiti SEEK (ako može), pa onda LOCATE. Neka složenija analiza uslova za pretragu mi je malo komplikovana za on-line analizu. Interesuje me kakva su ti praktična iskustva sa ovim pretraživanjem? Al' da budeš objektivan ;) > Postoje li Valid, Picture i When opcije na celom slogu i > pojedinim poljima? Šta to znači? Uzgred, da li bi mogao neko ko radi sa FoxPro-om da objasni kako tačno rade SCATER i GATHER naredbe.
clipper.751 pusa, -> #379, d.petrovic
> BLINKER CACHE EMS Hvala ti prenecu coveku a psole cu preneti tebi da li mu je uspelo!
clipper.752 ppekovic,
Clipper verzija 5.2 postoji u dve verzije: američkoj i onoj za ostatak sveta. Američka verzija odbija da se instalira na računarima van USA i Kanade :)). To utvrđuje tako što proveri koja je kodna strana aktivna. Paya
clipper.753 ndragan, -> #750, nbatocanin
Al' si mnogo naređao odjedared. žAjd jedno po jedno. / SEEK (ako može), pa onda LOCATE. Neka složenija analiza uslova za / pretragu mi je malo komplikovana za on-line analizu. Interesuje me Kod strukturnog indeksa je zaista nebitno da li je urađen SEEK ili LOCATE For <uslov_po_indeksu>, jer i jedno i drugo podleže Rašmor optimizaciji. Caka je u tome da se .dbf ni ne čita, ako se skup traženih slogova može naći iz uslova koji uključuju samo (ili pretežno) polja po kojima postoje strukturni indeksi. žita se samo .cdx, a on je uz to komprimovan (nikakav zip ili tako nešto, jedino je ukinuto ponavljanje delova ključa koji su isti kao u prethodnom ključu; ista tehnika kao na VMS/RMS od File Prolog V3 pa nadalje). Objektivno, to znači da je brzina pretraga mnoogo veća. Ranije je filtriranje baze išlo tehnikom 'index on trt+mrt for <uslov1> .and. <uslov2> .and. ... ', ili 'Seek... do .. while..'. Brzina u odnosu na tehniku selektivnog indeksiranja je veća oko 10 puta, a u odnosu na pretragu po postojećem indeksu nema neke veće razlike, osim što se jedan deo kodiranja izbegava, što će reći da je program kraći, radi sve u manje naredbi, najčešće ima bar jednu petlju manje, i tu onda opet postoji dobitak. O čemu se radi. Kad napravi SQL kursor, on može da sadrži ne samo proizvoljne kombinacije polja iz baze (ili više baza), nego može da sadrži i nekakve zbirne slogove, kao i kombinaciju toga. Naprimer sele fpromet.konto, fpromet.datnal, fpromet.brnal, ; fpromet.opis, ; fpromet.duguje, fpromet.potraz, fpromet.kod; from fpromet,spisak ; where fpromet.konto = spisak.konto ; and DATNAL betw _mpoc and _mZAV; union (sele fpromet.konto, _mpoc-1 as datnal, fpromet.brnal, ; 'početno stanje ' as opis, ; sum(fpromet.duguje) as duguje, ; sum(fpromet.potraz) as potraz, fpromet.kod; from fpromet,spisak ; where fpromet.konto = spisak.konto ; and DATNAL < _mpoc and kod=1 ; group by fpromet.konto); union (sele fpromet.konto, _mpoc-1 as datnal, fpromet.brnal, ; 'promet pre '+dtoc(_mpoc) as opis, ; sum(fpromet.duguje) as duguje, ; sum(fpromet.potraz) as potraz, fpromet.kod; from fpromet,spisak ; where fpromet.konto = spisak.konto ; and DATNAL < _mpoc and kod#1 ; group by fpromet.konto); order by 1,2,3 ; into cursor nesa 'Spisak' je jedan mali lažni .dbf (u stvari kursor, briše se čim se zatvori) u kojem su konta za koja se traže kartice. E, ovo radi stravično brže u odnosu na 'seek konto... do.. sabiraj.. while' pa tako za svaki konto. /> Postoje li Valid, Picture i When opcije na celom slogu i / Šta to znači? Browse valid g_f1() when g_f2() ; fields polje1 :v=f1() :p='999.99', ; polje 2 : w=f2(); for <uslov> ; key <klj1>,<klj2> F*() i g*() su nekakve funkcije koje vraćaju .t. ili .f. (ako se navede uz polje valid može da vraća i numerik, koji je u stvari ofset do sledećeg polja: ako vrati 0, ostaje na istom polju, 1 sledeće, -2 pretprošlo itd). g_f1 ne dozvoljava prelazak na sledeći slog dok ne vrati .t.; g_f2 preskače slogove za koje vraća .f. / tačno rade SCATER i GATHER naredbe. Ima par varijanti, ali ukratko: select prva scat to t kreira se niz sele druga appe blank gath from t popunjava se slog iz niza Ovde Scat naredba stvara niz t() koji ima dimenziju jednaku broju polja baze 'prva'. Popunjava ga sadržajem polja iz tekućeg sloga - prvo polje u t(1) itd. Gather onda to iz t() upisuje u slog. Ovo fino šljaka ako imaju istu strukturu; lepši štos je Scat Memvar - prepiše polja u memorijske promenljive. Druga baza ne mora da ima istu strukturu, ne moraju čak ni sva polja da se popune (dobro, uvek može Fields lista). E, da, Scat/Gath preskače memo polja. Al' sam odužio...
clipper.754 ndragan, -> #745, bulaja
/ date/time koristi 5 bita, pa zato vreme ide u rezoluciji od dve / sekunde. Da, ali zašto Foks ne pomnoži to čudo sa dva? Bilo bi dobro da im neko šapne, ko ima pristup gore.
clipper.755 jpiri, -> #746, nbatocanin
>> ...spori DBFCDX drajver. Da li si prilikom linkovanja izbacio DBFNTX biblioteku? Ako nisi, ona ti nepotrebno jede Clipperovu radnu memoriju a to itekako utice na performanse. Pozdrav.
clipper.756 balinda,
Instalirao sam novi Clipper 5.2. Kako sam u jednom programu koristio Nanfor biblioteku (takodje "najnoviju"), prijavljuje se nakon linkovanja sa RTLINKOM i sa BLINKEROM poruka: unsolve external 'CLIPPER501' NANFOR.LIB Ovo mi nije jasno (bar što se smera tiče) :( Program posle RTLINK-a radi bez problema iako je ova greška prijavljena! Naravno BLINKER pravi problem zato što čak i zbog jedne prijave greške ne formira EXE fajl (bar ja neznam kako da ga odviknem od toga). P.S. Velike probleme imam i sa prijavama raznih EMS grešaka sa BLINKEROM (npr.93H). Kako da potpuno isključim detekciju EMS i napravim možda (za utehu) neki RAMDRIVE...
clipper.757 cnenad,
Zdravo svim Kliperasima. Nazalost jos nisam presao sa S87 na 5.* ali molim za pomoc Prvo, gde mogu da nadjem (mislim) da se zove FUNCKY.LIB iz koje postoji mogucnost da se napravi sat u kliperu (bilo je u bajtovima u r90 i neki broj) Drugo (ovo izgleda moze da resi samo Deja caskao sam u chat-u sa mbulatom o ovome) radi se o sledecem, moj EXE fajl ima 320 Kb, memorije na racunaru imam slobodno kad ucitam drajvere i ostale rezidente programe (vshield, mouse, doskey, smartdrive i sl.) oko 580 KB, Koristim DOS 6. ali racunar nikako nece da startuje program i prijavljuje Not enough Memory ili posto sam preveo dos NEMA MEMORIJE !!! Racunar je 386DX40hz 4Mb RAM-a. Ima li leka ovome, napominjem da ni drugi EXE fajl koji ima 220 i jedan cak 180 nece da startuje. Medjutim onaj prvi od 320 Kb se sastoji od preko 40 modula odnosno glavni program poziva oko 45 potprograma ali su svi kompalirani u jedan obj fajl. Trece, Dejanr mi odgovori u poruci ▀broj 562 na moje pitanje za replace datuma ali Dejane ne ljuti se nisam zadovoljan time, odnosno iskreno priznajem komplikovano je to za mene jos uvek jel moze neko da mi napise liniju sa normalnim REPLACE. Hvala i pozdrav Svima koji procitaju ovo. Nenad Canic
clipper.758 dejanr, -> #757, cnenad
>> Trece, Dejanr mi odgovori u poruci ▀broj 562 na moje pitanje za replace >> datuma ali Dejane ne ljuti se nisam zadovoljan time, odnosno iskreno >> priznajem komplikovano je to za mene jos uvek jel moze neko da mi napise >> liniju sa normalnim REPLACE. REPLACE ALL datum WITH date() FOR empty(datum). Nisam probao, kucam on-line, ali valjda je tako nešto.
clipper.759 dr.grba, -> #756, balinda
>> unsolve external 'CLIPPER501' NANFOR.LIB >> >> Ovo mi nije jasno (bar što se smera tiče) :( >> Program posle RTLINK-a radi bez problema iako je ova greška >> prijavljena! Aha, tu smo. A lepo sam pitao... >> Naravno BLINKER pravi problem zato što čak i zbog jedne prijave >> greške ne formira EXE fajl (bar ja neznam kako da ga odviknem od >> toga). Pokušaj da upotrebiš switch NODELETE.
clipper.760 dejanr, -> #759, dr.grba
>> Aha, tu smo. A lepo sam pitao... Nije stvar u nekompatibilnosti, nego je NANFOR za svaki slučaj definisao ovaj simbol. Dakle, i RTLINK javlja istu grešku samo što čovek nije pročitao uputstvo za Blinker pa nije znao da ga "natera" da čuva .EXE fajl iako ima grešaka u povezivanju. Inače, greška bi se konačno ispravila nabavkom nove verzije NANFOR.LIB-a, a verovatno bi i postojeći mogao da se "popravi" iz Nortona.
clipper.761 snemcev, -> #756, balinda
>> Naravno BLINKER pravi problem zato što čak i zbog jedne prijave >> greške ne formira EXE fajl (bar ja neznam kako da ga odviknem od >> toga). Imaš BLINKER EXECUTABLE NODELETE. Stavi to negde u .lnk datoteku i više ti neće brisati .exe ako ima grešaka.
clipper.762 arazumenic,
Da li neko zna kako da iz CLIPPER-a nateram SVGA/VGA karticu u neki drugi mod (na primer 132 x XX)? Sasa
clipper.763 nbatocanin, -> #742, ematic
> kompajler *prihvata* stvari tipa c:colorBlock := NIL Na ćalost, mislim da neäemo skoro doćiveti da Clipper prijavi ovu greëku, jer promenljiva jednog objekta *moće* imati vrednost NIL, pa to zavisi od autora objekta/klase. > dakle, nedopustivo je da neka instanca prilikom > inicijalizacije preuzme vrednost koja je ilegalnog tipa, > ëto se upravo i deëava. Kao ëto rekoh: prevodilac ne moće znati ëta je nelegalna vrednost jedne promenljive, osim ako mu se ne kaće. > Kompajler bi ipak trebao da bude > dovoljno pametan da primeti takve stvari, bar tamo gde se > ilegalna vrednost, tj. neodgovarajuäeg tipa, eksplicitno > dodeljuje, ëto se u stvari i desilo. To bi znaüilo da u definiciji klase promenljive ne budu ravnopravne sa normalnim promenljivim, jer njima moćeë dodeljivati ëta hoäeë. > Zanima me kako se Clipper 5.2 nosi sa > ovim problemima ? Isto kao i 5.01, iz prethodnih razloga.
clipper.764 d.petrovic, -> #763, nbatocanin
Ă>> dodeljuje, ëto se u stvari i desilo. set code..
clipper.765 cnenad, -> #758, dejanr
Izvinjavam ti se Dejane. U vezi zamene datuma u polju moja je greska jer sam ispustio naredbu for. I to sto je najcrnje pre naredbe za zamenjivanje datuma imao sam nekoliko linija u kojima sam isto vrsio zamenu nekih drugih polja i nikako da primetim da mi bas tu fali jos FOR. Ipak, hvala. Nenad / Mr.Virus "X" / BMPS
clipper.766 cnenad,
U vezi poruke 9.9577 u kojoj sam napomeno da sam sa Mbulatom u chat-u razgovarao o probelmu gde kad se zavrsi program ostaje mi zarobljeno memorije od oko 240 Kb, covek me lepo pitao da li negde u programu koristim naredbu run / ! a ja kategoricki odgovaram NE moram da se ispravim i da kazem da sam koristio posto nemam biblioteku za sat u clipper-u mali COM program CLO od svega 432 bajta ali koji je rezidentan i ne moze da skine a posto se ucitavao iz glavnog programa koji je pre njega ucitan on zaglavi memoriju koju je zauzeo glavni program i iz njega se izadje ali memorija ostaje zauzeta a slobodno samo 237 Kb. Medjutim jos jedno pitanje za onoga ko zna: zasto onda nije DOS-ova naredba MEM/C prijavila u listi i moj izvrsni program nego samo CLO. Da to nije neki bag DOS-a odnosno MEM-a ? Molim jos jednom za odgovor, gde mogu da nadjem FUNCKY.LIB i zasto ne mogu da startujem program od 320 KB kad imam slobodno 589 Kb. Pozdrav. Nenad./Mr.Virus "X"/BMPS
clipper.767 bulaja, -> #766, cnenad
│koristio posto nemam biblioteku za sat u clipper-u mali COM program CLO od │svega 432 bajta ali koji je rezidentan i ne moze da skine a posto se ucitavao │iz glavnog programa koji je pre njega ucitan on zaglavi memoriju koju je zauzeo │glavni program i iz njega se izadje ali memorija ostaje zauzeta a slobodno │samo 237 Kb. └─── Malo konfuzno :), ali shvatio sam sta je po sredi. NEMOJ ni slucajno da iz Clipper-a startujes neki externi program koji ce ostati rezidentan. Sigurno je da ce ti pojesti memoriju, a mozes i jos goru zbrku da napravis :). Ako vec hoces taj rezidentni sat, onda ga startuj PRE Clipper programa (npr. iz .BAT fajla). │zasto ne mogu da startujem program od 320 KB kad imam slobodno 589 Kb. └─── Velicina EXE file-a nema mnogo veze sa time koliko program trazi memorije. Uzsam kod (koji je tih 320 Kb), memoriju trose i razne promenljive, nizovi, baferi za baze podataka & indekse,... Ako zelis da ostanes na Summer 87 verziji moraces da se petljas sa ovrlejovima, zato najbolje predji na 5.x gde nema petljanja sa ovrlejovima, a memorije imas koliko hoces :).
clipper.768 dusanp, -> #741, dusanp
=> Imam problema sa koriscenjem SWPRUNCMD-a. Bilo kako ga pozvao => (da, sve sam lepo podesio) on swapuje na disk. Ima 4 mega => slobodno gore, sto xms-a sto ems-a, a on nikako da ih => konstatuje. Jel sam bio jasan? Kako svima vama radi ok, nisam => primetio da se jos neko zali? Nisam ocekivao da mi se bas niko ne javi. Znaci da bas svima radi ok? Mozda sam ipak ja nesto z*? Ajde koga ne mrzi da mi posalje jedan kratak primer + .rmk + .lnk. Hvala :)
clipper.769 nbatocanin, -> #753, ndragan
> Kod strukturnog indeksa je zaista nebitno da li je urađen > SEEK ili LOCATE For <uslov_po_indeksu>, jer i jedno i > drugo podleže Rašmor optimizaciji. Ovo ne razumem: kako se optimizuje SEEK? Zar se optimizacija ne odnosi samo na LOCATE? > .dbf ni ne čita, ako se skup traženih slogova može naći iz > uslova koji uključuju samo (ili pretežno) polja po kojima > postoje strukturni indeksi. E, ovo me interesuje: do koje mere je FoxPro inteligentan da upotrebi indeks? Na primer, imaš indekse po X i Y, a tražiš LOCATE FOR Left(x,2) == Right(y,2)
clipper.770 nbatocanin, -> #755, jpiri
> Da li si prilikom linkovanja izbacio DBFNTX biblioteku? Ne, ovo mi nije palo na pamet, ali uvek je bio prisutan i DBFNTX i DBFCDX, tako da su oba podjednako smetala onom drugom ;)
clipper.771 nbatocanin, -> #756, balinda
> unsolve external 'CLIPPER501' Ovo se javlja kad linkuješ biblioteke od 5.2 sa programima prevedim prevodiocem od 5.01 (ili beše obrnuto?).
clipper.772 dejanr, -> #765, cnenad
>> Izvinjavam ti se Dejane. U vezi zamene datuma u polju moja je greska >> jer sam ispustio naredbu for. Nema mesta izvinjenjima, zato baš Sezam i služi, da zajednički rešavamo probleme.
clipper.773 bulaja,
Bilo je vec price o tome da je Clipper Debuger (v5.01) glup :), pa da kad iz programa koji se debaguje promenite aktivni dir, on ne uspeva da pronadje vise izvorni kod programa (a trebao bi da gleda tamo odakle je startovan exe). E ovo moze da se resi :). Gluplje resenje je da svaki put izmenite stazu do source fileova u "Options / path for Files", a najbolje je da napravite script file za CLD gde ce stojati npr.: Options path d:\prg Najbolje da se script file zove INIT.CLD posto njega CLD automatski ucitava pa ga ne morate posebno navoditi (cld @script exe).
clipper.774 ematic, -> #763, nbatocanin
> Na ćalost, mislim da nešemo skoro doćiveti da Clipper prijavi > ovu greëku, jer promenljiva jednog objekta *moće* imati > vrednost NIL, pa to zavisi od autora objekta/klase. To je u principu tačno, ali opet ne vidim razlog zašto nije bilo moguće ugraditi ovu proveru u kompajler, jer se tu ipak radi o klasama ugrađenim u jezik koje su jasno definisane i deklarisane, a ne o korisnički definisanim klasama (Clipper 6.0, tj. Clipper++ :)) za koje ovo tvrđenje stoji. > Kao ëto rekoh: prevodilac ne moće znati ëta je nelegalna > vrednost jedne promenljive, osim ako mu se ne kaće. Opet tačno, ali u ovom slučaju su mogli da mu kažu... :) > To bi značilo da u definiciji klase promenljive ne budu > ravnopravne sa normalnim promenljivim, jer njima moćeë > dodeljivati ëta hošeë. Ove promenljive imaju rezervisana imena (jer su i klase o kojima govorimo ravnopravni deo osnovnog jezika), stoga pretpostavljam da je bilo moguće uvesti proveru tipa.
clipper.775 d.petrovic, -> #768, dusanp
Ă> Nisam ocekivao da mi se bas niko ne javi. Znaci da bas svima Ă> radi ok? Mozda sam ipak ja nesto z*? Ajde koga ne mrzi da mi Ă> posalje jedan kratak primer + .rmk + .lnk. Hvala :) 1. Mani ga se, hoće da zeza pomalo, koristi za konačnu verziju rtlink 2. Imaš primer uz blinker 3. ako već nemaš... swap.arj
clipper.776 bulaja,
Moze li se u MEMODEDIT() ikako preusmeriti neki od non-configurable tastera? Oni se kroz user funkciju propustaju tek posle izvrsene default operacije (npr. ako je pritisnut DEL, prvo se obrise char, a tek onda ME javi user func "e obrisao sam..."). Potrebno mi je da se pre izvrenja default operacije (recimo DEL) prvo urade neke stvari, a zatim default operacija ipak izvrsi. SetKey() ne pomaze mnogo jer sa ME (tj. user func) moze da komunicira jedino preko globalnih parametara, posto bi KEYBOARD Chr(K_DEL) opet rekurzivno pozvao SetKey() proc.
clipper.777 cnenad,
Zdravo, vidim da se nesto mnogo prica o BLINKER-u. Kad je tako da Vas pitam gde nadjoste taj linker ? Koliko kosta ako nije Shareware ? Cekam odgovor. Pozdrav. Nenad/Mr.Virus "X"/PS
clipper.778 dejanr, -> #777, cnenad
>> Koliko kosta ako nije Shareware ? Nije shareware, prodaje ga firma Assembler Softvare Manufacturers. Bio je prikaz sa dosta detalja u "Računarima 90", 32. strana.
clipper.779 ematic, -> #776, bulaja
> KEYBOARD Chr(K_DEL) opet rekurzivno pozvao SetKey() proc. Neka ide sa setkey(), samo što u funkciji koja će se pozivati pritiskom na DEL (nek' se zove del_func() ) uradiš prvo setkey(K_DEL, NIL), pa onda te neke stvari :) i keyboard chr(K_DEL). E, kad onda memoedit() javi user_funkciji "obrisah šta treba..", kaži dobro, setkey( K_DEL, { |...| del_func(...) } ). Nadam se da je jasno, ako nije onda da napišem i listing :)
clipper.780 d.petrovic, -> #777, cnenad
Ă> Kad je tako da Vas pitam gde nadjoste taj linker ? Probaj: Snake Dance 686-737 18:00 - 05:00
clipper.781 bulaja, -> #779, ematic
│Neka ide sa setkey(), samo sto u funkciji koja ce se pozivati │pritiskom na DEL (nek' se zove del_func() ) uradis prvo setkey(K_DEL, │NIL), pa onda te neke stvari :) i keyboard chr(K_DEL). E, kad onda │memoedit() javi user_funkciji "obrisah sta treba..", kazi dobro, │setkey( K_DEL, { |...| del_func(...) } ). Nadam se da je jasno, ako │nije onda da napisem i listing :) └─── Ma jasno je, to sam bas i koristio kao privremeno resenje :), ali ima manu da se ipak ne moze prepustiti MemoEditu da komunicira sa user func. U slucaju kad SetKey() proc naidje na nesto sto se ne bi smelo obrisati (zato mi i treba da preusmerim DEL), onda ona mora da vrati ME jedno nista, a onda user func ne zna da je bio pritisnut DEL. U stvari upravo sam se setio :) da moze i ovako - ako SetKey() u tom slucaju vraca nista, onda nema potrebe za SetKey (K_DEL, NIL). User func i ne mora da zna da se nista nije obrisalo, a ne mora da vraca SetKey().
clipper.782 dr.grba, -> #762, arazumenic
>> Da li neko zna kako da iz CLIPPER-a nateram SVGA/VGA karticu u neki >> drugi mod (na primer 132 x XX)? Mislim da bi FT_SETMODE funkcija iz NANFORUM TOOLKIT biblioteke mogla da završi posao.
clipper.783 snemcev, -> #763, nbatocanin
>> Na ćalost, mislim da nešemo skoro doćiveti da Clipper prijavi ovu >> greëku, jer promenljiva jednog objekta *moće* imati vrednost NIL, pa >> to zavisi od autora objekta/klase. Aman koji je ovo kodni raspored?!? Probah sve što imam na disku, i ništa nije uspelo. Daj Nenade, napravi taj set code. Ili se bar javljaj samo sa onog računara sa kojeg si i dosad zvao ;) Sve mi se čini da je ovaj račun platio neko drugi ;)
clipper.784 snemcev, -> #762, arazumenic
>> Da li neko zna kako da iz CLIPPER-a nateram SVGA/VGA karticu u neki >> drugi mod (na primer 132 x XX)? Za to nisam siguran, ali kad startuješ program u tom modu, radi OK. Funkcije MaxRow() i MaxCol() rade korektno.
clipper.785 dr.grba, -> #766, cnenad
>> Molim jos jednom za odgovor, gde mogu da nadjem FUNCKY.LIB i zasto >> ne mogu da startujem program od 320 KB kad imam slobodno 589 Kb. Dopusti da ti odgovorim ovako : proc main() ..... // nešto private niz := šć .... for i = 1 to 1000 nizŠiĆ := space(512) next .... Koliko nam sad ceo niz uzima memorije? ...Nije samo kod programa ono što nam uzima memoriju. Postoje tu još tabele, stekovi, razna egzotična područja... Ispitaj takve tačke u inicijalizaciji svog programa.
clipper.786 dr.grba, -> #770, nbatocanin
>> Ne, ovo mi nije palo na pamet, ali uvek je bio prisutan i DBFNTX i >> DBFCDX, tako da su oba podjednako smetala onom drugom ;) Da li to znači da DBFNTX više ne pripada default spisku biblioteka, već se decidirano mora navesti?
clipper.787 nbatocanin, -> #774, ematic
> To je u principu tačno, ali opet ne vidim razlog zašto > nije bilo moguće ugraditi ovu proveru u kompajler, jer se > tu ipak radi o klasama ugrađenim u jezik koje su jasno > definisane i deklarisane, a ne o korisnički definisanim > klasama Da, mogli su da naprave tu proveru, ali mislim da bi to bilo glupo: tako bi napravili jednu zavisnost viška, koja bi sigurno kasnije zasmetala kod novih verzija. Zašto od nečega praviti izuzetak uz sumnjiv dobitak?
clipper.788 nbatocanin, -> #773, bulaja
> Options path d:\prg Samo da dodam da ovde može da se pojavi spisak. Na primer: d:\prg;c:\clipper;
clipper.789 ematic, -> #781, bulaja
> U slucaju kad SetKey() proc naidje na nesto sto se ne bi smelo > obrisati (zato mi i treba da preusmerim DEL), onda ona mora da > vrati ME jedno nista, a onda user func ne zna da je bio > pritisnut DEL. U stvari upravo sam se setio :) da moze i ovako... A, to :). Ovo je bilo ovako jer si, kako vidim, tražio da: > ME javi user func "e obrisao sam..."). Potrebno mi je da se pre > izvrenja default operacije (recimo DEL) prvo urade neke stvari, > a zatim default operacija ipak izvrsi. Uglavnom, došlo se do pravog rešenja :). Ima li nešto bolje ?
clipper.790 smilan,
U jednom numerik polju zelim da se dolaskim kursora (preko WHEN funkcije) pojavi neka osnova za godinu gradnje neke zgrade, npr. 1900 i da kursor dodje na prvu nulu od 1900 i tako omoguci korisniku da otkuca samo zadnje dve cifre "prave" godine. Naravno, kada se strelicom prelazi preko tog polja na gore (chr(5)) ili na dole (chr(24)) uneta cifra ne bi trebalo da se menja. Posto u nekoliko maski imam slicnu potrebu, resio sam da napravim univerzalnu funkciju. Ovo sto se vidi funkcionise po gornjem opisu ali nakon REPLACE FILE->GOD with MEM->GOD prijavljuje gresku DBFNTX /1020 Data type error @ 9,70 GET GOD pict "@Z 9999" when gradilw("GOD") valid gradilv("GOD") ^^^ ovo je promenjiva a ne polje baze FUNC gradilw(gra_whe) ******* (za WHEN funkciju) LOCAL staro staro:=&gra_whe && U staro smesta ono sto nadje u polju &gra_whe:=1900 && promenjivoj iz GET-a dodeljuje 1900 if lastkey()=5 .or. lastkey()=24 &gra_whe:=staro && ako se ide strelicama gore-dole vrati staru vrednost return .t. endif keyboard chr(4)+chr(4) && pomeri kursor dva mesta udesno RETURN .t. FUNC gradilv(gra_val) ******* (za VALID funkciju) if (&gra_val > val(god[1])) .or. (&gra_val < 1800) && uneta godina ne sme biti veca od tekuce niti manja od 1800 return .f. endif RETURN .t.
clipper.791 ematic, -> #787, nbatocanin
> Da, mogli su da naprave tu proveru, ali mislim da bi to bilo > glupo: tako bi napravili jednu zavisnost viška, koja bi sigurno > kasnije zasmetala kod novih verzija. Zašto od nečega praviti > izuzetak uz sumnjiv dobitak? Nadajmo se da oni znaju šta rade :), a meni ostaje da napravim programče koje će da traži pogrešna dodeljivanja (naravno, ukoliko me ne bude mrzelo :)).
clipper.792 bulaja, -> #790, smilan
│ @ 9,70 GET GOD pict "@Z 9999" when gradilw("GOD") valid gradilv("GOD") │ ^^^ │ ovo je promenjiva a ne polje baze └─── A kako je deklarisana ta promenljiva? Ako je LOCAL ili STATIC, onda je ne mozes koristiti preko macroa. Ako zelis da je menjas iz WHEN procedure, onda je mnogo zgodnije (ako koristis LOCAL var) da je preneses po imenu gradilw(@god). A ako je private/public ne moras da prenosis ime promenljive kao parametar, vec to ime mozes da saznas sa ReadVar().
clipper.793 arazumenic, -> #784, snemcev
--------------------------------------------------------- ->>> Da li neko zna kako da iz CLIPPER-a nateram SVGA/VGA karticu u neki ->>> drugi mod (na primer 132 x XX)? ->Za to nisam siguran, ali kad startuješ program u tom modu, radi OK. ->Funkcije MaxRow() i MaxCol() rade korektno. Sledi još jedan odgovor u sledećoj poruci. U svakom slučaju, hvala. Sasa
clipper.794 arazumenic, -> #782, dr.grba
->>> Da li neko zna kako da iz CLIPPER-a nateram SVGA/VGA karticu u neki ->>> drugi mod (na primer 132 x XX)? ->Mislim da bi FT_SETMODE funkcija iz NANFORUM TOOLKIT biblioteke mogla ->da završi posao. Ne moče. Doduše, ona stvarno prebaci računar u željeni mod (132x30), ali i dalje ne dobijam željeni rezultat. Naime, ako se startuje sledeci test: ft_setmode(84) ? maxcol() ? maxrow() kao rezulta se i dalje dobija 79 i 24 i to ispisani u jednom redu (sa raz- makom izmedju njih od 78 slovana mesta). Ideja je bila sledeća: Ako je ra- čunar opremljen sa SVGA/VGA kartom, onda da se iskoristi taj mod za prikaz raznih tabela koje su dosta sire i od mogucih 132 slova u redu, a ako nije onda da se ostane pri standardnih 80 kolona. Dakle, ne prolazi sledece: if ft_adapter() == 3 PrebaciUMod(132x30) mod = 84 endif PrikazTabele() if mod == 84 VratiNormalniMod() endif Izgleda da prilikom startovanja programa, interno se postavljaju neki para- metri programa izmedju kojih je su i mod u kome radi video karta, tako da funkcije maxcol() i maxrow() samo procitaju te parametre i njih vracaju bez obzira sto je mod kartice promenjem. Inače, SNEMCEV je u poruci 9.784 pot- puno u pravu, samo to nije ono što sam želeo. Saša
clipper.795 nbatocanin, -> #783, snemcev
> Aman koji je ovo kodni raspored?!? Ne pitaj ;)) Imam neki svoj privatni raspored, a joë nisam automatizovao konverziju u Raüunari raspored koji sam prijavio na Sezamu. Zato kad zaboravim da izvrëim konverziju nastane haos... > Sve mi se čini da je ovaj račun platio neko drugi ;) Jock, varaš se ;)
clipper.796 nbatocanin, -> #786, dr.grba
> Da li to znači da DBFNTX više ne pripada default spisku > biblioteka, već se decidirano mora navesti? Ne, ne mora.
clipper.797 neman, -> #794, arazumenic
> ->>> Da li neko zna kako da iz CLIPPER-a nateram SVGA/VGA > karticu u neki ->>> drugi mod (na primer 132 x XX)? Mislim da Flipper ima neku funkciju BIOSMODE( ) koja radi to. neman
clipper.798 ndragan, -> #755, jpiri
/>> ...spori DBFCDX drajver. / Da li si prilikom linkovanja izbacio DBFNTX biblioteku? Pitam se, pitam se, da li je dbfcdx drajver kompletan? Da li on radi samo do nivoa čitanja-pisanja .cdx indeksa, tek poradi kompatibilnosti sa FP2, ili ume i ostale stvari koje ovaj radi?
clipper.799 dr.grba, -> #794, arazumenic
>> ...Inače, SNEMCEV je u poruci 9.784 potpuno u pravu, >> samo to nije ono što sam želeo. Znam, želiš da presvičuješ mod unutar programa. Opisano ponašanje funkcije koju sam ti preporučio smatram bugom ): Lično se time nisam bavio, nego se samo prisetih da sam je video u NG fajlu, pa sam ga i konsultovao da bih ti odgovorio...
clipper.800 snemcev, -> #795, nbatocanin
>> Zato kad zaboravim da izvrëim konverziju nastane haos... Opet si zaboravio ;))) Napravi bre batch ili još bolje, uradi konverziju u Clipper-u! :))
clipper.801 solajac, -> #738, ematic
ERROR.DOC (CLIPPER 87) stoji : INTERNAL ERROR najčešće nastaju zbog pokvarenih indeksa. Moja napomena i podsćanje: Reindeks radite isključivo sa: instrukcijom INDEX nikako sa REINDEX (ova instrukcija ne popravlja HEADER datoteke) To je sve što sam našao o INTERNAL ERRORčr. Meni se inače pojavljuje INTERNAL ERROR 19 na jednoj konfiguraciji i ponovno indeksiranje do sada je uvek pomagalo. Isti program na drugoj konfiguraciji radi bez probblema.
clipper.802 skerl,
RShowPCX 1.2 - 16 March 1993 (c) 1993 Rolf van Gelder ======================================================================= RSHOWPCX LIBRARY - RShowPCX is a shareware Clipper 5.01a library which contains a function to display a .PCX graphics file. - Because the library is written using the ASSEMBLER language the function works VERY FAST !! - Some SUPER VGA adaptors are supported. - RShowPCX is perfect to display Company logo's, graphs, wallpapers... Pozdrav, Skerl. p.s. sve spremno da ide u dir :)
clipper.803 skerl,
ž Clipper "Fast" EGA/VGA PCX Display Library Ć For Clipper Summer '87 & Clipper 5.0x This is the documentation for two libraries: CLFPCX87.LIB and CLFPCX50.LIB. The first for Clipper Summer '87, the latter for Clipper 5.0x (5.0 and 5.01). These libraries provides a function that display's some PCX files, in an efficient, fast and easy manner. The memory overhead by CLFPCX is very little, as the core has been programmed directly in Assembly, and there are also very few options for extra displays etc... CLFPCX is ideal for your application just to display the Logo of your Company/Organisation. The display of the PCX is quite fast, as the decoding and writing of the actual picture is completely handled by Assembly routines. For each library, the source code to the FastPCX() function has been supplied, would you want to add some more robust error checking, or display more pictures in a row, or whatever.. Files: Comment: -------------------------------------------------------- CLFPCX87.LIB The library for Clipper Summer '87 CLFPCX50.LIB The library for Clipper 5.0 or 5.01 CLFPCX87.PRG Clipper '87 code to FastPCX(), also in .LIB CLFPCX87.PRG Clipper 5.0[1] code to FastPCX(), also in .LIB PCX87.PRG Simple Clipper '87 demo of the FastPCX() function. PCX50.PRG Simple Clipper 5.0[1] demo of the FastPCX() function. BART.PCX EGA 640x350x16 picture: Bart Simpson MJTITLE.PCX VGA 640x480x16 picture: Title screen of Mah-Jonng VGA. MINDSCAP.PCX VGA 320x200x256 picture: Mindscape (?) Logo. Pozdrav, Skerl. p.s. I ovo moze u dir :) clipfpcx.zip
clipper.804 dejanr, -> #802, skerl
>> p.s. sve spremno da ide u dir :) U dir-u je, hvala. Pogledao sam na brzaka i lepo radi. Bulaji ostavljam da pogleda "konkurentski" program uz 9.803.
clipper.805 seovic, -> #387, dejanr
> Ima li neki nacin da se za logicke promenljive u raznim > @say...get maskama pojavljuju i kucaju vrednosti D i N > (ili recimo J i N) umesto onoga T i F? Ideja je, naravno, > da se to nekako doda u postojeci program, a da se po > mogucnosti u njemu sto manje mora menjati. > > U bazama itd moze slobodno da ostane .t. i .f., samo da se > promeni na ekranu Mozda odgovor na ovo pitanje stize malo prekasno, ali na SEZAM-u sam od nedavno tako da nisam bio ranije u mogucnosti da ponudim svoje resenje: LOCAL cVar := "N" // ili "D" FIELD xxx IN yyy // logicko polje u fajlu . . @ nRow, nCol GET cVar PICT "!" VALID (cVar $ "DN") READ . . REPLACE xxx WITH (cVar == "D") Hteo bih i da pitam kako resavate problem podrske razlicitim tipovima stampaca, kao i stampanje pod mrezom. A.Seovic
clipper.806 smilan,
Ima li ko iskustva sa Flipperom i ima li traga bilo kakvom uputstvu. žini mi se da za neke hitne potrebe NG nije dovoljan.
clipper.807 ndragan, -> #769, nbatocanin
/ Ovo ne razumem: kako se optimizuje SEEK? Zar se optimizacija ne / odnosi samo na LOCATE? Frljoka u izražavanju - Locate po pojmu koji sadrži samo strukturni indeks je podjednako optimizovan kao da je urađen Seek. Po tom principu se u stvari optimizuje sve što ima for opciju. / E, ovo me interesuje: do koje mere je FoxPro inteligentan da upotrebi / LOCATE FOR Left(x,2) == Right(y,2) Ovo bi verovatno proglasio za 'partially optimizable'. Pod jedan, ne treba ti left(), jer po difoltu radi poređenje do dužine desnog stringa. A onda zavisi da li je y drugo polje iz baze (ne može) ili drugi indeksni pojam (možda, nisam probao) ili polje iz druge baze koja nije pod relacijom, ili varijabla (može da optimizuje). Operacije nad ključevima strukturnih indek(a)sa koje podržavaju totalnu optimizaciju su uglavnom elementarna poređenja, funkcija Empty()... uostalom, evo iz helpa: Potentially Optimizable Commands With FOR Clauses AVERAGE EXPORT BROWSE LABEL CALCULATE LIST CHANGE LOCATE COUNT RECALL COPY TO REPLACE COPY TO ARRAY REPORT COUNT SCAN DELETE SORT DISPLAY SUM EDIT TOTAL ... A basic optimizable expression: <index expression> <relational operator> <constant expression> <index expression> must exactly match the expression on which an index is constructed and <index expression> must not contain aliases. <relational operator> must be one of the following: <, >, =, < =, > =, < >, #, !=. <constant expression> may be any expression, including memory variables and fields from other unrelated databases. E sad, šta spada u 'fully optimizable' - sve spomenute relacije i funkcija empty(), not <basic expr>, te da se u desnoj strani mogu nalaziti kojekakvi izrazi, uključujući funkcije, ali da im se argument ne menja tokom šetnje kroz bazu. Not optimizable je ako se manipuliše stringom, recimo "for ime=upper(ime)", $ operator, ili izrazi tipa x+2=y (moralo bi da se baci 2 desno i da y ne bude iz iste baze nego iz neke druge i ne pod relacijom, ili memorijska promenljivva, ili da 2 ostane levo a x da je iz druge baze itd). Veoma je bitno da se polje po kojem se traži pojavljuje kao indeksni pojam u strukturnom indeksu. Jednom sam, verovatno zbog zamora, ukucao "...where upper(kupac) between k1 and k2" i čudio se zašto čita celu bazu. Kasnije sam slučajno primetio da onaj Upper ne služi ničemu ('kupac' je šifra :), pa sam ga skinuo, i umesto "3500 records read" počeo je da javlja "132 records read" i da uradi za 3 sekunde umesto 24.
clipper.808 ndragan, -> #784, snemcev
/ Funkcije MaxRow() i MaxCol() rade korektno. U FoxProu postoji Set Display to Vga50 itd, međutim ako se potera (iz aplikacije) eksterni program koji promeni dimenzije ekrana, srows() i scols() daju ispravne vrednosti.
clipper.809 arazumenic, -> #808, ndragan
->U FoxProu postoji Set Display to Vga50 itd, međutim ako se potera (iz ->aplikacije) eksterni program koji promeni dimenzije ekrana, srows() i ->scols() daju ispravne vrednosti. O.K. za FoxPro, ali meni treba za Clipper. Saša
clipper.810 cnenad, -> #780, d.petrovic
Hvala na odgovoru probacu da ga skinem kad ostanem ovde na poslu duze od 15 casova. Pozdrav. NENAD/Mr.Virus "X"/BMPS/CNENAD
clipper.811 cnenad, -> #785, dr.grba
Hvala za odgovor ali ipak po savetu moram da predjem sa S87 na 5.01 i da resim taj problem sa memorijom. Cekam tipa da mi posalje diskete sa C5.01. Pozdrav. NENAD/Mr.Virus "X"/BMPS/CNENAD
clipper.812 d.petrovic, -> #811, cnenad
Ă> Cekam tipa da mi posalje diskete sa C5.01. Na vreme..., jel to nešto taze izašlo? ;)
clipper.813 mackb,
Da li neko zna kako je moguce pokrenuti iz clippera DOS-ovu naredbu MODE za podesavanje parametara stampaca ili se parametri mogu podesiti na drugi nacin(nekom funkcijom ili tome slicno).Kod pokretanja MODE-a bitno je da poruka o uspesnosti njenog izvrsenja ne ide na ekran jer to narusava koncepciju Hvala.KKKKKKK. Hvala.
clipper.814 martin, -> #813, mackb
Probaj sa run("MODE ..... > SMECE.TXT") pozdrav martin
clipper.815 bulaja, -> #813, mackb
│Da li neko zna kako je moguce pokrenuti iz clippera DOS-ovu │naredbu MODE za podesavanje parametara stampaca ili se parametri │mogu podesiti na drugi nacin(nekom funkcijom ili tome slicno). └─── Ma kakav mode, dovoljno je da posaljes stampacu odgovarajucu kontrolnu (ESC) sekvencu, u ovom slucaju za promenu sirine karaktera (pitch) i line spacing. Pogledaj u uputstvu za stampac koje su tacno sekvence, cini mi se da je npr. za Epson za compressed pitch (132 char u redu) dovoljno poslati jedan SI (chr(15)).
clipper.816 ratman,
Imam AT 286/12 sa HD Seagate 44Mb, 640K osnovne + cca.300 extended RAM. Ako bih hteo da ubrzam kompajliranje i linkovanje sa Clipper-om (5.01), koliko ima smisla dodavanje RAM i koliko bi bilo najbolje dodati? Moze li se za Clipper iskoristiti nesto od ovih cca.300K? ­█ş█şĚ█Pozdrav, Dejan
clipper.817 martin, -> #816, ratman
Sa 2 Mb se može sasvim lepo raditi! (ako nisi video brže). Što se tiče onih 300Kb Clipper ih već koristi!
clipper.818 d.petrovic, -> #814, martin
Ă> Probaj sa run("MODE ..... > SMECE.TXT") NUL