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.1 ppekovic,
Clipper je napravio veliki korak ka jednostavnijem pisanju programa čia je žiža u bazama podataka, s druge strane doneo je i gomilu pitanja, nedoumica, bug-ova, nedokumentovanih mogućnosti itd. itd. Ovo je mesto za diskusiju o svemu tome. Paya
clipper.2 duduk,
Ima li neko, ili zna li bar gde je opisan format Clipper-ovog NTX ? ia
clipper.3 ppekovic, -> #2, duduk
>>Ima li neko, ili zna li bar gde je opisan format Clipper-ovog NTX ? Nisam siguran, ali zar onaj C source u jednom od dir-ova, ne radi i sa NTX-ovima??? Koliko se sećam, trebao bi da radi. Paya
clipper.4 nradeta,
Ima li neko rutinu za ispisianje broja slovima (za racune) 1903 slovima : hiljadu devesto tri dinara hvala ! nradeta
clipper.5 ndragan, -> #4, nradeta
Ovim se rutina SLOVIMA.PRG izrađena u DP "Mihajlo Petrović Alas" iz Zrenjanina, 023-60-020, proglašava za PD (direktor je sedeo pored mene dok smo čitali SOR) - spomenite nas negde u dokumentaciji ako je ubacite u nešto svoje. Rutina ima i nešto istorije: pre dve godine na Sajmu u Bg dođe neki čiča na naš štand da nam ponudi takvu rutinu, dve hiljade linija kobola, njegov tromesečni rad. Naš čovek koji je dežurao nije ga baš najbolje razumeo, i rekao mu da naša rutina ima skoro dve strane teksta i da smo je radili skoro dva dana... posle nam bilo žao čoveka. Bue_ NDragan slovima.zip
clipper.6 ivantod, -> #4, nradeta
Evo, pokušaj sa ovim programom. On će na osnovu broja da ti da slovni oblik. U stvari je pisan za dBASE pa možda neće baš iz prve da proradi na Clipperu, ali nekih većih problema ne bi trebalo biti. Uputstva su u programu. broj.prg
clipper.7 dejanr, -> #6, ivantod
Hvala ndragan-u i ivantod! Pravi prilozi za Sezam. Biće i u "Bajtovima lične prirode".
clipper.8 dejanr, -> #5, ndragan
Program se kod mene nije hteo kompajlirati na clipper 87. Ispravio sam par sitnica i dodao pred-program za testiranje i još preveo na standard "Računari"... I evo ga! slovima.prg
clipper.9 ndragan, -> #8, dejanr
* Program se kod mene nije hteo kompajlirati na clipper 87. Ispravio sam par kao što je poznato - mi ložimo foks. btw, moja je samo seckalica za izdvajanje para ('xx/100'), ostalo su napisali drugari pre par godina. Bue_ NDragan
clipper.10 ppekovic,
Jedan mali bug debuger-a u clipper-u 5.01. Recimo da hoćete da debugirate program koji se nalazi u prog dir-u. A neka se sve baze nalaze u prog/files dir-u. E sad vi lepo uđete u prog dir i kažete CLD program i sve lepo počne, međutim, pošto se baze nalaze u files dir-u, u programu imam komandu !cd files. Posle te komande, na ekranu će se izgubiti source iako će i dalje sve raditi kako treba. Naravno, štos je verovatno što je dir promenjen pa debuger nbemože da pronađe source. Zato, kada debugirate (isleđujete ;) ) program koji se šete po dir-ovima, obavezno stavite punu stazu do programa, npr.: CLD d:\prog\program Paya
clipper.11 vkrstonosic, -> #10, ppekovic
Kad smo vec kod Debuger-a za Cliper 5.01, da li neko zna, da li postoji neko ogranicenje oko duzine source fajla. Probam program koji je podeljen u pet delova i svi rade osim jednog koji je dugacak oko 80K.
clipper.12 vcalic, -> #10, ppekovic
Kad se već pominje Clipper i debuggiranje, da li je moguće kod Clippera raditi "isleđivanje" ;) na source nivou uz pomoć, recimo, Turbo Debugger-a, kao što je to moguće sa Force-om ??? WR
clipper.13 ppekovic, -> #12, vcalic
>> Kad se već pominje Clipper i debuggiranje, da li je moguće kod >>Clippera raditi "isleđivanje" ;) na source nivou uz pomoć, recimo, Turbo >>Debugger-a, kao što je to moguće sa Force-om ??? A što, kad je Clipper debuger odličan? Nisam probao. Paya
clipper.14 lazo,
Koristim Clipper Summer 87 i nisam pojma imao da su izlazile još neke verzije kao naprimjer 5.01 koja se tako često spominje ovdje na Seza- mu. Interesuje me u čemu su poboljšanja. Meni su za pravljenje uglav- nom knjigovodstvenih aplikacija dovoljne i ove naredbe, međutim jedina zamjerka je zasad u tome što pri obradi velikih datoteka pri filteru se dugo čeka da se ode recimo na prvi slog u filteru ili ako je dato- teka prazna (pri filteru) on prođe kroz cijelu datoteku da bi nakraju ustanovio da nema podataka. Mene u stvari interesuje da li taj Clipper 5.01 brže pristupa datote- ci tj, podacima u njoj ili su poboljšanja samo u naredbama kao što su npr. DBEDIT,MENU i sl.
clipper.15 ppekovic, -> #14, lazo
>>Mene u stvari interesuje da li taj Clipper 5.01 brže pristupa datote- >>ci tj, podacima u njoj ili su poboljšanja samo u naredbama kao što su >>npr. DBEDIT,MENU i sl. Pa i ja sam se ponadao da će novi clipper doneti poboljšanja na tom planu, pogotovu da će ispraviti veliku sporost sa filterom (kako si i sam pomenuo). Ali, na žalost, on i dalje sporo radi, iako malo drugačije nego '87 verzija. Naime, prilikom startovanja dbedit-a čeka se mnogo više nego na staroj verziji, ali je onda kretanje kroz bazu brže. Naravno, sve ovo u slučaju kada je uključen filter i kada je baza velika (recimo 10'000 slogova). Probao sam na prvom slogu po filteru da stisnem strelicu na gore i sve je jako brzo radilo. Taman sam se bio obradovao kad ono kada sam otišao na dno baze i pritisnuo strelicu na dole, to je radilo, radilo, radilo i radilo užas, pravi užas. Inače, što se tiče poboljšanja u clipper-u 5.01 kratlko da ti kažem da je novi clipper sada mnogo bliži načinu razmišljanja u C-u, iako je skoro 100% kompatibilan sa '87. verzijom, tj. možeš da koristiš nove mogućnosti, ali i ne moraš. Da ne tupim više, pogledaj članak N. Batoćanina u "Računarima". Ima puno toga novog i zanimljivog. Paya .s
clipper.17 beki,
Zdravo svima u PC.PROG. Ja sam nov na Sezamu i nadam se da cemo se lepo druziti. Hteo sam da pitam dali ima neko da je eksperimentisao sa bibliotekom DBFNTX.LIB iz Clipper-a 5 ? Imam ideju da se umesto Clipper-ovog sporog i nepouzdanog dbf/ntx interfejsa stavi nesto bolje, kao na primer Btrieve koji lepo prianja na Novell NetWare. Jos nesto. Dali neko ima iskustva sa CL Tools 3.0 i CL Text 3.0 firme Dr.Huggle&Partner? Ja sam nabavio CL Report 3.0 i veoma sam zadovoljan. Beki
clipper.18 beki,
Upomoc !!! Kako da uradim parcijalni index u Clipper-u 5 ? Naime, potrebno mi je nesto sto Fox vec odavno ima: INDEX ON <cexp> FOR <lexp> TO <ntxfile> Dosla mi je ideja o jednom mogucem resenju: INDEX ON <cexp1> TO <ntxfile> UNIQUE gde je: cexp1=IIF(lexp,cexp,"NEKI KLJUC") Na ovaj nacin cu postici to da svi slogovi koji ne treba da udju u index dobiju vrednost kljuca "NEKI KLJUC", sto ce u Clipper5-ovom NTX fajlu rezultirati u samo jednom slogu u indexnom fajlu. Medjutim, resenje ne odgovara kada <cexp> ne daje UNIQUE kljuceve, sto je najcesci slucaj kod indexa za razne izvestaje. Beki.
clipper.19 ndragan, -> #18, beki
* Upomoc !!! * Kako da uradim parcijalni index u Clipper-u 5 ? pređi na foks c(;)E (ovo sam ja sa šeširom i bradom) * cexp1=IIF(lexp,cexp,"NEKI KLJUC") a šta misliš o cexp1=IIF(lexp,cexp+str(recno(),5),"NEKI KLJUC"); dobio bi istina jedan slog indeksiran sa 'neki kljutz', ali ostale bi dobio, a taj jedan nek sadrži chr(255) pa znaš kad si gotov, a? Bue_ NDragan
clipper.20 ppekovic,
Ovo pitanje je mnogo puta pokretano, ali nikada nisam video celovit odgovor. Radi se o velikim bazama i selekcijama (prostim ili višestrukim, svejedno). U čemu je problem? Ako imam bazu od 10.000 slogova, pa čak i više, što uopšte nije redak slučaj, i želim da izvšim selekciju svih onih čije ime počinje na slova od A do C, i koji su rođeni od 1960-1970 (samo primer, može bilo šta), na koji način to uradii a da bude brzo. Naime, upotreba komande SET FILTER definitivno otpada. Zašto? pa, na bazi od 10.000 slogova sa bilo kakvim filterom, običan SKIP na zadnjem slogu po filteru radi xxx sekundi, tj. previše sporo. Postoji rešenje korišćenja index-a po polju ke se traži, ali onda otpada upotreba dbedit funkcije, tj. morao bi da se pravi sopstveni dbedit. Podela na više baza je problematična, tj. kako baze podeliti. Dakle, kakva su iskustva? Jel ima neko ideja??? Paya
clipper.21 djorzor, -> #20, ppekovic
> Podela na više baza je problematična, tj. kako baze > podeliti. > > Dakle, kakva su iskustva? Jel ima neko ideja??? Evo nešto malo iskustva na sličnu temu. Kolega zelkop i ja smo komercijalno radili na sličnim bazama (živeli smo jedno godinu dana od toga). Baze su imale oko 15000 slogova i oko 2 MB. Iz takvih baza smo radili izveštaje. Baza je trebala da radi u jednoj prijateljskoj zemlji, ali za potrebe naše firme. Jedina mašina koju su naši uspeli da uvezu je bio jedan PS/2-50 (u prevodu AT 286/12 bez koprocesora), koji je imao HDD od 20MB. Na takvoj mašini smo razvili dosta lepu aplikaciju, koja se i danas koristi. Korišćen je dBASE IV i na kraju, posle jedno 6 meseci razvoja, najsporiji deo sistema je bilo štampanje, koje je u nekim slučajevima trajalo i više od 2 sata za izveštaj od više stotina strana. Sama priprema izveštaja je trajala najviše oko 20 minuta. U varijantama kada bi nam trebalo da koristimo EDIT i BROWSE naredbe to bi rešavali tako što bi bazu kopirali sa DOS copy naredbom, ulazili u tako kopiranu bazu, brisali naredbom DELETE nepotrebne slogove i na kraju pakovali. Sve to je radilo vrlo brzo. Posle toga u takvu bazu uđemo sa EDIT i sve radi. Fazon sa kopiranjem smo koristili i za pripremanje izveštaja i bili smo vrlo zadovoljni. Kao mala napomena može da ide i da smo probali da koristimo SQL iz dBase-a i bili smo užasnuti sporošću. Ako Te još nešto interesuje, biće nam zadovoljstvo da Ti to prikažemo. Pozdrav, Zoran
clipper.22 vkrstonosic, -> #21, djorzor
> U varijantama kada bi nam trebalo da koristimo EDIT i BROWSE naredbe > to bi resavali tako sto bi bazu kopirali sa DOS copy naredbom, > ulazili u tako kopiranu bazu, brisali naredbom DELETE nepotrebne > slogove i na kraju pakovali. Sve to je radilo vrlo brzo. Posle toga > u takvu bazu udemo sa EDIT i sve radi. Mozda bi se ovo moglo izvesti i bez copiranja baze, jer to ipak zahteva mesta na disku za bar jos jednu bazu. Obrisati sa delete one koji nisu potrebni, naravno bez pack, pa onda vratiti status na undelete kasnije. Problem je jedino koliko dugo radi naredba delete for <uslov> u jednoj bazi od oko 5M. Zanima me sta bi se moglo postici razbijanjem baze na vise baza, sa uvodjenjem nekih internih pokazivaca i slicno ??? Ja imam problem sa bazom od 4M sa oko 20.000 slogova, koja je naravno nestrucno napravljena, odnosno, formirao neko dbu-om bazu sa 10 polja i posle punio neko ko zna jos manje. Da li neko zna kako da resi problem skip-a na poslednjem slogu po filteru ?
clipper.23 vkrstonosic,
Kad smo vec kod Clippera, dbf-a i ntx-a, u Clipperu 5.01 je odvojena biblioteka DBFNTX.LIB u kojoj je drajver za rad sa bazama. Postoji i funkcija koja iscitava koji se drajver trenutno koristi, ili postavlja neki drugi. Kakve su sanse da se tu uradi nesto pametno, odnosno, preradi postojeci, napravi ili nabavi neki drugi drajver ???
clipper.24 beki, -> #20, ppekovic
> Postoji resenje koriscenja index-a po polju ke se > trazi, ali onda otpada upotreba dbedit funkcije, tj. morao bi > da se pravi sopstveni dbedit. Ne moras praviti sopstveni dbedit. Predji na Clipper 5, tamo imas ***ODLICNI*** browse sistem. Ukoliko postoji interes, poslacu ovde jedan program koji koris- ti TBROWSE class Clippera 5 i koji je prilicno univerzalan. Naime, Clipper 5-ov TBROWSE omogucava: -sve ono sto omogucava dbedit -umetanje sopstvenih funkcija SKIP, GO TOP i GO BOTTOM -i jos mnogo toga... Pozdrav, Beki
clipper.25 beki, -> #22, vkrstonosic
> zahteva mesta na disku za bar jos jednu bazu. Obrisati sa delete one > koji nisu potrebni, naravno bez pack, pa onda vratiti status na > undelete kasnije. Problem je jedino koliko dugo radi naredba delete Ovde imas dva problema u jednom. Sta ako u bazi vec postoje zapisi DELETED ? Zatim, koliko je brz skip u bazi u kojoj je recimo 90% slogova izbrisan ? Moje je misljenje da bi se dobio isti rezultat (ako ne isti, onda istog reda velicine). > Da li neko zna kako da resi problem skip-a na poslednjem slogu po > filteru ? Koristi Clipper 5-ov tbrowse sistem. Pozdrav, Beki
clipper.26 beki, -> #23, vkrstonosic
> Kad smo vec kod Clippera, dbf-a i ntx-a, u Clipperu 5.01 je > odvojena biblioteka DBFNTX.LIB u kojoj je drajver za rad sa bazama. > Postoji i funkcija koja iscitava koji se drajver trenutno koristi, ili > postavlja neki drugi. Kakve su sanse da se tu uradi nesto pametno, > odnosno, preradi postojeci, napravi ili nabavi neki drugi drajver ??? Isto pitanje !!!!! Pitao sam po mnogim BBS-ovima i nigde nista... Beki
clipper.27 djorzor, -> #22, vkrstonosic
> Mozda bi se ovo moglo izvesti i bez copiranja baze, jer to > ipak zahteva mesta na disku za bar jos jednu bazu. > Obrisati sa delete one koji nisu potrebni, naravno bez > pack, pa onda vratiti status na undelete kasnije. Problem > je jedino koliko dugo radi naredba delete for <uslov> u > jednoj bazi od oko 5M. Ako Ti treba EDIT, brisanje bez pakovanja ne ubrzava stvar. Velika je verovatnoća da će biti isto tako sporo kao kod SET FILTER. Uz to, koliko se sećam, SET DELETED OFF/ON ne isključuje obrisane slogove kod EDIT komande. Brzina rada za DELETE for <uslov> zavisi od <uslov>, ali neko moje iskustvo je da je to jedna od bržih varijanti. Što se tiče mesta na disku, rad sa bazom od 5M u principu je preporučljiv samo sa dosta mesta na disku. > > Zanima me sta bi se moglo postici razbijanjem baze na vise > baza, sa uvodjenjem nekih internih pokazivaca i slicno ??? Nisam siguran, ali to može da koristi pre svega ako već imaš ideju kakvi će da budu zahtevi za izveštaje. Na primer, ako Ti vrlo često trebaju korisnici čije ime počinje nekim slovom, onda ima svrhe razbiti bazu u 30 podbaza u kojima će se nalaziti podaci za korisnike kojima ime počinje sa A, B ... Ako takvih zahteva nema mnogo, nego su uslovi dosta složeniji, mislim da to neće mnogo pomoći. Kao međuvarijanta, ako se update base ne radi mnogo često, možda bi bilo pametno da izvršiš kopiranje baze tako da su slogovi složeni po azbučnom redu korisnika. Ne znam tačno kako se komanda zove, mislim da se može naći u HELP-u. > > Ja imam problem sa bazom od 4M sa oko 20.000 slogova, koja > je naravno nestrucno napravljena, odnosno, formirao neko > dbu-om bazu sa 10 polja i posle punio neko ko zna jos > manje. Ako je problem u loše zamišljenoj bazi, mislim da bi trebalo formirati neku bolju strukturu i onda napisati jednostavan program koji bi podatke prepisao iz stare u novu bazu. > > Da li neko zna kako da resi problem skip-a na poslednjem > slogu po filteru ? Nije mi baš jasno šta me pitaš.
clipper.28 ppekovic, -> #24, beki
>>Ne moras praviti sopstveni dbedit. Predji na Clipper 5, tamo imas ***ODLICNI*** >>browse sistem. Ukoliko postoji interes, poslacu ovde jedan program koji koris- >>ti TBROWSE class Clippera 5 i koji je prilicno univerzalan. >> >>Naime, Clipper 5-ov TBROWSE omogucava: >> >> -sve ono sto omogucava dbedit >> -umetanje sopstvenih funkcija SKIP, GO TOP i GO BOTTOM >> -i jos mnogo toga... Ja i koristim clipper 5.01 ;))) istina tek od skoro (verovatno jer se skoro i pojavio ;) ). Kažeš da nema problema sa tbrowse-om i slučajem kada se na zadnjem slogu po filteru pritisne strelica na dole. Ja sam probao tbrowse na bazi od 10.000 slogova i jednim jednostavnim uslovom postavljenim kao filter i na jednom 21 ms disku sa 2 MB keša je pritisak na strelicu dole na zadnjem slogu po filteru radio dobrih 20-ak sekundi. Ako postoji rešenje za ovo upotrebom objekata za tbrwose ili na neki drugi način, ako ti nije teško, voleo bi da napišeš par redova o tome. Za mene bi najbolje rešenje bilo kada bi nekako moglo da tbrowse pre ispisa svakog sloga, skače na moju funkciju koja postavlja file pokazivač na slog koji ja želim da se sledeći prikaže, pa se onda kontrola vrati tbrowse-u i on ispiše slog koji sam ja u mojoj funkciji izabrao. Zašto? pa zato jer bi onda u mojoj funkciji mogao da koristim index po polju koje pretražujem pa sa find i uzastopnim skip-ovim dok se ne prekrđi uslov da veoma brzo filtriram bazu po tom uslovu. Paya
clipper.29 ppekovic, -> #27, djorzor
>>> Da li neko zna kako da resi problem skip-a na poslednjem >>> slogu po filteru ? >> >> Nije mi baš jasno šta me pitaš. Uzmi bazu od 10.000 slogova. Postavi filter, bilo kakav. Uđi u dbedit ili tbrowse. Idi na dno baze sa ctrl-pgdn (ovo će potrajati). E sad stisni strelicu na dole i oduševi se kolko je "brz" ;((( Paya
clipper.30 vkrstonosic, -> #25, beki
> Sta ako u bazi vec postoje zapisi DELETED ? > > Zatim, koliko je brz skip u bazi u kojoj je recimo 90% slogova > izbrisan ? Slazem se, ali ja samo razradjujem tudje ideje ;) Probao sam nocas, na bazi od 400K i oko 1600 slogova, delete for <jednostavan uslov>, radi oko 30 sec, prema tome, po meni ovo otpada.
clipper.31 vkrstonosic, -> #27, djorzor
> Ako je problem u lose zamisljenoj bazi, mislim da bi trebalo > formirati neku bolju strukturu i onda napisati jednostavan program > koji bi podatke prepisao iz stare u novu bazu. To znam i to nije problem, samo me zanima da li neko ima ideje kako rasturiti bazu, da bi rad posle toga bio najbrzi. Da li podeliti po slogovima, ili odvojiti polja po raznim bazama. Cilj mi je samo da dobijem sto brzu selekciju.
clipper.32 vkrstonosic, -> #24, beki
> Naime, Clipper 5-ov TBROWSE omogucava: > > -sve ono sto omogucava dbedit > -umetanje sopstvenih funkcija SKIP, GO TOP i GO BOTTOM > -i jos mnogo toga... Mislim da problem ne moze biti resen pomocu bilo kakvog dbedita, jer problem lezi u samom clipperovom radu sa filterom. On jednostavno ucini nevidljivim slogove koji ne ispunjavaju uslov, ali i dalje kad nesto radi, radi i sa njima. Jedino sto je brzo je naredba seek, pa bi trebalo videti sta se moze uraditi sa njom. Mada i to ne resava problem jer seek trazi samo na pocetku indeksiranog sloga, pa ne dolaze u obzir razni "tezi" uslovi. Clipperov TBROWSE sam probao, cak i doradio za svoje potrebe, ali ipak nisam odusevljen rezultatima. Lepo je sto je moguce zamrznuti kolonu, ili se igrati bojama i nekim oznakama, ali to ipak ne resava probleme.
clipper.33 vkrstonosic, -> #26, beki
>> Kad smo vec kod Clippera, dbf-a i ntx-a, u Clipperu 5.01 je >> odvojena biblioteka DBFNTX.LIB u kojoj je drajver za rad sa bazama. >> Postoji i funkcija koja iscitava koji se drajver trenutno koristi, >> ili postavlja neki drugi. Kakve su sanse da se tu uradi nesto >> pametno, odnosno, preradi postojeci, napravi ili nabavi neki drugi > drajver ??? > > Isto pitanje !!!!! Pitao sam po mnogim BBS-ovima i nigde nista... Eh, a mislim da bi tu trebalo da lezi resenje problema brzine clipperovog rada sa bazama. Ima li dobrovoljaca da malo prodzaraju po dbfntx.lib ;))
clipper.34 beki, -> #28, ppekovic
> Za mene bi najbolje resenje bilo kada bi nekako moglo > da tbrowse pre ispisa svakog sloga, skace na moju funkciju > koja postavlja file pokazivac na slog koji ja zelim da se > sledeci prikaze, pa se onda kontrola vrati tbrowse-u i on > ispise slog koji sam ja u mojoj funkciji izabrao. Ideja TBROWSE sistema je upravo u tome. TBROWSE sistem je neka vrsta prethod- nice objektno orijentisanog Clipper-a. Postupak za rad je sledeci: 1. Kreiraju se tbcolumn objekti koji sadrze definiciju kolona 2. Kreira se tbrowse objekat od svih tbcolumn objekata 3. Ulazi se u petlju koja skenira tastaturu i u zavisnosti od toga sta treba da se uradi poziva odgovarajuce metode tbrowse objekta. Odlicna strana tbrowse-a je sto ne skace on u tebe (kao dbedit), vec ti skaces u njega i drzis sve njegove konce (moguce je i on-line dodavanje i brisanje kolona). Da bi opisao stvar, dacu ovde jedan kratak primer upotrebe tbrowse sistema na bazu ABC.DBF sa samo dva polja: IME (C[15]) i PREZIME (C[15]). ******************* LOCAL kolona[2],br,kraj,dugme CLEAR USE abc kolona[1]=tbcolumnnew("Ime", {|| ime}) && Kreiramo objekte u kojima kolona[2]=tbcolumnnew("Prezime", {|| prezime}) && smestamo kolone br=tbrowsedb(3,20,22,60) && Kreiramo tbrowse objekt u datom prozoru. Ono && ...db kaze da browse-ujemo iz baze i olaksava && inicijalizaciju. br:addcolumn(kolona[1]) && Vezujemo kolone sa tbrowse objektom br:addcolumn(kolona[2]) kraj=.F. DO WHILE .not. kraj DO WHILE !br:stabilize() && Prozor se popunjuje slogovima. Svaki poziv na ENDDO && br:stabilize dodaje jedan slog u prozoru. dugme=inkey(0) DO CASE CASE dugme=K_DOWN br:down() && Pozivamo metod za prelaz na sledeci slog CASE dugme=K_UP br:up() && Pozivamo metod za prelaz na prethodni slog CASE dugme=K_ESC kraj=.T. ENDCASE ENDDO CLOSE ******************* Objekti u Clipper-u 5 (na zalost, nisu moguci user-defined objekti) imaju svo- je metode i instance-varijable. Metodi se pozivaju sa: objekt:metod(parametri) ---> rezultat Instance-varijable se citaju sa: objekt:varijabla ---> rezultat a postavljaju sa: objekt:varijabla=izraz Da ne bi ovde mnogo duzio o svim metodima i instance-varijabla (ima ih podosta), saljem uz ovaj tekst jedan PRG fajl koji sam uspesno koristio kao genericki filterirani browse u nekoliko aplikacija. Inace, Clipperov tbrowse sistem je veoma mocan - moguce je imati istovremeno nekoliko tbrowse objekata aktivnih i u njima prikazivati sadrzaje nekoliko povezanih baza, ili mozda jedne baze. Uostalom, sve ovo veoma podseca na sve okoline za programiranje sa prozorima (message driven okoline), kao Macintoshov, Windows itd. Svakome koga interesuje Clipper 5 toplo bi preporucio knjigu: Clipper programming guide 2nd edition, Rick Spence, Microtrend. (^^^^^^^^^^ co-developer of Clipper) u kome ima mnogo sistematiziranog znanja i umeca sa Clipper-om. Beki mybrowse.zip
clipper.35 lazo, -> #20, ppekovic
-> Podela na više baza je problematična, tj. kako baze -> podeliti. E ovako. Ja sam taj problem rješio na slijedeći način. Naime, iskori- stio sam brzinu SEEK naredbe. Naime, indeksirao sam bazu po ključevima koji mi mogu zatrebati u toku obrade baze. Princip je slijedeći. Recimo da imamo bazu u kojoj ima nekoliko stotina kupaca i intersuju vas podaci za jednog kupca. Indeksirao sam datoteku po polju za šifru kupca i zatim kada se unese odgovarajuča šifra, sa SEEK, koji je veoma brz pozicionira se na prvi slog koji je vezan za tog kupca. Zatim se naredbom COPY TO dat WHILE šifrakupca=VARIJABLA dobija nova datoteke sa puno manje slogova. Rad sa tako kratkom datotekom oduzima mnogo manje vremena, nego sa onom od preko 10000 slogova. Zatim se pri izlasku iz tog dijela programa izbriše ta pomoćna datoteka. To je naravno korisno kod izlistavanja raz- nih kartica i štampe kartica. Na ovaj način sam postigao da se posao koji je rađen od 8 sati (vjerujte mi na rječ), uradi za 40 minuta. Problem se naravno javlja ako treba nešto fizički mjenjati u datoteci. Kako ono što je mjenjano u pomoćnoj da se izmjeni i u glavnoj. Ako bi se svi ti podaci izbrisali pa zatim dodali iz pomoćne opet bi se dobila sporost rada. Zato fizičke izmjene radim u glavnoj, a izvještaje pomoću tzv. pomoćnih dato- teka koje nakon upotrebe brišem, jer nema potrebe da zauzima prostor na disku kad se ti isti podaci nalaze u glavnoj. Problem je kad se zada filter pa se čeka dok se pozicionira na prvi slog u glavnoj filtriranoj bazi, kao i neki nedostaci DBEDIT-a. Inače, gore opisani način obrade podataka u velikim datotekama je jedan od načina da se poveća brzina obrade podataka i za mene najbolji. Volio bih, ako neko zna bolji tj. brži način obrade podataka u DBF datotekama da ga opiše. Nadam se da sam bar malo pomogao u tome kako izdjeliti datoteku na više manjih i da se poveća brzina obrade. Pozdrav Mickey.
clipper.36 ppekovic, -> #34, beki
>> Inace, Clipperov tbrowse sistem je veoma mocan - moguce je imati istovremeno >> nekoliko tbrowse objekata aktivnih i u njima prikazivati sadrzaje nekoliko >> povezanih baza, ili mozda jedne baze. Uostalom, sve ovo veoma podseca na sve >> okoline za programiranje sa prozorima (message driven okoline), kao >> Macintoshov, >> Windows itd. Beki, svaka čast na odgovoru i tebi i Lazi, siguran sam da će ovo još mnogima koristiti. Paya
clipper.37 ndragan, -> #35, lazo
ljudi, al ga komplikujete. pređite na foks i rešite stvar prostim INDEX FOR. da se razumemo, i kod mene kartica radi na seek _kupac copy to radna while kupac=_kupac sele promet use radna alias promet && svuda u kartici piše promet->polje... i posle obrišem radnu; naravno, ni radna se ne zove baš radna, nego &tmp, gde je tmp=sys(3), zbog toga da se u mreži ne bi sudarila dvojica koji bi da prave istu radnu u isto vreme... to radim kad je jedan kupac ili neka manja količina; ako teram preko cele baze, onda index for. a ima i baza od par mega, i ne traje dugo. ali filter - nikad više (ko zapali filter, shvatiće). i ne vidim čemu tolika galama. Bue_ NDragan
clipper.38 lazo,
Evo djelimičnog rješenja da ne dođe do prelaska prvog, odnosno zadnjeg sloga u DBEDIT-u i onog dosadnog čekanja do pojave pozicionog markera. Na vrh se dolazi tipkama CTRL+PGUP, a na kraj CTRL+PGDW. Dakle, ako niste sigurni da li će kraj ili početak vi pritisnite jednu od ovih kombinacija i zatim kreni- te u suprotnom smjeru. Napominjem da je rješenje djelimično, ali može pomoći da ne dođe do 'zaglupljivanja', kad je baza pod filterom i naravno velika. Vjerovatno ovo znate, ali ... (nije zgoreg spomenuti). Pozdrav Mickey.
clipper.39 lazo, -> #36, ppekovic
-> Beki, svaka čast na odgovoru i tebi i Lazi, siguran sam da će ovo -> još mnogima koristiti. Eto, odah svoju tajnu.:))))))Sad više moji programi neće biti najbrži.:))))))) Pozdravljam sve kliperše. Mickey.
clipper.41 ppekovic, -> #37, ndragan
>> ljudi, al ga komplikujete. pređite na foks i rešite stvar prostim INDEX FOR. >> >> da se razumemo, i kod mene kartica radi na >> >> seek _kupac >> copy to radna while kupac=_kupac >> sele promet >> use radna alias promet && svuda u kartici piše promet->polje... "Digao sam galamu" ;)) zbog sledećeg: Imaš bazu od 10.000 slogova i ako udariš filter i na zadnjem slogu stisneš strelicu na dole, program radi ihaaaaj koliko. No, na svu sreću tu je Beki i Clipper 5.01 pa smo taj problem rešili. A što se tiče INDEX FOR ta ideja je dobra sve dok ne dođeš do slučaja kada ti trebaju višestruki uslovi i to da te višestruke uslove prepustiš da zadaje korisnik. Primer: Nađi mi u bazi sve čije ime počinje sa "P" Od tih mi suzi selekciju na sve koji imaju 18 godina E sad dodaj mi u tu bazu i sve čije ime počinje i na "M" U vezi COPY TO komande. Ona na žalost radi isuviše sporo za veliki broj izabranih slogova, a ako se program pusti da korisnik zadaje uslove, onda će se sigurno vrlo brzo desiti ovakav slučaj. S druge strane, COPY TO je skoro neupotrebljiv tamo gde se jako često koristi selekcija, "deselekcija", a to je u gore pomenutom slučaju. Paya P.S. Hvala za preporuku FOX-a ali znaš kako smo svi mi konzervativni. S druge strane potrebno je izvesno vreme da bi se navikao na nove komande i funkcije, zatim fox-ove prednosti, ali i bug-ove. A na kraju, kada nisam 100% siguran oko izbora, idem po sistemu, kud svi turci ... A svi (većina) odoše put clipper-a, što nikako ne znači da je ovaj bolji, ali zar svi ne koristimo INTEL-ove procesore a MOTOROLIni su bolji.
clipper.42 bulaja,
Hey Clipperasi, evo jednog lepog iznenadjenja u prikacenoj datoteci (subntx2.zip): Í─── ║ Subntx() is a C function called from a Clipper program to quickly ║ extract index elements from an existing index file, and create a ║ "subset" index matching some key. ║ ║ Typical uses for SubNtx() include implementing a 'WHILE' clause for ║ dbedit, replacing or deleting groups of records, or reporting for a ║ certain condition. Any of these processes can be made to perform ║ significantly faster with SubNtx(). Ë─── Dakle izgleda bas ono sto nam je trebalo za resavanje nekoliko prethodno spomenutih problema. Ovo je shareware verzija i ogranicenje je sto se funkcija moze pozvati samo 5 puta prilikom jednog izvrsavanja programa. Uz registraciju se dobija i C source f-je. Sad jos kad bi smo znali strukturi NTX datoteke, mislim da ne bi bio neki problem da i sami ovako nesto napravimo. Prekopacu posle po Clipper dokumentaciji da vidim ima li mozda opisan NTX ili struktura alternativnog NTX engine. JžB
clipper.44 beki, -> #41, ppekovic
> A sto se tice INDEX FOR ta ideja je dobra sve dok ne dodes do > slucaja kada ti trebaju visestruki uslovi i to da te visestruke uslove > prepustis da zadaje korisnik. Primer: > > Nadi mi u bazi sve cije ime pocinje sa "P" > Od tih mi suzi selekciju na sve koji imaju 18 godina > E sad dodaj mi u tu bazu i sve cije ime pocinje i na "M" Takav slucaj ne mozes da obuhvatis indexom. To je inace i razlog zasto je SQL spor - indexe kreiras u data definition i to na vrlo niskom nivou, a zatim radis upite uopste ne vodeci racuna na indexe. Kad tad, mora se po- vesti racuna (cak i na VAX6600). Zato u velikim relacionim bazama postoje profajleri koji ce reci koliko vremena je izgubljeno na kakve stvari i predloziti indexe. Ideja je u tome da SQL sam optimizuje upit koristeci indexe. To bi mozda moglo nekako da se uradi u Clipper-u (pomocu potprograma napi- sanog u C). Trebalo bi cuvati jedan data-dictionary, u kojem bi bili opisani svi DBF i NTX fajlovi. Zatim bi se, kad se da upit, odredilo koji index ko- ristiti itd..... Ima li neko da ovo uradi ? Beki
clipper.45 beki, -> #42, bulaja
> Sad jos kad bi smo znali strukturi NTX datoteke, mislim da ne bi bio > neki problem da i sami ovako nesto napravimo. Prekopacu posle po > Clipper dokumentaciji da vidim ima li mozda opisan NTX ili struktura > alternativnog NTX engine. Imam strukturu Clipper-ove NTX datoteke. Samo problem je u tome sto treba dodati network support i slicne stvarcice. Posto sam radio diplomski rad oko paralelnog pristupa B-stablima, znam da je to cupav problem. Poslacu za neki dan opis NTX strukture, jer sad nemam vremena. > je sto se funkcija moze pozvati samo 5 puta prilikom jednog Mozda neko provali zastitu ! ...Beki
clipper.46 zkehler, -> #42, bulaja
Ŕ (...) Sad jos kad bi smo znali strukturi NTX datoteke, mislim da Ŕ ne bi bio neki problem da i sami ovako nesto napravimo (...) Clipper-ov sistem za indeksiranje koristi modifikovano B-stablo. Prvi page je header, ostali koriste ključeve i pointere neophodne za održavanje stabla. Struktura pagea za header je sledeća: #define MAX_KEY 256 typedef struct š unsigned sign; unsigned version; long root; long next_page; unsigned item_size; unsigned key_size; unsigned key_dec; unsigned max_item; unsigned half_page; char key_expr ŠMAX_KEYĆ; Boolean unique; ć NTX_HEADER; Značenja polja: sign - dužina 2 bajta, vrednost 03; identifikuje bazu kao dBase/Clipper version - polje koje Clipper koristi da bi odredio verziju indeksnog sistema root - offset prve indeksne stranice next_page - offset prve u listi nekorišćenih indeksnih strana. Prva 4 bajta nekorišćene strane ukazuju na sledeću takvu stranu. Lista se završava vrednošću nula. item_size - veličina ključa, plus dužina 2 long broja. Ovo je razmak između ključnih zapisa key_size - dužina ključa po kome se indeksira key_dec - broj decimalnih mesta u ključu, ako je NUMERIC max_item - najveći broj ključeva, koji zajedno sa pointerima mogu stati na jednu stranu half_page - najveći broj ključeva na strani, podeljen sa 2 (važno za B-stabla) key_expr - izraz po kome je indeksirana baza, najveće dužine 256, NIL na kraju unique - boolean koji pokazuje vrednost unique flega kada je indeks kreiran Offseti polja u NTX datoteci: 00 unsigned sign 02 unsigned version 04 long root 08 long next_page 0C unsigned item_size 0E unsigned key_size 10 unsigned key_dec 12 unsigned max_item 14 unsigned half_page 16 char key_expr ŠMAX_KEYĆ 272 Boolean unique Imam C programčiće za dump NTX headera i listanje indeksa. Ako nekome trebaju, javite. ZK P.S. "Clipper Programming Guide", 2nd Ed., Rick Spence
clipper.47 ndragan, -> #41, ppekovic
* Imaš bazu od 10.000 slogova i ako udariš filter i na zadnjem slogu stisneš * strelicu na dole, program radi ihaaaaj koliko. No, na svu filter? ne hvala, ako ima duvana, zavijam sam ;). stvarno, baš smo poslednje nedelje proterali poslednju FILTER naredbu iz svojih rutina. BTW - jel zna neko da li igde ima da se kupi duvana za zavijanje, i to hercegovačke škije (našao sam konferenciju gde ću da se oglasim, alal mi vera...). ranije su to držale politikine trafike, ali evo već godinu ipo dana... pošto se taj duvan reže u Zadru. U Zadru inače (pre deset godina) niko nije imao pojma da se to tamo proizvodi. * Nađi mi u bazi sve čije ime počinje sa "P" Od tih mi suzi selekciju na sve koji imaju 18 godina E sad dodaj mi u tu bazu i sve čije ime počinje i na "M" index on <izraz> for (ime='P' .and. godina=18).or. ime='M' to idxfile just like that. ili ako korisnik zadaje uslov, umesto 'P', 18 i 'M' ufuraš neke promenljive koje je on zadao; kod mene se često pojavljuje uslov=iif(odgovor=1,'baza->pera=baza2->mika','baza->laza=baza2->milka') index for &uslov on &dex to (tmp) itd; to radi. danas sam na jednoj 20MHz/150/286 indeksirao ovako: index on skl+kupci.posbroj+kupac+pakdatum ; for between(posbroj,pbr1,pbr2).and. konto=_konto to (tmp) naravno, i uslov i indeksni pojam su makroi koje dobijam posle jedne serije od tri - četiri pitalice. iz baze od oko 96000 slogova po 100 bajta (tu negde) iščupao mi je oko 65000 za 20 minuta; makina je neposvećeni poslužilac ( :) non-dedicated server) u RPTI mreži (mada niko drugi nije radio na tom disku); baza je imala oko 10M i nešto. Obrati pažnju da se u indeksnom pojmu nalazi i jedno polje iz druge baze koja je u relaciji; kad to uspem da izbegnem stvar šljaka nekih 4 puta brže. * strane, COPY TO je skoro neupotrebljiv tamo gde se jako često koristi* selekcija, "deselekcija", a to je u gore pomenutom slučaju. to i kažem - COPY ni ne koristim; radim samo COPY WHILE ako znam da nema nešto mnogo da se kopira. Bue_ NDragan
clipper.48 beki, -> #46, zkehler
Bas bi hteo da vidim tog koji bi **samo** iz ovoga uradio novi NTX sistem, koji ce biti isti sa starim, posebno u multiuser (=network) okruzenju. Uraditi B-stablo sa konkurentim pristupom je gorak zalogaj (moj diplomski rad je bio na tu temu), a uraditi to kompatibilno sa Clipper-ovim NTX-om jos teze. OVO KAZEM DRUGI PUT: CLIPPER+BTRIEVE=SUPER. ZNA LI NEKO KAKO ZAMENITI ORIGINALNI DBFNTX.LIB ?????????????????????????? Beki
clipper.49 beki,
Jeli moguce koristiti Clipper5-ove overlaye bez RTLINK-a, odnosno sa nekim drugim linkerom kao LINK ili TLINK ? Beki
clipper.50 beki, -> #47, ndragan
Sve je to lepo. Ali izgleda da niko od nas nije dobro razumeo Payu: on je tra- zio metod za selekciju zapisa iz baze po uslovu koji zadaje korisnik on-line. Resenje sa INDEX FOR ****nije dobro**** jer u svakom slucaju mora se preci pre- ko svih 96.000 slogova u bazi !!! U teoriji relacionih baza postoje metodi za optimizaciju upita za upotrebu postojecih indexa. Nazalost ovi algoritmi se ne mogu implementirati u Clipper-u jer zahtevaju nizi nivo pristupa indexnim faj- lovima, a i nesto drugaciju indexnu strukturu. U jednom clanku sam nasao algoritam i strukturu podataka koji omogucavaju da kad se odrede n polja po kojima ce se vrsiti upiti, kreira index koji ce omogu- citi bilo kakve upite po opsezima tih polja. Na primer, ako treba da radimo upit po poljima: pol, ime i starost, mozemo postaviti upit kao: pol="M" .and. 18<=starost .and. starost<=20 .and. ime>="M" .and. ime<="O" Kada imamo potrebu za takvu slobodu upita i kada imamo tako veliku bazu (to se dobro placa, zar ne), mozda se isplati implementirati neki ovakav subsystem. Mozda se najvise isplati uzeti jedan microVax i Rdb i svi su problemi reseni. Beki
clipper.51 beki,
Dali neko ima ideju kako ugraditi sledece u Clipper-u (5) ? Treba mi to da su DBF fajlovi zasticeni od citanja u dBase III ili od drugog Clipper programa. Teoriju vec znam, dali neko ima praksu ??? Beki P.S.: Previse usera se ohrabrilo da u dBase mogu uraditi sve sa svojom evidencijom !!!!!!!!!!!!
clipper.52 ppekovic, -> #47, ndragan
>> uslov=iif(odgovor=1,'baza->pera=baza2->mika','baza->laza=baza2->milka') >> index for &uslov on &dex to (tmp) Eh, tako sam i ja probao, ali mi se ubrzo pojavio problem. Naime, ako korisnik zada malko više uslova tj. kada string postane povelik, dešavalo se da mi clipper prijavi greščicu u stilu "e, da nisi malo preterao" ;))). Samo mi nikad nije bilo jasno po kojoj logici to prijavljuje. Nema fiksne dužine posle koje to prijavljuje jer se to nekad dešavalo se kraćim a nije sa dužim stringovima. S druge strane, ni broj uslova nije baš navodio na neki logičan zaključak. Moguće je da funkcija po kojoj clipper određuje pojavu ove greške zavisi od više parametara. Neznam kako sa ovim stoji FOX. Ako ti nije teško, probaj, unesi xxx uslova pa vidi dal će da pukne. Paya
clipper.53 ppekovic, -> #49, beki
>> Jeli moguce koristiti Clipper5-ove overlaye bez RTLINK-a, odnosno sa >> nekim drugim linkerom kao LINK ili TLINK ? Pa trebalo bi da može sa sa MS LINK-om iz MSC-a 6.0. Paya
clipper.54 ppekovic, -> #51, beki
>> Dali neko ima ideju kako ugraditi sledece u Clipper-u (5) ? >> >> Treba mi to da su DBF fajlovi zasticeni od citanja u dBase III ili od >> drugog Clipper programa. Teoriju vec znam, dali neko ima praksu ??? ;) Uze mi ideju iz glave. Za sve prikaze u programima, osim u slučaju dbedit-a, rešenje za ovo je prilično trivijalno. Napišeš svoje funkcije za code i decode (dal ćeš koristiti xor ili neki drugi sistem codiranja nije ni bitno) i jednostavno kodiraš celu bazu. Zatim, recimo pre READ/GET-a uradiš jedno decode tekućeg sloga, uradiš šta treba, posle uradiš jedno code i gotovo. E, sa dbedit-om je malko drugačija stvar. Potrebna je funkcija koje će pre ispisivanja svakog reda dekodirati taj red pa ga tek onda dati na dalju "obradu" dbedit-u. To u clipper-u '87 nije bilo moguće, ali u 5.01 jeste, pošto dbedit iz 5.01 dozvoljava da redefinišeš svaki deo dbedit-a. Međutim, ima i tu problema. U isto vreme, svi oni koji su trenutno prikazani u dbedit prozoru treba da su decodirani a svi ostali kodirani. Zato treba preuzeti kontrolu i nad svim funkcijama za kretanje kroz bazu u dbedit-u, pa čim jedan ili više slogova izađu iz prozora, treba ih kodirati, a nove dekodirati. Probaću ovih dana to da sprovedem u delo pa ću javiti o rezultatima. Paya
clipper.55 bulaja, -> #54, ppekovic
│ E, sa dbedit-om je malko drugacija stvar. Potrebna je funkcija │koje ce pre ispisivanja svakog reda dekodirati taj red pa ga tek onda │dati na dalju "obradu" dbedit-u. To u clipper-u '87 nije bilo moguce, │ali u 5.01 jeste, posto dbedit iz 5.01 dozvoljava da redefinises svaki │deo dbedit-a. └─── Bilo je moguce (i ja sam to vrlo cesto koristio) i u Clipperu S87, i to preko definisanja niza za formatiranje ispisa. Stavis npr. afld[1]="polje1" afld[2]="polje2" (...) apic[1]="decode(polje1)" apic[2]="decode(polje2)" (...) dbedit(y1, x1, y2, x2, afld, , apic) i jos definises DECODE funkciju i that's all. Ideja sa kodiranjem / dekodiranjem (po meni) nije neko resenje, sem naravno za vrlo poverljive podatke koje i ovako treba sifrovati, a po njima ne treba vrsiti nikakva pretrazivanja. Kodiranjem svih polja bi suvise usporio rad kod npr. indeksa, dok bi se kod pretrazivanja jos nekako i prezivelo ukoliko bi se uslovi pretrazivanja takodje konvertovali u kodirani oblik. Ali ovo moze dovesti i do prilicno velikih problema jer ce "glupi" korisnici ulaziti svejedno u bazu i po onako kodiranoj brljati i samo nesto pokvariti posto tek sad nece znati sta rade. Ma kako trivijalno izgledalo jedno resenje koje ja koristim radi. Pokusajte samo da preimenujete npr BAZA.DBF u BAZA.DAT (ili neku drugu ekstenziju). Vecina od onih sto su naucili da ulete u dBase u daju "use baza" ce se tu predati. Provereno. Drugo resenje koje smatram vrlo dobrim i na kome cu mozda proraditi ovih dana ako budem imao vremena (mada i nije nikakav tezak posao) je jednostavno malo sludjivanje zaglavlja .DBF datoteke. Npr. na izlasku iz programa stavite proceduru koja ce npr. prebrisati prvih nekoliko bajtova u hederu .DBF datoteke nekim proizvoljnim sadrzajem. Na pocetku programa naravno stavite da se header povrati u staro stanje vracanjem na pravu vrednost tih nekoliko bajtova. Nema sanse da procita onda bazu iz dBasea, pa ste sa te strane mirni. Posto u toku rada vaseg programa baza stoji na disku u pravom obliku, korisniku ipak moze pasti na pamet (a malo ih je tako pametnih) da program moze prekinuti i onda pogledati sta je u bazi. Alt-C ste naravno iskljucili, a mozete ugraditi u proceduru koja detektuje reset racunara u toku rada ubaciti gomilu raznih upozorenja npr. stavite da program pravi nege gluposti, npr. neku nevaznu tmp bazu i nek brlja po disku koji minut (a u stvari samo treba reindekirati baze ;). Posle toga tesko da ce se iko usuditi sledeci put da izaziva sudbinu. Bulaja
clipper.56 dejanr, -> #53, ppekovic
>> > Jeli moguce koristiti Clipper5-ove overlaye bez RTLINK-a, odnosno sa >> > nekim drugim linkerom kao LINK ili TLINK ? >> >> Pa trebalo bi da može sa sa MS LINK-om iz MSC-a 6.0. A jel tada malo brže od ono puža zvanog RTLINK?
clipper.57 dejanr, -> #54, ppekovic
>> Napišeš svoje funkcije za code i decode (dal ćeš koristiti xor ili neki >> drugi sistem codiranja nije ni bitno) i jednostavno kodiraš celu bazu. >> Zatim, recimo pre READ/GET-a uradiš jedno decode tekućeg sloga, uradiš >> šta treba, posle uradiš jedno code i gotovo. Ideja je dobra, ali bih dodao jednu stvar. Ako planirate nešto slično, zaboravite ideju da to kodiranje obavite u clipper-u. Jedna obična petlja for i=1 to len(polje) će toliko unazaditi performanse programa da će isti postati neupotrebljiv. Ukratko, jedan modulčić na asembleru!
clipper.58 dejanr, -> #55, bulaja
>> Kodiranjem svih polja bi suvise usporio rad kod npr. indeksa, Ne bi! Umesto seek(vrednost) koristilo bi se seek(code(vrednost)) i brzina bi bila ista, ako se zanemari početno izračunavanje code(vrednost).
clipper.59 beki, -> #57, dejanr
> da ce isti postati neupotrebljiv. Ukratko, jedan modulcic na asembleru! Dejan ima pravo ! Jedan programcic u assembleru ili c-u koji ce biti linkovan u aplikaciju i koji ce uraditi stvar. Ali stosevi kao: SEEK code(...) mime=decode(ime) ... REPLACE ime WITH code(mime) su prema meni neprihvatljivi - propada pouzdanost i citljivost aplikacije ! Opet se vracam na DBFNTX.LIB. Mesto za programcic u asembleru je DBFNTX.LIB ! U reklami za Clipper5 je pisalo da "it is possible to replace the low level database/index interface". Kako ? Je li potreban jos neki Nantucketov produkt ??? Pomagajte. Pozdrav, Beki
clipper.60 ppekovic, -> #56, dejanr
>>>> Pa trebalo bi da može sa sa MS LINK-om iz MSC-a 6.0. >> >> A jel tada malo brže od ono puža zvanog RTLINK? Dosta je brže, mislim duplo ako ne i više. A kad smo već kod ovog da iznesem još jedno iskustvo. Danas sam napravio batch fajl koji mi iskopira clipper 5.01 compiler i potrebne biblioteke na ram disk. Zatim sam napravio batch koji kompajlira i linkuje program u ram disku. Kompajliranje je išlo nešto malo brže, ali linkovanje ništa. Linkujem upravo sa MSC linker-om. Jedino ubrzanje koje je moguće postići je to da onaj temp fajl koji kreira MSC link date da kreira u ram disku. Paya
clipper.61 ppekovic, -> #57, dejanr
>> Ideja je dobra, ali bih dodao jednu stvar. Ako planirate nešto slično, >> zaboravite ideju da to kodiranje obavite u clipper-u. Jedna obična >> petlja for i=1 to len(polje) će toliko unazaditi performanse programa >> da će isti postati neupotrebljiv. Ukratko, jedan modulčić na asembleru! Može i u C-u. Naime, programi na C-u koji ne uključuju STDIO i GRAPH i još neke manje korišćene header-e, mogu se bez problema ulinkovati u clipper. Paya
clipper.62 dejanr, -> #61, ppekovic
>> Može i u C-u. Naravno! Dodao bih da bi C bio daleko pogodniji ako treba implementirati neki iole složeniji algoritam za šifrovanje, na asembleru bi bilo dosta mučno. Ima li neki dobrovoljac da to uradi pa da posle, recimo, napiše tekst na tu temu za "Računare"?
clipper.63 bulaja, -> #58, dejanr
││Kodiranjem svih polja bi suvise usporio rad kod npr. indeksa, │└─── │Ne bi! Umesto seek(vrednost) koristilo bi se seek(code(vrednost)) i brzina │bi bila ista, ako se zanemari pocetno izracunavanje code(vrednost). └─── Mislio sam na usporenje prilikom kreiranja indeksa. Indeksiranje po polju koje je kodirano nema nikakvig smisla (sem ako se kao encode funkcija ne stavi not, kad bi to moglo da se resi descending indexom), pa je potrebno dati indeksiranje po UDF funkciji (decode), sto ce vec dosta usporiti rad cak i ukoliko je funkcija radjena u C-u ili ASM, dok bi Clipper funkcija vec donela katastrofalno usporenje. E sad ne mogu da se setim kako ide osvezavanje indeksa - vajlda kad se da replace na key field onda ide i reindeksiranje po UDF funkciji, ali posto se radi samo za trenutno polje usporenje bi trebalo da je neprimetno. Pao mi je napamet drugi veliki problem prilikom kodiranja baze - ja imam obicaj da u GET maske stavljam direktno ucitavanje ili prikazivanje (sa CLEAR GETS) polja iz baze. Naravno da nije moguce GET decode(polje), eventualno bi se dalo simulirati preko VALID, ali tu vec idemo u takve komplikacije da je jedino primenljivo resenje smestanje polja u privremeni niz i kasnije snimanje u bazu, cime opet gubim sve prednosti direktnog GET-a polja iz DBF. A sad da se zapitamo cemu ovoliko kodiranje i skrivanje podataka. Ako su vrlo poverljivi onda Ok, makar bilo i 10 puta sporije. Medjutim za sprecavanje radoznalih korisnika cini mi se da bi najbolje resenje bilo ono sto sam predlozio za sludjivanje headera baze. Kratko je i jednostavno (aj' potrudicu se mozda da i uradim to ovih dana), i sto je najvaznije ne zahteve nikakve dodatne akrobacije prilikom rada sa bazama u programu. Bulaja
clipper.64 bulaja, -> #59, beki
│Opet se vracam na DBFNTX.LIB. Mesto za programcic u asembleru je DBFNTX.LIB ! │U reklami za Clipper5 je pisalo da "it is possible to replace the low level │database/index interface". Kako ? Je li potreban jos neki Nantucketov produkt? └─── Nantucket ocito ne zeli da se previse upustimo u analiziranje DBFNTX biblioteke. U kompletnoj dokumentaciji se jedva i pominje DBFNTX.LIB i to samo se spomene da postoje tri bibiloteke (CLIPPER, EXTEND i DBFNTX), a u NG-ovima ni pomena. Jednom recju nista. Malo sam gledao po tom LIB-u, ima oko 40 raznih funkcija. Kretensko resenje je da sad vadimo svaki OBJ iz LIB-a, pa malo SOURCER-a, pa menjamo pa vracamo u LIB etc. Ovo je samo teorijsko resenje, em je zaludan posao, em se ja i da imam vremena ne bi snasao u tome ;), a ko zna i dal' bi proradilo. Ostaje nam da cekamo da se ameri sete da to uradi, il' bar da imamo nesto dokumetvoano da krenemo od toga. Crno nam se pise ;).
clipper.65 dejanr, -> #63, bulaja
>> jedino primenljivo resenje smestanje polja u privremeni niz i kasnije >> snimanje u bazu, cime opet gubim sve prednosti direktnog GET-a polja >> iz DBF. Ja i tako uvek sve prepisujem u privremena polja. Iz razloga što moram da omogućim korisniku da eventualno usled unosa odustane (sa Esc) od SVEGA što je do tada na tom ekranu promenio. A za to izgleda nema drugi način. >> Indeksiranje po polju koje je kodirano nema nikakvig smisla (sem ako >> se kao encode funkcija ne stavi not, kad bi to moglo da se resi >> descending indexom), pa je potrebno dati indeksiranje po UDF funkciji >> (decode), sto ce vec dosta usporiti rad cak i ukoliko je funkcija radjena >> u C-u ili ASM, dok bi Clipper funkcija vec donela katastrofalno usporenje. Pa dobro, indeksira se relativno retko, nije strašno ako malo i potraje. Ne verujem da bi usporenje bilo baš toliko veliko, vredi probati.Mada priznajem da mi ovo nije palo na pamet, zato što indekse uglavnom koristim za pretraživanje a ne za sortiranje.
clipper.66 ppekovic, -> #64, bulaja
>>Nantucket ocito ne zeli da se previse upustimo u analiziranje DBFNTX >>biblioteke. U kompletnoj dokumentaciji se jedva i pominje DBFNTX.LIB i >>to samo se spomene da postoje tri bibiloteke (CLIPPER, EXTEND i >>DBFNTX), a u NG-ovima ni pomena. Jednom recju nista. Pogledao sam na BIX-u u clipper conf. ali ni tamo ni reči. Ostavio sam poruku sa pitanjem u vezi ovog liba na mom tarzan engleskom ;))) pa ako budu razumeli, valjda će neko znati nešto. Paya
clipper.67 spantic, -> #56, dejanr
>>> > Jeli moguce koristiti Clipper5-ove overlaye bez >>> > RTLINK-a, odnosno sa nekim drugim linkerom kao LINK >>> ili TLINK ? >>> >>> Pa trebalo bi da može sa sa MS LINK-om iz MSC-a 6.0. > > A jel tada malo brže od ono puža zvanog RTLINK? Ne da je brže nego rastura. Pre nego što sam počeo da koristim MS C 6.0 sa Clipperom sa koristio TLINK ali sa novim MS linkerom stvar se poboljšala.
clipper.68 ndragan, -> #52, ppekovic
>* Neznam kako sa ovim stoji FOX. Ako ti nije teško, probaj, >* unesi xxx uslova pa vidi dal će da pukne. kod foksproa je ograničenje da kompajlirana linija ne sme da pređe 1K; nikad nisam imao problema te vrste. ono jes da ponekad radi sporo, ako se u indeksnom pojmu spominje polje iz druge (i treće!) baze u relaciji, ali to mi uvek radi. Bue_ NDragan
clipper.69 lola, -> #42, bulaja
Bio sam na putu, pa sa zakasnjenjem citam diskusiju o delimicnim indeksima. To jeste veliki problem i ja sam se dovijao na razne nacine. U svojoj dokumentaciji imam stariju verziju SUBNTX() koja je takodje demo i pokriva S87. Ako nekog zanima mogu da je okacim ovde. (SUBNTX.LZH 32326 27.12.89)
clipper.70 beki, -> #69, lola
> indeksima. To jeste veliki problem i ja sam se dovijao na razne Da, jeste veliki problem. Sada, kada sam ovo citao dobio sam jednu ideju koju jos nisam probao, al bi trebalo da radi. Kada dodajemo novi record u bazi, iskljucimo one indexe koji ne treba da sadrze taj record. Ovo re- senje je nezgodno s obzirom na REPLACE i REINDEX. REPLACE u slucaju promene polja koje ulazi u neki indexni izraz bi trebalo implemenitrati tako sto ce se obrisati record sa DELETE, pri cemu su otvoreni indexi u koje taj zapis ulazi, a zatim ponovo APPEND-ovati. REINDEX bi se morao implementirati kopiranjem baze, record po record, pri cemu ce se za svaki, ukljucivati odgovarajuci indexi. Malo je nezgrapno, al bi trebalo da radi. Treba probati da nije previse sporo otvaranje i zatvaranje indexa. Pozdrav, Beki P.S.: Nakon sto sam ovo napisao u SOR-u, probao sam gornji metod u dBase i sve je radilo kako treba. Trebalo bi i u Clipper-u ! P.P.S.: Sve ovo bi se elegantno uklopilo u Clipper5-ovu mogucnost defini- sanja komandi.
clipper.71 ppekovic,
Pitao sam na BIX-u u vezi DBFNTX.LIB-a i evo odgovora: ========================== clipper/tech.questions #2353, from irae, 317 chars, Mon Nov 4 17:48:46 1991 This is a comment to message 2352. -------------------------- For that I'd guess you'll need the RDD spec which Nantucket has been promising to release for the last year or so. The only person outside of Nantucket that seems to know it is the folks at Successware 90 who wrote the Babblefish driver for Paradox and have hinted that it uses the unpublished RDD interface. Ira Paya
clipper.72 ndragan, -> #63, bulaja
* sprecavanje radoznalih korisnika cini mi se da bi najbolje resenje * bilo ono sto sam predlozio za sludjivanje headera baze. Kratko je i a jedna igra tipa 'isprekrštavaj sve pre nego što izađeš i odseci mu heder'? jeste da je opasno, jer ne garantuje da će sve ostati čitavo kad nestane struje, ali bi moglo da igra, a? ili, recimo, da se negde u hederu neki od neiskorišćenih bajtova upotrebi za oznaku da li je heder sluđen, pa ako jeste, pozovi rutinu koja ga unormaljuje, inače jok (pri otvaranju) i rutina za zatvaranje koja opet pravi pičvajz po hederu. to čak ne bi moralo naročito ni da bude komplikovano. mislim da ideja nije ni bila da se podaci bog zna kako zaštite od nepozvanih, nego da se nedoučeni korisnik spreči da čačka po dbfu i ubacuje nemoguće kombinacije (a tako smo se mučili oko kontrole u aplikaciji...). pade mi sad na um još jedna stvar: arhiver sa šifrom koji se poziva iz aplikacije da raspakuje (naravno sa -m opcijom) sve dbfove pre upotrebe, i spakuje ih posle... što će naravno značiti da je 640 K neka vrsta berlinskog zida i da mora jednom pasti. izeš intel. Bue_ NDragan
clipper.73 ndragan, -> #70, beki
* u bazi, iskljucimo one indexe koji ne treba da sadrze taj record. Ovo kako misliš da isključiš indekse? set inde to, pa append, pa set inde to inde1,ind2 - tu si ladno jedno tri-četr puta zvao što dos što bios da ti pravi promaju (otvara/zatvara datoteke). sve i da ih držiš u ram disku, ne verujem da je rešenje dovoljno brzo. ako staviš set order to 0, indeksi se i dalje održavaju. a seti se ovoga: ** cexp1=IIF(lexp,cexp,"NEKI KLJUC") *a šta misliš o cexp1=IIF(lexp,cexp+str(recno(),5),"NEKI KLJUC") to bi trebalo da radi, jesi li probao? ja nisam, meni ne treba. i dalje mi je pomalo čudna cela diskusija, jer kao foksovac stvarno nemam te probleme (imam neke druge...). primedba da indeks for čita celu bazu je na mestu (naš prvi komentar je bio 'a što nema index while'), ali ako je za brauz, možda treba razmišljati o stalnom delimičnom indeksu, ili o jednoj pomoćnoj bazi koja bi držala samo indeksni pojam prve (glavne) baze i u drugom polju recno() od prve; u tom slučaju ta manja se indeksira a velika ne, i uspostavi se relacija po tom drugom polju na broj sloga u velikoj. tako nešto sam svojevremeno majmunisao u vaks bajziku, i brzo je šljakalo. tamo čak ona velika nije ni bila indeksna datoteka (nije reč o DBF!) nego sekvencijalna, a ova mala je bila UNIQ i sadržavala adrese prvih bajtova prvih slogova po datom ključu u velikoj. time se izbeglo duuugačko prečitavanje velike. razmisli. Bue_ NDragan
clipper.74 gristic, -> #48, beki
5.48 > OVO KAZEM DRUGI PUT: CLIPPER+BTRIEVE=SUPER. ZNA LI NEKO KAKO ZAMENITI Sa malim zakašnjenjem: slažem se ! A tek (dobitna) kombinacija C + Btrieve !!! Ili ((C + C-isam) * UNIX) == SUPER !!!!!!!!!!! (C-isam je (izmeđuostalog i) srce SQLa - prim.prev.) __GR__
clipper.75 beki, -> #73, ndragan
> dalje odrzavaju. a seti se ovoga: > >** cexp1=IIF(lexp,cexp,"NEKI KLJUC") > >* a sta mislis o cexp1=IIF(lexp,cexp+str(recno(),5),"NEKI KLJUC") > > to bi trebalo da radi, jesi li probao? ja nisam, meni ne treba. To mi se ne dopada bas najvise. Baza za koju mi ovo treba je stvarno VELIKA i onih 5 bajtova u nekoliko parcijalnih indexa mi smetaju. > brauz, mozda treba razmisljati o stalnom delimicnom indeksu, ili o jednoj > pomocnoj bazi koja bi drzala samo indeksni pojam prve (glavne) baze i u > drugom polju recno() od prve; u tom slucaju ta manja se indeksira a velika > ne, i uspostavi se relacija po tom drugom polju na broj sloga u velikoj. Odlicno. Kako se samo nisam setio ranije. Slicnu sam stvar radio na C64. Tamo je bilo sekvencijalnih i random fajlova. Ucitavao sam sve kljuceve u RAM, sortirao, SEEK-ovao u RAM i citao sa floppy disk-a. Pozdrav, Beki P.S.: Ono sa otvaranjem i zatvaranjem indexa i nije tako lose ako je baza takve prirode da nema cestih REPLACE-a i APPEND-a, znaci ako je vise query baza. Jos vise, tada je to najbolje resenje kad nemas INDEX FOR.
clipper.76 beki, -> #72, ndragan
>* sprecavanje radoznalih korisnika cini mi se da bi najbolje resenje >* bilo ono sto sam predlozio za sludjivanje headera baze. Kratko je i > > a jedna igra tipa 'isprekrstavaj sve pre nego sto izades i odseci mu > heder'? jeste da je opasno, jer ne garantuje da ce sve ostati citavo kad > nestane struje, ali bi moglo da igra, a? ili, recimo, da se negde u hederu > neki od A napraviti jedan rezidentni programcic u kojem ce biti registrirani DBF fajlovi koje aplikacija koristi i koji ce kod DOS-ovih operacija READ/WRITE za te fajlove primeniti potrebno kodiranje/dekodiranje. Taj programcic bi mogao da bide linkovan sa celom aplikacijom, a Clipper-u 5 bi cak moglo: #translate CUSE <dbfile> => register(<"dbfile">): use <dbfile> gde je CUSE nova komanda za otvaranje sifrovanih datoteka, a register je funkcija iz naseg programcica (ovo 'cica' moze da nestane ako bude poveci program) koja kaze da prilikom read i write iz datoteke koja ce biti otvo- rena pod imenom dbfile da primeni sifrovanje. Beki
clipper.77 alexa, -> #74, gristic
> (C-isam je ,)Żmeđuostalog i) srce SQLa - prim.prev.) Nije tako, SQL je, ipak, samo jezik - on može da se oslanja na manje-više bilo kakvu database mašinu.
clipper.78 gristic, -> #77, alexa
>> (C-isam je (izmeđuostalog i) srce SQLa - prim.prev.) > Nije tako, SQL je, ipak, samo jezik - on može da se oslanja na > manje-više bilo kakvu database mašinu. OK. Mislio sam na Informix, ali jedno je misliti, a drugo to napisati.
clipper.79 alexa, -> #78, gristic
> OK. Mislio sam na Informix, E da, tako može. Uzgred, C-ISAM i potiče od Relational Database Systems, a ova firma se sada zove, pogodi kako: Informix Software.
clipper.80 yupc,
Skoro (relativno, posto nisam od 15.10. do pre dan-dva bio na SEZAM-u, novi vozac ... ostre krivine ...;>) je bilo pominjano crtanje grafova iz Clipper-a, uz pomoc MSC. Posto je i mene interesovalo, nasao sam neke prospekte od biblioteka za svakojako crtanje u Clipper-u. Najvise mi se dopao Flipper (bar prema onome sto pisu), zato sam i prepisao. Prosudite, predlozite ... Vredi li narucivati ? Pozdrav, YUPC **************************************************************** **************************************************************** **************************************************************** IS YOUR CLIPPER APPLICATON HALF-DRESSED ? Then Get New Flipper 5.0 AND DRESS FOR SUCCESS !!! ----------------------------------------------- Flipper 5.0 Graphics Will Keep You Users Out of Embarrasing Situations ----------------------------------------------- Witout graphics, even the most advanced Clipper application simply isn't ready to do business. Graphics "dress up" your aplication, and better-looking applicatons are worth more to your clients. NEW Flipper 5.0 is the complete graphics LIBRARY that fits Clipper like a fine suit of clothes. Flipper 5.0 give you the power integrate beautiful graphics into your applications - quickly, seamlessy, and with only a few keystrokes. Flipper 5.0 delivers the polished, professional "look of succes" your clients want. And when your applications look good, YOU LOOK GOOD. Graphic, CAD and Clipper: A Perfect Match ----------------------------------------- Flipper 5.0 brings a CAD-like interface to Clipper Development. Vector objects such as circles, boxes, polylines and text can be included in a drawing to create maps, room layouts and other CAD drawings. And that's just the beginning. Graphic object can be selected with a mouse or keyboard, and linked to database records. Objects can be filled solid or with a pattern, placed on different layers within a graphic, copied, moved, combined and more! Printing: The Image of Success ------------------------------ Flipper 5.0's virtual image print driver lets you print graphics at the resolution of the printer itself - instead of at the lower resolution of the traditional print screen. You get all the graphics your printer allows! Flipper 5.0 support screen image printing to Laser Jet, Dot Matrix color and Paint Jet printers, Post Script and HPGL, driver let you scale grapics to any size, and use your █printer's internal fonts for maximum output quality. Flipper 5.0 also supports more than 150 disk-based, bitmapped and stroke font files. You can compile fonts into ypur program, and Flipper 5.0 even includes a font editor for total font flexibility. 2D and 3D Graphs: Just Your Stile --------------------------------- Flipper 5.0 aways given you a wide variety of graph to choose from. Flipper 5.0 adds area graphs to the graph types alerady supported. Any graph type can be switched from 2D to 3D with a single function. 3D chatrs can be rotated to any angle. Flipper 5.0 allows you to place an unlimited number of graphs on the screen, overlay graphs upon each other, create text and reference lines wherever you want, and much more! Included Features: Support standard graphics card: - Auto detects CGA, EGA, VGA, Hercules - Switch to 800 x 600 or other resolutions suppored on video card 2D & 3D Graph Types - Autoscale axes - Two independent Y axes - Unlimited data sets and unlimited points on graph - Any axes linear or log - Mix bars, stacked bars, lines stackes line, points on same graph - Any number of graphs on screen - Overlay graph on previos graph - Linear regression, curve fiting - Text, reference lines anywhere on graph - Missing value support - Draw line as spline - Set legend anyplace on the graph PCX picture support - Read and write PCX pictures - Display monochrome pictures on color screen - Display color pictures on monochrome screen - Scroll PCX picture inside window - Print PCX picture at resolution of printer GEM compatibile font support - More than 150 disk based bitmapped and stroke font files included - Fonts can compiled into your program - New fonts can be acquired from font generation packages - Font editor is included - Font can be rotated, sized and justified Supports printing - Screen image printing to Laser Jet, Dot Matrix, Paint Jet - Virtual image printing allows an image to be printed at resolution of the printer - HPGL is supported for HP Plotters, Laser Jet III and other HPGL - Post Script print driver Low level drawing function - Draw lines, boxes, arcs, circles and polygons - Fill closed figures with solid or pattern - Line can be set to line pattern - Viewports for scaling a drawing into world coordinate system Graphic menu support - Event driven mouse driver with keyboard support - 3D effect drop down menus, icons, check box - Several menus can be active at the same time CAD drawing capability - Draw complex objects can be create using the mouse or keyboard, such as circles, arcs, lines, polylines, boxes, polygons and stroke or bitmapped text - Object can be filled solid or with pattern - Object can be on different layers - Objects can be copied, moved, deleted, saved, restored and combined - The world coordinate system can be defined than changed allowing for zooming and panning of the drawing - Each object can be associated with a database wich provides further information about object Complatibile with Blinker, Warplink, RTLink 4.1 Both Clipper Summer 87 an CLIPPER 5.0 support - Support for Clipper SAYS, GETS, DBEDIT() in graphics mode Flipper support is unmatched - Norton guides database ---------------------------- đ - 24 hour online BBS đ ---------------------------- - Free tecnical support - 70 page tutorial in manual - 500 page manual - Royality Free - 30 day money back guarantee Guaranteed To Improve Your Image ***************** * At only $ 295,* Flipper 5.0 makes it easy to dress your ***************** aplications. And our money-back guarantee will never go out of style. If you're not completly satisfied, return Flipper 5.0 witin 30 day for full refund.
clipper.81 ppekovic, -> #80, yupc
>> je bilo pominjano crtanje grafova iz Clipper-a, uz pomoc >> MSC. U MSC postoji bibioteka PGCHART za crtanje grafova. Biblioteka je sjajna, jednostavna za upotrebu, a rad je veoma brz. Nevolja je u tome što funckije koje koriste funckije PGCHART biblioteke nisam uspeo da ulinkujem sa clipper-om (pogledaj stare poruke zašto). Međutim, može se uraditi sledeće stvar. Može se napraviti odvojen program za recimo crtanje grafova. Iz clipper-a će se pozivati kao eksterni program, s tim što u clipper env. promenljivoj moraš odvojiti dovoljno mesta za izvršavanje istog. Prenos parametara može ići preko komandne linije (ako ih ima nekoliko) ili, ako ih ima mnogo, preko temp. fajla. Paya
clipper.82 gristic, -> #79, alexa
>> OK. Mislio sam na Informix, > E da, tako može. Uzgred, C-ISAM i potiče od Relational Database > Systems, a ova firma se sada zove, pogodi kako: > Informix Software. Ma, šta mi napriča !;)
clipper.83 beki, -> #81, ppekovic
>>> je bilo pominjano crtanje grafova iz Clipper-a, uz pomoc >>> MSC. > > U MSC postoji bibioteka PGCHART za crtanje grafova. Biblioteka je > sjajna, jednostavna za upotrebu, a rad je veoma brz. Sto ne uzmete CL Tools od Dr.Huggle&Partner? Izmedju ostalog sadrzi odlicnu graficku biblioteku, koju sam nekoliko puta vrlo uspesno is- koristio. Mozete pogledati reklame u Byte. Beki
clipper.84 beki,
Ima li neko ekvivalent Clipper-ove funkcije ISPRINTER(), koja bi radila na momentalno aktivni port za printer, recimo LPT2 ili COM3 ? Beki
clipper.85 vkrstonosic,
Kako da u objektnom browse sistemu u Clipper-u 5.01, postavim picture za odredjenu kolonu ?
clipper.86 beki, -> #85, vkrstonosic
> Kako da u objektnom browse sistemu u Clipper-u 5.01, postavim > picture za odredjenu kolonu ? Pa evo ovako. Recimo da zelis da 'telefon' pokazes sa '(999) 999-999'. Onda uradis: tbcolumnnew("Telefon", {|| transform(telefon,"@R (999) 999-999")}) Beki
clipper.87 vkrstonosic, -> #86, beki
> Pa evo ovako. Recimo da zelis da 'telefon' pokazes sa '(999) > 999-999'. Onda uradis: > > tbcolumnnew("Telefon", {|| transform(telefon,"@R (999) 999-999")}) To je to, thanks.
clipper.88 bstevan,
Zdravo ! Dali neko može da mi odgovori,ili da adresu firme u YU, koja prodaje Clipper 5.01 Unapred hvala ! ---POZDRAV--- ---BSTEVAN---
clipper.89 kole,
Ako koristite Clipper 5.01 Extend system da biste omogucili laksi prenos podataka ka i od vaseg C programa, mozda ste primetili sledec: Ako linkujete DOS linkerom (ili onim iz MSC 6.0) dobijate poruke u stilu : Error 2002: fix-up overflow ,bla,bla... a program ponekad radi, ponekad ne. Ako linkujete RTLinker-om ne dobijate nikakve poruke, ali program jednostavno ne radi. Resenje je vrlo prosto. NEMOJTE koristit Extend.h za definicije prototipova funkcija vec ih Vi deklarisite kao _far_ sto resava sve probleme (za sve linkere !) Na primer. extern void far _retni(); void far Vasa_funkcija() { ... ... _retni(nesto); ... ... } Ako ne radi, javite pa da vidimo ! Kole
clipper.90 bulaja,
Kako da saznate da li neka hard disk particija postoji ili ne? Easy as 1-2-3 ;) - samo proverite DISKSPACE(n) gde je n broj diska, 0 za A:, 1 za B:, 4 za D: itd. Ukoliko DISKSPACE vrati nenormalno veliki broj, otprilike 1152 Tb (Terra bytes) (vazi za Clipper S87, nisam proveravao sa 5.01) onda ta particija ne postoji. Ocigledno, sve ovo ne vazi za particije vece od 1152 Tb ;).
clipper.91 mjova, -> #90, bulaja
> Ocigledno, sve ovo ne vazi za particije vece od 1152 Tb > ;). znači kod mene to ne bi radilo? :)
clipper.92 zkrstic, -> #80, yupc
!! IS YOUR CLIPPER APPLICATON HALF-DRESSED ? !! Then Get New Flipper 5.0 !! AND DRESS FOR SUCCESS !!! Lep reklamni mamac. Pomalo sam radio sa Flipperom , al' mu moj prisutni (mlađi) bratić izvadio dušu: Zdravo, ja sam prisutni BRATIĆ! Usput ja sam radio sa verzijom 4.0 iz daleke 1988-me godine. Odmah da kazem da sam video jos pet-sest slicnih paketa ali ni jedan nije ni blizu FLIPPER-u. FLIPPER 4.0 koliko ja vidim po ovoj reklami gore nema nekih nedostataka u odnosu na 5.0. Sve radi isto pocevsi od fontova, overleja, grafova itd... Takodje radi sa standardnim PCX formatom slika. Naravno ako pri tom imas neki od PICTURE konvertera onda mozes raditi u cemu hoces i ubaciti te slike u CLIPPER. Medjutim daleko interesantnije podrucje primene FLIPPER-a su dijagrami i uopste statistika. Naime on izvanredno radi sa bazama i grafickim prikazivanjem sadrzaja baze. Sve to radi strasno brzo i lepo. Radi na svim grafickim kartama i svim modovima. Ovi fontovi koji se spominju su zaista dobri (kod mene ima 138). Ta- kodje tu je i FONT EDITOR pa ako je neko dokon izvolite molim lepo. Sve u svemu da ne duzim ako neko ne zna sta ce bez grafike u CLIPPER-u ja najtoplije preporucujem FLIPPER. P.S. Mislim samo da ce eventualno zainteresovani imati omanjih problema prilikom rada. USER MANUAL je na oko 200 strana!!! Pa ako se nekom isplati... Eto, toliko... Puno pozdrava i ziveo FLIPPER !!!! Vlajko. P.P.S. Da neznate ko od domaćih (čitaj: srpskih) distributera ima ovaj paket: Flipper 5.0? Pozdrav čeljko
clipper.93 drpr,
Ćao svima! Imam jednu veliku molbu i nadam se da će mi neko od Vas izaći u susret. Prvo da naglasim da što se tiče programiranja moj nivo znanja se kreće samo u oblasti turbo paskala i to na nešto malo većem nivou od školskog.To navodim iz sledećeg razloga:čeleo bih da učim clipper pa bih želeo da mi neko ukratko objasni čemu clipper služi i da li su mi potrbana neka veća predznanja kako bih mogao većinu stvari o njemu da naučim.Molim vas za neko 'prostije' objašnjenje,ako je moguće,jer o bazama podataka ne znam ama baš ništa.Ako bi tu mogli da mi napišete neku literaturu od koje bih mogao da počnem bio bih baš zahvalan. Da ne bi mučili sve ostale ljude poruke možete da mi pošaljete na mail drpr. Još jednom hvala u napred! drpr PS Ja posedujem knjigu Razvoj aplikacija u Clipper-u od Vlade Markovića.Neznam da li da krenem od nje.
clipper.94 lazo,
Pitanje za one koji su imali prilike da rade sa Clipper grafičkom bibliotekom koja se nalazi na Sezamu (CLIPGR12.ZIP). Kad dodam linkeru još i clipgraf.lib datoteku tj. pri linkovanju TLINK prijavljuje slijedeću grešku: Undefined Symbole '_GR_INFO' in module CLIPGR51.C Undefined Symbole '_OUTPUT_REGS' in module CLIPGR51.C Probao sam i sa PLINK-om i sa MS LINK-om i oni su najavljivali nešto slično. Inače program kad se linkuje radi bez problema. Mene interesuje da li se to dešavalo još nekom koje bar probao da radi s ovom bibliotekom ili je možda došlo do neke greške u prenosu, a da je pritom nije detektovao ni komunikacioni program, odnosno modem, a ni zip? Pozdrav, Mickey.
clipper.95 dnikolic, -> #93, drpr
>> Ja posedujem knjigu Razvoj aplikacija u Clipper-u od Vlade >> Markovica.Neznam da li da krenem od nje. Mislim da je najbolja knjiga koja se koda nas moze kupiti od Strale-a ( xe xe, mislim da se nekako ovako zove ), a imas je u knjizari u Albaniji ( mislim na zgradu ) po ceni od oko 1200 Din. Neces se pokajati. dn
clipper.96 gww., -> #89, kole
> Ako linkujete DOS linkerom (ili onim iz MSC 6.0) >dobijate poruke u stilu : > Error 2002: fix-up overflow ,bla,bla... >a program ponekad radi, ponekad ne. Da pitanje u kom memorijskom modelu je isporučena clipperova biblioteka? Verovatno u large. P.S. Nisam clipperista, samo posmatrač. GWW.
clipper.97 ppekovic, -> #95, dnikolic
>> Mislim da je najbolja knjiga koja se koda nas moze kupiti od Strale-a ( xe xe >> mislim da se nekako ovako zove ), a imas je u knjizari u Albaniji ( mislim na >> zgradu ) po ceni od oko 1200 Din. Neces se pokajati. Straley-eva knjiga je prilicno dobra uz dve napomene: Napomena 1. Knjiga nije bas udzbenik koji ce pocetnika u oblasti baza podataka uopste, voditi od osnovnih pojmova nadalje. Knjiga je za one koji su savladali osnovne korake u clipper-u i naucili i razumeli osnovne pojmove o bazama uopste. Napomena 2. knjiga je za Clipper verziju summer '87. Mislim da bi coveku bilo lakse da odmah krene sa clipper-om 5.01 posto on dozvoljava programiranje koje je mnogo blize pascal-u nego sto je to slucaj sa '87 verzijom. Primedba: Nije red kritikovati nesto a ne umeti dati resenje, ali ja resenje zaista nemam. Jednostavno, ne postoji knjiga pocetnica za clipper. I jos da dodam o knjizi črazvoj aplikacija u clipper-u" g. Markovic-a. Knjiga je najgora knjiga koju sam u zivotu uzeo u ruke. Ovo je moje subjektivno misljenje, premda, ako neko zeli da pokaze suprotno, spreman sam izneti i veliki broj argumenata za to. Sada me jednostavno mrzi da pisem jer mislim da ne vredi na nju trositi tastaturu. Paya
clipper.98 ppekovic, -> #96, gww.
>> > Ako linkujete DOS linkerom (ili onim iz MSC 6.0) >> >dobijate poruke u stilu : >> > Error 2002: fix-up overflow ,bla,bla... >> >a program ponekad radi, ponekad ne. >> >> Da pitanje u kom memorijskom modelu je isporučena clipperova biblioteka? >> Verovatno u large. U pravu si, u pitaju je LARGE model. Paya
clipper.99 bulaja, -> #93, drpr
│Zeleo bih da ucim clipper pa bih zeleo da mi neko ukratko objasni cemu │clipper sluzi i da li su mi potrbana neka veca predznanja kako bih │mogao vecinu stvari o njemu da naucim. └─── Sluzi za razne poslove / programe koji rade sa bazama podataka. Da bi naucio sam Clipper kao programski jezik nije potrebno mnogo truda, ukoliko imas predznanje iz nekog drugog programskog jezika, tj. opste znanje o programiranju. To se narocito odnosi na verziju S87 koja je uglavnom zasnovana na dBase III+ dijalektu tj. prilicno jednostavna, dok je Clipper 5.01 nesto zakomplikovan pa bolje kreni od S87. Ali sa samo naucenim jezikom slabo ces uraditi ista vredno - bice ti potrebno dosta znanja i iskustva u dizajniranju baza podataka, pa se zato odmah u pocetku zapitaj koji ce ti sve to i da li zaista zelis time da se bavis. Neki Clipper spominju i kao jezik za opstu upotrebu, ali on nije to - suvise je slab na mnogim poljima. Zato ako samo zelis da se bavis programiranjem onog sto ti padne napamet, nemoj razmisljati o Clipperu - ili ostani na TPascalu (sjajan jezik, i ja sam tako poceo ;) ili predji npr. na C (sto ce ti verovatno savetovati vecina ljudi ovde). Clipper je samo neko privremeno, medjuresenje (cak i za baze podataka) - evo npr. ja se posle skoro tri godine rada u njemu trudim da ga se otkacim (u korist C-a). │Ako bi tu mogli da mi napisete neku literaturu od koje bih mogao │da pocnem bio bih bas zahvalan. └─── Najbolje sto mozes da nadjes kod nas je "Programiranje na Clipper-u" S.Straley-a (original Addison Wesley, prevod Mikro Knjiga). Odnosi se na S87, ali posto ti i preporucujem da krenes od S87 verzije onda ce ti knjiga odgovarati. Inace na tu knjigu imam dosta zamerki, ali posluzice ti. Pozdrav, Bulaja
clipper.100 drpr,
Prvo da se zahvalim dnikolicu i ppepkovicu na odgovorima ali kako svaki početnik ima ono glupo pitanje a to je : Da li postoji neka knjiga iz koje da počnem možda nevezana za clipper uz pomoć koje bih mogao da zaplovim i u vode clippera ili da jednostavno uzmem te koje ste preporučili pa da se bijem s njima i da kopam i probam te što mi nije jasno da pitam vas? Još jednom hvala! drpr
clipper.101 zkehler, -> #97, ppekovic
Ŕ Primedba: Nije red kritikovati nesto a ne umeti dati Ŕ resenje, ali ja resenje zaista nemam. Jednostavno, ne postoji Ŕ knjiga pocetnica za clipper. Nisu početnice, ali su dobre ove dve knjige: "Clipper Programming Guide", Rick Spence, 2nd Edition, Microtrend Books, 1991: ISBN 0-915391-41-4 "Clipper Developer's Library", James Occhiogrosso, Microtrend Books, 1991: ISBN 0-915391-39-2 ZK
clipper.102 ppekovic, -> #99, bulaja
>> Clipper je samo neko privremeno, medjuresenje (cak i za baze >> podataka) - evo npr. ja se posle skoro tri godine rada u njemu trudim >> da ga se otkacim (u korist C-a). Cinjenica je da je Clipper '87 bio veoma ogranicen, premda i za njega bas ne vazi sasvim ovakva tvoja primedba (privremeno resenje). Medjutim, pojava Clipper-a 5 otklanja svaku sumnju u Clipper kao ozbiljan alat za baze podataka. Paya .s
clipper.103 ppekovic, -> #100, drpr
>> Da li postoji neka knjiga iz koje da počnem možda nevezana za >> clipper uz pomoć koje bih mogao da zaplovim i u vode clippera >> ili da jednostavno uzmem te koje ste preporučili pa da se bijem >> s njima i da kopam i probam te što mi nije jasno da pitam vas? Pa izgleda ti je ipak ostao Straley. Naravno, za sve sto ti nije jasno, tu smo, uostalom, za to Sezam i sluzi. Samo napred! Paya