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.512 dpaun, -> #504, dejanr
>> zašto ne koristiš klauzulu VALID (ili RANGE ako je polje numeričko)? Koristi(m) se. Ali je stvar u ideji, karakterističnoj za sluhistički stil u programiranju. Šteta je da se ne objavi svoj Clipper rodbini! Naravno, nisam ni očekivao Nobelovu ( a ni noblesovu) nagradu za nju. dPaun++
clipper.513 andrejl, -> #507, vili
>│ Da li to vazi samo za ovu funkciju ili ne, that's the >│ question! Baš si se trudio ! Hvala ! Bojim se da sve to zavisi i od broja promenljivih koje koristi procedura i da tu još treba pipati. Na žalost, kad sam ostavio to pitanje ostao sam i bez vremena. Stalno nešto izbije :(, pa nisam stigao da puno petljam. bye, andrejl
clipper.514 ndragan, -> #503, dpaun
/ INDEX ON RECNO() TO IndFajl Indeksni pojam mož da bude svašta: index on 1 to indfajl će isto lepo da uradi. žak se dobija i isti redosled kao sa Recno(), samo će Seek 1 da uvek ode na prvi slog.
clipper.515 ndragan, -> #512, dpaun
/ Koristi(m) se. Ali je stvar u ideji, karakterističnoj za sluhistički Mnogo mi je ličilo na starostavnu kobol logiku iz doba paketnog unosa, odložene obrade i još odloženije povratne informacije. To je bataljeno - prihvaćena je bolja logika da se greška ispravlja na licu mesta, onog trenutka kad se napravi.
clipper.516 zkrstic,
Ajd jedno maaalo konstruktivno pitanjce :)) Ko ima nandef.h i extend.h, al' prerađene da rade sa Borlandovim C-ovima, sve jedno koja varijanta, TC, BC... To je bar, koliko ja znam jedini problem, da bih vezao TC i Cli- pper 87. Originalni hederi iz clippera 87 rade, na žalost, samo sa MSC-om :(( Obzirom da su mali fajlići, mogao bi ovdi da okači, kopirajt ne kršimo ;)) jel' nisam ja kriv Nantucketu što im niko nije rekao da Je Borland firma koja ne pravi usisivače i ostalu belu tehniku, veš nešto sasvim drugo ;)))) Pozdrav, zkr
clipper.517 squsovac,
Hi kliperaši. Imam jedan problem koji sam rešio na prilično nezgrapan način, pa me interesuje ima li neko kakvu dobru ideju ili iskustvo. Naime pretpostavimo da imam bazu tipa: A - Char(20) B - Num(5.2) C - Char(20) D - Num(5.2) I sada bi trebalo prikazati/štampšati/menjati/brisati ili sl. podatke koji zadovoljavaju prilično komplikovan splet uslova koje korisnik zadaje. I tu ne bi bilo problema kada bi komplet uslova bio na primer: A = "Petrovic" .AND. B>20 itd međutim u kompletu uslova može da se desi i na primer A=C .AND. B>35 ili sl. Uslove naravno ne mogu zadati u početku, jer ih valja računati za svaki slog (a u bazu je unešeno već podataka za oko 15.000 ljudi. Dakle, postoji li u kliperu nešto slično onom delu assista iz dB3+ ili je uslove obavezno rešavati ovako pešački preko makroa kako sam ja to uradio. Problem je što baza ima oko 20 polja a za svako od njih može korisnik dati po jedan uslov (teoretski). Zahvaljujem unapred na korisnim savetima SQ
clipper.518 dpaun, -> #515, ndragan
>> Mnogo mi je ličilo na starostavnu (...) logiku (...) >> prihvaćena je bolja logika da se greška ispravlja na licu mesta Rekoh ja braćo da nije stvar u logici, ali nemam kome. Ako, samo da ste Vi meni živi, zdravi i Clipperavi. dPaun()
clipper.519 dpaun,
Clipper rodbino, Ponavljam jedno pitanje od ranije ... 1. Kako da se izvrši autorska registracija programa ? (žuo sam o autorskoj agenciji. Ako je tačno, gde, šta, kad, kako, koliko. Ako niko od braće nije to činio do sada, neka se raspita. Baš mi je hitno.) ... i dodajem dva nova: 2. Koliko veliki .Exe program može da napravi Clp501 ? (Ako teoretski nije ograničen, šta kaže praksa.) 3. Pošto volim da mi je listing piciš-piciš, naredbe koje me nerviraju (na primer, SET CURSOR ON/OFF) zamenjujem domaćim funkcijama (DajK(), SkloniK()) koje ih pozivaju. Zanima me da li, sem estetskog zadovoljstva, ovi surogati rade i neku pakost koju ja zasad ne vidim! dPaun()
clipper.520 ppekovic, -> #516, zkrstic
>> Ko ima nandef.h i extend.h, al' prerađene da rade sa >> Borlandovim C-ovima, sve jedno koja varijanta, TC, BC... To >> je bar, koliko ja znam jedini problem, da bih vezao TC i Cli- >> pper 87. Originalni hederi iz clippera 87 rade, na žalost, >> samo sa MSC-om :(( I ako središ hedere, zaboravi sa TC-om sve što pomisli na "plivajuće zareze" jerbo se način rada sa istim razlikuje u odnosu na msc ( pa samim tim i na clipper, jer je clipper pisan u msc-u). Nezgodno je što se tc grafika oslanja na gore pomenute "zareze". Paya
clipper.521 ppekovic, -> #517, squsovac
>> I sada bi trebalo prikazati/štampšati/menjati/brisati ili sl. podatke koji >> zadovoljavaju prilično komplikovan splet uslova koje korisnik zadaje. I tu ne >> bi bilo problema kada bi komplet uslova bio na primer: >> A = "Petrovic" .AND. B>20 itd Rešenje ovog problema preko makroa je mnogo klimava stvar jer je ograničena kako dužina makro stringa tako i broj uslova (neznam na koliko). Ta stvar je i mene mučila dugo, pa sam (vkr i ja) rešio to tako što ubaciš još jedno polje u bazu (nek se zove recimo tag). Onda ti lepo pustiš korisnika da unese uslov, pa odmah po unosu setuješ tab polje za sve slogove koji zadovoljavaju taj uslov. Kad unese sledeći, ponoviš operaciju. Dodaš mu još i opciju da može da izvrši i deselekciju, znači da u zavisnosti od određenog uslova skine tag-ove sa onih slogova koji zadovoljavaju uslov i dobio si sasvim upotrebljiv sistem za selekciju. Još dodaš da može da tag-uje jedan po jedan slog (strelicama pa space i sl.) i gotovo. Paya
clipper.522 nbatocanin, -> #515, ndragan
Ako promenljive koje se unose imaju neku složeniju zavisnost, kontrola se ne može obaviti VALID i WHEN opcijama, već mora tek posle unosa svih.
clipper.523 squsovac, -> #521, ppekovic
Hvala za savet. Nešto sam se stalno lomio oko toga kako najbolje da rešim problem, i ideju sa poljem sam već bio odbacio iz jednostavnog razloga što mi nije palo na pamet da odmah posle prvog uslova, dakle pre zadatog i/ili pretrči po bazi i taguje bitne slogove. Stalno mi se činilo da bi to ostajalo na kraju. Ovako će, siguran sam funkcionisati.
clipper.524 dejanr, -> #519, dpaun
>> 1. Kako da se izvrši autorska registracija programa ? >> (žuo sam o autorskoj agenciji. Ako je tačno, gde, >> šta, kad, kako, koliko. Ovo je jedno od češćih pitanja na Sezamu. Ukratko, adresa Autorske agencije je Majke Jevrosime 38, Beograd, tel. 325-997. Najbolje se, dakle, raspitaj kod njih - mislim da treba listing programa i neki opis.
clipper.525 vkrstonosic, -> #519, dpaun
>> 2. Koliko veliki .Exe program može da napravi Clp501 ? >> (Ako teoretski nije ograničen, šta kaže praksa.) Ja sam video program od oko 900 K, moj rekord za sada je samo 500K :))
clipper.526 andrejl, -> #519, dpaun
>│ činio do sada, neka se raspita. Baš mi je hitno.) E, čini mi se da sam ovo već negde pisao, ali može opet. Moj drug ih je zvao (adresu i brojmogu da tražim od njega) i saznao da: - plaća se registracija (1000 din pre 2,5 meseca) - treba predati listing ili disketu - takođe vrše nešto u smislu distribucije (posreduju pri prodaji, koliko sam raumeo) i tada uzimaju nekih 15% - rade samo pre podne, zvali smo jedno popodne i javila se spremačica, a moj drug već počeo da joj objašnjava...;) - nakon registracije zaduženi su da štite autorska prava, a to se "isplati" kada ti neko ćorne program, a ti ga uhvatiš. U Zr je bio slučaj odštete u vidu laptop-a :) Imam i ja par pitanja. čeleo bih da plaćam porez ;). Tj. da li mogu da imam žiro račun bez firme i da se sve vodi u vidu autorskih honorara i da li je tačno da je tada porez "svega" 15%. U nekom spisku poreskih kategorija, nešto najsličnije onome što želim je kategorija gde se pominje i "emajliranje lonaca" i sl. bye, andrejl
clipper.527 dpaun,
Clipper rode rođeni! Može li se .and. kako rešiti sledeći problem, na temu memo: Uvod: tekst koji obrađuje MEMOEDIT() može se snimiti na disk kao običan DOS fajl, uz pomoć funkcije MEMOWRITE(), ili preusmeravanjem preko SET ALTERNATE. MEMOWRITE() prenosi i odgovarajuće meke markere za forma- tizaciju teksta, dok drugi način - da ga sada ne obrazlažem - slaže linije kao švajs-aparat metalne šipke, sve sa tvrdim markerom na krajevima. Drugi način sam primoran da koristim kad želim da tekstove više memo-zapisa snimim u jedan tekst-fajl na disku. Taj proces ima, pored rečenog nedostatka, još i sporost koja se povećava sa poveća- vanjem veličine memo-tekstova. Pitanje: pošto je očigledno rešenje ovog problema u tome da se natera MEMOWRITE() da izabrane memo-tekstove upisuje u jedan DOS fajl, molim stariju Clp braću da stave prst na čelo i smisle način kako da se to izvede. I nemoj opet da mi se svi umusite čim spomenem Memo! Ajd' sad svako na svoj zadatak. dPaun--
clipper.528 kanda, -> #527, dpaun
>> Pitanje: pošto je očigledno rešenje ovog problema u tome da se natera >> MEMOWRITE() da izabrane memo-tekstove upisuje u jedan DOS fajl, molim >> stariju Clp braću da stave prst na čelo i smisle način kako da se >> to izvede. oj dpaune, nisam bas najbolje shvatio u cemu je problem, al da ipak probam... u principu, memo polja se uglavnom ponasaju kao stringovi, sto ce reci da mogu 'ladno' da se npr. upisu u fajl sa fwrite(), da moze po njima da se dzara sa strtran() itd. otprilike: h=fcreate('memo.txt') // kreiras fajl c=baza->memopolje // uzmes memo polje u string fwrite(h,c) // pa to upises u fajl ... // pa radis jos mnoge i korisne radnje... fclose(c) // zatvoris fajl Ostaje problem onih markera. Tamo gde je memoedit() 'prelomila' red, upisuje se chr(141) + chr(10). Tamo gde je korisnik to ucinio, tj. pritisnuo ENTER, upisuje se CRLF, znaci chr(13) + chr(10). Dakle, ako hoces da kad memo polje ubacis u fajl, tamo izgleda isto kao i na ekranu, ti zamenis sve chr(141)+chr(10) sa chr(13)+chr(10) ; bas to radi funkcija hardcr() - ubacis c=hardcr(c) pre fwrite() i to je to. Ako pak hoces da to moze da se ucita u tekst procesor, pa ti to sto je memoedit() prelomila redove smeta, ti izbacis sve te chr(141) + chr(10), moze sa c=strtran(c, chr(141) + chr(13), '') pre fwrite(). Inace, onaj chr(141) se u literaturi zove 'soft carriage return', za razliku od chr(13) koji je naravno 'hard carriage return'
clipper.529 dvokshi, -> #527, dpaun
Naprimer ovako : ******************** local hand use baza hand=fcreate('gomila.txt',0) if ferror()<>0 ?'File create error : ',ferror() else do while !eof() fwrite(hand, memo_field) skip enddo fclose(hand) endif ***************** Samo pazi da ti memo_field završava sa CR-LF (ili ga dodaj sam), inače sledeći memo_field nastavlja u istoj liniji. Još možes dodati kontrolu greške FWRITE -a, itd.
clipper.530 nbatocanin, -> #519, dpaun
> 2. Koliko veliki .Exe program može da napravi Clp501 ? > (Ako teoretski nije ograničen, šta kaže praksa.) Ja sam pravio programe oko 1MB, ladno radi na 512K memorije, još mogu i dibager da startujem. U stvari, sve zavisi od velicine dela koji ide u osnovnu memoriju: razne tabele, fiksni overleji, itd. U principu sporo raste, ali retko ide ispod 300-400K. > 3. Pošto volim da mi je listing piciš-piciš, naredbe > koje me nerviraju (na primer, SET CURSOR ON/OFF) > zamenjujem domaćim funkcijama (DajK(), SkloniK()) > koje ih pozivaju. Zanima me da li, sem estetskog > zadovoljstva, ovi surogati rade i neku pakost koju > ja zasad ne vidim! SET CURSOR pretprocesor prevodi u SetCursor() funkciju, pa tvoja funkcija poziva funkciju, što je apsolutno neškodljivo, osim nerviranja steka i procesora.
clipper.531 nbatocanin, -> #527, dpaun
> Pitanje: pošto je očigledno rešenje ovog problema u tome > da se natera MEMOWRITE() da izabrane memo-tekstove upisuje > u jedan DOS fajl, molim stariju Clp braću da stave prst na > čelo i smisle način kako da se to izvede. U čemu je problem? HARDCR() lepo zamenjuje soft-return oznake sa hard-return, a memo polja lepo "sabereš" kao stringove, pa sve zajedno upišeš u datoteku pomoću MemoWrite().
clipper.532 vkrstonosic, -> #528, kanda
>> Ostaje problem onih markera. Tamo gde je memoedit() 'prelomila' red, >> upisuje se chr(141) + chr(10). Tamo gde je korisnik to ucinio, tj. Probaj MEMOTRAN()
clipper.533 ndragan, -> #522, nbatocanin
/ kontrola se ne može obaviti VALID i WHEN opcijama, već mora tek posle / unosa svih. Svakako, što propusti Mali Radojica dočekuje Starina Novače. I jedno i drugo. Hteo sam kasti da ako se kontroliše _samo_ naknadno, to izaziva popriličnu nervozu kod operatera, jer češće mora da se vraća dooosta nazad da ispravlja itd. Nervozan operater pravi nove greške, i izmišlja nove tipove grešaka. Zato mislim da je najbolje presresti grešku onog trenutka kad može da se uoči - što pre to bolje. Bue_ Ndragan
clipper.534 dpaun, -> #527, dpaun
>> >> Clipper rode rođeni! Odgovor na 5.528, 5.532, 5.529 Hvala, braćo! Prosto mi bio zaribao centar za Clipper. Primenio sam, dakle, rešenje sa funkcijama niskog nivoa, FCREATE(),FWRITE(),FCLOSE(). Pošto sam želeo da grupišem niz memo-polja u jedan DOS fajl, a ispred svakog da ide, najpre, sadržaj nekog drugog polja baze, i taj sadržaj sam takođe pisao sa FWRITE(). Prazne redove, neophodne da bi se izbeglo "slepljivanje" tekstova, dodavao sam ovako: s := spac(xx) + chr(13) + chr(10) fwrite(dos_file, s) Probao sam da sa ovom funkcijom pozovem moju funkciju, radi: fwrite(dos_file,moja_func()) Inače, dopunske operacije sa mekim i tvrdim markerima nisu potrebne. Tekst je na disku sasvim u redu i raspored markera je normalan. Važno je još i ovo: dalja obrada teksta je idealna jedino u WordStaru (zna se i zašto). Probao sam, na kratko, WP501 i kada se unosi preko F5 javlja da format nije kompatibilan! Išao sam preko konverzije (kao da je tekst WS3.x) i uspeva, ali se u ovom slučaju gube tabulatori i tekst se sav slepi za levu marginu. Osvrt na 5.531 (ideja brata nBatocanina) >> memo polja lepo "sabereš" kao stringove, pa sve >> zajedno upišeš u datoteku pomoću MemoWrite(). Memo-polje može biti string do 64 K. Nisam smeo da se upustim u operacionalzaciju ove ideje jer ne znam kako bi sve funkcionisalo, obzirom na memoriju. Zamislimo da je svaki memo maksimalan i da treba "sabrati" tridesetak takvih slogova, pa tek onda zapisati na disk?! Pošto se gore navedeno rešenje pokazalo idealnim, ovu mogućnost sam samo "primio k znanju". Hvala svima. dPaun(.T.)
clipper.535 dpaun, -> #533, ndragan
>> / kontrola se ne može obaviti VALID i WHEN opcijama, već mora tek >> posle / unosa svih. >> >> ako se kontroliše _samo_ naknadno, to izaziva popriličnu nervozu >> kod operatera, jer češće mora da se vraća dooosta nazad da ispravlja itd. Pošto sam ja ovo započeo, red je i da probam da rezimiram /a probao samo i obe varijante/: 1. Clipper, videli smo, ima mogućnosti za oba načina kontrole unosa. 2. Koji će se primeniti, zavisi od konkretne situacije: - od veličine (broja polja) maske i složenosti unosa (odakle su i kakvi su podaci koji se upisuju); - od nerava i naravi "operatera" (ergonomija); - od vrste i složenosti procesa kontrole. - i ko zna čega još /na primer: meni u trenutnoj kontroli veoma smeta što se PROVERA vrši svakom prilikom kada se prolazi kroz polje! Kada se kontrola sastoji od, npr, provere kako se uneti podatak odnosi prema nekoj drugoj bazi - koja raste li raste, a i treba da raste - onda je vožnja gore dole po masci neprijatna jer će stalno da "zapinje" na pojedinim mestima! / 3. Rešenje je, izgleda, u "kombinovanom" načinu kontrole. Ideja koju sam izneo - vraćanje na određeno mesto maske preko KEYBOARDA - treba operatera da oslobodi straha da će morati da se vraća *doosta* nazad ... A da posle izmene na određenoj "tački" neće morati da ide *doosta* napred, podsetimo ga da ima CtrlW ... Klanjam se, dPaun(), niži Clipper činovnik iz unutrašnjosti.
clipper.536 ndragan, -> #535, dpaun
/ veoma smeta što se PROVERA vrši svakom prilikom kada se Ništa te ne sprečava da u Valid funkciji izdvojiš slučajeve koje nećeš kontrolisati i ovo izbegneš; takođe postoje načini da se ustanovi da li je polje menjano ili nije; ako nije, opet preskačeš kontrolu. Time se izbegava problem na koji se žališ. / KEYBOARDA - treba operatera da oslobodi straha da će morati da FoxPro ima lepši način - Valid može da vrati rezultat, naprimer, -5, i to znači da se kursor parkira pet polja pre testiranog polja. Ako takvu kontrolu staviš na poslednje polje... dobio si to isto, osim što izbegavaš mogućnost da unutar onog Keyb uleti nešto što je operater u brzini ugurao u tastaturu dok je tvoja procedura radila... / dPaun(), niži Clipper činovnik iz unutrašnjosti. Bue_ Ndragan, zalupati foksovac, ovdašnji
clipper.537 dpaun,
Clipper braćo, Seća li se još ko DOS-a 3.20? Bio sam u prilici da postavim program jednom pobratimu koji ima XT mašinu sa tom verzijom DOS-a i 512 K RAM-a. Programu je potrebno preko promenljive okruženja povećati broj otvorenih faj- lova. U Config.sys je postavljeno files=35, a u Autoexec.bat do- data linija set clipper=f35 (što je, inače, za dotični program provereno na 10-ak AT mašina). Na žalost, na mestu gde se otvara oko 30-ak što baza što indeksa - stane i "prijavi" da zbog DOS greške 4 ne može da otvori taj-i-taj dbf ili ntx fajl (zavisi koji mu se nađe na spisku "prekoračenja"). DOS greška broj 4, nesumnji- vo, ukazuje da nema dovoljno "bafera" za toliki broj fajlova! Pošto se pomenuta situacija razlikuje od drugih jedino po verziji DOS-a, zaključio sam da bi problem mogao da bude u tome. Poveća- vao sam brojku i u Config-u i u Autoexec-u /do 101 i nazad/, ali komp ni da trepne. Prema iskustvu i uputstvu, kada pređe dara meru, DOS treba da se pobuni (nešto kao out enviroment ...); ovaj ni to nije hteo. Pa se pitam, je li to falinka te fosilne verzije 3.20, ili je neki drugi DOS đavo u pitanju. Ako neko od Clipper501 rodbine ima slična iskustva, neka šarne odgovor kako ga je rešio. Lično, ovde ću pokušati najpre sa nekom novijom DOS verzijom. dPaun(v49)
clipper.538 pjankovic, -> #537, dpaun
Treba da stoji velikim slovima: SET CLIPPER=F35. Pedja
clipper.539 ndragan, -> #537, dpaun
/ ima XT mašinu sa tom verzijom DOS-a i 512 K RAM-a. Programu je Neka ga pokloni nekoj školi ili nek ga preuzme direktorova sekretarica da vodi rokovnik. I... da, može i za tetris. žemu inače može da služi ih te? Bue_ Ndragan
clipper.540 dpaun, -> #539, ndragan
>> / ima XT mašinu >> >> Neka ga pokloni nekoj školi ili Ma, čovek je na njemu završio fakultet, a upravo ovih dana je trebalo da magistrira u jednoj stranoj državi, ali su ga blokirali... PS. A kartica CGA! A žena čangrizava ... dPaun(AT)
clipper.541 wizard, -> #539, ndragan
>> žemu inače može da služi ih te? Za Sezam. :) <<nenad<<
clipper.542 dpaun, -> #538, pjankovic
>> Treba da stoji velikim slovima: SET CLIPPER=F35. Probao sam i ne ide! Mora da bude štos u nečem drugom! Pomagajte, braćo! dPaun(---
clipper.543 kanda,
Pitanje u vezi extend sistema. Da li je moguce _par?? funkcijama dohvatiti elemente 'ugnjezdjenog' niza ? Recimo, imam C funkciju : ------------ void pascal yo(void){ _retni(_parni(1, 3, 2)); /* treba da vrati a[3][2] */ } ------------ pa je zovem iz klipera : ------------ a := {1, 2, {31, 32}} ? yo(a) // trebalo bi da vrati 32, a vraca 0 ? ------------ U knjizi 'Clipper 5' od Ricka Spencea, str. 379 pise da je ovo MOGUCE, al meni nesto ne polazi za rukom. Jel zna neko u cemu je stos?
clipper.544 nimi,
Da li je principijelno ispravno ili ne reci da je prvi prenos niza a1 u f-ju ubaci() po vrednosti a drugi po referenci. Promenom mesta poziva dobija se isto. Proc Main() LOCAL a1:={"Zut","Plav","Crven"} Ubaci(a1) Aeval(a1,{|f| qout(f)}) //izdaje :Zut Misko Plav ? "Posle reference" ? Ubaci(@a1) Aeval(a1,{|f| qout(f)}) //izdaje :Zut Misko Misko RETURN FUNCTION Ubaci(arr) Ains(Arr,2) Arr[2]:="Misko" RETURN NIL
clipper.545 jpiri, -> #542, dpaun
>> Probao sam i ne ide! Mora da bude stos u necem drugom! >> Pomagajte, braco! A jesi probao da zamenis DOS? Barem sa verzijom 3.30? (ako se ne varam tek 3.30 ima mogucnost 255 otvorenih datoteka)
clipper.546 zkrstic, -> #545, jpiri
>>> Probao sam i ne ide! Mora da bude stos u necem drugom! > A jesi probao da zamenis DOS? Barem sa verzijom 3.30? > (ako se ne varam tek 3.30 ima mogucnost 255 otvorenih datoteka) Sa 105% ti garantujem, radi na dosu, >= 3.30 Juče sam nešto prčko po knjizi, u vezi nekih ograničenja, pa baš videh i taj štos. Pozdrav, zkr
clipper.547 nbatocanin, -> #544, nimi
Niz se *uvek* prenosi kao pokazivač na prvi element, tako da pojedinačna izmena elemenata uvek menja i originalni niz. To znači, ako se u proceduri nađe naredba X[3] := 123, obavezno se menja i originalni niz, bez obzira na način prenosa - adresa niza i kopija adrese niza pokazuju na jedan isti niz: ... x := {1, 2, 3} pp (x) // {1, 22, 3} x := {1, 2, 3} X ──────────>┌> {1, 2, 3} pp (@x) // {1, 22, 3} │ ... │ │ proc pp (niz) niz──────────┘ niz[2] := 22 return Ako se, međutim, menja pokazivač na niz, onda ima razlike: ... x := {1, 2, 3} pp (x) // {1, 2, 3} X ──────────> {1, 2, 3} pp (@x) // 123 ... proc pp (niz) niz─────────> 123 niz := 123 return Jer se u drugom slučaju menja originalna vrednost.
clipper.548 ndragan, -> #542, dpaun
/>> Treba da stoji velikim slovima: SET CLIPPER=F35. / Pomagajte, braćo! A malim slovima?
clipper.549 dpaun, -> #546, zkrstic
>> Sa 105% ti garantujem, radi na dosu, >= 3.30 >> >> Juče sam nešto prčko po knjizi, u vezi nekih ograničenja, pa baš >> videh i taj štos. >> >> Pozdrav, zkr Pretpostavljam da si u kucanju ispustio caku koju si našao u knjizi. Budi ljubazan pa je pošalji! dPaun
clipper.550 dpaun, -> #548, ndragan
>> />> Treba da stoji velikim slovima: SET CLIPPER=F35. >> / Pomagajte, braćo! >> >> A malim slovima? Prvo je bilo otkucano malim slovima, nije išlo; probao sam velikim slovima - ne ide! Amaaaan ... dPaun
clipper.551 zkrstic, -> #549, dpaun
> Pretpostavljam da si u kucanju ispustio caku koju si našao u knjizi. > Budi ljubazan pa je pošalji! Nisam, govorili smo o SET CLIPPER=F050 Ovo lepo radi na DOSU 3.3 i većem, za niže, ne važi :( zkr
clipper.552 ndragan, -> #550, dpaun
/ Prvo je bilo otkucano malim slovima, nije išlo; probao sam velikim / slovima - ne ide! Amaaaan ... Ostao sam bez ideja ;(. Poslednji pokušaj: grčka slova, možda?
clipper.553 djoskovski, -> #550, dpaun
Zdravo, Pisem on-line , Valjda ce biti dobro set CLIPPER= F35 na pr. nije isto sto i set CLIPPER = F35 probajte oba dva i vedecete SET -om da postoje dve Env-var. za vise od standardnih 15 Fileova MORA se opotrebiti SET CLIPPER= ...... Znaci rec CLIPPER mora biti slepljena znakom za = sa druge strane nije bitno. Inace datoteke se broje SVE RADNE ZONE U UPOTREBI+SVI OTVORENI INDEX FILEOVI+5(COM,PRN,CON,..)+2 (ovo zadnje za svaki slucaj) ovo bi trebalo da radi 100% ako je u CONFIG.SYS broj >= i ako programu ostane dovoljno memorijeHHKKM za rad. Pozdrav, dJoskovski
clipper.554 nopsenica, -> #498, andrejl
Jedino pomocu == se mogu porediti objekti. Objekti se zaista mogu porediti jedino pomocu ==, ne radi cak ni !=. Nenad
clipper.555 nopsenica,
Zasto Clipper 5.01 uz DOS 5.0 nekada (ne uvek!) pri linkovanju programa sa PLL pravi probleme? Problem se manifestuje kod startovanja programa, jer se program buni da ne valja struktura loadable file-a (ne zna se kojeg). Ponekad pomogne ponovo linkovanje PLL-a ali ne uvek. Help! Nenad
clipper.556 dpaun, -> #551, zkrstic
>> Ovo lepo radi na DOSU 3.3 i većem, za niže, ne važi :( >> žžžžžžžžžžžžžžžž Problem je upravo u tome: da se natera DOS manji od 3.3 da otvori više od tuce fajlova. Očigledno, preko FILES-a ne može. Seća li se neko FCB-a? Nije li tu odgovor? dPaun
clipper.557 bora, -> #548, ndragan
Ako se dobro secam pocetka ove diskusije odgovor je sledeći: Tek počevši od DOS-a 3.30 moguće je otvoriti istovremeno više od 15 (FILES), tako da naredba FILES=xx i SET CLIPPER=Fxx nemaju smisla za DOS verziju 3.20 i prethodne. Uzeti u obzir da je EKRAN jedna arhiva, ŠTAMPAž druga,... tako da samom korisniku ostaje samo desetak za rad (u KLIPERU SE BROJE SVE OTVORENE ARHIVE I *.DBF i *.NTX). Jedino rešenje: Reducirati program, ili što je normalnije promeniti operativni sistem. Pozdrav Bora
clipper.558 kzoran,
Ljudi, kako se "upotrebljava" Nanfor toolkit? Instalacija (kompajliranje i formiranje biblioteke) mi ne daje nikakve rezultate, iako sam pokušao sve što mi je palo na pamet. Ne mogu da iskoristim ni gotov .LIB fajl koji se nalazi u arhivi. Na svakom mestu u Clipper programu na kom izvršim poziv neke funkcije iz nanfor.lib, linker javlja "unresolved external". O čemu se radi? Pozdrav, Zoran.
clipper.559 kanda, -> #556, dpaun
>> Problem je upravo u tome: da se natera DOS manji od 3.3 da otvori >> više od tuce fajlova. Očigledno, preko FILES-a ne može. Seća li se >> neko FCB-a? Nije li tu odgovor? Verovatno jeste... ako mozes da prepravis Clipper da umesto handle koristi FCB sistem :) Cemu toliko insistiranje na nekom bajatom DOS-u ?
clipper.560 kanda, -> #558, kzoran
>> Ljudi, kako se "upotrebljava" Nanfor toolkit? Instalacija >> (kompajliranje i formiranje biblioteke) mi ne daje nikakve rezultate, >> iako sam pokušao sve što mi je palo na pamet. Ne mogu da iskoristim >> ni gotov .LIB fajl koji se nalazi u arhivi. Na svakom mestu u Clipper >> programu na kom izvršim poziv neke funkcije iz nanfor.lib, linker >> javlja "unresolved external". O čemu se radi? Hm, izvini ako je moje pitanje glupo... jesi li povezao biblioteku? 'RTLINK FILE ime LIB nanfor'.
clipper.561 nbatocanin, -> #558, kzoran
> Ljudi, kako se "upotrebljava" Nanfor toolkit? Kako linkuješ?
clipper.562 kzoran, -> #560, kanda
>> Hm, izvini ako je moje pitanje glupo... jesi li povezao biblioteku? >> 'RTLINK FILE ime LIB nanfor'. Ma, nije glupo. Mogla je da bude glupost samo sa moje strane, ali, evo, sve to je sacekalo dva dana, sednem ponovo da instaliram taj nanfor (ne znam ni sam zasto na tome insistiram - verovatno ne zbgo samog Clipper-a koliko da otkrijem u cemu gresim) i opet ista stvar. Sve sam pokusavao, cak i kompaj- liranje i linkovanje samo pojedinih .obj fajlova koje sam zeleo da isprobam, ali bez rezultata. Jedino sto cu jos pokusati je da ponovo preuzmem sa Sezama toolkit; postoji mogucnost da mi je neki od fajlova ostecen, jer vec nedeljama stoje raspa- kovani u jednom poddirektoriju u koji svasta trpam, dearhiviram, instaliram i sl. U svakom slucaju, hvala na savetu. Pozdrav, Zoran.
clipper.563 kzoran, -> #561, nbatocanin
>> Kako linkujes? Prvo sam poceo propisanom sintaksom "rtlink file imeobj library nanfor", sa i bez ekstenzije, a kad sam video da posle par varijacija nista ne pomaze, poceo sam da lupam. Prvo sam umesto imena biblioteke navodio listu objektnih fajlova koji su mi trebali, opet sa i bez ekstenzije. Zatim sam poceo da linkujem MS linkerima (iz DOS-a 5.0, MSC6, MASM 5.1) - bez rezultata. Sledece je bilo igranje sa env. varijablama OBJ i LIB, pa ponovna instalacija toolkita sa putanjama koje su navedene u nanfor.rmk fajlu, misleci da sam mozda kod konfigurisanja u njima nesto zgresio - opet nista. Na kraju sam posumnjao na ispravnost fajlova i mogucu gresku prilikom prenosa sa Sezama - nije ni to. Vise me gotovo i ne interesuje nanfor.lib :)); hocu da se uverim da nisam za generalnu. Ili mozda jesam ... Pada li tebi sta na pamet? Evo sta mi linker prijavljuje (nije "unresolved external", kako sam to u prvoj poruci napisao - to mi je valjda javljao MS linker): ************************************************************************* .RTLink for Clipper Dynamic Overlay Linker / Pre-Linker Version 3.13 (C) Copyright Pocket Soft Inc., 1988-1991. All Rights Reserved. UNDEFINED SYMBOL(S) AFTER LIBRARY SEARCH: SYMBOL FIRST REFERENCE ------ --------------- 'FLOPTST' FK.OBJ warning wrt0022: .EXE may not execute properly -- undefined symbols 240K 1 warning message(s) ************************************************************************** Pozdrav, Zoran.
clipper.564 vili, -> #563, kzoran
> > UNDEFINED SYMBOL(S) AFTER LIBRARY SEARCH: > SYMBOL FIRST REFERENCE > ------ --------------- > 'FLOPTST' FK.OBJ > > warning wrt0022: .EXE may not execute properly -- undefined symbols > 240K > 1 warning message(s) Meni ovo vise lici na gresku u programu nego na problem sa 'library'. U 'file'-u FK.PRG imas poziv funkcije (ili procedure) FLOPTST koje nema na vidiku. Vili
clipper.565 ndragan, -> #556, dpaun
/ tuce fajlova. Očigledno, preko FILES-a ne može. Seća li se neko FCB-a? Fcbs = 120,0 Ovo smo morali da ubacujemo u config.sys kod RPTI mreže do verzije 1.41; od 1.42 nadalje ne treba. Pošto ta mreža zahteva instaliran SHARE, moguće da ni ta linija sa Fcbs neće pomoći bez njega. Prvi broj je maksimalni broj istovremeno otvorenih fajlova, a drugi je valjda za minimum koji se mora sačuvati u otvorenom stanju (nikad mi nije bilo jasno zašto, znam samo da smo uvek stavljali nulu, a za prvi broj stavljali od 100 do 200). Pomogao?
clipper.566 dpaun, -> #559, kanda
>> Cemu toliko insistiranje na nekom bajatom DOS-u ? Nisam primetio da je *toliko*, verovatno. dPaun(žovekSačivcima++)
clipper.567 vili, -> #543, kanda
> void pascal yo(void){ > _retni(_parni(1, 3, 2)); /* treba da vrati a[3][2] */ > } Obzirom da _parni() prihvata samo dva parametra ovo gore sigurno nece da radi. U tom smislu _parni(1,3) bi trebao da bude pointer na vektor {31,32} pa bi moglo mozda nesto ovako: void pascal yo(){ int *s; s= _parni(1,3); _retni(s[1]); } ???????????? Vili
clipper.568 kanda, -> #563, kzoran
>> UNDEFINED SYMBOL(S) AFTER LIBRARY SEARCH: >> SYMBOL FIRST REFERENCE >> ------ --------------- >> 'FLOPTST' FK.OBJ Probaj da u sorsu napises FT_FLOPTST umesto FLOPTST, verovatno je u tome problem - sve rutine iz NANFOR biblioteke pocinju sa FT_.
clipper.569 kanda, -> #567, vili
>> Obzirom da _parni() prihvata samo dva parametra ovo gore >> sigurno nece da radi. U tom smislu _parni(1,3) bi trebao >> da bude pointer na vektor {31,32} pa bi moglo mozda >> nesto ovako: >> >> void pascal yo(){ >> int *s; >> s= _parni(1,3); >> _retni(s[1]); >> } >> >> ???????????? Nazalost, ne moze. _parni() vraca int, a ne int*, baska to sto kliperov niz ne lici ni najmanje na niz u C-u. Osim toga, otkud znas da _parni() prihvata samo dva parametra? Deklaracija je int _parni(int,...) sto ce reci 'jedan ili vise parametara' Video sam u jednoj knjizi konstrukcije tipa '_parni(1,5,4)' u smislu '4. element 5. elementa niza koji je doturen kao prvi parametar'.
clipper.570 kzoran, -> #568, kanda
Eureka! To je to! Pa, je li to moguće, ljudi mojiK ljudi moji, je li to moguće??? Kanda, nikad ti ovo neću oprostiti! Pozdrav, Zoran.
clipper.571 vili, -> #567, vili
> void pascal yo(){ > int *s; > s= _parni(1,3); > _retni(s[1]); > } > > ???????????? > Vili Probao sam. Naravno ovako nesto nema teorije da radi. Nisam uspeo ni na neku drugu foru. Vili
clipper.572 nbatocanin, -> #563, kzoran
> UNDEFINED SYMBOL(S) AFTER LIBRARY SEARCH: > SYMBOL FIRST REFERENCE > ------ --------------- > 'FLOPTST' FK.OBJ Aaaah! Pa sve funkcije počinju sa FT_. Znači, pišeš FT_FlopTst (), a ne FlopTst (). Uzgred, ova funkcija ima bug.
clipper.573 toma,
Pomoz Bog junaci ! Trebao bi mi EXTENDA.INC ili DIR.OBJ programcica DIR.ASM koji je okacen o neku poruku ovde. Ako ima neko da nema sta da radi trenutno, molio bih ga da mi to siljne ovde ili na mail. Mlogo vi fala unapred. ▄▄▄▄▄ ▄▄▄▄▄ ▄ ▄ ▄▄▄ █ █ █ █▀▄▀█ █▄▄▄█ ▀ ▀▀▀▀▀ ▀ ▀ ▀ ▀
clipper.574 nbatocanin,
U jednom od ranijih "Računara" je objavljen listing funkcije NextID sa greškom (ID je zamenjeno sa MAX). Ispravan listing glasi: FUNC NextId (FileID) LOCAL ID, fp, Buff // Ako datoteka ne postoji, ID == 1 ID := 1 // Datoteka postoji... IF File (FileID) fp := FOpen (FileID, 0) Buff := Space(5) FRead (fp, @Buff, 5) // Ovde je bila greska ID := Val (Buff) + 1 // Ovde je bila greska FClose (fp) END IF // Svejedno kreiraj novu datoteku i upisi tekuci... fp := FCreate (FileID) FWrite (fp, Str(ID,5,0)) FClose (fp) RETURN ID Zahvaljujem GStojkovicu na upozorenju. Ovo je ujedno i odgovor na njegovo privatno pitanje.
clipper.575 nbatocanin, -> #573, toma
Evo! DIR.ASM i DIR.OBJ. d.zip
clipper.576 nbatocanin,
Ako ste probali da dodate REPEAT petlju kao komandu svojim programima, onda ste primetili da ovo ne pali: #command REPEAT => WHILE .T. #command UNTIL <uslov> => IF <uslov> ; EXIT ; END IF ; END DO E, ali ovo 'oće: #command REPEAT => WHILE .T. #command UNTIL <uslov> => IF <uslov> ; EXIT ; END ; END Razlog je što iza END može doći bilo koji tekst (komentar), pa ako napišete END IF, Clipper sve do kraja reda shvati kao komentar uz END.
clipper.577 dpaun,
Jedan problem na temu WHEN: FUNC Unos() x,y GET polje1 x,y GET polje2 WHEN Daj() read FUNC Daj() // preuzimanje vrednosti za polje2 // iz, na primer, neke baze ... Opis: Kad je kursor na "polje2", pritiskom na AltF10 (recimo) treba da se pređe u Daj(). Pitanje: Kako? Obrazloženje: ja probao u Func Daj() da stavim Inkey(0), pa preko If LastKey()==-39 itd ... Međutim, kad kursor dođe na "polje2" postavljeni uslov "ne pali", već tastere treba pritisnuti na poziciji "polje1", i to tek kao drugi pokušaj (jedanput, na primer, pritisnemo bilo koji taster, pa tek onda AltF10). - Probao još neke varijante i zaključio: bolje da pitam "na Sezam". Vaš odani dPaun()
clipper.578 vili, -> #576, nbatocanin
> Ako ste probali da dodate REPEAT petlju kao komandu svojim > programima, onda ste primetili da ovo ne pali: > ># command REPEAT => WHILE .T. ># command UNTIL <uslov> => IF <uslov> ; EXIT ; END IF ; END DO > > E, ali ovo 'oce: > ># command REPEAT => WHILE .T. ># command UNTIL <uslov> => IF <uslov> ; EXIT ; END ; END > > Razlog je sto iza END moze doci bilo koji tekst (komentar), pa ako > napisete END IF, Clipper sve do kraja reda shvati kao komentar uz > END. Kod mene 'pali' i jedno i drugo. Vili
clipper.579 vili, -> #569, kanda
> Osim toga, otkud znas da _parni() prihvata samo dva parametra? Cit'o sam u knjigama :). > Deklaracija je int _parni(int,...) sto ce reci 'jedan ili vise parametara' I tvoji i moji pokusaji govore (argumentima) da _parni() prima (zasad :)) samo dva parametra. Vrlo sam zainteresovan da vidim resenje kojim se ugnjezdeni vektor prebacije C-u. Da li je neko uspeo u tome? U NG-u postoji objasnjenje kako Clipper prebacije vrednosti i reference C-u (VALUE, OREF i VREF i tome slicno), ali nisam bas najbolje shvatio :(. Ima li neka bistra glava da to pravilno protumaci i uspe da ugnjezdeni vektor prebaci C-u? Vili
clipper.580 dpaun, -> #577, dpaun
>> Međutim, kad kursor dođe na "polje2" >> postavljeni uslov "ne pali", već tastere treba pritisnuti na >> poziciji "polje1", Dok Clipper konzilijum veća kako da se reši problem, da pojasnim ovo jednim citatom iz R. Spence, Clipper 5, s. 314: "Opcija WHEN razlikuje se od VALID u tome što naredba READ izvršava pre naredbe GET." Problem koji sam postavio, mora i ovu osobinu WHEN-a da ima u vidu. žekam. dPaun
clipper.581 vkrstonosic, -> #580, dpaun
>> Dok Clipper konzilijum veca kako da se resi problem, da pojasnim ovo >> jednim citatom iz R. Spence, Clipper 5, s. 314: Zasto ne bi recimo uveo dve funkcije, jednu za when i jednu za valid, koje bi vracale .T., a imale set key K_F10 to p_f10 i set key K_f10 to, pa onda u proceduri p_f10 radi ono sto ti treba.
clipper.582 toma, -> #575, nbatocanin
=> Evo! DIR.ASM i DIR.OBJ. Hvala veliko sto si se potrudio, nije mi bio dobar EXTENDA.INC iz S87. U medjuvremenu sam nabavio Clipper 5.01 (tek sad, sta da radim), i uglavnom je sve OK (za sada) sem jednog problemcica: Sve se odvija na disku D: na tom disku je dir D:\POSAO, koji je u path-u, i u append naredbi autoexec fajla. E sad tu je i direktorijum D:\POSAO\PLATE koji mi sluzi za *.prg i testiranje, posle cega program prebacim u D:\POSAO. Kada pokusam da linkujem fajlove (Rtlink) u dir-u D:\POSAO\PLATE, i ako fajl PLATE.EXE postoji u dir-u D:\POSAO linker javi sledece: error ert0061: Input/output error on output file 'PLATE.EXE' deleting temporary work file 'rt010112.swp' Ako sad izbrisem D:\POSAO\PLATE.EXE i ponovo probam, sve je OK. Sve je ovo, naravno, lako resiti, ali zasto se to desava ? Pozdrav od Tome.
clipper.583 mandrejevic,
Mali komentar na clanak "Tabele na Klipperu" od Nenada Batocanina objavljenom u 83 Racunarima. Posto sam se i ja mucio oko "brljanja ekrana" kada se TB objekat osvezava, mislim da mogu malo da pomognem, a bez uvodenja funkcije Fresh(TB). Naime, ubacivanjem jedne kontrolne sekvence if-end resava se problem u potpunosti: while .t. nKey := 0 while !TB:Stabilize() .and. ((nKey := Inkey()) == 0) ; end if nKey == 0 nKey := Inkey(0) end --> if TB:stable <---------------------------- do case case (nKey == K_ESC) Da ne bih bio mnogo pametan, ovo sam video u nekom od filova koje sam pokupio sa JUBAS -Split (sada verovatno CROBAS) pre rata, pa koga ne mrzi neka gleda. Inace ima dosta primera o TB objektima, anomalijama Clippera i koje cega jos. Sve lepo spakovano u CLIP-CRO.ZIP-u. clip-cro.zip
clipper.584 dpaun, -> #581, vkrstonosic
>> Zasto ne bi recimo uveo dve funkcije, jednu za when i jednu za >> valid, koje bi vracale .T., a imale set key K_F10 to p_f10 i set >> key K_f10 to, pa onda u proceduri p_f10 radi ono sto ti treba. Da mi poživiš dugo, brate, i da te Clipper dobro služi! Niže je rešenje koje sam primenio, podstaknut tvojom idejom o dve procedure. Nadam se da je primer jasan. Kome nije, neka pita. * PROC MaskaUnosa č 13, 2 GET RecKLj1 PICT "č!" WHEN DajREC() č 14, 2 GET RecKLj4 PICT "č!" WHEN SkloniK9() č 15, 2 GET SifIzd PICT "99" WHEN DajKIZD() č 16, 2 GET GodNas PICT "99" WHEN SkloniK9() č 17, 2 GET SifJez PICT "99" WHEN DajKJEZ() č 18, 2 GET SifVla PICT "99" WHEN DajKVLA() č 19, 2 GET BrPRIM PICT "99" WHEN SkloniK9() READ * FUNC DajREC() && Ovo je kao neki MESSAGE uz GET č 24,0 SAY SPAC(77) č 24,1 SAY "Upiši ključnu reč" RETURN .T. * FUNC DajKIZD() SET KEY -9 TO DajIZD č 24,0 SAY "Pritisni F10 za spisak izdavača" RETURN .T. * FUNC DajKJEZ() SET KEY -9 TO DajJEZ č 24,0 SAY "Pritisni F10 za spisak jezika " RETURN .T. * FUNC DajKVLA() SET KEY -9 TO DajVLA č 24,0 SAY "Pritisni F10 za spisak vlasnika" RETURN .T. * FUNC SkloniK9() SET KEY -9 TO č 24,0 SAY SPAC(77) RETURN .T. FUNC DajJEZ() LOCAL sEkr := SAVESCREEN(6,30,16,76),iZ := 0,sBoja:=SETCOLOR() SETCOLOR(cMask) && cMask definisan na početku programa SELE 7 && Baza otvorena na početku programa Bz := OdrBZP() + 1 && Korisnička funkcija za ograničavanje broja && zapisa u bazi, ako je veći od 4090 DECLARE BrJ ŠBzĆ, ImJ ŠBzĆ GOTO TOP DO WHIL !EOF() iZ++ BrJŠiZĆ := SIF_JEZ ImJŠiZĆ := STR(SIF_JEZ) + " " + NAZ_JEZ SKIP ENDDO IF iZ == 0 SETCOLOR(sBoja) č 24, 0 SAY SPACE(70) č 24, 0 SAY " Nema ..." INKEY(3) RETURN .F. ENDIF č 6,30 CLEAR TO 16,76 č 6,30 TO 16,76 č 6,60 SAY "Izbor jezika" č 16,38 SAY "Enter=izbor, Esc=izlaz" Izb := ACHOICE(7,31,15,75,ImJ) IF Izb > 0 SifJez := BrJŠIzbĆ KEYBOARD BrJŠIzbĆ ENDIF RESTSCREEN(6,30,16,76,sEkr) SETCOLOR(sBoja) RETURN .T. * FUNC DajIZD() ... * FUNC DajVLA() ...
clipper.585 pmsimic,
Molim da mi neko objasni kako da napravim rutinu pisanu u TC++ 2.0 koja ce se koristiti i pozivati kao funkcija u CLIPPER-u. Molim primer prevodjenja i linkovanja. Unapred zahvalan , PMSIMIC iz Pristine
clipper.587 nbatocanin, -> #578, vili
> Kod mene 'pali' i jedno i drugo. Moja greška. Pretprocesor i "END IF" i "END DO" prevodi samo u "END". Problem je ako se napiše spojeno "ENDIF" i "ENDDO" - pogrešno sam napisao.
clipper.588 nbatocanin, -> #579, vili
Nisam stigao da probam (probaću), ali mi se čini da je problem možda u pozivanju funkcija _par. Naime, one argumente potrpaju na stek, a rezultat se dobija takođe na steku. Možda se u onom _retni ( _parni ()) krije neki problem. Probajte sa jednostavnim pozivima i u dibageru. Ipak je u EXTEND.H stavljeno _parni (int, ...) - ne verujem da je bez razloga. Ono sa adresom niza svakako neće.
clipper.589 umajstorovic,
Jedan moj drug me je zamolio da ostavim ovde sledeće pitanje: Kako se u Clipperu radi fflush u fajl. Naime, on otvori datoteku, nešto brlja po njoj, a onda durga procedura otvori isti fajl, pa se tu ne primećuju promene. E, on je to rešio tako što prvo zatvori, pa onda otvori fajl, ali to mu je valjda sporo, pa me je zamolio da pitanje ostavim ovde. Hvala unapred Pozdrav, Uroš
clipper.590 fric, -> #589, umajstorovic
> pitanje: Kako se u Clipperu radi fflush u fajl. Naime, on > otvori datoteku, nešto brlja po njoj, a onda durga > procedura otvori isti fajl, pa se tu ne primećuju promene. Prema Clipper 5.0 Vodiču za programere od Ricka Spencea: Operacija osvežava baf. prazni izlazni. za čitanje baf. (flush) COMMIT Da Ne <-- to tebi treba flock() Ne Da GOTO nRecNo Da Da <--- univerzalno rlock() Ne Da SKIP 0 Da Ne UNLOCK Da Ne
clipper.591 nbatocanin, -> #582, toma
> Ako sad izbrisem D:\POSAO\PLATE.EXE i ponovo probam, sve > je OK. > > Sve je ovo, naravno, lako resiti, ali zasto se to desava ? Možda nema dovoljno prostora na disku? Ta greška se javlja kod greške pri upisu na disk.
clipper.592 nbatocanin, -> #585, pmsimic
> Molim da mi neko objasni kako da napravim rutinu pisanu u > TC++ 2.0 Bojim se, nikako. Ili bar veoma teško.
clipper.593 nbatocanin, -> #583, mandrejevic
Problem sa ispisivanjem ekrana se javlja kada se pomeri pokazivač sloga u datoteci, a TB objekat to "ne zna". Tada se pri sasvim normalnom ispisivanju sa WHILE !TB:stabilize() ; END DO može desiti da se kursor pomeri na pogrešno mesto. Na primer, pomerili ste pokazivač naredbom GO ili SEEK i sad treba potpuno ispisati ekran. TB sada pokušava da zadrži istu poziciju kursora na ekranu i tako se može desiti da "nedostane" slogova za ispisivanje. Onda se pokazivač na ekranu pozicionira na pogrešan slog. Zato nisam siguran da je ovo rešenje, jer će TB:stable *biti* .T., a kursor neće biti na svom mestu.
clipper.594 dvokshi, -> #589, umajstorovic
> pitanje: Kako se u Clipperu radi fflush u fajl. Naime, on > otvori datoteku, nešto brlja po njoj, a onda durga > procedura otvori isti fajl, pa se tu ne primećuju promene. > E, on je to rešio tako što prvo zatvori, pa onda otvori > fajl, ali to mu je valjda sporo, pa me je zamolio da > pitanje ostavim ovde. Hvala unapred a zašto jednostavno ne napišeš SELECT fajl iz te druge procedure ?
clipper.595 zkrstic, -> #594, dvokshi
>> a zašto jednostavno ne napišeš >> >> SELECT fajl >> >> iz te druge procedure ? Uh, lepo što si se potrudio, al time zaista niŠta nemožeš postići. Dovoljan je jedan maaaaaaali COMMIT Pozdrav, zkr
clipper.596 mandrejevic, -> #593, nbatocanin
>│ siguran da je ovo resenje, jer ce TB:stable *biti* .T., a >│ kursor nece biti na svom mestu. Logicki gledano ti si sigurno u pravu. Mozda i ne podrazumevamo pod "brljanjem ekrana" istu stvar. Uglavnom meni se nije dopalo to da kada drzim strlicu na gore/dole i setam kroz bazu; posle prvog ispisanog ekrana pocinje program da ispisuje svaki drugi red (imam ukljuceno ubrzanje tastature preko mode). Po ubacivanju jedne if-end sekvence dobijem taman toliko usporenje da se ovo vise ne desava. Inace seek radim u privremenoj bazi (_temp) koju kopiram u radnu (_work) i samo nju TBrowse-iram. select _temp index on &cKljuc to _temp set filter to ... seek dDatum1 copy to _work rest for &(cKljuc) <= dDatum2 Probao sam razne TBWHILE programe i nijedan mi se nije dopao.
clipper.597 mbakovic,
Ú Kako se u CLIPPER-u može najbrže rešiti problem indeksiranja dela baze koji ispunjava neki uslov . U programima tipa dBASE (dBASE III+ ,FOX ...) ovaj problem se jednostavno rešava posta- vljanjem uslova FOR u liniju za indeksiranje : INDEX ON <key> FOR <uslov> TO <ime>... U dBASE IV stvari su nešto drugačije ali u principu se rešavaju slično korišćenjem multi indexa . Koji bi način omogućio da se u CLIPPER-u dođe do istih rezultata sa podjednakom efikasnošću ? HHHHHÚ
clipper.598 dpaun,
Za Clipper početnike ... Našao sam se pred problemom da iz jedne GET-READ procedure "izađem" i preko WHEN-a preuzmem određene podatke sa tastature /kao kriterijum za pretraživanje pomoćne baze iz koje se podaci prenose u GET varijablu./ Da u novoj proceduri upotrebim opet get-read nije išlo /neće Clipper/, onda sam "iz malog mozga" izvuko Accept i stvar je proradila! Sledeći zahtev - da se sve to desi na određenom mestu na ekranu rešio sam ovako: č x,y Accept "poruka" to var Za Clipper naprednjake ... Ne znam da li je ovo moglo i drugačije, a takođe ne znam kako da polje var "obojim"! Za Clipper i otadžbinu(v3.0)! dPaun
clipper.599 kanda, -> #598, dpaun
>> Našao sam se pred problemom da iz jedne GET-READ procedure "izađem" i >> preko WHEN-a preuzmem određene podatke sa tastature /kao kriterijum >> za pretraživanje pomoćne baze iz koje se podaci prenose u GET >> varijablu./ Da u novoj proceduri upotrebim opet get-read nije išlo >> /neće Clipper/, onda sam "iz malog mozga" izvuko Accept i stvar je >> proradila! Sledeći zahtev - da se sve to desi na određenom mestu na >> ekranu rešio sam ovako: >> >> č x,y >> Accept "poruka" to var Nema problema da 'gnezdis' GET..READ, samo treba da imas u vidu da ove komande rade sa nizom koji se zove GetList. Pa, ako zelis da u okviru npr. WHEN funkcije imas novi GET..READ, ti na njenom pocetku stavi LOCAL GetList := {} ili PRIVATE GetList := {}.
clipper.600 ndragan, -> #597, mbakovic
/ slično korišćenjem multi indexa . Koji bi način omogućio da se Pročitaj poruke iz decembra - marta... raspravljali smo dosta o ovome.
clipper.601 dvokshi, -> #593, nbatocanin
> Problem sa ispisivanjem ekrana se javlja kada se pomeri > pokazivač sloga u datoteci, a TB objekat to "ne zna". Tada > se pri sasvim normalnom ispisivanju sa > > WHILE !TB:stabilize() ; END DO > > može desiti da se kursor pomeri na pogrešno mesto. Na > primer, pomerili ste pokazivač naredbom GO ili SEEK i sad > treba potpuno ispisati ekran. TB sada pokušava da zadrži > istu poziciju kursora na Ja sam ovaj problem rešio ovako : seek ključ o:rowpos = 1 o:configure() o:stable = .f. Kad dolazi do petlje WHILE !o:stable ; o:stabilize() ; enddo TBrowse pomeri kursor na prvi red i osvežava ekran. Kursor ostaje na slogu kojeg je pronašao naredba SEEK. Pozdrav, dv
clipper.602 bbosko,
Pre nekog vremena sam dobio Flipper programski paket ali njegov NG neradi pa bi zamolio nekog da mi ga posalje na MAIL ili preko Konf Unapred Hvala BBOSKOVIC
clipper.603 dpaun, -> #599, kanda
>> Nema problema da 'gnezdis' GET..READ, samo treba da imas u vidu >> da ove komande rade sa nizom koji se zove GetList. Proradilo pa mi se usladilo! Hvala. dPaun
clipper.604 nbatocanin, -> #601, dvokshi
Ovako nešto sam i ja koristio, pa sam kasnije ipak prešao na proceduru Fresh (ideju za nju sam preuzeo iz TBDemo). Svestan sam da nije savrseno resenje, ali za sad radi. žini mi se da sigurno postoji neko bolje i univerzalnije rešenje, samo ga treba naći.
clipper.605 kanda,
Evo jednog dodatka za tbrowse. Cilj ove funkcije je da se, promenom mesta aktivne linije na ekranu, postigne da je ekran sto bolje popunjen. Ideja je da se, pozivanjem o : SkipBlock() utvrdi broj slogova iznad i ispod aktivnog ; zatim se vrsi korekcija o : RowPos. Pozvati posle promena u bazi (ili sta se vec prikazuje), dakle posle menjanja, brisanja, dodavanja, trazenja po kljucu itd. Pri sledecoj stabilizaciji, sve bi trebalo (bar sam ja to tako nameravao ;) da se pojavi na svom mestu. Nazalost, ova funkcija primetno usporava rad. PROCEDURE tbFresh(o) LOCAL nRC := o : RowCount, nRP := o : RowPos, nU, nD // Ispod aktivne linije, na ekranu ima mesta za jos nRC - nRP slogova. // Pokusavamo da skocimo na zadnji od njih. nD := Eval(o : SkipBlock, nRC - nRP) // Sada smo na zadnjem slogu koji ce biti prikazan. On bi trebao // da bude u zadnjem redu na ekranu. Znaci, iznad njega nam treba // nRC - 1 slogova da bi ekran bio popunjen. Idemo na prvi. nU := Eval(o : SkipBlock, -(nRC - 1)) // Sada smo na prvom slogu koji ce biti prikazan. // Vracamo se na aktivni slog. Stvarno je preskoceno nU + nD slogova. // Sada isto toliko, ali u suprotnom smeru. Eval(o : SkipBlock, -(nU + nD)) // Prvi slog na ekranu je od aktivnog udaljen -(nU + nD) mesta. // Znaci, aktivni slog je u 1 - (nU + nD) .tom redu. o : RowPos := 1 - (nU + nD) // Ovo i jeste svrha celog ovog skakutanja o : Configure() o : RefreshAll() RETURN
clipper.606 zkrstic,
Ajd' da kukam :)) Pojavljuje mi se, dosta često, nakon kompajliranja i linkovanja nešto čudno :)) Kad lepo napravim .EXE, pokušam da ga startujem dobijem omanju porukicu, ružne sadržine ;) error est0001: Illegal format in loadable file Na žalost, takve poruke nema ni u NG-u niti bilo gde u knjigama koje sam pregledao. Da stvar bude smešnija, isti taj EXE fajl, ponekad posle nekoliko bezuspešnih pokušaja uspe da se startuje :) Da napomenem, program i ne stigne da se startuje. A kad ga startujem sa CLD <ime_programa.EXE> - on radi :) Hmmm, ko li je ovde lud :))))) Ima'l ko kakvu ideju? Pozdrav, Zkr
clipper.607 djoskovski,
Za majstore Clipper - a U tabelarnom prikazu hocu da umam scroll - bar preko celog ekrana(tabele) u principu ne mora scroll-bar moze i dru- ga boja, ali bez posebnog skipbloka odnosno funkcije koja emuli- ra skipblock, isto tako ne zelim da sva obelezja deklarisem u jed- noj klasi tbcolumn, odnosno prljavi trikovi me ne zanimaju. Znaci hocu scroll-bar preko vise TBCOLUMN objekta, dovoljna je samo ideja, za uzvrat poklanjam program u CLIPPERU SVIMA! o kom programu je rec znace se 27.07.1992 kad se vratim kuci u Skopje, inece se momentalno nalazim u Oxridu.
clipper.608 tuci,
Clipperaši pomagajte... Kako da nateram SEEK da radi na numeričkim poljima ? U starom clipperu sve radi kako treba, a u ovom novom (5.01) nemože da pronađe ni jedan podatak. Primer: Polje broj je u bazi definisano kao N 5 0. USE Baza INDEX ON broj TO num br:=1 č 1,1 SAY "Broj: " GET br SEEK br ? IF(FOUND(),"Broj je pronadjen","Broj nije pronadjen") Pogadjate, rezultat je uvek: "Broj nije pronadjen". Zašto ? Pozdrav, Zlatko
clipper.609 toma, -> #608, tuci
=> USE Baza => INDEX ON broj TO num Ovo bi trebalo da radi: use baza && Ovo radis samo kad dodje index on broj to num && do nasilnog prekida, reindex && ili ako inicijalizuješ datoteku - use && - onda bez reindex. .... use baza index num && Ovako bi trebalo da otvaraš datoteku .... && ako vec postoji sa indexom. seek n .... Nadam se da će da proradi, inače kod mene sve radi ok. pozdrav.
clipper.610 charlie, -> #608, tuci
██ Kako da nateram SEEK da radi na numeričkim poljima ? U starom clipperu sve ██ radi kako treba, a u ovom novom (5.01) nemože da pronađe ni jedan podatak. Neznam zašto kod tebe ne radi, ali kod mene je broj pronađen. BTW Nedostaje ti READ nakon GET-a pozdrav, charlie
clipper.611 nbatocanin, -> #606, zkrstic
Izbaci DOS=HIGH direktivu iz CONFIG.SYS.
clipper.612 nbatocanin, -> #607, djoskovski
Vec je bilo ovde, može ovako: SetColor(Invert) // Ispisi celu liniju SetColor(Normal) Ch := InKey(0) // Ispisi celu liniju