PCPROG.4

22 Apr 1994 - 05 Jan 1995

Topics

  1. algoritmi (153)
  2. comment (15)
  3. ms.dos (123)
  4. windows (304)
  5. asembler (103)
  6. basic (80)
  7. jezici (196)
  8. pascal (880)
  9. cccc (586)
  10. cpp (157)
  11. clipper (1267)
  12. baze.podataka (525)
  13. razno (529)

Messages - clipper

clipper.1028 bulaja, -> #1019, mdrazic
│idu, idu... (a i što ne bi kada index ne zna da li ti radiš trenutno sa │set deleted on ili off). └─── Zna (tj. mogao bi da sazna:), zavisno od stanja set deleted u trenutku osvežavanja indeksa - kada se slog obriše RDD proveri da li su deleted isključeni i ako jesu izbaci ključ iz baze.
clipper.1029 dcolak, -> #1021, mileusna
│ Kao prvo nije mi jasno kakve veze SEEK ima sa CONTINUE. CONTINUE nastavlja │ pretraživanje koje je započela komanda LOCATE, dok SEEK pretražuje │ isključivo indeksiranu tabelu i to od početka. Ili sam te ja pogrešno │ shvatio, ili si ti pogrešno objasnio. Da, moja greška, mislio sam na LOCATE. │ Ovo gore navedeno važi, kao što rekoh, samo ako je filter po polju za koji │ postoji indeks. Ali šta raditi ako se radi o nečem složenijem, kao recimo │ SET FILTER TO fnIsplata > 300 .AND. fnUplata > 1000. Jednom sam imao i taj │ problem. Rešio sam ga tako što sam prvo vršio pretraživanje po bazi i │ ukoliko bi slog zadovoljio uslov izvršio bi jedno AADD( aNađeni,RECNO() ). Upravo je to slučaj. No, 4096 je mali broj pa ću po svemu sudeći morati da pravim novi .DBF (što sam pokušao da izbegnem). Eh, kad mi je bio postavljen uslov da reakcije na izbor opcija budu trenutne :) Ipak će biti onoga "Please wait..." :) Sledge DAMMIR!
clipper.1030 ikordic, -> #1013, nbatocanin
RE: Shadow => Bolji štos je sa Transform i PICTURE kombinacijom: => Transform (cScreen, Replicate("X" + Chr(?), Len(cScreen)/2) Pa baš i nije. Ovo tvoje je lepo ako je bitno da sors bude što kraći, ali se zato radi bespotreban posao. Zašto bi se menjali atributi na delu ekrana koji će ionako biti pokriven nekom maskom ili alert-om? Treba da se izmenjaju atributi samo od nBott + 1, nLeft + 1 do nBott + 1, nRight i od nTop + 1, nRight + 1 do nBott + 1, nRight + 1 Nisam merio koliko je brže ovako, ali znam da u CLD-u traje večnost ako se prolazi kroz muscle varijantu. Ne znam kako ovo izgleda na 5.2x, tamo je navodno dokumentovan neki low level pristup funkcijama za rad sa stringovima?
clipper.1031 ikordic, -> #1011, dcolak
RE: SET FILTER => │ Ne koristi SET FILTER :) => => Hm, al' kako onda da TBrowsujem kroz datoteku sa zadatim filterom ako => ne koristim SET FILTER... Opet kroz Skipper-a da pravim svoje rutine? Da. Najpre odmah zaboravi na akrobacije sa SET FILTER, DELETE i sl., jer možeš napraviti potpuno funkcionalne ekvivalente u čistom Clipper-u, koje su po brzini i komforu daleko ispred pomenutih anahronizama. Cena koju plaćaš je što jedared za svagda obradiš te situacije i ondak samo koristiš i eventualno dopunjavaš napisano. Što se tiče konkretnog, moraš napraviti svoje funkcije koje će obrađivati ugrađene funkcije za mrdanje po bazi, dbSkip (), dbGoTop () i dbGoBottom (). Njih preusmeravaš uz pomoć oBrowse:goBottomBlock := { || MyGoBott () } oBrowse:goTopBlock := { || MyGoTop () } oBrowse:skipBlock := { | n | MySkip ( n ) } Ondak u tim tvojim funkcijama obrađuješ npr. da skok na početak ne skoči na prvi slog, nego na onaj koji je definisan kao gornja granica. Analogno tome, kada TBrowse kaže "daj sledeći", tvoja funkcija potraži sledeći slog koji zadovoljava uslov itd. Naravno, prethodno je drastično brže ako se radi o indeksiranim poljima :) => Hm, recimo "Damir" .like. "amir" == .T. ;) Pa, imaš "amir" $ "Damir == .T.? Ili Soundex ()?
clipper.1032 ikordic, -> #1007, bulaja
RE: Clipper News => │Clipper News│ Umoljavamo za nastavak ove prakse :) Uzgred, ko/šta je izvor?
clipper.1034 mileusna, -> #1029, dcolak
>> mi je bio postavljen uslov da reakcije na izbor opcija budu trenutne >> :) Ipak će biti onoga "Please wait..." :) Bilo bi mnogo bolje da se umesto "Please wait..." na vrhu ekrana nalazi BOX sa informacijama o uspešnosti pretraživanja, kao na primer : ┌────────────────────────────────────────┐ │ Pretraženo 50% 1500/3000 │ │ % █████████████████­­­­­­­­­­­­­­­­­ % │ │ Nađeno : 467 │ └────────────────────────────────────────┘ Ispod ovoga, stalno bi se ispisivao sadržaj nađenih slogova, pa ako korisnik ugleda ono što mu treba, može pre vremena da prekine pretraživanje sa recimo <SPACE>. Zatim malo "browsuje", pa ako zaključi da se prevario nastavi pretraživanje od onog mesta na kome se zaustavio. Funkcije za sve ovo nije teško napraviti, a priznaćeš mogu da deluju vrlo efektno.
clipper.1035 mileusna, -> #1031, ikordic
>> oBrowse:goBottomBlock := š đđ MyGoBott () ć >> oBrowse:goTopBlock := š đđ MyGoTop () ć >> oBrowse:skipBlock := š đ n đ MySkip ( n ) ć >> Ondak u tim tvojim funkcijama obrađuješ npr. da skok na početak ne skoči na >> prvi slog, nego na onaj koji je definisan kao gornja granica. Analogno tome, >> kada TBrowse kaže "daj sledeći", tvoja funkcija potraži sledeći slog koji >> zadovoljava uslov itd. Naravno, prethodno je drastično brže ako se radi o >> indeksiranim poljima :) Ukoliko se radi o indeksiranim poljima, ovo je OK ( to sam i ja napisao dcolak-u ). Ali šta ako nema indeksa? Gore kažeš "tvoja funkcija potraži sledeći slog koji zadovoljava uslov". Pa zar nije to upravo ono što radi komanda SET FILTER TO (a upravo to pokušavamo da izbegnemo) ? Doduše, možda se sa promenom goBottomBlock, i goTopBlock (zapamti se koji je prvi a koji zadnji) i može postići ubrzanje u odnosu na SET FILTER, ali će skipBlock uvek morati da radi isto što i SET FILTER (IF "usna" $ fcPseudo itd.)
clipper.1036 aquarius,
NLabSGetReader V2.35 - 20.11.94 - umesto funkcije NLabSChgReader(), omoguceno da za svaki GET, komandom NLABS_READER _ON/_OFF bude odredjeno da li ce biti upotrebljen NLabSGetReader(). - novi fajl NLabSGrd.CH - uradjene manje izmene koda. Normalno, moze u DIR, ako se bulaja slaze O:) aquarius nlgrd235.zip
clipper.1037 aquarius, -> #954, neman
<> Inace, da li koristis FUNCKY II biblioteku uz SIX 2, i da li <> neko ima iskustva sa takovm kombinacijom ? FUNCky II + SIX2 v2.01.02 + Blinker 3.01 = :) FUNCky II + SIX2 v2.01.02 + ExoSpace 1.0f = :) aquarius
clipper.1038 mdrazic, -> #1023, neman
>> Bolje ti je da ubacis u redovne indekse (tagove) 'for >> .not.deleted()', a ako zelis reciklazu (i samo za to i za > > Da, samo sto na mrezi brisanje sloga koji ima indekse sa uslovom > FOR !DELETED() ( NSX 1.5 ) usporava rad svih onih koji pristupaju > podacima, pa za bazu sa cestim brisanjen ne preporucujem to resenje. E, negde mora da se plati. Ako hoćeš da ti brisani slogovi ne smetaju pri čitanjima (i da ne koristiš set deleted on) onda moraš nekako da izbaciš zapise iz indeksa pri ažuriranju. Nego kaži, koliko se to usporava rad? Prilikom brisanja se osim taga u tabeli ažuriraju i svi indeksi ali to ne bi trebalo mnogo da traje, otprilike kao i dodavanje novog zapisa. Međutim u aplikacijama (barem mojim) je mnogo češće dodavanje novih i ažuriranje postojećih zapisa nego brisanje, pa ne vidim da ovo može predstavljati problem. Milan P.S. Da li je to usporen pristup baš podacima koje si ti obrisao ili nekom drugim (kojim) ?
clipper.1039 d.petrovic, -> #1002, goxx
> Pre nekog vremena sam nesto ovde pisao na ovu temu. Ja imam 286 > na 12 MHZ i sistem rada sa prebrojavanjem slogova ladno prolazi > na njemu čak i sa Verovaću kad probam ;)
clipper.1040 d.petrovic, -> #1035, mileusna
> Ukoliko se radi o indeksiranim poljima, ovo je OK ( to sam i ja > napisao Pa nećemo valjda opet o LOCATE ? ;(((
clipper.1041 d.petrovic, -> #1034, mileusna
> Bilo bi mnogo bolje da se umesto "Please wait..." na vrhu > ekrana nalazi BOX sa informacijama o uspešnosti pretraživanja, > kao na primer : > ┌────────────────────────────────────────┐ > │ Pretraženo 50% 1500/3000 │ > │ % █████████████████­­­­­­­­­­­­­­­­­ % │ > │ Nađeno : 467 │ > └────────────────────────────────────────┘ Ovako nešto koristim za indeksiranje i rezultat je poražavajući. Kada piše procente i crta trakicu indeksiranje traje oko 6 puta duže. Isprobano valjda na 386 ili 486.
clipper.1042 d.petrovic,
Do koje dubine može da ide rekurzija ? Da budem precizniji ? Koliko puta može da pozove sebe, a da se ne prepuni stek i program pukne ?
clipper.1043 ikordic, -> #1024, dvesic
RE: SIx & RTLink => Nema razloga da ne radi. Ako linkujes sa Rtlink-om, Six ce ti => (naravno, ako iskljucis DBFNTX koji se linkuje po default-u) => povecati Load Size za 20 - 30 Kb. Ako linkujes sa Blinkerom Nisam u toku: zar nije rečeno da se SIx praktično ne može linkovati RTLinkom zbog obima?
clipper.1044 bulaja, -> #1029, dcolak
│Upravo je to slučaj. No, 4096 je mali broj pa ću po svemu sudeći │morati da pravim novi .DBF (što sam pokušao da izbegnem). └─── Pa onda pravi DBF, ali ne za kopiranje kompletnih slogova koji zadovoljavaju uslov, već za istu stvar za koju bi ti služio niz - smeštanje pointera na slogove.
clipper.1045 bulaja, -> #1032, ikordic
│Umoljavamo za nastavak ove prakse :) Uzgred, ko/šta je izvor? └─── Clipper Advisor :).
clipper.1046 cnenad, -> #1041, d.petrovic
ŁŁŁ Ovako nešto koristim za indeksiranje i rezultat je poražavajući. ŁŁŁ Kada piše procente i crta trakicu indeksiranje traje oko 6 puta duže. Šta si stavio kao vrednost posle EVERY ? Zvekni mu 500 pa neće biti baš tako sporo. Jeste da je onda efekat manji ali... ne može se i jare i pare :)
clipper.1047 dcolak, -> #1030, ikordic
│ Nisam merio koliko je brže ovako, ali znam da u CLD-u traje večnost ako se │ prolazi kroz muscle varijantu. Ne znam kako ovo izgleda na 5.2x, tamo je Značajno brže. Kada se menja ceo ekran ispod maske primeti se pauza. Ovako "po ivicama" se ič ne primeti ;) Sledge DAMMIR!
clipper.1048 dcolak, -> #1034, mileusna
│ Ispod ovoga, stalno bi se ispisivao sadržaj nađenih slogova, pa ako │ korisnik ugleda ono što mu treba, može pre vremena da prekine pretraživanje │< sa recimo SPACE>. Zatim malo "browsuje", pa ako zaključi da se prevario │ nastavi pretraživanje od onog mesta na kome se zaustavio. Funkcije za sve │ ovo nije teško napraviti, a priznaćeš mogu da deluju vrlo efektno. Definitivno efektno :) Sva sreća te se sve ovo može "dopisati" na već postojeći program. Da i ja malo ličim na Microsoft ;> Verzija 2.0 User Friendly, needs extra 2Mb ;) BTW, radim sa Clipper 5.01. Postoji li nešto zbog čega bih _morao_ preći na 5.2? Sledge DAMMIR!
clipper.1049 bulaja, -> #1036, aquarius
│NLabSGetReader V2.35 └─── Prebačeno u CLIPPER dir :).
clipper.1050 bulaja, -> #1041, d.petrovic
│Ovako nešto koristim za indeksiranje i rezultat je poražavajući. │Kada piše procente i crta trakicu indeksiranje traje oko 6 puta duže. └─── A ti optimizuj malo funkciju za refresh trakice - npr. piši direktno na ekran a ne preko SAY, osvežavaj prikaz tek svakih nekoliko (ili nekoliko stotina:) slogova, koristi EVERY opciju kod SIx-a,... Sigurno neće biti 6 puta sporije :). Mislim da je od brzine samog indeksiranja mnogo važnije da user ima neki feedback da se nešto dešava, pa sam zato spreman na prilične žrtve u performansama indeksiranja (npr. čak i duplo sporije:) ali da user ne bleji u ekran u čekanju da se rebuild indeksa završi.
clipper.1051 bulaja, -> #1048, dcolak
│ BTW, radim sa Clipper 5.01. Postoji li nešto zbog čega bih _morao_ │ preći na 5.2? └─── Da - Computer Associates :). Ako ti nije dovoljno to što je od kada su kupili Nantucket (ili samo Clipper kao proizvod - ne znam, a i nije bitno:) podrška korisnicima neuporedivo bolja i budućnost Clipper-a izvesnija, onda imaš novitete kao što su RDD-ovi (ja bih se sada jako teško odvikao SIx-ovih predosti:), zatim mogućnost pravljenja protected mode aplikacija, /es1 switch kod kompajliranja (moj omiljeni:),... Ako ništa bar imaš nekoliko godina stariji i stabilniji program (i pored toga što stalno otkrivaju bug-ove:). I ne zauzima mnogo više mesta na disku nego verzija 5.01.
clipper.1052 dvesic, -> #1043, ikordic
>> Nisam u toku: zar nije receno da se SIx prakticno ne moze >> linkovati RTLinkom zbog obima? Zavisi od velicine aplikacije. Ako aplikacija sa Blinkerom i CL520MIN.LNK fajlom trazi X Kb, ista ta aplikacija ce sa RTLinkom traziti maksimalno X+30 Kb. E sad, sve zavisi koliko je tvoja aplikacija stvarno gladna memorije :)))
clipper.1053 neman, -> #1038, mdrazic
> izbacis zapise iz indeksa pri azuriranju. Nego kazi, > koliko se to usporava rad? Prilikom brisanja se osim taga > u tabeli azuriraju i Novell 3.11, radne stanice 3 do 4 286/1MB/20MHz, 2 x 386SX/2MB/40MHz/, 1x386DX/4MB, server 386 8MB, baza oko 20 MB, oko 50,000 zapisa, 5 tagova duzine 15-20 znakova, NSX dugacak ( napamet ) 2-3 MB. Blokiranje, preciznije receno usporavanje jer se ne javlja poruka o zauzetosti baza, traje 2 - 3 sekunde kada se brise slog. Usporava se pristup i ostalim radnim stanicama koje koriste tu datoteku ( a koriste je sve :). Interesantno je da se usporava i rad stanica koje ne koriste u datom trenutku tu datoteku. Slican slucaj sam vec pomenuo sa SET SCOPE komandom, kada dolazi do drrra- sticnog usporenja rada dok se kreces po "skopiranoj" datoteci koja se upravo azurira na vise drugih stanica. Onaj SET DIRTYREAD izgleda nije bezveze postavljen :( Naravno, radi se o NSX 1.5 i MS DOS 6.20 na svim radnim stanicama. Nadam se da cu stici ovih dana da testiram odgovarajuce delove programa sa NSX v 2.01.02.
clipper.1054 neman, -> #1042, d.petrovic
> Do koje dubine moze da ide rekurzija ? > > Da budem precizniji ? > Koliko puta moze da pozove sebe, a da se ne prepuni stek i > program pukne ? Probaj ;)
clipper.1055 mdrazic, -> #1028, bulaja
> Zna (tj. mogao bi da sazna:), zavisno od stanja set deleted u trenutku > osvežavanja indeksa - kada se slog obriše RDD proveri da li su deleted > isključeni i ako jesu izbaci ključ iz baze. Razmisli i videćeš da nije logično. Zamisli situaciju da istu tabelu gledaju dva programa (mreža) i to jedan sa set deleted on a drugi sa off. Milan
clipper.1056 mdrazic, -> #1031, ikordic
> => Hm, recimo "Damir" .like. "amir" == .T. ;) > > Pa, imaš "amir" $ "Damir == .T.? Ili Soundex ()? A da li treba i da je "Mira" .like. "Amir" ili ne ?
clipper.1057 mileusna, -> #1041, d.petrovic
>> Kada piše procente i crta trakicu indeksiranje traje oko 6 puta duže. >> Isprobano valjda na 386 ili 486. Ovo se događa verovatno zato što se tvoja funkcija za "trakicu" poziva posle svakog sloga. Ako bi je recimo pozivao posle svakog 50 sloga, ili još bolje izračunao koliko iznosi 10% tabele, pa je pozivao samo onda (10 puta), ne verujem da bi bilo baš tako. Uostalom, u poruci je bilo reči o pretraživanju, a ne o indeksiranju, pa je "trakica" nešto više od estetskog dodatka.( prikazuje se broj nađenih, pretraženih itd. )
clipper.1058 nbatocanin, -> #1030, ikordic
> RE: Shadow > > => Bolji štos je sa Transform i PICTURE kombinacijom: > > Pa baš i nije. > Treba da se izmenjaju atributi samo od > > nBott + 1, nLeft + 1 do nBott + 1, nRight Hm, ne verujem da se dobija neka značajna razlika. Ja sam ovaj sistem dugo koristio kao osnovu za funkciju ColorWin koja zadati prozor na ekranu postavlja u određenu farbu i nisam imao primjedbi na njenu brzinu. Uostalom, isti ovaj štos se može primeniti i za te parčiće koje pominješ. Suština je da se ovako izbegava spora FOR petlja.
clipper.1059 mileusna, -> #1050, bulaja
>> Mislim da je od brzine samog indeksiranja mnogo važnije da user ima neki >> feedback da se nešto dešava, pa sam zato spreman na prilične žrtve u >> performansama indeksiranja (npr. čak i duplo sporije:) ali da user ne >> bleji u ekran u čekanju da se rebuild indeksa završi. Pa naravno. Trebalo bi da svi budemo srećni što je ovo moguće ubaciti u programe, a ne da kukamo zbog brzine. Zamisli samo CLIPPER program za XXI vek sa potpuno crnim ekranom na čijem vrhu piše "Sačekaj, reindeks baza u toku", a korisnik upravo izašao iz slikovitog šarenila Windowsa...
clipper.1060 st.pol,
Konkurs za programera, jos uvek traje.... Detalji na mail st.pol
clipper.1061 ikordic, -> #1035, mileusna
RE: Dizajn => Ukoliko se radi o indeksiranim poljima, ovo je OK ( to sam i ja => napisao dcolak-u ). Ali šta ako nema indeksa? Gore kažeš "tvoja => funkcija potraži Akcenat cele bajke je i bio na postojanju indeksa za taj uslov. Za razliku od Fox-a, dBase-a i sličnih paketa koji te prosto vuku na zbrda-zdola "programiranje" ;) u Clipper-u najpre moraš (ne moraš, al' bi trebao) sesti i u glavi/na papiru isprojektovati celu bazu, sve potrebne datoteke, indekse, veze i sl. Posledica celog koncepta jeste da je onda sasvim lako imati i pomenute funkcije koje ti značajno ubrazavaju program, ne koristeći pomenute anahronizme. Naravno, stvar je sasvim drugačija ako uzmeš da prepravljaš postojeći program, tvoj ili tuđi. Tada se primenjuje sistem "seci uši, krpi dupe" i dolazi do nekih krhkih konstrukcija, koje će kad-tad vetar oduvati. => Doduše, možda se sa promenom goBottomBlock, i goTopBlock (zapamti se => koji je prvi a koji zadnji) i može postići ubrzanje u odnosu na SET => FILTER, ali će skipBlock uvek morati da radi isto što i SET FILTER => (IF "usna" $ fcPseudo itd.) Ovakve situacije se daju izbeći projektovanjem baze unapred, tako da uopšte i ne dolaziš u situaciju da posežeš za ovakvim mehanizmima.
clipper.1062 ikordic, -> #1051, bulaja
RE: 5.01 -> 5.2 => │ BTW, radim sa Clipper 5.01. Postoji li nešto zbog čega bih _morao_ => │ preći na 5.2? => └─── => Da - Computer Associates :). Ako ti nije dovoljno to što je od kada => Clipper-a izvesnija, onda imaš novitete kao što su RDD-ovi (ja bih se => sada jako teško odvikao SIx-ovih predosti:), zatim mogućnost => pravljenja protected mode aplikacija, /es1 switch kod kompajliranja Elem: * To što radnju vozi nova firma nema nikakve veze sa upotrebljivošću softvera, čak štaviše. Ima veze za ljude koji imaju original & registrovan softver, što većinu ovde ne tangira. * Izmenljivi RDD-i postoje samo u 5.2, ali je njihova upotrebljivost krajnje diskutabilna. Jedini normalan RDD, SIx, se bez problema može koristiti u 5.01a Clipper-u (doduše, to je već CA :)) * Protected mode aplikacije se rade Blinker-om, koji opet, sasvim normalno radi sa 5.01. * Za sve ovo vreme nisam našao NI NA JEDAN JEDINI nedokumentovan bug u 5.01 koji bi pravio neke ozbiljne probleme, da ne govorimo o VMIF greškama koji su mi potpuna nepoznanica ;) Postoje bubice, kao i svugde, ali se one uglavnom svode na neke sitnije propuste, i NIJEDNA od njih ti ne može srušiti aplikaciju, što ovi što koriste 5.2 mrtvi 'ladni prihvataju. * Ne daju ti omenu.prg uz njega - definitivan minus ;)
clipper.1063 pyramid,
Povodom clanka Zivotica u Racunarima 101 "Povezi me nezno": ...deo programa (clipperovog) se prebaci na server... :< Zvuci jednostavno, ali: Zna li neko kako se na serveru NOVEL NETWARE-a moze izvrsiti CLIPPER program? Mnogo mi treba. Hvala, Pyramid.
clipper.1064 bulaja,
CA-Clipper 5.3 beta - First Look Glavna novost u odnosu na verziju 5.2 je Windows razvojno okruženje, nalik na ono u CA-Visual Objects. Naravno i dalje postoji standardni command-line kompajler i može se raditi na uobičajeni način (što ćemo verovatno i nastaviti:). CA-Clipper Workbench je dakle repositary-based okolina, odnosno sve aplikacije i njihovi delovi se čuvaju u jednom skladištu (repositary) i pristupa im se hijerarhijski - prvo se odabere aplikacija sa kojom se radi, zatim neki njen modul (odnosno .PRG datoteka), i na kraju neki od entiteta (entiteti mogu biti standardne procedure, funkcije, objekti..). Moduli su ekvivalent PRG datoteka, a na nivou aplikacije postoji i poseban "Binary Objects" modul koji je dostupan jedino iz Windows okruženja, nisam našao način da ga prebacim u neki razumljivi fajl :). CA-Clipper WB sam održava ekvivalente make i link datoteka, opcije za kompaljiranje i linkovanje se lako podešavaju preko radio buttons-a :). Od alata, CA-Clipper Workbench poseduje editore menija (korisna stvar), ekranskih maski (takodje korisno), DataBase Server editor i field properties editor. Ove poslednje dve stvari (DB Server i Field properties) su jedna built-in implementacija rečnika podataka. Razvojna okolina je očigledno direktno iščupana iz VO, čak i neke datoteke imaju ekstenziju .VO :). Ovo znači i da su hardverski zahtevi za korišćenje CA-Clipper WorkBench-a slični - 8 Mb RAM je apsolutni minimum (sa 4 Mb se može startovati i plakati:), a za ozbiljniji rad potrebno je 16 Mb RAM. Naravno ovo samo znači da nećete koristiti WB, pošto se sasvim lepo može sve raditi kao i do sada iz DOS-a :). Na disku zauzima nešto manje od 15 Mb, od čeka na WB otpada celih 10 (u konačnoj verziji na ovo će biti potrebno dodati prostor koji će zauzeti on-line dokumentacija). DB Server nažalost izgleda nije ono što je uvedeno u VO, a to je kompletna klasa za rad sa bazom umesto starog načina preko aliasa. On novih klasa pronašao sam samo TopBar i PopUp klase za kreiranje pull down sistema menija. GET sistem je proširen nedostajućim zezalicama - push i radio buttons-ima, combo i list box-ovima i slično (to je zbudženo preko nekih nizova, ali radi:). Medju novim include datotekama postoji i memosys.ch (unutra je samo nekoliko konstanti, ništa spektakularno:) što može značiti da konačno postoji (ili je spremaju) MemoSys zamena za MemoEdit(). Teško je bez dokumentacije provaliti šta je sve dodato, ali nekako sam iskopao da je sada konačno i ugradjena podrška za miša, i to u GET sistem (jako lepo:), TBrowse i menije. ExoSpace je JEDINI linker u ovoj beta verziji, dakle nema ni RTlink-a ni nečeg sličnog. Ako ovako ostane, to će značiti problem u kompatiblnosti sa starim bibliotekama koje ne rade u protected modu, ali sa druge strane će naterati sve proizvodjače ovih biblioteka da porade na PM verzijama. Ova beta verzija CA-Clipper-a 5.3 nema nikakvu on-line dokumentaciju i neupotrebljiva je za krajnji razvoj, pošto pre i posle startovanja svakog kreiranog EXE-a ispiše da je beta verzija i da nije za širu upotrebu :). Od RDD-ova ovde su dostupni samo DBFNTX i DBFNDX, nisam još probao kako se snalazi sa bibliotekama za Clipper 5.2 (odnosno sa SIx-om). Dakle ukratko - ništa spektakularno osim Windows razvojne okoline, ali ništa manje od onoga što su već ranije najavili da će biti noviteti u verziji 5.3 (sem što nisam nigde video klase za prozore, za koje mi se čini da su bile spominjane) Značajni noviteti su proširenja GET sistema, klase za menije, mouse support, integrisani ExoSpace - sasvim dovoljno za upgrade onda kad izađe konačna verzija. Ovo su samo prvi utisci (bazirani na nekoliko sati rada:), pogledaću još malo šta ima (ako nadjem vremena:) i preneću svoja zapažanja ovde :). (Bulaja)
clipper.1065 bulaja, -> #1062, ikordic
│Jedini normalan RDD, SIx, se bez problema može koristiti u 5.01a │Clipper-u (doduše, to je već CA :)) └─── SIx2\DOC\ReadMe.1st: >> NOTE: SIx 2.0 is for use with Clipper 5.2x ONLY. It will not work >> with Clipper 5.01a at all.
clipper.1066 nbatocanin, -> #1052, dvesic
>>> Nisam u toku: zar nije receno da se SIx prakticno ne >>> moze linkovati RTLinkom zbog obima? > > Zavisi od velicine aplikacije. Ako aplikacija sa Blinkerom > i CL520MIN.LNK fajlom trazi X Kb, ista ta aplikacija ce sa > RTLinkom traziti maksimalno X+30 Kb. E sad, sve zavisi > koliko je tvoja aplikacija stvarno gladna memorije :))) Koliko se ja sećam, nije bilo baš tako. Meni je _bez_ DBFNTX drajvera SIX 1.1 tražio oko 100K više sa RTLinkom. A i logično je: RTLink ne može da smesti u overleje ASM i C module, za razliku od Blinkera, pa ako se u overleje stavljaju delovi od CLIPPER.LIB i EXTEND.LIB, onda sve ide u root. U suštini zavisi od raspodele koda po overlejima: razlika između CL52MAX i CL52MIN može biti ogromna.
clipper.1067 mdrazic, -> #1053, neman
> receno usporavanje jer se ne javlja poruka o zauzetosti baza, traje > 2 - 3 sekunde kada se brise slog. Usporava se pristup i ostalim radnim > stanicama koje koriste tu datoteku ( a koriste je sve :). Interesantno je > da se usporava i rad stanica koje ne koriste u datom trenutku tu > datoteku. Ovo poslednje znači da server ne može da opsluži dovoljno brzo zahteve. Za navedeno vreme (do 3 sekunde) su se upisivali podaci u par velikih tabela i još 5-10 pratećih, naravno sve sa .NTX indeksima u jednoj aplikaciji za osiguranje koju smo radili i gde je 4-5 korisnika popunjavalo dva ekrana podataka i posle se to upisivalo u navedene tabele za 2-3 sekunde. Probaj, možda može Novell da se bolje podesi, jer server koji smo mi koristili nije bio bolji od tvog. > Slican slucaj sam vec pomenuo sa SET SCOPE komandom, kada dolazi do > drrra- sticnog usporenja rada dok se kreces po "skopiranoj" datoteci koja > se upravo azurira na vise drugih stanica. > > Onaj SET DIRTYREAD izgleda nije bezveze postavljen :( To je verovatno zato što kada god se radi skip, ispita se heder indeksnog fajla da li je izmenjen (bilo upisa u međuvremenu). U slučaju izmene se ponovo čitaju tabele i indeksi u tvojoj memoriji radi ažurnosti. Dirtyread se verovatno na ovaj heder ne obazire već tera po starom što je brže. Možda treba razmisliti da u cilju dobitka u brzini zaključaš fajl dok (brzo) iščitaš podatke o traženim zapisima, pa onda otključaš da u toku tvog čitanja grupe zapisa niko ne smeta sa izmenama hedera indeksnih fajlova. Milan
clipper.1068 mdrazic, -> #1042, d.petrovic
> Do koje dubine može da ide rekurzija ? > > Da budem precizniji ? > Koliko puta može da pozove sebe, a da se ne prepuni stek i program pukne Kada recimo zaboravim skip u petlji (recimo) pa program zaglavi, ovo rekurzivno pozivanje me spasava resetovanja. Pozoveš neki kalkulator desetak-petnaestak puta pa te lepo vrati u DOS. Inače se može napisati funkcija koja će ispitati i kontrolisati koliko puta je modul iz koga je pozvana pozivan rekurzivno. Dozvolite do 3 kalkulatora i do 4 kalendara recimo, i ne dozvoljavate više. Poziv ove funkcije je tipično na vrhu modula koji odrađuje neki set key. Milan
clipper.1069 mileusna, -> #1062, ikordic
>> Ima veze za ljude koji imaju original & registrovan softver, "Registrovan softver" <-- Jel ovo neka strana reč ;) Tražio sam u rečniku i nisam našao. ;)
clipper.1070 spantic, -> #1063, pyramid
> Zna li neko kako se na serveru NOVEL NETWARE-a moze izvrsiti > CLIPPER program? Koliko je meni poznato, nikako. Potrebno je imati moduo za Novell da bi mogao da se izvršava na serveru, a to ne može Clipper. Možeš to da uradiš iz C-a. Najlakše iz Watcom C 10 prevodioca.
clipper.1071 dejanr, -> #1063, pyramid
>> Zna li neko kako se na serveru NOVEL NETWARE-a moze izvrsiti >> CLIPPER program? Nikako. Na Novell 3.1x+ serverima mogu da se izvršavaju samo NLM-ovi, a to su posebno pisani i linkovani programi. Da li negde na tržištu postoji nešto što bi clipper program prevelo i povezalo kao NLM ne znam sigurno, ali veoma sumnjam.
clipper.1072 dejanr, -> #1069, mileusna
>> > Ima veze za ljude koji imaju original & registrovan softver, >> >> "Registrovan softver" <-- Jel ovo neka strana reč ;) Tražio sam u rečniku >> i nisam našao. ;) Verovatno je mislio na softver koji kupiš, popuniš registracionu karticu i pošalješ proizvođaču. Posle ti (osim ako si u Jugoslaviji) pružaju razne vrste podrške, manje ili više vredne.
clipper.1073 d.petrovic, -> #1046, cnenad
> Šta si stavio kao vrednost posle EVERY ? Zvekni mu 500 pa neće > biti baš tako sporo. Jeste da je onda efekat manji ali... ne > može se i jare i pare :) Mislim da nisam shvatio: Funkcija piše procente i crta trakicu.
clipper.1074 d.petrovic, -> #1054, neman
>> Do koje dubine moze da ide rekurzija ? > Probaj ;) Hoću ;)
clipper.1075 ikordic, -> #1064, bulaja
RE: Clipper 5.3 => Ovo su samo prvi utisci (bazirani na nekoliko sati rada:), pogledaću => još malo šta ima (ako nadjem vremena:) i preneću svoja zapažanja ovde Hvala na opisu, obavezno nađi vremena :) i molim te poradi na NAJBITNIJOJ stavki - novim i starim bagovima :( Inače, šteta za IDE ... po onom tekstu, ja sam pomislio da je posredi DOS IDE, kad ono ... :(
clipper.1076 d.petrovic, -> #1050, bulaja
> A ti optimizuj malo funkciju za refresh trakice - npr. piši > direktno na ekran a ne preko SAY, osvežavaj prikaz tek svakih > nekoliko (ili nekoliko stotina:) slogova, koristi EVERY opciju > kod SIx-a,... Sigurno neće biti 6 puta sporije :). Ma to sam i hteo, ali nije lepo kod manjih baza, mada... sad sam se setio da bi mogao prvo RecCount()... > Mislim da je od brzine samog indeksiranja mnogo važnije da user > ima neki feedback da se nešto dešava, pa sam zato spreman na > prilične žrtve u performansama indeksiranja (npr. čak i duplo > sporije:) ali da user ne bleji u ekran u čekanju da se rebuild > indeksa završi. Ehhh..., treba da bude lepo i nije strašno kod bržih mašina, mada će sada da probam gore navedeno :)
clipper.1077 d.petrovic, -> #1057, mileusna
> bolje izračunao koliko iznosi 10% tabele, pa je pozivao samo > onda (10 puta), ne verujem da bi bilo baš tako. Ma biće 100 puta (za 100 % i 50 polja trake)
clipper.1078 d.petrovic, -> #1051, bulaja
> /es1 switch kod kompajliranja (moj omiljeni:), ==== jel ovo nešto slato ? :)
clipper.1079 d.petrovic, -> #1068, mdrazic
> Kada recimo zaboravim skip u petlji (recimo) pa program > zaglavi, ovo rekurzivno pozivanje me spasava resetovanja. > Pozoveš neki kalkulator desetak-petnaestak puta pa te lepo > vrati u DOS. Taj ti kalkulator ništa ne valja ;)))) Isključi njegov set key na početku i uključi ga ponovo na kraju. Inače to kod mene nebi radilo da nemam nInkey() u svakoj petlji I nemoj da zaboravljaš Skip, meni se to nikad ne dešava, ja obično zaboravim .AND. ! Eof() O:))
clipper.1080 dcolak, -> #1056, mdrazic
│> Pa, imaš "amir" $ "Damir == .T.? Ili Soundex ()? │ │ A da li treba i da je "Mira" .like. "Amir" ili ne ? Ne, naravno. ;) Sledge DAMMIR!
clipper.1081 brus, -> #1079, d.petrovic
> Inace to kod mene nebi radilo da nemam nInkey() u svakoj petlji Postoji lepa funkcija u CA-Tools biblioteci InkeyTrap(nDelay) koja poziva uvek rezidentnu rutinu a isto radi sto i inkey().
clipper.1082 brus,
Treba mi resenje kako da ulinkujem DBFNTX+DBFCDX(moze i SIXCDX)+DBFNSX drajvere u isti exe. Koristeci uputstvo iz ng-a, sa bilo koja dva nema problema. Kada sam pokusao sa sva tri drajvera sa rtlink-om, nije prolazilo zbog toga sto je javljao duplicate definition sx_... za bilo koji slucaj. Nacas sam se obradovao sa blinker-om : Izveo je exe bez greske, rddlist() je pokazao sve drajvere u listi, rddsetdefault("DBF???") je radio, ali... Prilikom promene tekuceg drajvera sa otvaranjem nije bilo problema dok se nije upotrebila komanda INDEX ON ... Desila se blago receno simulacija benignog virusa. Ili bi se racunar iz cista mira resetovao, ili bi doslo do totalne blokade ili pojave Internal error-a raznih vrsta (kako kad) itd. Evo kako izgleda sablon rada : MYPROG.PRG : REQUEST DBFCDX REQUEST DBFNTX ... #include <dbfnsx.ch> ... RDDSETDEFAULT("DBFCDX") USE TEST INDEX ON SIFRA TAG SIFRA && ----> BOOM MAIN.LNK FILE MYPROG FILE NSX_CDX // Ovo zbog CDX-a (ng) čDBFNSX.LNK BEGINAREA SECTION INTO ... FILE ... ENDAREA ... LIBRARY DBFCDX.LIB LIBRARY DBFNTX.LIB Izvinjavam se zbog opsirnosti.
clipper.1083 brus, -> #1019, mdrazic
> stavi i indeks (tag) po deleted() kljucu ili jos bolje po > glavnom kljucu ali 'for deleted()'. Mora da se pazi u slucaju da se brisu redom slogovi u petlji. Npr: WHILE TEST->POLJE=="VREDNOST" .AND. TEST->(!EOF()) TEST->(DBDELETE()) TEST->(DBSKIP(1)) // Problematicna linija // END Naime, cim se obrise odgovarajuci slog, menja se i recno() na sledeci. Ako se ovakav nacin indeksiranja uvodi u neki stariji program, obavezno se mora izbrisati DBSKIP(1) da se ne bi obrisao svaki drugi slog. Verovatno se u navedenom slucaju uklanja i kljuc iz indeksne datoteke.
clipper.1084 cnenad, -> #1076, d.petrovic
ŁŁŁ da bi mogao prvo RecCount()... Koliko videh, za ovo preporučuju da se ne koristi. BTW, ranije je bilo nekih problema sa LastRec() ali sada (5.2d) koliko vidim radi kako treba, dakle uvek vraća tačan broj slogova.
clipper.1085 dvesic, -> #1066, nbatocanin
>> Koliko se ja secam, nije bilo bas tako. Koliko sam ja probao, bas je tako :) >> Meni je _bez_ DBFNTX drajvera SIX 1.1 trazio oko 100K vise sa RTLinkom. Radi se o Six 2.01.02; Aplikacija u pitanju je dosta velika (magacin/fakture/profakture tj. robno), i situacija je : 332 Kb Blinker 3.01 + CL520MIN ili 367 Kb Rtlink. >> A i logicno je: RTLink ne .. Ih, logicno ! :)
clipper.1086 vision,
HI. Svi CLIPPER-asi, ajde pogledajte ovaj MOJ meni sistem, mislim da je bolji od BUMENU-a (bez vredjanja). Evo stvarcice kojih ima u njemu pa da Vam olaksam download : Potpuna podska mouse-a, definisanje boja, automatsko postavljanje pulldown-a, ... Verujem da Vam nisam otracio koji minut download-a. vmenu.zip
clipper.1087 dvesic, -> #1083, brus
>> Naime, cim se obrise odgovarajuci slog, menja se i recno() na >> sledeci. Ako se ovakav nacin indeksiranja uvodi u neki stariji >> program, obavezno Nije tacno. Eksplicitno se kaze da se sve promene vezane za brisanje sloga desavaju PO pomeranju pokazivaca, sto znaci da DELETE ne menja RecNo().
clipper.1088 mdrazic, -> #1063, pyramid
> ...deo programa (clipperovog) se prebaci na server... :< > > Zvuci jednostavno, ali: > > Zna li neko kako se na serveru NOVEL NETWARE-a moze izvrsiti > CLIPPER program? > > Mnogo mi treba. Koliko sam ja razumeo, termin server se samo odnosi na drugu (neku centralnu) mrežu gde se na jednoj stanici sa modemom vrti Clipper program i normalno radi ili sam ili sa nekim file-serverom na toj mreži. Drugim rečima klijent je mašina sa ove strane telefonske žice a server mašina sa one strane žice (sporog kanala). Da li je to stvarno file server nije bitno za efekat ubrzanja posla. Na serveru se mogu vrteti NLM moduli, i za njihov razvoj sam čuo za neki Watcom C razvojni alat koji ih može praviti. Muka je što moraš imati jednu mrežu za igru koja će stalno padati i zaglavljivati se u procesu proba-greška pri pravljenju NLM. Milan
clipper.1089 neman, -> #1067, mdrazic
>> stanicama koje koriste tu datoteku ( a koriste je sve :). >> Interesantno je da se usporava i rad stanica koje ne >> koriste u datom trenutku tu datoteku. > > Ovo poslednje znaci da server ne moze da opsluzi dovoljno > brzo zahteve. Za navedeno vreme (do 3 sekunde) su se > upisivali podaci u par velikih tabela i jos 5-10 pratecih, > naravno sve sa .NTX indeksima u jednoj Napomena je bila vezana za *BRISANJE* sloga koji ima indeks sa 5 tagova i svi imaju uslov FOR !DELETED(), inace sve radi prilicno brzo :)
clipper.1090 bulaja, -> #1078, d.petrovic
││/es1 switch kod kompajliranja (moj omiljeni:), │└─── │ ==== jel ovo nešto slato ? :) └──── Gde slato :) ? ES (Exit Severity level) je prekidač koji je Clipper.exe dobio u verziji 5.2 i označava koji errorlevel (koji dalje obrađuje make file) će se vratiti u slučaju da kompajler prijavi neke warninge, greške i slično. /ES1 (nešto poput DefConOne :) znači da vraća grešku odnosno prekida make čim nadje na bilo koji warning, što je jako korisno ukoliko ste prekinuli sa S87 načinom pisanja programa i koristite /w prekidač (enable warnings) :).
clipper.1091 d.petrovic, -> #1084, cnenad
> RecCount() > Koliko videh, za ovo preporučuju da se ne koristi. Ja ne videh, jel to i za 5.01 ?
clipper.1092 d.petrovic, -> #1081, brus
> Postoji lepa funkcija u CA-Tools biblioteci InkeyTrap(nDelay) > koja poziva uvek rezidentnu rutinu a isto radi sto i inkey(). Ja koristim (doduše izmenjenu) nenadovu funkciju nInkey() kroz koju ide i nSetKey() koja je umesto Set Key To. Tačnije Set Key To kod mene ne postoji.
clipper.1093 brus, -> #1087, dvesic
> Nije tacno. Eksplicitno se kaze da se sve promene vezane za U pravu si. žak je i kljuc dalje uključen u indeksnu datoteku. Medjutim, naredba DBSKIP(1) se ne ponaša kao u slucaju sa SET DELETED ON. U slučaju brisanja sloga i prelaska na naredni slog, ne prelazi se na naredni slog vec se odlazi na EOF(). čalim zbog nepreciznosti. :( Evo testa : TEST.PRG: #DEFINE TEST1 // SLUCAJ FILTRIRANOG INDEKSA !DELETED() DBARR:=šš'POLJE','N',1,0ćć DBCREATE('TEST.DBF',DBARR) USE TEST FOR I:=1 TO 10 DBAPPEND() _FIELD->POLJE:=IF(I>5,2,1) // Prvih pet, polje:=1,ostalo polje:=2 NEXT #IFDEF TEST1 INDEX ON POLJE TO TEST_1 FOR .NOT. DELETED() #ELSE INDEX ON POLJE TO TEST_2 SET DELETED ON #ENDIF // ====================== DBGOTO(1) // : TEST1 : TEST2 : DBDELETE() // :==========:=========: ? POLJE,RECNO() // : 1,1 : 1,1 : DBSKIP(1) // : : : ? POLJE,RECNO(),EOF() // : 0,11,.T. : 1,2,.F. : // ======================
clipper.1094 mdrazic, -> #1079, d.petrovic
> Taj ti kalkulator ništa ne valja ;)))) > Isključi njegov set key na početku i uključi ga ponovo na kraju. Jok more. Ako već hoćeš tako nešto da radiš (a ja neću za kalkulator namerno, volim dva jedan pored drugog:) radiš ili 1) sprešiš rekurziju modula (informacije iz program steka) ili 2) maskiraš sve hot-key kombinacije osim potrebnih za taj posao na ulazu u modul i vratiš na izlazu. To radi jedna tvoja funkcija opšte namene i maskira sve nepotrebne kombinacije (a ne znaš ni koje su jer ti se modul poziva sa raznih mesta). Milan
clipper.1095 mdrazic, -> #1080, dcolak
>│ A da li treba i da je "Mira" .like. "Amir" ili ne ? > > Ne, naravno. ;) Pitanje je bilo ozbiljno, ali je izgleda shvaćeno kao zezanje. Kako da 'uhvatiš' recimo permutacije slova što je česta greška pri unosu? Gornji primer je malo karikiran ali sam mislio na te probleme. Milan
clipper.1096 dcolak, -> #1086, vision
│ HI. Svi CLIPPER-asi, ajde pogledajte ovaj MOJ meni sistem, mislim da │ je bolji od BUMENU-a (bez vredjanja). Evo stvarcice kojih ima u njemu │ pa da Vam olaksam download : Potpuna podska mouse-a, definisanje boja, │ automatsko postavljanje pulldown-a, ... Ah, da, daj bRe verziju za 5.0x :) Hitno! ;)) Sledge DAMMIR!
clipper.1097 bulaja, -> #1084, cnenad
│BTW, ranije je bilo nekih problema sa LastRec() ali sada (5.2d) koliko │vidim radi kako treba, dakle uvek vraća tačan broj slogova. └─── Kada je to bilo problema? Podaci o broju slogova se upisuju u samo zaglavlje .DBF datoteke, tako da nema šanse da se promaši :).
clipper.1098 bulaja, -> #1086, vision
│HI. Svi CLIPPER-asi, ajde pogledajte ovaj MOJ meni sistem, mislim da │je bolji od BUMENU-a (bez vredjanja). └─── Zašto bi se vređali? :) Pogledaćemo, pa ako vredi ide u dir :).
clipper.1099 bulaja, -> #1094, mdrazic
│1) sprešiš rekurziju modula (informacije iz program steka) └─── Ili još lakše preko jednog STATIC-a, npr. ovako: #define MAX_REKURZIJA 4 **** -------------------------------- **** FUNC Kalendar (<parametri>) ... STATIC nDubina := 0 IF nDubina >= MAX_REKURZIJA // neće moći :) RETURN (.F.) ELSE nDubina++ ENDIF ... nDubina-- RETURN (.T.) Naravno ako se želi sprečiti rekurzija, dovoljno je definisati da MAX_REKURZIJA bude 1.
clipper.1100 cnenad, -> #1091, d.petrovic
ŁŁŁ Ja ne videh, jel to i za 5.01 ? Ne znam za 5.01. U NG-u od 5.2d odlikovan je zvezdicom ;)
clipper.1101 cnenad, -> #1097, bulaja
ŁŁŁ│ BTW, ranije je bilo nekih problema sa LastRec() ali sada (5.2d) koliko ŁŁŁ Kada je to bilo problema? Podaci o broju slogova se upisuju u samo ŁŁŁ zaglavlje .DBF datoteke, tako da nema šanse da se promaši :). R098 / feb. '94 / Str.66./ BLP za 1993 Godinu 'Da li ste već čuli... da Clipper funkcija LASTREC() vraća 1 ako u bazi nema slogova ili ima samo jedan slog...' Sada, korektno vraća 0 ako nema slogova.
clipper.1102 .ken., -> #1082, brus
> Treba mi resenje kako da ulinkujem DBFNTX+DBFCDX(moze i > SIXCDX)+DBFNSX drajvere u isti exe. Koristeci uputstvo iz ng-a, > sa bilo koja dva nema problema. Probaj sa novim SIX-om (2.0x.xx ili ko zna dokle dodje :-) ) U Ng-u za Six (1.5) citao sam da ne treba mesati SIXCDX i SIXNSX za verziju 1.5 Posto su u Six 2.0x.xx objedinili tri RDD u jedan lib njihovo zajednicko koriscenje ne bi trebalo da predstavlja problem. U novom Six-u imas tri RDD i to SIXCDX,SIXNSX i SIXNTX - gotovo sve sto je potrebno. P.S. - Pokusaj da izbegavas DBFCDX jer se niko koliko znam nije usrecio sa ovim RDD-om
clipper.1103 dvesic, -> #1093, brus
>> U slucaju brisanja sloga i prelaska na naredni slog, ne >> prelazi se na naredni slog vec se odlazi na EOF(). Zalim zbog >> nepreciznosti. :( Evo testa : Nisam stigao da pogledam, kasnije cu, ali evo, ovako on-line : Izuzetno je dobra (cak preporucljiva praksa) da se pre izmene polja koje ulazi u tekuci indeks/for uslov indeksa/brisanje sloga stavi jedno SET ORDER TO 0 tj. bez tekuceg indeksa.
clipper.1107 rccomp,
Poklon za nastupajuce novembarske praznike look_ex.zip
clipper.1108 vision, -> #1098, bulaja
Jakako, ajde bre baci to u dir, i ako bacis u dir, dobices na poklon source :).
clipper.1109 vision, -> #1096, dcolak
>> Ah, da, daj bRe verziju za 5.0x :) Hitno! ;)) Uz moje zaprepascenje, izkompajliralo se samo :) bez i jedne greske. Evo ti obj kompajliran sa verzijom 5.2, sorry nemam druge, verujem da ce raditi sa drugim verzijama, a ako ipak ne radi, moram se negde namuciti pa da nadjem neki malo stariji kompajler. Drugi fajlovi ostaju isti. vmenu52.zip
clipper.1110 mdrazic, -> #1089, neman
> Napomena je bila vezana za *BRISANJE* sloga koji ima indeks sa 5 tagova > i svi imaju uslov FOR !DELETED(), inace sve radi prilicno brzo :) Kod brisanja sa ovakvim tagovima se menjaju svi indeksni fajlovi (tagovi) i tabela takođe (flag na zapis). U odnosu na novi zapis nema samo produžetka dužine tabele (jedan od ukupno 2 fajla od kojih se drugi ažurira na 5 tagova - slično kao 5 indeksa). Po obimu posla je skoro isto. Nisam imao ovakve tagove pa za brisanje ne znam tačnu brzinu. Milan
clipper.1111 mdrazic, -> #1099, bulaja
>│ 1) sprešiš rekurziju modula (informacije iz program steka) > └─── > Ili još lakše preko jednog STATIC-a, npr. ovako: > > > # define MAX_REKURZIJA 4 Ali tada treba mnogo pažnje da se smanji brojač pre svakog return-a iz modula. Zar nije lakče (a i bez promenljivih) jedno NO RECURSION ŠOVER nMaxLevelĆ ŠRETURN xExprĆ na početku modula koji pretprocesor prevede u poziv odgovarajuće funkcije, a kasnije nemaš nikakvih promena u modulu. Milan
clipper.1112 mdrazic, -> #1103, dvesic
> Izuzetno je dobra (cak preporucljiva praksa) da se pre izmene polja > koje ulazi u tekuci indeks/for uslov indeksa/brisanje sloga stavi > jedno SET ORDER TO 0 tj. bez tekuceg indeksa. A posle da se uključi, ili šta? Šta se time dobija ako ga isključiš, pa ti odmah zatim zatreba, pa ga uključiš? Milan
clipper.1113 dvesic, -> #1112, mdrazic
>> A posle da se ukljuci, ili sta? Sta se time dobija ako ga >> iskljucis, pa ti odmah zatim zatreba, pa ga ukljucis? Dobijam sigurnost da će biti izmenjeni upravo oni slogovi koje želim. Da li si ikada probao da menjaš polje koje ulazi u tekući indeks ? Tačnije, da li si menjao VIŠE slogova po polju nad kojim je aktivni indeks ? Kakvi su rezultati ? :))
clipper.1114 szeman, -> #1086, vision
>> Verujem da Vam nisam otracio koji minut download-a. Vrlo interesantno, samo što se u nepredvidivim vremenskim intervalima "zaglavi" na kratko (sa/bez miša, svejedno). Ajde probaj ovo da rešiš. Inače veoma interesantno rešenje, pre svega zbog podrške rada sa pacovom. Srećno...
clipper.1115 bulaja, -> #1111, mdrazic
│Ali tada treba mnogo pažnje da se smanji brojač pre svakog return-a │iz modula. └─── I ovako moraš pre return-a da vratiš stanje sistemskih parametara (funkcije gde ti uopšte trebaju rekurzivni pozivi su obično opše zezalice tipa kalkulatora, kalendara i slično, a pošto nikad neznaš odakle ćeš ih pozvati moraš jako da paziš da sve svratiš na staro stanje), tako da je jedno umanjivanje brojača najmanji problem. Obično se i vraćanje starog stanja strpa i neki translate, tako da se problem svodi samo na dodavanje dekrementacije brojača u taj translate.
clipper.1116 mdrazic, -> #1115, bulaja
> Obično se i vraćanje starog stanja strpa i neki translate, tako da se > problem svodi samo na dodavanje dekrementacije brojača u taj translate. Ali ti onda taj translate nije univerzalan i za module bez kontrole rekurzije. Milan
clipper.1117 mdrazic, -> #1113, dvesic
> Dobijam sigurnost da će biti izmenjeni upravo oni slogovi koje želim. > Da li si ikada probao da menjaš polje koje ulazi u tekući indeks ? > Tačnije, da li si menjao VIŠE slogova po polju nad kojim je aktivni > indeks ? Kakvi su rezultati ? :)) Ako misliš na nešto tipa: dbseek('kljuc123') replace TABELA->Sifra with 'kljuc567' ; while TABELA->Sifra=='kljuc123' znam za jadac, ali ne vidim šta tu pomaže set order to 0. Kako pristupaš grupi zapisa: jedan po jedan skipujući ili si prešao na SQL? Šta zajedničko imaju slogovi koje menjaš? Kod više slogova za promenu možeš: 1) da prvo u listu (niz) zapamtiš recno() istih pa posle da menjaš 2) primeniš zamenu tipa do while dbseek('kljuc123') replace TABELA->Sifra with 'kljuc567' enddo Kako bi ova zamena šifre išla sa set order to 0 ? Milan
clipper.1118 vision, -> #1114, szeman
>> Vrlo interesantno, samo sto se u nepredvidivim vremenskim intervalima >> "zaglavi" na kratko (sa/bez misa, svejedno). Kako mislis 'zaglavi', ajde poobjasni to, ovamo kod mene se to ne desave??
clipper.1119 dvesic, -> #1117, mdrazic
Naravno, preko indeksa nad nekim od polja. >> si prešao na SQL? Šta zajedničko imaju slogovi koje menjaš? Indeksni ključ. >> Kod više slogova za promenu možeš: >> 1) da prvo u listu (niz) zapamtiš recno() istih pa posle da >> menjaš Ovo je generalno pravilo kod slučajeva kada menjam polje koje ulazi u aktivni indeks i kada brišem slog a postoji indeks nad Deleted() funkcijom. 2) primeniš zamenu tipa >> do while dbseek('kljuc123') >> replace TABELA->Sifra with 'kljuc567' >> enddo >> >> Kako bi ova zamena šifre išla sa set order to 0 ? Kao što rekoh, u prvom prolazu pokupim Recno() u niz, u drugom skačem direktno na slog; pre toga dođe jedno Set Order To 0.
clipper.1120 szeman, -> #1118, vision
>> Kako mislis 'zaglavi', ajde poobjasni to, ovamo kod mene se to ne >> desave?? Ma nema tu šta da se objašnjava, instaliraj miša, aktiviraj menu Files i pritiskaj strelicu desno nekoliko puta i VOILA :) program se malo "zamisli" ;) šta da uradi sledeće (cca 2-3 sec, ako je bitno 286/16MHz) i onda nastavi sa radom, 3-4 puta pritisni strelicu desno, opet se "zamisli".... ;) Bez aktivnog mouse drajvera, ovo je malo teže pronaći ali se ipak dešava. P.S. Kompajlirano je na s'87.
clipper.1121 dpredovic,
Bug u SIX 2.01.02. Možda nekome pomogne, a mene je bogami izludelo... Imamo u bazi polje X tipa N3.0, i index po tom polju (ne str(X), čisto X, zbog Mach6-a). Postavimo filter na npr. X>=100.AND.X<=120, i cvrc! rezultat je 0 slogova, bez obzira što bi trebalo da ih bude oko 400. Filter postavimo na X>99.AND.X<121, i sve je kako treba??? Pouka? Ne veruj Sixu ni kada patcheve donosi... BTW. Jel nema neki 2.01.03. ;)
clipper.1122 dpredovic, -> #1102, .ken.
> Probaj sa novim SIX-om (2.0x.xx ili ko zna dokle dodje :-) ) > U Ng-u za Six (1.5) citao sam da ne treba mesati SIXCDX i > SIXNSX za verziju 1.5 U verziji 1.5, uz NSX drajver dobijala se i blblioteka sixlink.lib, ili tako nekako, koja sadrži zajedničke delove cdx i nsx biblioteke. Funkcioniše, ali je ipak bolje da pređeš na 2.0, pošto pravi mnogo manji exe.
clipper.1123 dr.grba, -> #1072, dejanr
>> Verovatno je mislio na softver koji kupiš, popuniš registracionu karticu i >> pošalješ proizvođaču. Posle ti (osim ako si u Jugoslaviji) pružaju razne >> vrste podrške, manje ili više vredne. Sad si me podsetio na tri registracione kartice koje se ne usuđujem da pošaljem na adresu koju mi proizvođač sugeriše, a predmetna je u Nemačkoj. ):
clipper.1124 mdrazic, -> #1119, dvesic
>>> Kako bi ova zamena šifre išla sa set order to 0 ? > > Kao što rekoh, u prvom prolazu pokupim Recno() u niz, u drugom > skačem direktno na slog; pre toga dođe jedno Set Order To 0. Znači, samo je brzina u pitanju, a ne i sigurnost što ti je bio glavni motiv za set order to 0 u prvoj poruci. Milan
clipper.1125 dvesic, -> #1121, dpredovic
>> Postavimo filter na npr. X>=100.AND.X<=120, i cvrc! rezultat >> je 0 slogova, bez obzira što bi trebalo da ih bude oko 400. Set ScopeTop 100 :))) Set ScopeBottom 120 :))) Go Top :)))
clipper.1126 nbatocanin, -> #1121, dpredovic
> Bug u SIX 2.01.02. Uh :(( Idemo iz početka...
clipper.1127 bulaja, -> #1116, mdrazic
│Ali ti onda taj translate nije univerzalan i za module bez kontrole │rekurzije. └─── E DJ :)... Ma baš me briga za translate, ako mi treba kontrola dubine rekurzije neće mi predstavljati problem da dodam tu dekrementaciju brojača pre svakog RETURN i gotovo :). Jednostavno mislim da je STATIC bolje (čistije) rešenje od blejanja po call stack-u (o tome smo pričali, remember?:) - end of story :).
clipper.1128 stosic,
Jos jedna interesantna stvar vezana za Clipper 5.3 je podrska za matematicki koprocesor. Kliper je u ovoj verziji kompajliran sa Microsoft C 8.0 kompajlerom i emulatorskom (umesto alternativnom) bibliotekom za rad sa realnim brojevima. Ova biblioteka radi nesto sporije (i ima duzi kod) od alternativne, u slucaju da nemate koprocesor. Evo rezultata jednog obicnog testa (486/33): ---------------------------- proc test() local start := seconds() koren() ? seconds() - start proc koren() local i local d := 1 for i := 1 to 100000 sqrt(d) d += 1 next ---------------------------- 1. Clipper 5.3 beta : 9.55 2. Clipper 5.2d + Exospace: 13.73 3. Clipper 5.2d + Blinker : 17.08 I nesto za diskusiju: Clipper 5.2d : 12.96 (brzi u real modu). PS. Povezivanje sa MSC 8.0 mi nije uspelo:(
clipper.1130 vision, -> #1120, szeman
Sorry, stvarni nije mi jasno, program je radjen na dx2 66, a i u 286/16 radi super, probaj mozda driver za misa, ja koristim >>gmouse.com<<.
clipper.1131 bceklic,
Da li neko ima predstavu o tome kako bi trebao da izgleda optimalni izgled jednog sistema menija u clipper programu? Interesuje me koji se tip menija najbolje pokazao u praksi, da li je neophodno obezbediti upotrebu misa, hot-key-eva i ostale sitnice... Pozdrav!
clipper.1132 dcolak,
Imam programče u C-u (ono sa cMKDIR, cRMDIR, cCHDIR iz Jedrenjaka). Imam svoje programče u Kliperu. So, kako da ih spojim? Please korak po korak. Inače imam MSC 6.0. P.S. Zar je moguće da kliper nema komandu kao što je MKDIR?! Sledge DAMMIR!