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.1031 nbatocanin, -> #1027, snemcev
> Pa da kažem. Ovo (slovima.prg) nije Clipper. Probaj moj program prikačen uz poruku 5.955 u ovoj temi.
clipper.1032 kanda, -> #1028, nbatocanin
>> Malo je predugo za objašnjenje, ali ukratko, kompletnu strukturu baze >> podataka: opis i definicije polja, komentare, indekse, itd. Na osnovu >> ovih podataka vršim otvaranje datoteka, pridruživanje odgovarajućih >> indeksa, itd. Na primer, datoteku otvaram sa: >> >> Open ("Naziv") OK, da pokusam da rezimiram ideje : 1) svi indeksi bi trebalo da se otvore pri otvaranju baze 2) indekse je lakse i sigurnije birati po imenu nego po rednom broju 3) omoguciti kreiranje, 'prepakivanje', reindeksiranje baze, bez navodjenja detalja (dovoljno je ime baze!) Da dodam i ja poneku : 4) 'lokalne baze'. Jednostavno, kazes da zelis da koristis neku bazu, sa tim-i-tim indeksom i tim-i-tim filterom. Ako je baza vec u upotrebi, tj. otvorena, sistem zapamti stanje (aktivni indeks, aktivni filter, broj aktivnog sloga itd) i tek onda postavi nove vrednosti. Kada zavrsis posao, ti kazes 'zatvori', a sistem vrati bazu u prethodno stanje. Ovo omogucava pisanje potprograma koji rade bez obzira iz koje situacije ih pozoves ! Stvar upravo testiram i zasad radi kao srpska oooops! tj. kao japanska zeleznica. 5) pa kad je tu recnik, mozda bi imalo smisla pamtiti i PICTURE za SAY i GET, mozda i neke jednostavnije VALID izraze... mada je ovo vec malo nategnuto, sasvim dobro sluzi i #define.
clipper.1033 kanda, -> #1029, ndragan
>> Ovo me navodi da opet pitam: da li je (... ili) istina da je u >> kliperu običaj da se po startu aplikacije pootvaraju sve baze i >> indeksi? Jer ovako nešto praviti, za mene znači da su linije u kojima >> se baze otvaraju malo daleko da bi se mogao pogledati redosled >> indeksa. Ja nikad ne setujem redosled po imenu nego uvek po broju, >> jer na početku rutine otvaram baze i na kraju ih zatvaram (rutina je >> retko kad duža od 8K, recimo (imam samo nekoliko koje su duže od 150 >> linija, a i to su neke kombinovane višestruke štampe)), a to se onda >> lako kontroliše iz bilo kog editora. Ne znam kakav je obicaj :) al ja gledam da su mi baze otvorene samo kada se stvarno koriste. Sto se indeksa tice, postoji nekoliko dobrih razloga da se pri otvaranju baze otvore SVI pripadajuci indeksi, najbolje automatski, kao ono sto je pisao Nenad. Dalje, kako god okrenes, Order('Prezime') je lakse za razumeti nego SET ORDER TO 2. Svaka knjiga iz programiranja preporucuje da se, gde god je moguce, izbegavaju ovakvi 'mrtvi' brojevi. 'Prezime' je deo neke logike programa, '2' je ipak samo broj. Na primer, linija : Radnici->(Order('Prezime')) je sasvim nedvosmislena; SET ORDER TO 2 to nije : koja baza je u pitanju ? koji indeks je u pitanju ?
clipper.1034 snemcev, -> #1031, nbatocanin
>> Probaj moj program prikačen uz poruku 5.955 u ovoj temi. Promakao mi je nekako, probaću ga svakako.
clipper.1035 snemcev,
Danas sam kreirao (iz Clipper programa) bazu čija je struktura duga tačno 1123 bajta. Takvu bazu DBU otvori, ali kad zatražim BROWSE, ok kolosalno javi neku grešku sa '&' tj. sa makroima. Jel to zato što je struktura datoteke duža od 1K? Ima li drugog rešenja osim prepravljanja izvornog koda? Za divno čudo, PcShell bez ikakvih problema prikazuje sadržaj ove datoteke.
clipper.1036 raul,
Zdravo !!!! Moze li mi neko reci zasto se u CLIPPERU (S87) kad koristim naredbu SET KEY TO ime procedure ( na primjer dodjelim da mi F! pozove neku proceduru ). Zasto sve radi jedno 5-6 puta dobro , a onda se na stisak tatsera pojave brljotine, tj. maska se pokvari.
clipper.1037 d.petrovic, -> #1036, raul
Ă> Moze li mi neko reci zasto se u CLIPPERU (S87) kad koristim naredbu Ă> SET KEY TO ime procedure ( na primjer dodjelim da mi F! pozove neku Ă> proceduru ). Zasto sve radi jedno 5-6 puta dobro , a onda se na Ă> stisak tatsera pojave brljotine, tj. Malkice nejasno, ali... jesi li isključio taj taster kad je pozvao funkciju ? Npr. set key 28 na neki tamo help, čim uđeš u taj help prvo isključuješ taj taster, a pre nego što se vratiš ponovo ga uključiš. Ako nije to, budi malkice detaljniji ili daj taj deo source-a ovamo.
clipper.1038 pstojanovic, -> #1036, raul
To se obicno desi kada imas rekurziju; naime, kada pozivas npr. set key -1 to kalendar sa F2 pa u kalendaru pritisnes jos neki put F2, a u proceduri kalendar imas formiranje privatnih promeljivih, lako dolazi do gomilanja steka. Narocito ako pamtis ekrane (ekran=25*80*2 bajta= 4 KB po promenljivoj). U prethodnom odgovoru ti je kolega dao ispravan odgovor, iskljucis pri ulasku taster za poziv a na izlasku iz procedure ga ponovo ukljucis. To greska recimo nece vaziti za CL 5.01 zbog dinamicke memorije, ali ... Murphy is a live ;). Ko zna, treba biti dosledan.
clipper.1039 pstojanovic,
Evo jednog programa koji meni koristi, probajte, pa komentarisite... pi.arj
clipper.1040 zradojicic,
Da li neko ima napisanu funkciju (proceduru) za ocitavanje serijskog broja HD-a. KLF.
clipper.1041 d.petrovic, -> #1040, zradojicic
Ă> Da li neko ima napisanu funkciju (proceduru) za ocitavanje Ă> serijskog broja HD-a. Ajde sad lepo kaži od koga si sad pa to čuo :). Ima neko ali je nije još završio = usavršio = to je spoooooooro da bi se ubacilo u neku aplikaciju.
clipper.1042 ndragan, -> #1033, kanda
/ Dalje, kako god okrenes, Order('Prezime') je lakse za razumeti nego / SET ORDER TO 2. Svaka knjiga iz programiranja preporucuje da se, gde Da, svakako. I mi to uvodimo; kvalifikovanje polja po aliasu (a ne po zoni) smo odavno uveli. Sintaksa tipa 'select 4' (to sam viđao samo kod samoukih početnika) je inače suluda, i kod programa dužeg od tri ekrana diže pritisak a obara produktivnost bar dvostruko ;). Ono 'Set order to 2' koristimo tako retko da nije naročito smetalo, a i svaka rutina koja nešto mulja sa bazama (a nije deo maske) mora da pozove standardnu rutinu za otvaranje i na kraju i onu za zatvaranje, a pošto su rutine kratke, nije teško da se zaviri u prve linije. Ali, i to uskoro ukidamo (ili još jednom proređujemo), pošto FoxPro2 ima nešto što se zove strukturni indeks, indeks koji se sam automatski otvara sa bazom, a u njemu su već upisana imena indeksa (TAG - još malo pa kao u Venturi :). Jesam kazo da idemo ka istom, različitim putevima. / razloga da se pri otvaranju baze otvore SVI pripadajuci indeksi, / najbolje automatski, kao ono sto je pisao Nenad. Da, ako ima šanse da će se u bazu nešto pisati, inače ne - u mreži je to još dva-tri fajla više za otvaranje, a ako radim Index For oni će se svakako zatvoriti.
clipper.1043 ndragan, -> #1032, kanda
/ 1) svi indeksi bi trebalo da se otvore pri otvaranju baze Osim... vidi prethodnu poruku. / 2) indekse je lakse i sigurnije birati po imenu nego po rednom broju Da. / 3) omoguciti kreiranje, 'prepakivanje', reindeksiranje baze, bez Za ovako kritične operacije bi trebalo malo pripaziti - indeksiranje i pakovanje zahtevaju zaključavanje, a u mreži... / Stvar upravo testiram i zasad radi kao srpska oooops! tj. kao / japanska zeleznica. I Japanci imaju brze pruge? / za SAY i GET, mozda i neke jednostavnije VALID izraze... mada U jednoj verziji glavne knjige imam _globalne_ pikčere za iznos, konto i nalog za izveštaje; strpam ih u promenljive i ako dođe do dalje inflacije samo dodajem devetke :). Valid izraze treba držati u bazi maski :).
clipper.1044 dpaun,
Clp dozvoljava i ovakve operacije: PUBL Opc1, Opc2 ... ... USE MojSET Opc1 := Polje1 Opc2 := Polje2 ... č r,c PROMPT Opc1 MESS ".... č r+1,c PROMPT Opc2 MESS ".... MENU TO Izb ... Ovo omogućava pisanje programa čije menije korisnik krsti prema svojoj potrebi. dPaun
clipper.1045 jtitov,
Da li neko koristi za linkovanje neki drugi linker osim onog koji stize uz Clipper 5.0 ('87)? Prednosti/mane?
clipper.1046 aleksj, -> #1036, raul
> Moze li mi neko reci zasto se u CLIPPERU (S87) kad > koristim naredbu SET KEY TO ime procedure ( na primjer > dodjelim da mi F! pozove neku proceduru ). Zasto sve radi > jedno 5-6 puta dobro , a onda se na stisak tatsera pojave > brljotine, tj. maska se pokvari. Obrati paznju na to da help iz help-a mozes (bezbedno) pozvati samo jednom, tj. ako pritisnes F1 par puta za redom moze se svasta dogoditi (isto vazi i za bilo koji drugi podprogram koji je dodeljen SET KEY - u ako nekoliko puta pritisnes taj taster za redom ). Trebao bi da u pozvanoj proceduri podesis taster koji je pozvao datu proceduru da to ne moze ponovo da uradi npr. PROCEDURE HELP SET KEY -1 TO . . . SET KEY -1 TO HELP RETURN i da na kraju ponovo vratis istu proceduru tasteru.
clipper.1047 zalex, -> #1045, jtitov
Koristim BLINKER 2.0. Linkuje Clipper, Pakal, Asembler, Bejzik ... Inkrementalno linkovanje radi savrseno, u 80% slucajeva linkovanje ne traje duze od 3-4 sekunde. Linker je dinamicki, veliki programi se izvrsavaju bez frke. Jedini je problem sto ne moze da linkuje Clipper 87 datiran sa 21.12.87 0:00, vec samo 21.12.87, 2:00. Na zalost, imam upravo pogresan Clipper, pa bih bio JAAAAKO zahvalan onom koji moze da mi pomogne. Posto radim na mrezi, a dosadila mi je poruka "insufficient memory", dinamicko linkovanje mi je neophodno. Ne mogu da predjem na CLIPPER 5.01, jer nemam vremena (a i koristim neke biblioteke koje ne rade sa njim). ZALEX
clipper.1048 nbatocanin, -> #1033, kanda
> Dalje, kako god okrenes, Order('Prezime') je lakse za razumeti nego > SET ORDER TO 2. ... a i kad dodaš indeks na početak ne moraš da menjaš brojeve uz SET ORDER.
clipper.1049 nbatocanin, -> #1032, kanda
> mozda bi imalo smisla pamtiti i PICTURE za SAY i GET, mozda i neke > jednostavnije VALID izraze... mada je ovo vec malo nategnuto, sasvim > dobro sluzi i #define. Zašto nategnuto? Rečnik podataka podrazumeva sve podatke o podacima. Ja planiram da tu uguram ne samo podatke o načinu prikazivanja i unosa i sl., već i podatke o pravima pristupa pojedinih procesa i slične stvari. Na primer, funkcije koje bi vraćale podatke o svakom polju (format za unos, prikazivanje i sl) mogu se trivijalno napraviti. A onda se izbegava more problema - tako se veoma povećava nezavisnost na relaciji program-baza podataka. Sledeći korak je formalizacija procesa i kreiranje "rečnika funkcija". Ovo bi morao biti osnov svakog dobrog generatora programa. Ali, i samo rečnikom podataka se dobija puno. Na primer, kako sam ja bez njega menjao strukturu baze podataka: 1) Pomoću DBU-a menjam strukturu. Ako je neka složenija promena (promena tipa polja), onda se mora praviti mali programčić. 2) Evidencija u dokumentaciji programa - svako normalan ima opis svih datoteka, polja itd. 3) Izmena u modulu za proveru integriteta: ponovno kreiranje indeksa i sl. 4) Izmena u modulu za periodično brisanje podataka - treba dodati podatke o izmeni. 5) Izmena svih USE..INDEX naredbi u programu. Sreća što sam i ranije imao donekle automatizovano otvaranje, pa sam ovo ovde "izbegavao". Slično ovome je i izmena SET ORDER naredbi. 6) Izmena delova programa koji se odnose na izmenu u bazi - ovo za sada nisam previše razmatrao, ali polako.. :) A sad samo uđem u pomoćni program koji mi služi za manipulaciju rečnikom, napišem šta hoću, a on promeni fizičku strukturu, rečnik i dokumentaciju. Moduli za brisanje i kreiranje indeksa ove podatke uzimaju iz rečnika, pa u njima i nije potrebna intervencija. Najlepše od svega je što je uvođenje rečnika 100% kompatibilno sa prethodnim rešenjima, tako da nije potrebno menjati prethodne programe: USE i dalje radi, OPEN se uvodi postepeno u nove module. Ovakva centralizacija je jako dobra za sve vrste kontrola: ako jednom automatizujete proces i napravite ga dovoljno opštim, kasnije ste sigurni da ono što ste uradili RADI. A to je jako dobro, zar ne? Prava stvar ka kojoj treba težiti je objektno orijentisana baza podataka: svaka DBF datoteka je objekat koji "zna" i čuva neke informacije, a sa kojim se komunicira preko poruka, kao sa šalterskim radnikom. Kako vi preko šaltera ne možete previše uticati na rad tog radnika i obrnuto, sledi da izmena tog objekta ne utiče na spoljni program. E, to će biti prava stvar! Oće li taj Clipper 6.0! :) P.S. Nevezano za ovo, zašto koristite izraz "baza" za DBF datoteku? Za DBF datoteku se može reći da je tabela ili relacija, ali baza je samo u trivijalnom slučaju, zar ne?
clipper.1050 dejanr,
Da li vam se nekada desilo da vam clipper '87 + tlink unište CLIPPER.LIB? Meni se to dešava danas evo treći put. Prvi put pre jedno 3 godine na AT-u, i tada je CLIPPER.LIB bio samo malo pobrljan (ali dovoljno da kaže bad object file). Drugi put pre jedno godinu dana na 386/25 kada ga je skratio na 100 "random" bajta. Treći put danas, kada je u njega upisao neki .MAP fajl, plus malo đubreta. Pošto sam za sve to vreme intenzivno koristio clipper, ovo nije neka pojava koja se dešava svaki dan nego verovatno pod nekim jako specifičnim okolnostima. Sada sam na clipper.lib stavio read only flag, šteta što ću morati da čekam par godina da vidim deluje li ili ne ;)
clipper.1051 raul,
Zdravo, opet ja. Hvala vam na odgovorima, pomogli ste mi. Jos jedno pitanje : kada koristim naredbu MENU TO , a ne znam koliko cu dobiti PROMPTOVA ( recimo kada hocu da podatke iz baze stavim u PROMPT .... MENU TO ) da li nekako mogu da odredim koliko ce biti PROMPTOVA ( Da li bih to mogao preko SET KEY to 24 i da prenesem parametre promenljivoj MENU TO i kako )? Hvala !!!
clipper.1052 jtitov, -> #1047, zalex
> vec samo 21.12.87, 2:00. Na zalost, imam upravo pogresan > Clipper, pa bih bio JAAAAKO zahvalan onom koji moze da mi > pomogne. Posto radim na mrezi, a dosadila Evo koju '87 imam: pa nesto je sa vremenom 00:00, a nesto sa vremenom 2:00. Sa vremenom 2:00 je sledece: clipper.exe, clipper.lib, debug.obj, extend.lib, ndx.obj, plink86.exe, i jos neke manje-vise nebitne sitnice. Pa ako ti nesto znaci...
clipper.1053 raul,
Zdravo. Imam Clipper S87, a zelio bih da koristim misa. Moze li mi neko reci kako to da uradim. Imam CLIPGRAP21 i Hercules karticu. Probao sam i sa demo programomk CLIPGRAP-a, ali nikako da se pojavi ikona .... Pozdrav : RAUL
clipper.1054 broker, -> #1036, raul
> Moze li mi neko reci zasto se u CLIPPERU (S87) kad > koristim naredbu SET KEY TO ime procedure ( na primjer > dodjelim da mi F! pozove neku proceduru ). Zasto sve radi > jedno 5-6 puta dobro , a onda se na stisak tatsera pojave > brljotine, tj. maska se pokvari.
clipper.1055 d.petrovic, -> #1053, raul
Ă> Zdravo. Imam Clipper S87, a zelio bih da koristim misa. Moze li mi Ă> neko Nemoj da se ljutiš ako ti je to neko već rekao ali... pređi brate na 5.01 i uživaj.
clipper.1056 rolandz, -> #1047, zalex
Evo mislim da mogu da ti pomognem, ostavi mi poruku. Volume in drive C is DEEP PURPLE Volume Serial Number is 0000-0000 Directory of C:ĐCLIP87ĐBEZVEZE . <DIR> 11-05-92 6:18p.. <DIR> 11-05-92 6:18pCLIPPER EXE 79121 12-21-87 2:00aPLINK86 EXE 83834 12-21-87 2:00aCLIPPER LIB 307019 12-21-87 2:00aEXTEND LIB 82189 12-21-87 2:00aOVERLAY LIB 7104 12-21-87 2:00aDEBUG OBJ 57986 12-21-87 2:00aTEXT TXT 0 11-05-92 6:19p 9 file(s) 617253 bytes 15232640 bytes free rastumaci mrzelo me je da kucam a sad necu da prekidam vezu zbog greše pozdrav or RolandZ a.
clipper.1057 banex, -> #1053, raul
>> Zdravo. Imam Clipper S87, a zelio bih da koristim misa. Moze li mi >> neko reci kako to da uradim. Imam CLIPGRAP21 i Hercules karticu. Ima nekoliko lib-ova koji su namenjeni toj stvari, nisam ni jednu probao ( nisam ni imao miša do sada ;) ali se iz gomile može izabrati ono što tebi naviše odgovara. Probaj ovu koju sam ti zakačio uz poruku, imaš i mali primer kako treba da izgledaju rutine a rađena je asembleru. Samo ulinkuješ bmouse.obj uz tvoje .obj datoteke, i trebalo bi da radi. Ako ti ne odgovara, viči da pošaljem neku drugu. PS. Nema veze kakvu video karticu imaš... bmouse87.arj
clipper.1058 banex, -> #1055, d.petrovic
>> Nemoj da se ljutiš ako ti je to neko već rekao ali... pređi >> brate na 5.01 i uživaj. Kad smo već kod 5.01 klipera, da li neko zna u čemu je problem kod sledećeg primera: Source datoteke (.prg) su rađene u starom kliperu (summer 87), i kada ih proteram kroz kliper 5.01 tako da on sam pronalazi odgovarajuće, napravi jedan .obj koji se bez problema linkuje sa Rtlinkom. Exe program dalje radi bez problema. Ako te iste .prg datoteke kroz novi kliper proteram sa /m svičem, da mi napravi za svaku po jedan .obj file, tada pri linkovanju izbaci za svaki po jedan error i prekine rad sa porukom da su to kliper87 funkcije (ili tako nešto ;) ? Da li bih trebao da koristim neki svič za rtlink u tom slučaju, nisam se baš mnogo bavio istim?