PCPROG.1

20 Sep 1991 - 03 Dec 1992

Topics

  1. ms.dos (235)
  2. cccc (0)
  3. asembler (321)
  4. pascal (896)
  5. clipper (1059)
  6. zastita (239)
  7. basic (178)
  8. baze.podataka (116)
  9. novi.fajlovi (66)
  10. algoritmi (52)
  11. razno (707)
  12. van.teme (126)
  13. unknown (986)

Messages - clipper

clipper.104 dnikolic, -> #100, drpr
>> Da li postoji neka knjiga iz koje da pocnem mozda nevezana za >> clipper uz pomoc koje bih mogao da zaplovim i u vode clippera >> ili da jednostavno uzmem te koje ste preporucili pa da se bijem Uzmi ti lepo prvo neku knjigu o DBase III Plus, pa to savladaj. Kasnije ce ti rad sa Clipperom biti vise nego lak. Poceti direktno sa Clipperom je kao da odmah sednes u Formulu 1, a cak ni vozacki ispit ne polozis. dn
clipper.105 drpr,
E brate jeste carevi! Govorio meni alias darone za ovakve stvari na sezamu ali ja nisam verovao!Toliku pomoć ne bi dobio ni u crvenom krstu! Elem dosta šale,o svim odgovorima ću razmisliti pa ako krenem da radim i imam neke probleme javiću se.Još jednom hvala svima na srdačnoj pomoći i van očekivanja iscrpnim odgovorima ,and si ju. :)) drpr
clipper.106 zkrstic, -> #105, drpr
Knjigu od g. Markovića - BACI! PazarPriručniÚĆk za DBASE III i Programiranje u Clipperu (oba izdanja od mikroknjige-rakovica) i pali :) Pozdrav čeljko
clipper.107 dmihajlo,
ARHIVIRANJE PODATAKA ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ APEL: Problem smatram dovoljno univerzalnim da bi se njegovo elegantno rešenje moglo primeniti kao jedan od modula u svim ozbiljnim CL aplikacijama. Iskusni CL programeri su ga verovatno rešili. Odazovite se... UKRATKO: Problem je kako zapakovati i kopirati "nepotrebne" datoteke koje mogu biti duže od kapaciteta diskete, na diskete i/ili strimer, i to sve iz CL programa? Ima li neko program SHROOM za svapovanje RAM-a na disk? Kako da ga nabavim? Kako da dobijem errorlevel koji po izvršavanju npr. "RUN PKZIP" vrati PKZIP ako nešto nije obavio kao treba? SITUACIJA (NA ŠIROKO): Svaka ozbiljna aplikacija mora da reši problem gomilanja podataka. Za neko vreme nakupi se dovoljno podataka da disk, ma koliko veliki bio, postane zagušen "nepotrebnim" podacima. Zbog toga se "nepotrebni" slogovi izdvajaju i smestaju na neku pomoćnu (DBF) datoteku. Ali i pomocna datoteka zauzima prostor na disku, pa je povremeno treba zapakovati i pohraniti na neki drugi medij (traku, diskete...). To treba obaviti tako da bude moguće vraćanje obrisanih slogova sa npr. diskete u aktuelnu bazu podataka, ukoliko se ukaže potreba. Napravio sam rutinu u CL87 koja između ostalog poziva PKZIP arhiver koji je trebao privremene datoteke da zapakuje, zatim sam ZIP paket kopirao na diskete. Jos pre sam napravio i program u TP6 koji rastavlja ZIP datoteke na vise datoteka koje nisu duže od slobodnog prostora na disketi... a onda se pojavio ARJ i ZIPOFF... PROBLEM: Međutim! Kada se pokrene CL program, ostane (pre)malo memorije za PKZIP (treba mu 85K) koji sam pokretao RUN naredbom. Neće da radi! Kaže: "Too big to fit...". ARJ program zahteva još više meorije (oko 280K). Znači malo je koristi od RUN naredbe. MOGUĆE REŠENJE (R:), ODGOVARAJUĆE PITANJE (P:) I KOMENTAR (K:) R: U dokumentaciji od ARJ 2.21a spazih čarobnu stvar: program SHROOM, koji kad se pozove iz nekog programa, svapuje RAM na disk i oslobodi ga za pokretanje drugog programa (npr ARJ) P: Ima li neko taj program ? K: IDEALNO REŠENJE! Baš ono što treba za RUN iz CL... R: Pokušati osloboditi memoriju pravljenjem overleja! P: Da li se pravljenjem overleja može osloboditi dovoljno memorije za uspešno korištenje "RUN PKZIP..."? K: Znam, znam... Probaću, pa ću videti! Osim ako neko već nije probao pa video? Valjda će mi uštedeti trud i vreme? R: Kombinovati CL i BAT programe: BAT poziva CL koji poziva BAT (radi zipovanja), a ovaj opet poziva CL sa parametrom koji kaže nešto u smislu: "nastavi gde si stao..." P: Da li je moguće da nepostoji ništa drugo??? K: Samo to ne! Samo to ne... Ovo bi bilo samoubistvo... PRETPOSTAVKA: Pretpostavka je da program koristi "idiot-korisnik", odnosno da ne zna da koristi DIR, BACKUP, PKZIP ... Zato je neophodno da korisniku iz CL programa poručujem: "Ubaci praznu disketu i pritisni bilo sta...", odnosno "Disketa nije prazna, ubaci drugu..." i sl. Osim toga vodim evidenciju o arhiviranim datotekama, a korisnik se na osnovu nje odlučuje (izabere nešto pomoću DBEDIT) koju datoteku želi da dearhivira. Zato je neophodno da se sve obavi iz CL programa. BoMi
clipper.108 ppekovic, -> #107, dmihajlo
>> Međutim! Kada se pokrene CL program, ostane (pre)malo >> memorije za PKZIP (treba mu 85K) koji sam pokretao RUN >> naredbom. Neće da radi! Kaže: "Too big to fit...". ARJ >> program zahteva još više meorije (oko 280K). Znači malo je >> koristi od RUN naredbe. Nećeš verovati kako je jednostavno rešenje za tvoj problem. Pre startovanja tvog clipper programa stavi jedno: SET CLIPPER = R85 za ZIP ili SET CLIPPER = R280 za ARJ i gotovo. U stvari, napravi jedan batch fajl kojim će se startovati tvoj program a u kome će prva komanda biti set clipper ... No, nije sve to tako lepo kao što izgleda. Naime, korišćenje ARJ-a i ZIP-a je ok. rešenje za interno korišćenje programa, ali ako taj program prodaješ dalje, ne treba zaboraviti da ni ARJ ni ZIP nisu PD programi. Jedno vreme sam hteo da napravim svoj arhiver koji će da deli arhivu na više disketa vodeći računa o slobodnom prostoru na disku, kao što to radi opcija -vva iz ARJ-a. Međutim, pojavila su se dva problema: 1. Pisati arhiver u clipper-u je zamorno, a sam program će biti veoma spor. 2. S druge strane, mogu ja napisati arhiver u C-u, ali, zbog problema oko povezivanja Clipper-a i C-a, nemogu integrisati glavni program sa arhiverom, a ne dopada mi se da arhiver pozivam komandom RUN. Jest da nemam neki jak razlog za to, ali bih ipak više voleo da mi je sve u jednom EXE-u. Ako neko ima rešenje, bar idejno, voleo bi da ga čujem. Paya
clipper.109 zkrstic, -> #107, dmihajlo
>> Problem smatram dovoljno univerzalnim da bi se njegovo >> elegantno rešenje moglo primeniti kao jedan od modula u >> svim ozbiljnim CL aplikacijama. Iskusni CL programeri su >> ga verovatno rešili. Odazovite se... >> Ima li neko program SHROOM za svapovanje RAM-a na disk? >> Kako da ga nabavim? Brate, zaboravi, šanse da to nateraš da radi sa Clipper-om su ravne nuli. Tvoju muku sam već doktorirao :(, ubijao sam se i sa SET CLIPPER i slično, al kada rezervišeš memoriju, (gotovo) redovno ne ostane do- voljno za program. U ZIP-u imaš dve verzije, OVERCL je demo, lepo radi ali je DEMO, pa radi samo dva puta po startovanju programa. SWITCH je zato carski, radi koliko hoces puta i mali je :) (eto koristi od malog!) Ako zagusti a ti viči. Dobra kombinacija sa arhiviranjem je SWITCH i PCBACKUP 4.3, naravno nezaboravi na copyright za PCBACKUP. Pozdrav, čeljko file.zip
clipper.110 bulaja, -> #107, dmihajlo
│Kako da dobijem errorlevel koji po izvrsavanju npr. "RUN │PKZIP" vrati PKZIP ako nesto nije obavio kao treba? └─── Izgleda da Clipper S87 ima nekih problema sa ispitivanjem errorlevela kod run-a, ja sam skoro pokusavao nesto da provalim i nikako mi nije vracao poruke o gresci cak i za obicne DOS komande (cd, md, ..). │P: Da li se pravljenjem overleja moze osloboditi dovoljno │ memorije za uspesno koristenje "RUN PKZIP..."? └─── Pravljenjem overleja ces naravno smanjiti maksimalne zahteve za memorijom svog programa, ali je pitanje da li ce to biti dovoljno za ZIP. Ali pre nego sto pokusas nesto sa overlay-ima pokusaj i da pre "run pkzip" zatvoris sve aktivne baze i indekse, mozda ce ti to biti dovoljno. Ipak ovo nije neko resenje, jer se moze desiti da na nekoj masini opet nece biti dovoljno memorije. │R: Kombinovati CL i BAT programe: BAT poziva CL koji poziva BAT (radi │zipovanja), a ovaj opet poziva CL sa parametrom koji kaze nesto u │smislu: "nastavi gde si stao..." └─── Uzas ;). Ostaje naravno najbolje resenje da se program za arhiviranje pise u C-u. Cak ne mora da se pise vec samo prilagodi - postoji dosta arhivera koji su dati u source kodu (npr. na Sezamu ima source LHA arhivera u \ibmpc\archiver, ili LZW negde u \rsoft) i PD su pa sa te strane ne bi bilo nikakvih problema. Ostaju opet memorijski zahtevi tih arhivera - s obzirom da se direktno povezuju sa Clipperom nije im potrebna memorija i za dodatan command.com koji se ucitava prilikom RUN. Mozete malo optimizovati koriscenje bafera pa na racun eventualno sporijeg rada dobiti znatno manje memorijske zahteve. Ovo iz Clippera nisam radio, ali sam npr. prilagodio za Force algoritam tj. C program (koristio sa msvojevremeno Turbo C) za LZW kompresiju i radio je lepo, bez problema. Sa Clipperom mislim (tj. nadam se ;) da ne bi trebalo predstavljati problem. Ovo se naravno odnosi na verziju S87 na 5.01 sam tek poceo nedavno da radim i nisam jos proucio extend sistem. Moguce je i mazohisticko resenje da se arhiver pise bas u Clipperu. U tom slucajo otpadaju svi problemi, ali ce svaki iole bolji algoritam biti katastrofalno sporo zbog "brzine" Clippera. Ali zato mi je palo na pamet vrlo trivijalno resenje za kopresiju .DBF datoteka. Moguce je .DBF konvertovati u neki levi oblik gde se cuvaju samo zaglavlje (struktura) baze, a nema fiksne duzine ni za stringove (zapisuje se prakticno samo rtrim(string_field)), numerici bi se konvertovali iz stringova (kakav je zapis u .DBF) u normalni binarni oblik (integer, real), uz neku optimizaciju i logicka polja u jedan bit (tj. bajt ali ukoliko ima vise logickih polja ona bi se spakovala u taj bajt). Ovde bi mogle da se ostvare solidne ustede narocito zbog stringova koji su u 99% slucajeva polupopunjeni zbog hipoteticke maksimalne vrednosti. Ovakvu proceduru ne bi bio nikakav problem izvesti, uz neki trivijalni algoritam za kompresiju bi se verovatno dobili sasvim pristojni rezultati. Pokusacu ovih dana da uradim takvo nesto u Clipperu i javicu rezultate. Bulaja
clipper.111 hercog,
Da li neko zna zbog cega clipper 5.01 ponekad pri in- deksiranju datoteke obrise tu datoteku (strukturu i po- datke ) a ostav njeno ime na disku. 2. da li je nekome poznt razlog blokiranja clippera 5.01 kod naredbe release Hercog
clipper.112 dejanr, -> #108, ppekovic
>> 2. S druge strane, mogu ja napisati arhiver u C-u, ali, zbog >> problema oko povezivanja Clipper-a i C-a, nemogu integrisati >> glavni program sa arhiverom, a ne dopada mi se da arhiver pozivam >> komandom RUN. Zar su problemi toliki? Koliko sam shvatio, može se uzeti C 5.1. Dakle, arhiver na asembleru?
clipper.113 dejanr, -> #107, dmihajlo
>> Međutim! Kada se pokrene CL program, ostane (pre)malo >> memorije za PKZIP (treba mu 85K) koji sam pokretao RUN >> naredbom. Neće da radi! Ja radim nešto mnogo manje elegantno, ali uradi posao. Naime, osim nekakvog glavnog programa koji se bavi "obradom" podataka, napravim odvojen program ARHIVA za prenošenje na diskete. Taj nije na Clipper-u, i bez problema zove ZIP kad mu treba. Do sad se niko nije bunio.
clipper.114 hercog, -> #107, dmihajlo
Moj savet ti je da nabavis Clipper 5.01 i da s njim pises programe.Koristeci njega moci ces da pokrenes pkzip i sl programe jer se sam svapuje na disk ako nema dovoljno rama . Ja sam napisao program od oko 620 kb pa mi se iz njega sasvim lepo startuju jos neki programi/ pozdrav Hercog
clipper.116 dmihajlo, -> #107, dmihajlo
Zahvaljujem svima na odgovorima i pomoci! Najvise mi odgovara resenje zkrstica (5.109), a probacu i CL5.01 po preporuci Hercoga (5.114). Probao sam i (5.108) od ppekovica. Radi, donekle, ali sam uz put otkrio i bag u CL87: posle memory(0), ne radi RUN ... pod MS DOS 5.0. (vidi fail "bag").zip"). HVALA! BoMi bag.zip
clipper.117 ppekovic, -> #112, dejanr
>> Zar su problemi toliki? Koliko sam shvatio, može se uzeti C 5.1. Na zalost ja nemam MSC 5.1, ali ako neko ima, i ako ga ne mrzi, ima u rsoft dir-u C source lzw arhivera (r071lzw.zip (?)). >> Dakle, arhiver na asembleru? Da, i neko koga ne mrzi to da pravi na assembler-u. Da neko slucajno nezna za neku biblioteku (posto ih za clipper ima gomila raznoraznih) koja ukljucuje funkcije za backup? Paya
clipper.118 vili,
Postoji li nacin da se ALERT() ne pojavljuje na sredini ekrana, vec tamo gde ja to hocu (eto bas hocu..)
clipper.119 ndragan, -> #110, bulaja
/ (struktura) baze, a nema fiksne duzine ni za stringove (zapisuje se / prakticno samo rtrim(string_field)), numerici bi se konvertovali iz to se u foks prou kaže 'copy to druga type delimited with tab'. ja za arhiviranje iz foksa koristim sledeću logiku: program mi generiše arhiva.bat i to na lokalnom disku (zbog mreže) i to negde na vrh path liste (obično DOS direktorij); arhiva.bat poziva ZIP, BACKUP, javlja operateru šta da napiše na disketu itd. Na ekranu mu ostavim poruku "OTKUCAJ REž ARHIVA <<enter>>"; otkako se pojavio KEYBUFF i to je otpalo - generišem Arhiva.bat, uradim Clear All, Run Keybuff Arhiva žM i Quit - tako da se arhiviranje radi još malo pa automatski. Bue_ NDragan
clipper.120 lazo,
Jel' neko skonto kako da se switch87 pozove iz program i isovremeno pozove neki drugi program. Ja sam uspio dobiti samo nešto kao Shell to Dos u raznim programima, a zatim sa exit se vratiš u program.
clipper.122 lola, -> #120, lazo
│ Jel' neko skonto kako da se switch87 pozove iz program i isovremeno pozove │ neki drugi program. Ja sam uspio dobiti samo nesto kao Shell to Dos u raznim │ programima, a zatim sa exit se vratis u program. └──── Nisam u mogucnosti da proverim on-line uputstvo (na disketi), a manual koji imam je od starije verzije. Tek onako po secanju u programu napises Drswitch(cDosKomanda,cVrstaMemorije,nMem) Ne secam se vise kako se specificira extended ili expanded memorija, ali ako ostavis prazno deo programskog imidza ce ici na disk. Evo ti primera: Drswitch('lotus','',300) Drswitch('backup '+source+Drv,'',200) Vazno je da linkujes header kao prvi obj a switchu7 kao poslednji. Na primer: tlink header7+obj1+obj2+..+switchu7,prog,,CLIPPPER+EXTEND+ lib3 ... Napomena 1: Do sada nisam imao problema kada sam DRSWITCH koristio sa Clipper 5.01, bez obzira da li je dinamicko alociranje memorije ukljuceno ili iskljuceno. Napomena 2: U uputstvu za stariju verziju DRSWITCH pise da je komanda RUN DRSWITCH DosKomanda na primer: RUN DRSWITCH EDIT MYFILE.PRG
clipper.123 zkrstic,
Obzirom na brojna pitanja u vezi raznoraznih programa za pristup virtuelnoj memoriji, evo par pojašnjenja. Problem br. 1 Autor swap-a i overlay-a je izvesni Greg A. Martin. Programi su sjajni, lepo rade, posebno OVERLAY, ali... Nama (meni) su dostu- pne samo demo verzije, koje su ograničene na 2 odnosno tri izvr- šenja nakon startovanja programa. Sa čovekom se nemože stupiti u kontakt ni telefonom ni pismom. Problem br. 2 Obzirom da za iole ozbiljniji rad ostaje najlošiji među njima, tj. SWITCH87, čovek koji je probao da radi sa ostalima navikao je na sintaksu: Result=SWAP(kb,prog) ili kod overlay-a, Result = OverLay(Program, Memory, Prompt,Pathname, Filename, Restoredir) Kod SWITCH-a je sintaksa sledeća: Result = Switch87("prog",kb) prog - naziv programa na koji se prenosi izvršenje kb - iznos memorije u kb koji se oslobađa na disk. Ukoliko je 0, oslobađa se maksimalno moguća količina memorije. SWITCH radi n-puta po startovanju programa i to mu je jedina prednost u odnosu na gore pomenuta dva programa. Zna i da blokira računar, al' to is- ključivo zavisi od ploče i konfiguracije. S toga, ukoliko je ikako moguće koristite overlay(), jer je najbolji. Nadam se da sam sad pojasnio u čemu je štos. Kome zatreba još neki podatak, nek' me izvoli mailovati. :)) Pozdrav, čeljko P.S. žim nađem source-ove iz Crvenog signala (moji programi) poslaću ih jer bi mogli biti dobri kao primeri, iako su matori.
clipper.124 lazo, -> #122, lola
Zahvaljujem, pomoglo je.
clipper.125 ppekovic, -> #107, dmihajlo
>> Međutim! Kada se pokrene CL program, ostane (pre)malo >> memorije za PKZIP (treba mu 85K) koji sam pokretao RUN >> naredbom. Neće da radi! Kaže: "Too big to fit...". ARJ >> program zahteva još više meorije (oko 280K). Znači malo je >> koristi od RUN naredbe. Pre izvesnog vremena si bas od mene dobio odgovor da je veoma lako resiti ovaj problem setovanjem environment variable clipper na sledeci nacin: SET CLIPPER=r:280 To je sasvim tacno, ali samo za verziju '87. Posto sam, otkada sam presao na 5.01 koristio RUN komandu samo za neke sitnije programe, nisam pokusavao pomenuti problem da resim na Clipper-u 5.01. Medjutim, danas sam naleteo na taj problem i po inerciji otkucao set clipper ... ali! program i dalje prijavljuje out of memory ... Pogledam lepo sta pise za varijablu clipper kad tamo ni traga ni glasa nekadasnjem R, a zamene nigde. Dakle, jel zna neko resenje za malo vece programe, komandu RUN i clipper 5.01?! Paya
clipper.126 hercog,
Da li neko zna zbog cega clipper 5.01 ponekad pri in- deksiranju datoteke obrise tu datoteku (strukturu i po- datke ) a ostav njeno ime na disku. 2. da li je nekome poznt razlog blokiranja clippera 5.01 kod naredbe release Hercog
clipper.127 bstevan, -> #101, zkehler
>> Nisu početnice, ali su dobre ove dve knjige:<< Dali se zna gde se mogu nabaviti ? ---POZDRAV--- ---BSTEVAN---
clipper.128 bstevan,
Ovim javljanjem želim da predstavim funkciju MYBROW(). Sam naziv podseća na funkciju BROWSE(), i sve komande iz BROWSE() rade i u MYBROW(). Razlika je sada što nema više dosadnih poruka poput bof,eof,Record itd. Ali nebih zauzimao više ovde prostora o funkciji MYBROW(), dovoljno je skinuti datoteku mybrow.zip, i videti šta pruža funkcija MYBROW(). Sva ostala uputstva u vezi funkcije MYBROW(), možete pročitati u nekom editoru iz fajla readme.txt,a sam rad funkcije startovanjem demo.exe -fajla. Način pozivanja funkcije MYBROW(),možete videti iz demo.prg -fajla. ---POZDRAV--- ---BSTEVAN--- mybrow.zip
clipper.129 ppekovic, -> #128, bstevan
>> Ovim javljanjem želim da predstavim funkciju MYBROW(). >>Sam naziv podseća na funkciju BROWSE(), i sve komande iz BROWSE() >>rade i u MYBROW(). Pošto je bstevan propustio da kaže, datoteka prikačena uz poruku 5.128 je demo verzija funkcije mybrow(). Za kompletnu verziju se treba obratiti autoru, a dobiće se verovatno uz izvesnu materijalnu nadoknadu. Paya
clipper.130 nbatocanin,
Kakva su vam iskustva sa novim Clipper-om? Interesuje me na kakve probleme nailazite. Ja sam veoma zadovoljan. Svi moji stari programi sada bez greske rade, a jedan veoma veliki (oko 900K EXE) radi i bolje (S'97 mi je pravio neke probleme, a 5.01 to savrseno radi). Ja sam naisao na sledece probleme: 1. Kada se sa DOS-om 5.0 stavi direktiva DOS=HIGH, a program linkuje sa PLL opcijom, Clipper javlja da je los format datoteke. Kad se izbaci DOS=HIGH, sve savrseno radi. 2. Postoji odredjena nekompatibilnost u sintaksi koja je morala da usledi zbog veoma klimave sintakse starog Clipper-a. Na primer: SUM ALL (x+y)*z TO s Ovde nije jasno da li treba sabrati izraz (x+y)*s za sve slogove ili All(x+y)*s - tj. da li je ALL funkcija ili oznaka za scope. Zato sad treba pisati: SUM (x+y)*z TO s ALL 3. Desava se da se program veoma nekontrolisano ponasa - da gubi vrednost nekih promenljivih, ... - a da sve nestane nekom trivijalnom intervencijom kao sto je promena naziva promenljive. Uzrok jos nije otkriven, ali mi lici na neke bagove verzije S'87. Pozdrav, Nenad
clipper.131 hercog, -> #130, nbatocanin
Evo ti jos nekih , cini mi se , bagova clippera 5.01 1. Blokira kod izvrsavanja naredbe release 2. Ponekad pri indeksiranju datoteke izbrise sadrzaj te datoteke i njenu strukturu , na disku ostavi samo njeno ime. 3. ima toga jos al ne mogu sada da se setim pozdrav Hercog
clipper.133 ppekovic, -> #130, nbatocanin
>> Kakva su vam iskustva sa novim Clipper-om? Interesuje me na kakve >> probleme nailazite. Ja sam veoma zadovoljan. I ja sam uglavnom zadovoljan osim jedne sitnice (?). Pogledajte sledeći program: use baza č 10,10 get prvo č 12,10 get drugo read ? prvo ? drugo use Kreirajte DBF baza sa poljima: PRVO C 10 DRUGO N 8 2 // mogu i druge definicije i ubacite jedan proizvoljan zapis. Po startovanju programa ćete dobiti dva GET-a. Promenite vrednost bilo kog od njih, pređite na drugo polje i pritisnite ESC. AHA! iako je pritisnut ESC, vrednost polja je promenjena! To zahteva da se get/read uvek radi sa memorijskim promenljivima, pa da se ispituje da li je pritisnut ESC pa ako nije da se vrednosti memorijskih promenljivih prebace u bazu. Paya
clipper.134 ppekovic, -> #133, ppekovic
Međutim, ja sam nailazio na mnogo veće probleme sa DEBUGER-om nego sa samim compiler-om. Konkretno, vrlo često mi se desi da se u sred rada source izgubi sa ekrana. Tj. brojevi linija su tu, trace lepo radi i ide po pravimlinijama, ali teksta nema. To se dešava kada u sred programa pređete u neki drugi direktorijum, što se može rešiti stavljanjem punog path-a za program, ali dešava se i u drugim slučajevima koje je teško rešiti. Jedan od takvih je kad naiđem na deo za štampanje tj. komande set device to printer. Onda debuger poludi. Gubljenje source-a mi se dešavalo i u još nekim slučajevima kod kojih nisam uspeo da otkrijem zbog čega se to desilo. Dalje, Debuger ima probleme sa dužim modulima. Tj. čim je modul duži od xx K, kaže da nemože da ga svari. Paya
clipper.135 beki,
Ja sam dusom i telom Clipperas ali jedan moj dobar prijatelj koji nema modem i nije na Sezamu zamolio me je da uputim sledece pitanje do FoxPro-ovaca dusom i telom: Kakva su iskustva sa FoxPro V2, sa Distribution Kit-om, sa C-API za FoxPro V2 i sa svim ostalim sto ide uz njega. Unapred hvala od mene i od mog prijatelja Dragana Beki
clipper.136 vili, -> #131, hercog
> > 1. Blokira kod izvrsavanja naredbe release Kod mene RELEASE savrseno dobro radi! _ O /|\ / \
clipper.137 vili, -> #133, ppekovic
> AHA! iako je pritisnut ESC, vrednost polja je promenjena! Mislim da je to namerno tako uradjeno i da to nije "bug". It's not a bug, it's a feature!. Uostalom u manualu pise: ESC - Terminate READ without saving current GET ^^^^^^^ > To zahteva da se get/read uvek radi sa memorijskim > promenljivima, pa da se ispituje da li je pritisnut ESC pa Mislim da je tako sigurnije. U manualu se predlaze nesto slicno ovome: USE baza memvar->podatak = baza->podatak @ 10,10 GET memvar->podatak READ IF (LASTKEY() != K_ESC) .AND. UPDATED() REPLACE baza->podatak WITH memvar->podatak ENDIF _ O /|\ / \
clipper.138 vili,
Nedavno sam download-ovao: The 3PX Clipper Extended Functions Library, Version 5.0 Ta biblioteka je za Clipper Summer'87. Uz tu biblioteku se nalazi i DEMO program. Probao sam da taj DEMO kompajliram i linkujem sa CLIPPER 5.01, ali nije islo. Tj. DEMO.PRG se bez problema kompajlira, ali RTLink javlja sledece: warning wcl0001:Linking Clipper Summer'87 module 'XMENU' with Clipper5.0 linker warning wcl0001:Linking Clipper Summer'87 module 'XMISC' with Clipper5.0 linker warning wcl0001:Linking Clipper Summer'87 module 'XSTRING' with Clipper5.0 linker UNDEFINED SYMBOL(S) AFTER LIBRARY SEARCH: SYMBOL FIRST REFERENCE ------ --------------- '_VSTD' 3PX.LIB 'SUMMER87' 3PX.LIB Kako taj DEMO da linkujem sa CLIPPER-om 5.01? Da li je to uopste moguce? Koje opcije za compiler i linker da upotrebim? P.S. Mene, ustvari, interesuju samo funkcije za rad sa misem. Kako da pokrenem misa u svojim aplikacijama? _ O /|\ / \
clipper.139 zkrstic, -> #138, vili
> Kako taj DEMO da linkujem sa CLIPPER-om 5.01? > Da li je to uopste moguce? Koje opcije za compiler i > linker da upotrebim? Samo sa Clipperom 87. S njim radi. A i nije nešto :( > P.S. Mene, ustvari, interesuju samo funkcije za rad sa > misem. Kako da pokrenem misa u svojim aplikacijama? Bejaše neki lib na tanjugu, al' ja nikad nisam uspeo da ga skinem jer je bag u zipu :((( Pozdrav, čeljko
clipper.140 ppekovic, -> #137, vili
>> Mislim da je to namerno tako uradjeno i da to nije "bug". >> It's not a bug, it's a feature!. Uostalom u manualu pise: >> >> ESC - Terminate READ without saving current GET Sve je to lepo al je lepše bilo onako kako je radio '87. OK. je da radiš sa mem. promenljnivima kada umećeš novi slog, ali kada ispravljaš postojeći, lčakše je direktno sa poljima u bazi, pa ako stisneš esc, sve ostane kako je, ako izađeš legalno, promene se automatski zapišu i super! Paya
clipper.141 ndragan, -> #140, ppekovic
/ lčakše je direktno sa poljima u bazi, pa ako stisneš esc, sve ostane / kako je, Ne ostaje - ako izmenjaš šest polja, a na sedmom zvizneš iskejp, prvih šest je već zapisano. I za ovo je bolje raditi sa memorijskim kopijama. Bue_ NDragan
clipper.142 zdimic,
Hitno mi je potreban razvojni sitem za clipper (87 ?) pod nazivom UI, a cujem da postoji i neki jos mocniji sys za clipper 5. U razmenu nudim npr. Fox pro 2.0, gomilu LIBs za clipper itd. Hvala, Zoran
clipper.143 ppekovic, -> #141, ndragan
>>/ lčakše je direktno sa poljima u bazi, pa ako stisneš esc, sve ostane >>/ kako je, >> >>Ne ostaje - ako izmenjaš šest polja, a na sedmom zvizneš iskejp, prvih šest >>je već zapisano. I za ovo je bolje raditi sa memorijskim kopijama. Znam da to tako sada radi, ali sam rekao da bi bilo bolje drugacije, tj. onako kako je radio clipper '87 (?). Paya
clipper.144 lazo,
Hello everybody! Moj problem je slijedeći: u DBEDIT() funkciji pri pozivanju korisničke funkcije se prenose dva parametra "status" i "fld_ptr". Ovaj drugi ukazuje na tekuće polje u strukturi datoteke kojem se može pristupiti upotrebom funkcije FIELD(). Ovo piše u knjizi. Po meni, ovaj parametar je numerik i sadrži redni broj sloga, kome onda pomoću funkcije FIELD(red_br_polja) pristupam tj. editujem ga. Problem sam riješio tako što sam postavio varijablu koja se uvećava, odnosno umanjuje pri pomjeranju kursorske strlice. U ovisnosti od tog broja pristupam odgovarajućem polju. Slabost ovoga je kad neko pritisne recimo tipku za pomjeranje u desno i ne pušta dok na ekranu ne dobije željeno. U tom slučaju obavezno se desi da je broj koji se uvečava za jedan manji od stvarne pozicije. Kada bih mogao očitati sadržaj pomenutog parametra to se, pretpostavljam, ne bi dešavalo i smanjio bih svoju funkciju za 10-tak (ne)potrebnih IF-ova. Prema tome, zna li neko kako da se preuzme vrijednost iz ovog parametra (fld_ptr). Mickey.
clipper.145 nbatocanin, -> #131, hercog
> 2. Ponekad pri indeksiranju datoteke izbrise sadrzaj te > datoteke i njenu strukturu , na disku ostavi samo njeno > ime. Ne mogu da verujem! Meni se desavalo da zabrlja kod indeksne datoteke, ali da izbrise glavnu... Ako imas program koji to radi, rado bi ga pogledao.
clipper.146 nbatocanin, -> #134, ppekovic
> To se > desava kada u sred programa predete u neki drugi > direktorijum, sto se moze resiti stavljanjem punog path-a > za program, ali desava se i u drugim slucajevima koje je > tesko resiti. Jedan od takvih je kad naidem na deo za > stampanje tj. komande set device to printer. Onda debuger > poludi. Mozes u OPTIONS da postavis sve kataloge gde ti se nalaze programi, pa ces imati brojeve linija. Na primer: \BASE\SYS;\PROG\UK itd. Meni SET DEVICE lepo saradjuje sa dibagerom.
clipper.147 nbatocanin, -> #136, vili
> Kod mene RELEASE savrseno dobro radi! Zasto uopste i koristite RELEASE?
clipper.148 nbatocanin, -> #138, vili
> P.S. Mene, ustvari, interesuju samo funkcije za rad sa > misem. Kako da pokrenem misa u svojim aplikacijama? Postoje najmanje dva resenja. Prvo, da nadjes neku Clipper biblioteku koja to omogucava (na primer, Flipper, DGE, ...). Drugi nacin je da sam pravis funkcije za komunikaciju.
clipper.149 nbatocanin, -> #144, lazo
> Ovo pise u knjizi. Po meni, ovaj parametar je > numerik i sadrzi redni broj sloga, kome onda pomocu > funkcije FIELD(red_br_polja) pristupam tj. editujem ga. Drugi parametar u funkciji koju poziva DBEDIT je redni broj KOLONE koja je trenutno aktivna, pa ce FIELD korektno raditi samo ako su u DBEDIT-u navedena REDOM polja datoteke. Najjednostavnije resenje je da definises niz odgovarajucih polja u proceduri u kojoj definises DBEDIT parametre i kasnije radis na sledeci nacin: ... PRIVATE Fields[n] Fields[1] = "IME" ... PRIVATE Column[n] Column[1] = "Left(IME, 20)" DBEDIT (...) Sada, ako su ti parametri funkcije MODE i INDEX, izraz Fields[Index] oznacava tekuce polje, a Column[Index] "sliku" polja na ekranu.
clipper.150 nbatocanin, -> #143, ppekovic
Mislim da mozes veoma lako da promenis GET sistem da radi kako ti odgovara - pogledaj datoteku GETSYS.PRG. Pozdrav, Nenad
clipper.151 bulaja,
*** new files *** \ibmpc\program\nf*.* Nanforum Toolkit je velika zbirka raznih funkcija za Clipper 5, a sve su date u souce kodu (Clipper, C ili ASM). Napisali su je (biblioteku) korisnici sa Compuserve-ovog Nantucket Foruma (technical support za Clipper), blah balh ... napisacu nesto vise ovih dana, posto sam upravo uploadnuo datoteke pa se zasluzeno odmaram sada ;). Spisak funkcija je poveci, evo ga u sledecoj poruci (nadam se da se niko nece ljutiti ;) zbog duge poruke, ali ovaj spisak se ne nalazi nigde u dokumentaciji vec sam ga ja skidao iz NG-a pa ce svima koristiti). Bulaja.
clipper.152 bulaja,
Nanforum Toolkit v2.0 ═════════════════════ Array ──────────────── FT_AADDITION() Add elements unique of source array to target array FT_AAVG() Average numeric values in an array FT_ADESSORT() Sort an array in descending order FT_AEMAXLEN() Find longest element within an array FT_AEMINLEN() Find shortest element within an array FT_AMEDIAN() Find middle value in array, or average of two middle values FT_ANOMATCHES() Find the number of array elements meeting a condition FT_AREDIT() 2 dimensional array editing function using TBrowse FT_ASUM() Sum the elements of an array FT_RESTARR() Restore a Clipper array from a disc file FT_SAVEARR() Save Clipper array to a disc file. ════════════════ Conversion ──────────────── FT_BYT2BIT() Convert byte to string of 1's and 0's FT_BYT2HEX() Convert byte to hexadecimal version of its binary value FT_D2E() Convert decimal to scientific notation FT_DEC2BIN() Convert decimal to binary FT_E2D() Convert scientific notation string to a decimal FT_ESCCODE() Convert Lotus style escape codes FT_HEX2DEC() Convert a hex number to decimal FT_INVCLR() Get the inverse of a color FT_NTOW() Translate numeric value to words FT_SQZN() Compress a numeric value into a character string FT_STOD() Convert a date string to a Clipper date data type FT_UNSQZN() Uncompress a numeric compressed by FT_SQZN() FT_XTOY() Convert from any data type to any other data type ════════════════ DOS/BIOS ──────────────── FT_CHDIR() Change the current directory FT_DEFAULT() Retrieve and optionally change the current default drive FT_DOSVER Return the current DOS major and minor version as a string FT_DSKFREE() Return the amount of available disk space FT_DSKSIZE() Return the maximum capacity of a fixed disk FT_FLOPTST() Test diskette drive status FT_HANDCNT() Count number of available DOS (not network) file handles FT_INP() Retrieve a byte from a specified I/O port FT_INT86() Execute a software interrupt FT_ISPRINT() Check printer status FT_ISSHARE() Determine if DOS "Share" is installed FT_MKDIR() Create a subdirectory FT_OUTP() Write a byte to a specified I/O port FT_PEEK() Retrieve a byte from a specified memory location. FT_POKE() Write a byte to a specified memory location FT_REBOOT() Force a warm or cold boot FT_RMDIR() Delete a subdirectory FT_SETDATE() Set the DOS system date FT_SETTIME() Set the DOS system time FT_SYSMEM() Determine the amount of conventional memory installed FT_TEMPFIL() Create a file with a unique name ════════════════ Database ──────────────── FT_FDEC() Return the number of decimals in a numeric (type "N") field. FT_FEMPTY() Determine if a field is empty, i.e., contains no value. FT_FEXIST() Check for the existence of a field. FT_FLEN() Return a field's length. FT_FNUM() Return a field's ordinal position given the field name. FT_FPLACE() Write a new value to a field. FT_FTYPE() Return a field's type, given field name or ordinal position FT_FVAL() Return the value of a field. FT_FVALLEN() Return the length of the value in a field. ════════════════ Date/Time ──────────────── FT_ACCTADJ() Adjust beginning or ending fiscal pd. dates to acctg. dates FT_ACCTMONTH() Return accounting month data FT_ACCTQTR() Return accounting quarter data FT_ACCTWEEK() Return accounting week data FT_ACCTYEAR() Return accounting year data FT_ADDWKDY() Return true number of days to add given number of workdays FT_CALENDAR() Display date/time calendar, find a date, return calendar dat FT_CIV2MIL() Convert usual civilian format time to military time. FT_DATECNFG() Set beginning of year/week for FT_ date functions FT_DAYOFYR() Return calendar, fiscal or accounting day data FT_DAYTOBOW() Calculate no. of days between date and beginning of week FT_DOY() Find number of day within year FT_EASTER() Return the date of Easter FT_ELAPMIN() Return difference, in minutes, between two mil format times. FT_ELAPSED() Return elapsed time between two days and/or times FT_ELTIME() Compute difference between times in hours, minutes, seconds. FT_FDAY() Return first day of the month FT_LDAY() Return last day of the month FT_MADD() Add or subtract months to/from a date FT_MIL2CIV() Convert time in military format to civilian format. FT_MIL2MIN() Convert time in military format to number of minute of day. FT_MIN2DHM() Convert numeric minutes to days, hours and minutes. FT_MIN2MIL() Convert minute of day to military format time. FT_MONTH() Return Calendar or Fiscal Month Data FT_QTR() Return Calendar or Fiscal Quarter Data. FT_SYS2MIL() Convert system time to military time format. FT_WEEK() Return calendar or fiscal week data FT_WORKDAYS() Return number of work days between two dates FT_WOY() Find number of week within year FT_YEAR() Return calendar or fiscal year data ════════════════ Environment ──────────────── FT_COM3OR4() Enable use of COM3 and/or COM4 on IBM/PC compatables. FT_DIR2DB() Create .DBF of directory files, using DOS filespec FT_EXIST() Test for existence of drive and/or subdirectory FT_GETE() Return the entire current environment FT_LINKED() Determine if a function was linked in FT_ORIGIN() Report the drive, path and filename of the executing program FT_RESTSETS() Restore status of all SET command settings FT_SAVESETS() Save the status of all the SET command settings FT_SETCENTURY() Check/Set the CENTURY Setting FT_TREE() Locate all directories and subdirectories on a drive FT_WHEREIS() Locate all occurrences of a filespec on a drive ════════════════ File I/O ──────────────── FT_DFCLOSE() Close file displayed by FT_DISPFILE() FT_DFSETUP() Set up parameters for FT_DISPFILE() FT_DISPFILE() Browse a text file FT_FEOF() Determine when end of text file is encountered FT_FGOBOT() Go to the last record in a text file FT_FGOTO() Move record pointer to specific record in a text file FT_FGOTOP() Go to the first record in a text file FT_FLASTREC() Determine the no. of records in the currently selected text FT_FREADLN() Read a line from the currently selected text file FT_FRECNO() Return the current record number of a text file FT_FSELECT() Select a text file workarea FT_FSKIP() Move the record pointer to a new position in a text file FT_FUSE() Open or close a text file for use by the FT_F* functions ════════════════ Game ──────────────── FT_PEGS() FT_PEGS GAME (all work and no play...) ════════════════ Keyboard/Mouse ──────────────── FT_ALT() Determine status of the Alt key FT_CAPLOCK() Determine and optionally change the status of CapLock key FT_CTRL() Determine status of the Ctrl key FT_MBUTPRS() Retrieve button press status FT_MBUTREL() Get mouse button release information FT_MCURSOR() Set the mouse cursor FT_MDBLCLK() Return true if a double click was detected FT_MDEFCRS() Define the mouse cursor FT_MGETPOS() Get mouse cursor position and button status FT_MGETX() Get mouse cursor row position FT_MGETY() Get mouse cursor column position FT_MHIDECRS() Decrement internal mouse cursor flag and hide mouse cursor FT_MINREGION() Test if the mouse cursor is in the passed region FT_MMICKEYS() Get mickeys FT_MRESET() Reset mouse driver and return status of mouse FT_MSETPOS() Position the mouse cursor FT_MSHOWCRS() Increment internal cursor flag and display mouse cursor FT_MXLIMIT() Set vertical bounds of mouse travel FT_MYLIMIT() Set horizontal bounds of mouse travel FT_NUMLOCK() Return status of NumLock key FT_PRTSCR() Enable or disable the Print Screen key FT_PUTKEY() Stuff a keystroke into the keyboard buffer FT_SCANCODE() Wait for keypress and return keyboard scan code FT_SETRATE() Set the keyboard delay and repeat rate on PC/AT & PS/2 FT_SHIFT() Determine status of shift key FT_SINKEY() Replacement for INKEY() that tests for SET KEY procedures ════════════════ Math ──────────────── FT_GCD() Calculate greatest common divisor of two numbers FT_NETPV() Calculate net present value FT_RAND1() Generate a random number FT_ROUND() Rounds a number to a specific place ════════════════ Menus/Prompts ──────────────── @...PROMPT Define a menu item for use with MENU TO FT_ACH2TB() Replace ACHOICE() with a Tbrowse object FT_ADDER() Pop up a simple calculator FT_BLINK() Display a blinking message on the screen FT_BRWSWHL() Browse an indexed database limited to a while condition FT_CLRSEL() User Selectable Colour Routine FT_DISPMSG() Display a message and optionally waits for a keypress FT_FILL() Declare menu options for FT_MENU1() FT_MENU1() Pulldown menu system FT_MENU2() Vertical lightbar menu FT_MENUTO() Execute light bar menu using prompts created with FT_PROMPT( FT_PENDING() Display same-line pending messages after a wait. FT_PICKDAY() Picklist of days of week FT_PROMPT() Define a menu item for use with FT_MENUTO() FT_XBOX() Display a self-sizing message box and message MENU TO Execute light bar menu using prompts created with @...PROMPT ════════════════ NetWare ──────────────── FT_ENDCAP() Cancel a specific NetWare print queue capture FT_LOGOUT() Logout from all currently connected NetWare file servers FT_NOVDMP2() Determine Novell server's dynamic memory area 2 availability FT_NOVPURGE() Purge all deleted files on a Novell server FT_NWLSTAT() Return the current Novell NetWare logical station number FT_NWSEMCLOSE() Close a NetWare semaphore FT_NWSEMEX() Examine a NetWare semaphore's value and open count FT_NWSEMLOCK() Perform a semaphore "lock" FT_NWSEMOPEN() Open or create a NetWare semaphore FT_NWSEMSIG() Signal a NetWare semaphore (increment) FT_NWSEMWAIT() Wait on a NetWare semaphore (decrement) FT_NWUID() Return the current Novell NetWare User ID FT_PFLUSH() Flush a NetWare capture buffer FT_TTSABORT() Abort explicit and implicit NetWare TTS transactions FT_TTSAVAIL() Check whether default Novell file server supports TTS FT_TTSBEGIN() Begin explicit transaction under NetWare's TTS FT_TTSEND() End explicit or implicit transaction under NetWare's TTS FT_TTSSTAT() Verify if TTS transaction has been written to disk ════════════════ String ──────────────── FT_AT2() Find position of the nth occurrence of a substring FT_BITCLR() Clear (reset) selected bit in a byte FT_BITSET() Set selected bit in a byte FT_BYTEAND() Perform bit-wise AND on two ASCII characters (bytes) FT_BYTENEG() Perform bit-wise negation on an ASCII character FT_BYTENOT() Perform bit-wise NOT on an ASCII character (byte) FT_BYTEOR() Perform bit-wise OR on two ASCII characters (bytes) FT_BYTEXOR() Perform bit-wise XOR on two ASCII characters (bytes) FT_FINDITH() Find the "ith" occurrence of a substring within a string FT_ISBIT() Test the status of an individual bit FT_ISBITON() Determine the state of individual bits in a number FT_METAPH() Convert a character string to MetaPhone format FT_NOOCCUR() Find the number of times one string occurs in another FT_PCHR() Convert printer control codes FT_PROPER() Convert a string to proper-name case ════════════════ Video ──────────────── FT_ADAPTER() Report the type of video adapter installed FT_CLS() Clear screen FT_GETMODE() Get the video mode FT_GETVCUR() Return info about the cursor on a specified video page FT_GETVPG() Get the currently selected video page FT_RESTATT() Restore the attribute bytes of a specified screen region. FT_REVATTR() Reverse colors of specified screen coordinates FT_REVCHR() Reverse the color of a single character on the screen FT_RGNSTACK() Push or pop a saved screen region on or off the stack FT_RSTRGN() Restore region of the screen saved with FT_SAVRGN() FT_SAVEATT() Save the attribute bytes of a specified screen region. FT_SAVRGN() Save a screen region for later display FT_SETATTR() Change color attributes of screen region FT_SETMODE() Set the video mode FT_SETVCUR() Set the cursor position on a specified video page FT_SETVPG() Set the current video page FT_SHADOW() Draw a non-destructive shadow on the screen FT_VIDSTR() Display string on screen in specified attribute FT_WRTCHR() Display character on screen ════════════════
clipper.153 hercog, -> #136, vili
Meni uglavnom blokira kod release promenljive u koju je snimljen ekran. NPR: save screen to ekran ................ ........... ............ restore screen from ekran release ekran <- ovde blokira pozdrav Hercog
clipper.154 hercog, -> #145, nbatocanin
A sto je jos veci stos , glavnu datoteku ne izbrise uvek vec samo ponekad, sto znaci da nekolko puta sve uradi ok, a sledeci put je zezne. pozdrav Hercog
clipper.155 hercog,
Koja je najbolja biblioteka za Clipper 5.01 koja mu daje naredbe za grafiku, gde se moze nabaviti i po kojoj ceni. pozdrav Hercog
clipper.156 bulaja, -> #153, hercog
│save screen to ekran │................ │........... │............ │restore screen from ekran │release ekran <- ovde blokira └─── A kako je deklarisana promenjljiva [ekran] (public, local, static,...)? Ako je slucajno static onda nije ni cudo sto se zaglavljuje, a ako je local (ili private) onda ti release i ovako nicemu ne sluzi.
clipper.157 ppekovic, -> #154, hercog
>> A sto je jos veci stos , glavnu datoteku ne izbrise uvek >> vec samo ponekad, sto znaci da nekolko puta sve uradi ok, >> a sledeci put je zezne. U BGD-u znam puno ljudi koji rade sa novim clipper-om, pratio sam i clipper conf. na BIX-u, i cuo sa jos mnogo strana, a i sam naisao na neke bug-ove clipper-a 5.01, ali niko se nije zalio na ono sto se ti zalis. Probaj da nadjes neku logiku kada se to desava pa da vidimo zbog cega se desava, jer kvarovi tipa, zeza po nekad, su znas i sam, najgori. S druge strane, uzrok problema moze biti i cache program npr., ili slicni rezidentni programi. Paya
clipper.158 vkrstonosic, -> #153, hercog
>> save screen to ekran >> ................ >> ........... >> ............ >> restore screen from ekran >> release ekran <- ovde blokira Koristi ekran=savescreen(1,1,23,79) ....... restscreen(1,1,23,79, ekran) Ovo radi provereno i ne pravi nikakve probleme, a i moguće je snimiti samo deo ekrana.
clipper.159 ndragan, -> #148, nbatocanin
/ Postoje najmanje dva resenja. Prvo, da nadjes neku Clipper biblioteku FoxPro sam od sebe radi sa mišem, ako je učitan drajver. No frx.
clipper.160 bulaja, -> #158, vkrstonosic
│ekran=savescreen(1,1,23,79) └─── ^ ^ ^^ (0,0,24,79)
clipper.161 vili, -> #148, nbatocanin
> > Postoje najmanje dva resenja. Prvo, da nadjes neku Clipper > biblioteku koja to omogucava (na primer, Flipper, DGE,...). Gde da nadjem Flipper, DGE,... . Jel to radi sa 5.01? > Drugi nacin je da sam pravis funkcije za > komunikaciju. To ne bih. Nemam vremena da radim nesto sto je neko vec uradio. _ O /|\ / \
clipper.162 vili, -> #142, zdimic
Imam UI. Koristio sam ga neko vreme, ali sam shvatio da mi ne pomaze mnogo. Kasnije sam ga koristio samo za pravljenje maski za unos. Sad je zipovan i cami na disketi. Mozda su neki drugi razvojni sistemi bolji, ali ako su kao UI onda slaba vajda od njih (mislim da je QuickSilver neki takav sistem za Clipper,a mozda i nije?). (UIF.zip = 294Kbyte) _ O /|\ / \
clipper.163 vkrstonosic, -> #160, bulaja
>> (0,0,24,79) Oops, navika ;) uglavnom ne koristim ceo ekran.
clipper.164 makas, -> #154, hercog
> A sto je jos veci stos , glavnu datoteku ne izbrise uvek > vec samo ponekad, sto znaci da nekolko puta sve uradi ok, > a sledeci put je zezne. Da ne koristiš slučajno DOS 4.00 i FASTOPEN? Kod njega je pravio slične brljotine i Clipper '87. Ako je to u pitanju izbaci FASTOPEN i sve će biti u redu. Pozdrav █▀▀▀▀▀▄ ▄▀▀▀█ █▄▀▀ ▄▀▀▀█ ▄▀▀ █ █ █ ▀▄▄ █ █▀▄▄ ▀▄▄ █ ▀▄▄▀▀▄ ▄▄▄ ▄▄▄ ▄▄ ▄▄ ▄▄ ▄ ▄ ▄JILL▄▄▄▄▀
clipper.165 sveta, -> #160, bulaja
││ ekran=savescreen(1,1,23,79) │ └─── ^ ^ ^^ │ (0,0,24,79) └───── A sta se desava sa 0,60 ; 0,61 ; 0,62 ? Meni ih izbrise kod prvog GET-a :(.
clipper.166 nbatocanin, -> #158, vkrstonosic
> Koristi ekran=savescreen(1,1,23,79) Pogodi kako se pretprocesira SAVE SCREEN TO Ekran!
clipper.167 nbatocanin, -> #157, ppekovic
> Probaj da nadjes neku logiku kada se to desava pa > da vidimo zbog cega se desava, ... U tome imas nasu nepodeljenu podrsku!
clipper.168 nbatocanin, -> #155, hercog
> Koja je najbolja biblioteka za Clipper 5.01 koja mu daje > naredbe za grafiku, gde se moze nabaviti i po kojoj ceni. Ne znam koja je najbolja, ja koristim DGE (bice tekst u novim "Racunarima"). Cena je VRLO priblizno oko 200-300$, nabavljena je preko firme u SAD. Na sajmu u Novom Sadu ovu biblioteku je nudila firma SoftWell (021/51-999). Gledao sam papire za biblioteku Flipper i mislim da je vredi pogledati.
clipper.169 nbatocanin, -> #161, vili
> Gde da nadjem Flipper, DGE,... . Jel to radi sa 5.01? 021/51-999 SoftWell, Da.
clipper.170 vkrstonosic, -> #166, nbatocanin
>>> Koristi ekran=savescreen(1,1,23,79) >> >> Pogodi kako se pretprocesira SAVE SCREEN TO Ekran! Pretpostavljam :) Jako često koristim savescreen i nikada do sada nisam imao nikakvih problema.
clipper.171 dvidovic,
Ima li ŰOneko iskustva sa "Siserom" (ili kako vec bese) razv_.ůÚ]ojnim sistemom za Clipper? Ovo pitam u ime drugara, koji bi da proba to cudo, ali o njemu nista ne zna. Vredi li truda, para, etc. Hvala unapred! Pozdrav Dule
clipper.172 nbatocanin, -> #165, sveta
> A sta se desava sa 0,60 ; 0,61 ; 0,62 ? Meni ih izbrise > kod prvog GET-a :(. Postavi na pocetak programa SET SCOREBOARD OFF. Time iskljucujes da ti se ispisuje status Insert/Overtype.
clipper.173 nbatocanin, -> #143, ppekovic
> Znam da to tako sada radi, ali sam rekao da bi bilo bolje > drugacije, tj. onako kako je radio clipper '87 (?). Jesi li bas siguran? Ja upravo probao i - neces verovati - i Summer '87 radi isto ovako! Eto neotkrivenog gremlinija u vasim starim programima! Pozdrav, Nenad
clipper.174 hercog, -> #154, hercog
Nikako ne mogu da provalim kada se to desi (i zbog cega). Jedino me program pozdravi sa necim kao CORUPTION DBF SPISAK.DBF. A sto je najsmesnije clipper me zevzeci sa samo 2 datoteke,mada se u tom delu programa indeksira jos jedno 6-7 datoteka, a cli- pper uvek zajebe datoteku SPISAK.DBF ili SPPR.DBF. Vise mi nista nije jasno. pozdrav Hercog
clipper.175 zkrstic,
Aloooooooo, Skidajte onaj TS.ZIP iz DEMO direktorijuma da neko ne vidi, slučajno. Postoji opasnost: 1. Da vidi neki stranac, pa da pomisli kako ovde niko Clipper vido' nije 2. Da neko, ko želi da uči Clipper odustane od istog, jer su mu mogućnosti vrlo skromne 3. Neko može slučajno da vidi program pa da umre od smeha. Pozdrav, čeljko P.S. Tako mi i treba kad sam hteo da špijuniram konkurentske programe P.P.S. Umesto da leeepoo chatujem 20 minuta, ja skidam kojekakve kara- kondžule.
clipper.176 lazo, -> #149, nbatocanin
**> Drugi parametar u funkciji koju poziva DBEDIT je redni **> broj KOLONE koja je trenutno aktivna, pa ce FIELD **> korektno raditi samo ako su u DBEDIT-u navedena REDOM **> polja datoteke. Najjednostavnije resenje je Ono što meni treba i jeste broj trenutno aktivne kolone (dobro to ne isključuje silne if-ove koji će onda ukazivati na određeno polje). Meni je problem što sam rješavanjem problema sa uvećavanjem I+1 na pritisak kursorske strlice dobijao trenutno aktivnu kolonu. Problem je kada se drži konstantno kurs. strelica pa kursor ode polje više nego što je u stvari uvećana vrijednost promjenljive I. Tako umjesto da dobijem masku za ispravku tekuće, ja dobijem masku prethodne kolone na mjestu aktivne (trebalo bi da je aktivna, ali nije). E moj je problem što ja ne znam kako da dođem do vrijednosti tog drugog parametra uopšte. **> Sada, ako su ti parametri funkcije MODE i INDEX, izraz **> Fields[Index] oznacava tekuce polje, a Column[Index] **> "sliku" polja na ekranu. Vjerovatno bi dosad napravio nešto slično što si mi predložio kad bih ja znao kako uopšte da dođem do odgovarajućeg parametra, tj. do njegove vrijednosti. Zato bih te molio da mi ili detaljnije objasniš kako se preuzima vrijednost iz tog drugog parametra uopšte ili da pošalješ uz poruku kratak prg (kompletan bez ...) iz koga bi ja onda shvatio kako se to radi. Mickey.
clipper.177 dpaun,
Clipper braco i sestre! Da li je neko probao u 5.01 da funkcijom ASORT() sredi fajlove u direktorijumu, ali prema extenziji? dPaun
clipper.178 nbatocanin, -> #176, lazo
Nisam mogao da nadjem neki jednostavan primer zato sto dosta dugo ne koristim DBEDIT funkciju. Ipak, saljem ti nesto i nadam se da ce ti pomoci. Pogledaj jos jednom u uputstvu. Pozdrav, Nenad dbed.prg
clipper.179 nbatocanin, -> #177, dpaun
PROC Main d := Directory ("*.*") aSort (d,,, { |x, y| Ext(x[1]) > Ext(y[1]) } ) // ... RETURN FUNC Ext (n) RETURN IF ( (i := At (".", n)) <> 0, SubStr (n, i+1), "") Moze ?
clipper.180 mandrejevic, -> #152, bulaja
> Nanforum Toolkit v2.0 > ═════════════════════ ^^^^ Nece da radi sa Clipperom 5.0 Rev.1.03 ? Ili bar nece od prve. .RTLink prijavljuje : UNDEFINED SYMBOL(S) AFTER LIBRARY SEARCH: SYMBOL FIRST REFERENCE ------ --------------- 'CLIPPER501' NANFOR.LIB Pozdrav milan (mandrejevic)
clipper.181 hercog,
Jos jedna problem sa Clipperom 5.01: Program sam razbio na 6 datoteka, kako bi se lakse snalazio. U prvom programu se nalazi lista naredbi: set procedure to pr1 set procedure to pr2 set procedure to pr3 set procedure to pr4 set procedure to pr5 Ali clipper prevede samo do pr4. Ako zamenim mesta npr : set procedure to pr5 set procedure to pr4 onda se kompajler zablokira. Probao sam sve moguce kombinacije i u svakom slucaju mi se desavalo isto. pozdrav Hercog
clipper.182 vkrstonosic, -> #181, hercog
>> Program sam razbio na 6 datoteka, kako bi se lakse >> snalazio. U prvom programu se nalazi lista naredbi: >> >> set procedure to pr1 >> set procedure to pr2 >> set procedure to pr3 >> set procedure to pr4 >> set procedure to pr5 Zašto uopšte tako radiš? Ako je program podeljen u više datoteka, dovoljno je da u glavnoj (koju prvu kompajliraš), staviš: do pr1 do pr2 ... Ako ne postoje procedure pod tim imenima, kompajliraće ih sve redom. Ovo redovno koristim i programi su mi razbijeni na dosta delova.
clipper.183 ndragan, -> #181, hercog
/ set procedure to pr4 / onda se kompajler zablokira. Da nema on neka ograničenja - koliko imena (i to baška lokalna, baška globalna) ti se dotle nakupi? Koliko ti je duži pr4 od pr5 ili obratno? Nisam poterao kliper već 4 godine, ali...
clipper.184 bulaja, -> #181, hercog
│set procedure to pr1 │... └─── A cemu ti sluzi #include ? Ili sto ne koristis make?
clipper.185 nbatocanin, -> #182, vkrstonosic
Interesuje me zašto ne koristite neki MAKE? Da li znate koliko to štedi vreme i olakšava stvari?
clipper.186 vkrstonosic, -> #185, nbatocanin
>> Interesuje me zašto ne koristite neki MAKE? Da li znate koliko to >> štedi vreme i olakšava stvari? Razlog je vrlo jednostavan, spremam se da to počnem već godinu dana, problem je u tome što je uvek danas, sutra nikako ne dolazi ;)
clipper.187 dpaun,
Clipper braćo i sestre! Evo malog primera šta mogu kad se dvoje spoje, tj. GET i WHEN. dPaun get.zip
clipper.188 lazo, -> #178, nbatocanin
**> Nisam mogao da nadjem neki jednostavan primer zato sto **> dosta dugo ne koristim DBEDIT funkciju. Ipak, saljem ti **> nesto i nadam se da ce ti pomoci. Pogledaj jos jednom u **> uputstvu. Thanks, pomoglo je.
clipper.189 dnikolic,
Zna li ko po kom algoritmu rade indexi u Cliperu i Dbase-u? dn
clipper.190 dejanr, -> #189, dnikolic
>> Zna li ko po kom algoritmu rade indexi u Cliperu i Dbase-u? Imaš strukturu NTX datoteka u poruci 5.46, ako to nešto pomaže. Više podataka o tome u knjizi "Clipper Programming Guide", verovatno ima i na drugim mestima. Koriste se B-stabla, koliko se sećam.
clipper.191 dejanr,
Imao sam jednu bazu sa jako puno polja, čije sam sadržaje unosio sa @ pozic1 GET polje1 VALID ff (polje1, parametri) @ pozic2 GET polje2 VALID ff (polje2, parametri) @ pozic3 GET polje3 VALID ff (polje3, parametri) itd ff je nekakva funkcija koja određuje da li uneta vrednost zadovoljava uslove da se prihvati, u zavisnosti od parametara. Bilo je, kako rekoh, mnogo polja sa dugačkim imenima, pa nije bilo baš slatko stalno kucati ono ff (poljeNN) tj. još jednom prepisivati ime polja koje je svega nekoliko znakova levo. Najzad sam napravio makro u editoru koji to kao uradi. Zanima me ima li neko "regularno" rešenje u Clipperu, da se kaže nešto kao VALID ff (ovo_polje, parametri) i da se to onda odnosi na polje koje je u toj liniji unošeno?
clipper.192 kanda, -> #191, dejanr
>> Bilo je, kako rekoh, mnogo polja sa dugačkim imenima, pa nije bilo >> baš slatko stalno kucati ono ff (poljeNN) tj. još jednom prepisivati >> ime polja koje je svega nekoliko znakova levo. Najzad sam napravio >> makro Pa, ako je problem u imenu, funkcija sama moze da zakljuci koje polje se upravo unosi. pozove se readvar() i ona vrati ime polja koje se unosi. evo naprimer, ovde VALID funkcija centrira tekst u polju : a := b := space(12) @ 2,5 get a valid pera() @ 4,5 get b valid pera() read function pera local r := readvar() &r := padc(alltrim(&r), 12) return .t.
clipper.193 majkl, -> #191, dejanr
TRHelp za READVAR() kaže: Determines the name of the curent GET or MENU variable. Returns the variable name as a character string. Ovo rešava tvoj prblem, mada se sve ponovo svodi na jedan makro :)) Pozdrav, Majkl
clipper.194 nbatocanin, -> #191, dejanr
Možeš i sa: FOR i := 1 TO n Tmp := "polje" + AllTrim (Str (i,2,0)) @ i,0 GET &Tmp VALID ff () NEXT Naravno, ako se polja zovu polje1, polje2, ...
clipper.196 erol,
Pitanje za sve Clipper gurue. Koristim Clipper : S87 verziju i ne mogu da rijesim sljedeci problem: Prilikom formiranja i otvaranja novog indexa (nove ind. datoteke) na tekucoj DBF datoteci, zatvore se indexi koji su tu vec bili jer ne mogu dobiti informaciju kako se zovu vec otvvorene NTX datoteke.. Dakle pitanje je : Kako saznati ime indexne datoteke koja je aktivna (otvorena ) uz tekucu DBF datoteku ? Ili : Kako dodati jos jedan NTX file u listu vec otvorenih NTX-ova, a da se ovi prethodni ne zatvore ? HHitno je !!!!! ..
clipper.197 dpaun, -> #196, erol
Pogledaj detaljno naredbu SET ORDER TO. dPaun
clipper.198 radunovic,
Imam problema u radu sa dbeditom. Stavio sam ga u program i ponasa se vrlo cudno(bar za mene:). Kada prvo udjem u mod za unosenje podataka (gomila SAY i GET naredbi) i izadjem na bilo koji nacin, bilo da unesem nesto, bilo samo ESC i udjem u dbedit on radi. A ako ne udjem u mod za unosenje(u kome inicijalizujem neke interne promenjive i nista vise) kod dbedita program se prekine i javi: Error BASE/1005 No exported variable SKIPBLOCK Called from _skipblock(0) Called from dbedit(0) Called from ... <- Ovde idu moje procedure U cemu je stvar? Hitno mi je! I jos jedno pitanje u vezi dbedita. Mogu li da kao zaglavlje, umesto imena polja napisem proizvoljne stringove(eventualno u 2 reda). I koji su ulazni parametri procedure koju poziva dbedit? Boki PS. Jos jedno pitanje, koliko naplacujete pisanje programa?
clipper.199 radunovic, -> #198, radunovic
Odustao sam od rada sa DBEditom i presao na TBrowse. Koje su sve funkcije koje mogu da upotrebljavam i kako da dobijem da mi se oboji ceo record a ne samo jedno polje. Kako da iskljucim kursor ? Unapred zahvalan Boki
clipper.200 nkbog,
U Nanforum Alatima postoji program koji računa dan u godini za uskrs po gregorijanskom kalendaru. Evo jednog programčića koji to isto radi, samo za julijanski kalendar., t.j. za pravoslavni uskrs. Program je napisao tandem TiBerije (T=algoritam, B=kodiranje, tol'ko je bilo teško ;)), a baziran je na sličnom BASIC programu iz knjige Srpski Kalendar (ili nešto slično). NB. uskrs.prg
clipper.201 erol, -> #197, dpaun
Hvala na paznji, ali mislim da nisi bas najbolje shvatio. Set order mogu koristiti ako je doticna indexna datoteka vec u listi otvorenih indexa. Ali ako sam je tek kreirao sa INEX ON ...TO ind.ntx, tada set order ne pomaze (bar ja tako mislim) . Pitanje ostaje otvoreno , a ja pocinjem da se snalazim na neki nacin !!! Hvala. [7m [5m Erol [0m
clipper.202 banex, -> #196, erol
>> Dakle pitanje je : Kako saznati ime indexne datoteke koja je >> aktivna (otvorena ) uz tekucu DBF datoteku ? Ako imaš podatak kako se zovu indexi uz koju datoteku, tada si na konju. Postoji mogućnost da naredba SET INDEX TO koristi i mem promenjljive. Dakle nešto u ovom fazonu... index1 = "prvi_ntx" index2 = "drugi_ntx" SELE 1 USE baza prvi_ntx, drugi_ntx INDEX ON <expresion> TO <novi_ntx> SET INDEX TO (index1), (index2), novi_ntx Nisam našao funkciju koja može da vrati ime indexa ako je on odranije nepoznat. CU! -BANE-
clipper.203 nbatocanin,
Što se tiče TBrowsa, ima previše stvari za ispričati. Pogledaj tekst u "Računarima" o objektima, a imaš sve što ti treba i u NG-u za Clipper. Ceo slog možeš obojiti sa ColorRect - pogledaj NG za objekte.
clipper.204 pedjad,
HPPozdrav svim Clipper-asima. Tek sam od nedavno poceo da se aktivno bavim sa Clipperom, ali ima tu jos nekih stvarcica koje mi nisu jasne. Npr. zasto mi javlja kod naredbe REPLACE - Type mismatch. To mi se desava kada sam mu stavio 22 polja za replace , dok mi je sa tri radio OK, pa me zanima kako da to resim i kako bih mogao da ako imam recimo 30 polja za unos podataka to da izvedem. Inace se nemojte smejati ako sam nesto 'lupio' :). Eto toliko za pocetak, a kasnije ce biti sve vise i vise i vise... pitanja od mene.:)
clipper.205 nbatocanin,
čali mi se drug da ima problema sa Clipper-om S'87 u mreži: mada je, kako kaže, preduzeo sve potrebne mere, vrlo često mu program iskače sa "Index File corrupted". Ima li neko slična iskustva?
clipper.206 dejanr, -> #205, nbatocanin
>> mada je, kako kaže, preduzeo sve potrebne mere, vrlo često mu >> program iskače sa "Index File corrupted". Ima li neko slična iskustva? Imam, do neba! Na Novell-u 2.12 bilo mnogo, na Novell-u 2.15 jako malo. Nikad se nije dešavalo ako je korišćeno USE...EXCLUSIVE.
clipper.207 draganf, -> #204, pedjad
Najvjerovatnije si pokušao u nimeričko polje upisati karakter string ili obratno. A što se tiče toga da li nešto "lupio" svi smo mi imali svojih bisera, prema tome samo napred sa problemima Dragan