clipper.416bulaja,
CA-Visual Objects
CAVO3P.HLP - 3rd Party Vendors Help File
Ovo je spisak svih nezavisnih (Third Party) proizvoda vezanih za
CA-Visual Objects - dodatnih biblioteka, knjiga, časopisa, kurseva
i seminara,...
cavo3p.zipclipper.417mdrazic,
-> #405, dr.grba> Jedino preostaje da se nađe onaj program za keširanje RAM diska
> koji ndragan nikako da mi da, a obećao mi je.
>
> Ima li ga neko od vas?
Ja imam jedan:) Najlepša stvar je u tome što možeš da podesiš da
umesto memorije koristi swap file na disku za keširanje, pa tako
ne trošiš nepotrebno memoriju. Pade mi na pamet: a da se taj
swap file napravi na drugom ram disku?
Milan
clipper.418mdrazic,
-> #399, dvesic>>> Šta sve utiče na LOAD SIZE (veličina koju javlja linker na
>
> Celokupna memorija zatečena na startu (Realna + Ems) se zauzima
> od strane Clipperovog VMM-a (Virtual Memory Manager). Pri tom se za
> upravljanje ovom memorijom odvaja tabela (u realnoj mem.) i to po
> 14 bajtova na svaki Kb Realne/Ems memorije. (izuzetak : korišćenje PLL
> lib-ova; vidi dole).
Ima logike. Posle isključivanja oko 1MB EMS load size je isti ali
raspoloživ RAM (memory(0)) je veći za 9KB.
> Zatim se prostor deli na Fixed i Swap space. U Fixed space idu
> Space to je manji Swap space. LOAD SIZE koju javlja linker je upravo min.
> veličina Swap Space-a (od realne treba odbiti Fixed deo i Eval stack kao
> i deo za Private/Public varijable).
> Za svaku Priv/Pub varijablu je potrebno 20 bajtova. Potrebna memorija
> za ovo se odvaja od Swap Space-a tokom rada u koracima od 1Kb. To je ono
> što može izazvati nedostatak memorije kroz duži rad programa.
>
> Tu je i Eval Stack, na kojem se kreiraju Local i Static varijable.
> Local pri vrhu Eval Stacka, Static pri dnu (jer se ne uništavaju za
> vreme rada programa). Veličina ES-a je < 64 Kb.
>
> Swap space ostaje za rad VMM-a. On alocira VM Segmente <= 64 Kb i
> u njih raspoređuje dinamičke overleje. Nepotrebni overleji se sele
> u EMS, tako da isključivanje EMS-a *jako* degradira performanse
> većih aplikacija (zahtev za dinamičkom stranicom se uvek čita
> sa diska).
Kod mene je najveća degradacija :) kada SA EMS neće da radi, a BEZ
nje i radi nekako. Da se zna: ne tražim pomoć, jer rešenja znam
(recimo Blinker, rad bez 2 PLL-a,...), nego je interesantno znati
kako 'ugrabiti' još po neki KB za rad aplikacije.
> - Smanji Private/Public na račun statičkih
Šta tačno dobijaš ovim: dobiješ 20B na private/public stacku ali
izgubiš ??B (koliko?) na eval stacku. Kakav je dobitak na ostatak
memorije koju javlja memory()?
> - ako ostaješ pri RTLinku, razmisli o ručnom razbijanju
> aplikacije na overleje
Misliš da ima više EXE fajlova? Razmišljao sam i još uvek se ne isplati.
> - Upotrebi Blinker sa min/mid/max LNK fajlovima
:))
Pitanje: Postoji RUN memorija valjda oko 64K. Da li ona može da se
u RTLINKovanju isključi i tako ostala memorija uveća?
Milan
clipper.419mdrazic,
-> #400, djelovic> Evo da napravimo :) deal: Vi napisite 20 poruka koje se bave VO-om
> (pravih poruka, ne kukanja i simuliranja poruka?), i eto teme. Fer?
Piši jedno pozitivno brojanje :)
žasopis "Software development" (Jan 95)
žlanak Bill Lazar "CA-Visual Objects", prikaz softvera. Kraće od
nbatocaninovog, ali je interesantan pošto časopis nije
orijentisan na Clipper/VO, nego je opšteg tipa.
Preskačem sve ono što ste (verovatno) čuli i pročitali o dobrim stranama VO.
Zato, samo ono što na drugim mestima nisam pročitao, tj. ono što ja
smatram zanimljivim.
- CommonView class library, which CA acquired through purchase
of Glockenspiel Ltd.,... has been transformed into the GUI class
library and provides efficient encapsulation of user interface elements
and Windows-style event handling. CommonView's event handlers
ease the burden of processing the myriad messages Windows sends to
the application.
- My favourite tool supplied with CA-VO is entity browser.
- CA-VO has full object orientation (single inheritance only) and a set
of class libraries on top. The language contains an efficient dispatcher
and a good native code compilation, so the object orientation adds
little overhead. In addition, you can access any standard Windows DLL
as long as you make any function prototypes available to the compiler.
- Some of CA-VO's more significant innovations are access and assign
methods. Although this concept is not original, this is the first
robust commercial implementation that bridges the gap between clean,
natural representation and the need for data encapsulation. The methods
provide virtual variables or state information that are better calculated
on demand rather than stored. Access and assign methods can, but need
not, directly correspond to instance variables.
- CA-VO's ownership hierarchy is the other major structural innovation.
If an ownership hierarchy message is received by an object that cannot
handle it, the message is passed up the object's chain of owners (other
objects) until it gets handled.
- The GUI class library provides a complete application framework for
CA-VO, including the event-handling system. This library replaces
the massive number of C case statements that Windows applications
require for message processing. In fact, most routine messages can
be handled automatically by CA-VO. Occasionally, this automation
gets in the way (for example, it's hard to get access to all the key
and mouse events in a DataWindow), but anyone who's ever SPYed on
the Windows message traffic will be happy to pass off this task.
( za dpredovica : valjda odavde teškoće sa <Esc> tasterom)
- CA-VO is missing some obvious pieces, but CA is aware of these and
has promised fixes in a short-term upgrades. Most significantly
absent is support for any sofisticated interapplication communication,
such as OLE. Second is the lack of substanial support for multideveloper
teams and version control. Third, support for VBX and OCX controls is
missing in the first version, although CA intends to add this.
- The first generation of tools to support GUI client application
development - such as Visual Basic and PowerBuilder - showed developers
how to start handling the surging demand for business solutions based
on this metaphor. Now, a second generation of tools is being released
that encompasses the first generation's abilities while addressing
many of its inadequacies. CA's commitment to OS/2, Windows NT,
and Motif supports CA's promise to port CA-VO to other GUI platforms
in the near future.
Toliko za sada.
Milan
clipper.420bulaja,
-> #410, stosic│Finalnu verziju (:
│Neko je vec ima ?
└───
Za sada je 1.0a poslednja zvanična finalna verzija :). Poslednji upgrade
za verziju 1.0a za koji znam je CA-VO v1.0a build 427, nosi datum
03.01.95 i ide na pet disketa (doduše peta je popunjena samo sa 100
Kb:), ali nisam siguran da je to zvanični i poslednji CAVO 1.0 patch.
Pošto očigledno još uvek ima nekih problema :), pretpostavljam da će CA
u dogledno vreme (možda to saznamo već ovih dana:) pustiti verziju 1.0b.
clipper.421mdrazic,
-> #409, ndragan> Zato umesto go bottom može da ide
> seek chr(255)
> skip -1
>
> Trebalo bi da je brže u ovakvom slučaju.
Brže ide na dno, tačno je. Ali iz ličnog iskustva znam da kada ima
puno zapisa sa istim ključem, običan skip i seek (i na neki drugi ključ)
osetno duže radi. Valjda B-stablo nije dobro izbalansirano, ne znam
tačno uzrok ovome.
> Datum se pakuje u dva bajta ovakvom funkcijom:
Ako dopustiš i treći bajt izbegavaš razne 'čudne' bajtove u polju,
uključujući chr(0), chr(26) i ostale kontrolne kodove, a i može se
smislenije šifrirati: po bajt za godinu, mesec, datum, tako da i
golim okom možeš pročitati datum. A i konverzija kraće traje.
> Slično bi moglo i za vreme, recimo minuti 6 bitova, plus sati 5 bitova,
Ja pakujem vreme isto u tri bajta kao datum (sat, minut, sekunda)
Za timestamp koristim 3B za datum + 3B za vreme. Ako nekom ne treba
tolika rezolucija, može se zadržati na prvih n (n<=6) bajtova sa
očiglednim značenjem podatka (dopisuje se po defaultu: 1. u mesecu,
0h, 0min, 0sec).
Milan
clipper.422snemcev,
Jedna stvar koja me je zbunila: 20-tak .obj fajlova sam strpao u jedan
.lib i sad mi blinker odjednom prijavljuje 'CLIPPER.LIB(GT): Undefined
symbol __beep_'. Empirijski (uh, što volim strane reči ;) sam utvrdio da
je to ono Beep koje se čuje kad stigneš do kraja polja za unos, a
uključeno je SET BELL ON. Ima li neko ideju zašto se ovo sad događa?
clipper.423dvesic,
-> #418, mdrazic>> izgubiš ??B (koliko?) na eval stacku. Kakav je dobitak na
>> ostatak memorije koju javlja memory()?
Dobitak je u tome što je eval stack u VM segmentu koji je
moguće "šetati" okolo, dok je u fixed nepokretna i permanentno
zauzima memoriju
>> Pitanje: Postoji RUN memorija valjda oko 64K. Da li ona može
>> da se u RTLINKovanju isključi i tako ostala memorija uveća?
Da li si siguran u ovo ? Do sada nisam naišao na tako nešto.
clipper.424pyc.guy,
Subject: Blinker 3.10 Protected
Program ulinkovan sa sledecim .lnk fajlom:
│BLINKER HOST MESSAGE ON
│
│BLINKER EXECUTABLE CLIPPER F:120
│BLINKER EXECUTABLE NODELETE
│
│MAP S,A
│
│BLINKER EXECUTABLE EXTENDED 2048
│
│OUTPUT ...
│
│ FILE ctintp.obj
│ FILE ctusp.obj
│
│ FILE <mainPrg>.obj
│ FILE sixcdx
│ FILE <ostali>.obj
│ FILE <ostali>.obj
│ FILE <ostali>.obj
│ FILE <ostali>.obj
│
│SEARCH BLXCLP52
│LIB ctp
│LIB blxratex
│
│@cl520min.lnk
│
│@six2.lnk
javlja SAMO pri povratku u DOS:
│BLX286 : 1313 : exception error 0D : general protection fault, code = 0000h
│Active host is VCPI (v3.10 i386 4752kb)
Jedino sto varira pri promeni kolicine eem386 memorije je zadnja brojka:
4752kb ili 6560kb ili cak 8608kb. Cudi me ova zanja jer je veca od 8Mb
koliko ja imam RAMa.
Gornju poruku o greski besomucno skroluje tako da masina mora da se reSetuje.
Znam da je program pokusao da uradi neDozvoljenu "radnju" u zasticenom modu
ali je ta radnja OBICAN izlazak/RETURN iz main procedure. Da je nesto drugo
pa 'ajde da ga cackam - ali na RETURNU ne zanam sta da mu radim...
Linkovano sa ExoSpace-om je sve OK.
Hvala u napred!
clipper.425dr.grba,
-> #412, ndragan>> / koji ndragan nikako da mi da, a obećao mi je.
>>
>> Hmmm, na kom to beše disku... ako to nije onaj što mi je riknaja
>> onomadne...
Ajde, šta si se stisn'o, k'o da sam ti tražio pola dedovine (:
clipper.426dr.grba,
-> #419, mdrazic>> teams and version control. Third, support for VBX and OCX controls is
>> missing in the first version, although CA intends to add this.
Oho-ho, dragi gledaoci! (:
clipper.427mkurtes,
-> #393, bulajaCAVO
RAM disk i te kako ubrzava rad. NPR - u tabeli koju sam dao
(brzina rada tri 486 masine) kod 486/66/16 gde su najbolji
rezultati pri pretvaranju u RAM disk 2 MB (od 16) vreme
pravljenja EXE filea se poboljsalo vise nego 3 puta
tj. bilo je 1 min i 11 sec a sada je 31 sec kod iste
aplikacije.
Ram disk je napravljen sa RAMDRIVE.SYS fileom u Config-u
(PC DOS 6.3)
Poruka vise za temu. Pozdrav :).
clipper.428velicko,
Treba mi rutina u ASM i C-u za sviranje 16-bitnih,
44 KHz, stereo semplova na SB kartici.
Može i .obj da prođe, bitno je da šljaka sa Clipper-om.
Neko je poslao tVoc klasu, ali nikako da mi sa tom
bibliotekom proradi sviranje stereo semplova na 44 KHz
16-bita. Takve mi semplovi samo pište i to mnogo duže
od realnog trajanja.
Ajde please pomagajte.
velicko
clipper.429velicko,
/*
Ovo treba brojati za VO temu
naročito ako dobijem odgovor(e)
*/
Kako najjednostavnije iz VO-a da odsviram
neki sempl na SB kartici?
Nemojte da mi kažete:"Pozovi API f-ju!"
pošto sam početnik u WIN programiranju.
velicko
clipper.430dpredovic,
-> #413, tomaSubject: Re: eps2pcl
> Epson Laser (IIp kompatibilan)
> EscP --> ?
> EscM --> ?
Mene je mrzelo da menjam programe koji su pisani samo za epsone, (a i
lakša je za ubacivanje u tuđe programe koji se održavaju), pa sam
napisao programče koje to radi externo. Ako pokupite arhivu videćete da
sam ubacio konverziju samo za nekoliko kodova, ali to je ono što mi je
trebalo. Ako bude bilo interesovanja mogu da ga proširim.
eps2pcl.zipclipper.431cnenad,
-> #422, snemcevŁŁŁ .lib i sad mi blinker odjednom prijavljuje 'CLIPPER.LIB(GT): Undefined
ŁŁŁ symbol __beep_'. Empirijski (uh, što volim strane reči ;) sam utvrdio da
Uključi u LINK skript i liniju LIB TERMINAL
Terminal.LIB je naravno iz Clipper paketa.
clipper.432rccomp,
-> #430, dpredovicA, da li je nekako moguce umesto poznate fraze :
@ prow(),pcol() say chr(27)+"W1"+"K cZaglavlje
@ prow(),pcol() say chr(27)+"W0"
ubaciti nesto slicno u PCL-jeziku, sto bi laser razumeo?
Naravno, umesto "W1" i "W)0" tu se mogu pojaviti "E","F","G","H" i
slicno.KKKKi slicno.
clipper.433bceklic,
Pade mi na pamet. Hteo bi da lupim mali casnovnik u uglu ekrana.
Koju funkciju koristite za ovakav zahvat? Ja inace imam svoju funkciju
u asm-u koju ukljucujem u svoje asm programe (preuzima 1ch). Znam da
neke clipper biblioteke imaju ovu funkciju a kod FOx-a je ova mogucnost
standardna stvar. Clipper ima samo funkciju koja vraca vreme u obliku
stringa (time()) zar ne?
clipper.434bceklic,
Koji je najefikasniji nacin resavanja unosa stringova duzih od sirine
ekrana?
clipper.435obrada,
Primetio sam da Clipper-ova funkcija FWRITE() ne upisuje binarno
na stampac, odnosno LPT1.
Kada odstampam podatke (gde je i definicija YU slova) direktno iz mog programa
u fajl, i na LPT1 ali sa preusmerenjem u fajl (pomocu PRN2FILE), fajlovi
se razlikuju.
Zapravo ako se sa FWRITE upisuje na LPT1, onda je isti efekat kao da se
fajl kopira na LPT1 sa COPY fajl LPT1, a trebalo da bude COPY /B fajl LPT1.
U NG pise da FWRITE() upisuje u binarni fajl, ali to izgleda nije tako,
barem ne u CLIPPER-u 5.01. Da se to desava i u 5.20
clipper.436obrada,
-> #403, toma> Koji je po vasem misljenju najbezbolniji prelazak iz EPSON
> sekvenci na PCL (tako se zvase) jezik.
Zavisi sta radis, odnosno sta stampas.
Ja sam ranije napravio svoje drajvere, za EPSON, ali samo sto
se tice bold, kondesovanih slova i pozicioniranja na papiru.
To sam relativno lako prepravio za laser. Sto se tice YU
slova koristio sam za HP4p njegove fontove (doduse 852 raspored).
Ovi drajveri su zapravo skup funkcija koji vracaju odgovarajuci string
koji predstavlja komandu za stampac. U zavisnosti od tipa stampaca
inicijalizuje se staticni niz sa opisom stringova (ili blok kodova)
za odredjeni tip stampaca.
U principu neke osnovne stvari se mogu relativno lako preraditi i za LJ,
dok je za neke veci problem uskladiti, tj. nije bas uvek samo prosta
zamena kodova.
Dragan
clipper.437goxx,
Imam ponudu da pod windows-om radim jedan projekat čija će tematika
biti naučnog tipa (neki proračuni iz fizike). Problem je što pod
windows-om nisam još programirao (sem malo VB pod excel-om). U stvari
to i nije neki problem. Pošto za posao imam nekoliko sledećih meseci
imam nameru da i to naučim :).
Ono što me najviše zanima i oko čega se lomim je izbor jezika.
Pošto clipper dobro poznajem voleo bih da nastavim sa VO. Interesuje me
nekoliko stvari kod VO:
- Kako se snalazi sa grafikom. Crtanje linija, poligona...
kako u prozoru tako i na papiru?
- Kako se VO snalazi sa matematikom (da li je uopšte ima?), konkretno
logaritmi, sinus, cosinus,...
- Da li postoji neki dijalog editor (kao u excel-u i verovatno u VB-u)
ili sve mora "ručno" (doduše ovo i nije tako bitno)?
- Ukratko, da li bi ovaj "jezik" koji je orijentisan ka bazama podataka
komotno mogao da se koristi za bilo kakve projekte (u ovom slučaju
pomalo grafički orijentisan) ?
Za sada sam se setio samo ovih stvari (nisam još duboko ni razmišljao
o tom projektu :), a kada se setim drugih stvari biće i drugih pitanja.
Uzgred, ovo bi moglo da bude PC.PROG.5:ca.vo ++ :))
Goran
clipper.438jolicm,
-> #433, bceklic>> Ja inače imam svoju funkciju u asm-u koju uključujem u svoje asm ...
E űpa kad si već tome vičan moj savet ti je da malo prostudiraš one primere za
vezu asemblera i clippera u samples ili source direktorijumu (ne mogu da se
setim tačno kako se zove) i da tu tvoju funkciju jednostavno ugradiš u clipper
program ! :)
clipper.439jolicm,
-> #434, bceklicč yy, xx Get String Picture "čKS?? XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
ono S?? Ti je stvarna dužina, a XXXXXXXXXXXX.. staviš koliko ti treba da se
vidi. Posle toga se string pri unosu sasvim lepo skroluje levo-desno ...
clipper.440jolicm,
-> #435, obrada>> FWRITE() ...
I ja sam imao istih takvih problema baš ovih dana, meni je pomoglo COPY FILE
...
clipper.441nbatocanin,
-> #416, bulaja> CAVO3P.HLP - 3rd Party Vendors Help File
Jel' ovo onaj spisak koji ide uz VO?
clipper.442nbatocanin,
-> #415, bulaja> CA-Visual Objects
žini mi se da je prošlo nezapaženo, pa da ponovim: VO je visoko
kompatibilan sa Clipper-om! To znači da će vaši programi uz 1-5%
izmena biti VO programi. Na primer, i ovo radi:
PROC Start
? "Zdravo, ba!"
Doduše, radi u ružnom terminal prozoru, ali radi!
clipper.443ikordic,
-> #433, bceklicRE: žasovnik
=> Pade mi na pamet. Hteo bi da lupim mali casnovnik u uglu ekrana.
Bilo je već par puta. Ukratko, prikaz časovnika (screen saver-a, setkey
blokovi, itd.) odradi iz svoje Inkey () funkcije. Tu ondak možeš da dodaš i
alarm, iz nekog rokovnika na primer, ili šta ti već padne na pamet. Potpuno
je sigurno i imaš veliku kontrolu nad događajima. Daklem, u petlji u kojoj
se čeka na ulaz sa tastature, ispisuješ Left ( Time (), 5 ).
=> Koju funkciju koristite za ovakav zahvat? Ja inace imam svoju
=> funkciju u asm-u koju ukljucujem u svoje asm programe (preuzima 1ch).
Probato i to par puta, ali se desi veselje kada Clipper program pukne a ne
otkači se interapt. Pređi na čist Clipper, bezbednije je.
clipper.444dvesic,
-> #431, cnenad>> ŁŁŁ .lib i sad mi blinker odjednom prijavljuje
>> 'CLIPPER.LIB(GT): Undefined ŁŁŁ symbol __beep_'. Empirijski
>> (uh, što volim strane reči ;) sam utvrdio da
>>
>> Uključi u LINK skript i liniju LIB TERMINAL
>>
>> Terminal.LIB je naravno iz Clipper paketa.
Problem je bio u tome što je jednu od svojih PRG datoteka nazvao
BEEP.PRG :))) i tako prekrio modul iz Terminal.lib. Problem je rešen
preimenovanjem istog u BEEP2.PRG :)
clipper.445mdrazic,
-> #423, dvesic>>> Pitanje: Postoji RUN memorija valjda oko 64K. Da li ona može
>
> Da li si siguran u ovo ? Do sada nisam naišao na tako nešto.
Pa šta je ono memory(2) ?
memory(0) - konvencionalna memorija (KB)
memory(1) - najveći blok konvencionalne memorije (KB)
memory(2) - RUN memorija (?) ( B ?)
memory(3) - SVOS (KB)
memory(4) - expanded memorija (KB)
Da li za run komandu Clipper samo prazni bafere tabela i indexa ili
unapred rezerviše i za to neki KB ? Stari Clipper je imao switch
za podešavanje te memorije, novi nema.
Milan
clipper.446mdrazic,
-> #427, mkurtes> Poruka vise za temu. Pozdrav :).
djelovic: brojiš ?
clipper.447mdrazic,
-> #434, bceklic> Koji je najefikasniji nacin resavanja unosa stringova duzih od sirine
> ekrana?
memoedit() ?
clipper.448dr.grba,
-> #434, bceklic>> Koji je najefikasniji nacin resavanja unosa stringova duzih od sirine
>> ekrana?
Ponovno projektovanje aplikacije.
// Sorry, nisam mogao da odolim (((: //
clipper.449aseovic,
-> #432, rccomp> A, da li je nekako moguce umesto poznate fraze :
> č prow(),pcol() say chr(27)+"W1"+"K cZaglavlje
> č prow(),pcol() say chr(27)+"W0"
> ubaciti nesto slicno u PCL-jeziku, sto bi laser razumeo?
Moguće je, naravno.
Evo uz poruku fajl sa kontrolnim kodovima za
EPSON, IBM Graphics i HP LaserJet.
Pozdrav,
Sele
printers.arjclipper.450ikordic,
-> #434, bceklicRE: Unos dužih stringova
=> Koji je najefikasniji nacin resavanja unosa stringova duzih od sirine
Pa MemoEdit () :) ili neka objektna zamena. Kada završi obradu, lepo string
išamaraš, formatiraš i upišeš gde treba.
clipper.451goxx,
-> #439, jolicm■ č yy, xx Get String Picture "čKS?? XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
■ ono S?? Ti je stvarna dužina, a XXXXXXXXXXXX.. staviš koliko ti treba da se
■ vidi. Posle toga se string pri unosu sasvim lepo skroluje levo-desno ...
Valjda obrnuto. XXXX... je stvarna dužina stringa, a S?? je dužina koja se
vidi na ekranu. Ipak je malo besmisleno stavljati, recimo, 45 X-ova. Bolje
je pre unosa formatizovati string na tu dužinu (npr. PADR(string, 45) ) ako
nam njegova dužina ne odgovara, pa uraditi get sa PICTURE-om "čKS??".
Goran
clipper.452goxx,
-> #432, rccomp■ č prow(),pcol() say chr(27)+"W1"+"K cZaglavlje
■ č prow(),pcol() say chr(27)+"W0"
Ja ne koristim nikad PROW() i PCOL() funkcije, a pogotovo ne koristim
direktno slanje kodova CHR(27)+"W1"+.... Što se tiče štampe mislim
da je bolje rešenje da postoji neka vrsta "drajvera" za štampač u obliku
tekstualnog fajla. Na primer:
epson.drv
---------
// Sekvence za Epson
CONDENSED 15; kondenzovana stampa
CAN_COND 18; ponistenje kondenzovane stampe
BOLD Esc, "G"; masna stampa
CAN_BOLD Esc, "H"; ponistenje masne stampe
...
hp3.drv
-------
// Sekvence za HP Laserjet III
CONDENSED 27, "&", "k", "2", "S"; kondenzovana stampa
CAN_COND Esc, "&k0S"; ponistenje kondenzovane stampe
BOLD Esc, "(s3B"; masna stampa
CAN_BOLD Esc, "(s0B"; ponistenje masne stampe
...
a zatim u nekom konfiguracionom fajlu menjati vrstu štampača:
Š Printer Ć
Driver = "hp3.drv"
...
Iz programa bi na primer bilo:
...
PRINT PrinterSequence("BOLD")
PRINT cZaglavlje
PRINT PrinterSequence("CAN_BOLD")
PRINT PrinterSequence("CONDENSED")+;
"Prethodno formirani red kondenzovane stampe"+;
PrinterSequence("CAN_COND")
...
gde bi komanda PRINT (napravljena od neke funkcije sa #xcommand) regulisala
redove, kolone, novu stranu, heder, futer, itd., a funkcija PrinterSequence()
"čupala" iz određenog "drajver" fajla tražene sekvence.
Ne znam da li sam ti bio od pomoći jer mi i nije bilo baš najjasnije šta
tačno tražiš. Probaj ovo. Može da bude delotvorno :).
Goran
clipper.453vgenije,
hi
Posto sam konacno presao sa pascala na Clipper trebalo bi mi malo
uputsva da *uhvatim zalet*,
elem,kako da u Clipperu editujem neki program,snimim ga i pokusam da
pokrenem da vidim dali sam dobro isprogramirao zeljeni program.zvuci
laicki(ne mogu da kazem da nije) ali u Clipper direktorijumu,mislim kako
je organizovan nikako se ne snalazim?
pozdrav
Vlada Biskupljanin
clipper.454mileusna,
-> #433, bceklic>> Pade mi na pamet. Hteo bi da lupim mali casnovnik u uglu ekrana.
>> Koju funkciju koristite za ovakav zahvat? Ja inace imam svoju funkciju
Da ne pričam već rečeno pogledaj poruku 10.98 made by Bulaja.
clipper.455bceklic,
-> #438, jolicm>>> Ja inace imam svoju funkciju u asm-u koju ukljucujem u svoje
> asm ... E űpa kad si vec tome vican moj savet ti je da malo
> prostudiras one primere za vezu asemblera i clippera u samples
> ili source direktorijumu (ne mogu da se setim tacno kako se
> zove) i da tu tvoju funkciju jednostavno ugradis u clipper
> program ! :)
POnekad igranje sa tajmerom moze da bude veoma nezgodno ako
hendler nije napisan kako treba (posebno u slucaju kada se dos
obraca disku..). Moja asm funkcija je sljakala u asm programima
sasvim ok ali nisam siguran kako bi bilo u klipper okruzenju pa
sam zato pozeleo da uradim neki standardizovan postupak da kasnije
ne bi brinuo o posledicama.
clipper.456bceklic,
-> #439, jolicm> Z yy, xx Get String Picture "ZKS??
> XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" ono S?? Ti je stvarna
> duzina, a XXXXXXXXXXXX.. stavis koliko ti treba da se vidi.
> Posle toga se string pri unosu sasvim lepo skroluje levo-desno
Thanx, pitanje mi je bilo po malo nejasno ali ovo je odgovor
koji sam trazio. Pregledajuci picture parametre izgleda da sam prevideo
ovaj pa mi se ucinilo da moram sam da pisem punkciju koja radi gore
pomenuti posao. Naravno bio mi je potreban unos relativno dugog stringa
(ne previse velikog jer bi tada koristio MemoEdit).
clipper.457bceklic,
-> #443, ikordic> Bilo je vec par puta. Ukratko, prikaz casovnika (screen
> saver-a, setkey blokovi, itd.) odradi iz svoje Inkey ()
> funkcije. Tu ondak mozes da dodas i alarm, iz nekog rokovnika
> na primer, ili sta ti vec padne na pamet. Potpuno je sigurno i
> imas veliku kontrolu nad dogadajima. Daklem, u petlji u kojoj
> se ceka na ulaz sa tastature, ispisujes Left ( Time (), 5 ).
Ovo resenje se samo po sebi namece i njega sam vec bio ugradio,
ali sat stoji kada inkey nije aktivan ? :(
> => Koju funkciju koristite za ovakav zahvat? Ja inace imam
> svoju => funkciju u asm-u koju ukljucujem u svoje asm programe
> (preuzima 1ch).
> Probato i to par puta, ali se desi veselje kada Clipper program
> pukne a ne otkaci se interapt. Predi na cist Clipper,
> bezbednije je.
Bas o ovome sam govorio u jednoj od prethodnih poruka. Zato sam i
zeleo neko klipper resenje. Moje asm progrem pisem tako da su sanse da
program u toku rada pukne skoro ravne nuli (preuzmem sve sto je moguce
preuzeti da bi se sprecilo ovako nesto, sto zbog zastite programa
sto zbog sigurnosti..)
clipper.458bceklic,
-> #447, mdrazic>> Koji je najefikasniji nacin resavanja unosa stringova duzih od
>> sirine ekrana?
> memoedit() ?
String nije toliko dugacak da bi koristio memoedit. Picture resava
problem :)
clipper.459bceklic,
-> #448, dr.grba>>> Koji je najefikasniji nacin resavanja unosa stringova duzih
>>> od sirine ekrana?
> Ponovno projektovanje aplikacije.
> // Sorry, nisam mogao da odolim (((: //
Try that again? Nisam te razumeo ?
clipper.460mileusna,
-> #453, vgenije>> pokrenem da vidim dali sam dobro isprogramirao zeljeni program.zvuci
>> laicki(ne mogu da kazem da nije) ali u Clipper direktorijumu,mislim kako
>> je organizovan nikako se ne snalazim?
Ne mogu da se zakunem da sam te baš razumeo, ali evo.
U PATH staviš CLIPPER/BIN (/=obrnuta_kosa_crta=Đ po YUSCII-ju)
U autoexec dodaš SET INCLUDE=C:/CLIPPER/INCLUDE
SET LIB=C:/CLIPPER/LIB
SET OBJ=C:/CLIPPER/OBJ
SET PLL=C:/CLIPPER/PLL Kako bi naznačio Clipperu gde da
traži potrebne datoteke ( .ch, .lib, .obj, .lnk, .pll). Nakon ovoga, u bilo kom
direktorijumu otkucaš CLIPPER <naziv.programa>, pa zatim, ako nema grešaka
RTLINK FI <naziv.programa>.OBJ i dobiješ EXE. Imaš čini mi se i neki Cl.Bat
koji ovo radi automatizovano (2 reda), ali ćeš najverovatnije uskoro preći na
linkovanje pomoću skript fajlova (.lnk).
Ako te je ovo mučilo, onda sam ti valjda pomogao. :) BTW, koliko sesećam,
Clipper sam po instalaciji dodaje ove linije u autoexec, a ti si ga verovatno
presnimio sa nečijeg diska i nakačio na svoj, pa je i autoexec ostao šupalj.
clipper.461jolicm,
-> #451, goxx>> č yy, xx Get String picture "čKS?? XXXXXXXXXX"
>> ono S?? ti je stvarna duzina ...
> Valjda je obrnuto ..
E jeste obrnuto je, ja sam pogrešio na brzinu ..
> Ipak je malo besmisleno stavljati, recimo 45 X-ova ..
E nekad (skoro u svim slučajevima) šta kada Ti napraviš space(45) pa imaš neki
valid, pa se u valid funkciji setiš da dostaviš get-u neku drugu vrednost, pa
to ne bude 45 znakova. Najnezgodniji rad bez picture stringa je baš u tome da
kada ti korisnik kuca ENTER na drugom znaku, dobiješ string od 2 znaka, i
kasnije (u ponovnom) editovanju ne moze ti niko upisati veći string od ta 2
znaka.
clipper.462jolicm,
-> #455, bceklic>> Ponekad igranje sa tajmerom moze da bude veoma nezgodno ako
>> hendler nije napisan kako treba ( posebno u slučaju kada se dos
>> obraća disku..)
E ja čoeku napisah pretpostavku da je vičan u asembleru, a veruj mi da mi
sasvim razlozno izgleda da kada VEĆ ima svoju funkciju, najlakše mu je da je
ugradi u clipper i završi posao (VEĆ JE RADIO U ASEMBLERU).
Ja imam u clipper okruzenju INKEY() preuzet kompletno sa mojom funkcijom.
Što znači da sam morao getsys menjati, i sve ostalo što trazi tastere, ali imam
problem sa achoice ...
E sad gle problema sa clipperom i satom: Korisnik indeksira veliku bazu, a sat
stoji (clipper varijanta), ASM varijanta..sat i dalje lepo radi.
clipper.463jolicm,
10. clipper 458, novih 12
Gle čuda u tih 12 poruka prvi put posle nekoliko nedelja, ne videh ni reč o VO.
:)
clipper.464mdrazic,
-> #437, goxx> Imam ponudu da pod windows-om radim jedan projekat čija će tematika
> biti naučnog tipa (neki proračuni iz fizike). Problem je što pod
> windows-om nisam još programirao (sem malo VB pod excel-om). U stvari
> Ono što me najviše zanima i oko čega se lomim je izbor jezika.
> Pošto clipper dobro poznajem voleo bih da nastavim sa VO.
Viđe vraga sa sedam binjiša :) Ja isto (kao poznati Clipper-aš) treba da
radim nešto naučnog tipa (fizička hemija, neka fitovanja) u Excel-u :)
To je unapred izabrano (tako hoće naručilac) zbog: grafike koja postoji
u Excel-u, činjenice da u svetu MSOffice (Excell) predstavlja de facto
standard za naučne i tehničke primene, zato što inženjeri koji će to
da koriste znaju Excel, Windows, i kako sve lepo da ispovezuju.
Pošto si ti već nešto radio u VB za Excell: kako stoji sa brzinom
računa, mislim na suvu numeriku? Da li se VB program prevodi ili
samo interpretira?
> - Ukratko, da li bi ovaj "jezik" koji je orijentisan ka bazama podataka
> komotno mogao da se koristi za bilo kakve projekte (u ovom slučaju
> pomalo grafički orijentisan) ?
U VO će ti trebati posebna grafička biblioteka, a ni matematičke
funkcije nisu tu. Ne znam i da li može koprocesor da se koristi.
Moj savet ti je da biraš za naučne projekte drugi jezik. Mislim da je
za to i Fortran bolji.
> Uzgred, ovo bi moglo da bude PC.PROG.5:ca.vo ++ :))
ca.vo:Open()
clipper.465mdrazic,
Neko je trazio satić u uglu. Evo jednog.
Milan
clock.arjclipper.466dvesic,
-> #462, jolicm
>> E sad gle problema sa clipperom i satom: Korisnik indeksira veliku bazu, a
sat
>> stoji (clipper varijanta), ASM varijanta..sat i dalje lepo radi.
E sad :)) kakav je problem dodati jedno EVAL sa pozivom
funkcije koja ispisuje famozni satić :)) ?
clipper.467dr.grba,
-> #459, bceklic>>> // Sorry, nisam mogao da odolim (((: //
>>
>> Try that again? Nisam te razumeo ?
Ama, video sam da ti je jolicm već odgovorio, pa sam rešio da napravim
pomalo ciničnu šalu. Valjda se nisi naljutio.
Ono na šta sam mislio je nevezano za Clipper ili neki konkretni programski
jezik. Radi se o tome da jedno polje od 80, 90 ili 333 znaka može valjano da
se podeli u više manjih polja, a da se ne izgubi na ideji. No, ako kao
projektant aplikacije insistiraš na tako dugačkim stringovima, nema veze.
A svakako nema štete. (:
clipper.468bulaja,
-> #427, mkurtesPC.PROG:cavo - CA-Visual Objects
│RAM disk i te kako ubrzava rad. NPR - u tabeli koju sam dao (brzina
│rada tri 486 masine) kod 486/66/16 gde su najbolji rezultati pri
│pretvaranju u RAM disk 2 MB (od 16) vreme pravljenja EXE filea se
│poboljsalo vise nego 3 puta
└───
A da li si pokušao da istu tu memoriju daš disk keš programu, ili da
uključiš 32-bitni pristup disku i njemu prepustiš keširanje? Ovo
dobijanje u brzini kompajliranja i linkovanja inače može imati
posledice u usporavanju nekih drugih operacija (npr. aktiviranje
različitih alata), pošto će zbog manje količine slobodnog RAM-a
Windows češće koristiti swap file.
clipper.469bulaja,
-> #433, bceklic│Pade mi na pamet. Hteo bi da lupim mali casnovnik u uglu ekrana.
└───
Pogledaj PC.PROG.5:10.98
clipper.470bulaja,
-> #435, obrada│U NG pise da FWRITE() upisuje u binarni fajl, ali to izgleda nije tako,
│barem ne u CLIPPER-u 5.01. Da se to desava i u 5.20
└───
Ako se dobro sećam, 5.01 (Nantucket-ov) je imao neki bug u FRead/FWrite
funkcijama, moguće je da je to u pitanju. Ako želiš da ostaneš na 5.01
(mada ne znam zašto bi to želeo:) probaj sa patchem za verziju 5.01a
(imaš ga u R:\Clipper direktorijumu), a na 5.2 sve radi Ok (svakodnevno
to koristim, valjda bi do sada primetio da ima nekih problema:).
clipper.471bulaja,
-> #437, goxxPC.PROG:cavo - CA-Visual Objects
│Interesuje me nekoliko stvari kod VO:
│- Kako se snalazi sa grafikom. Crtanje linija, poligona...
│ kako u prozoru tako i na papiru?
└───
S ovim se nisam još bavio (u dokumentaciji/helpu je dosta šturo
objašnjeno, pa treba uglavnom probati i videti šta se dešava:), ali VO
ima ugrađene klase za sve to (crtanje linija, poligona, elipsa, prikaz
slika,...). U krajnjem slučaju, uvek se može pozvati WinAPI funkcija
(ili korisititi usluge nekog .DLL-a) da odradi posao oko raznih ctranja.
Printer klasa je naslednik Windows klase, što znači printer možeš
tretirati kao i radnu površinu prozora (crtati i pisati po njemu,...).
Pošto se crtanje odvija na nivou tačke, moraš prilikom crtanja voditi
računa i o relativnoj rezoluciji printera. Ipak za izveštaje treba
koristiti CA-RET i ReportQueue klasu, samo nisam još gledao kako se oni
snalaze sa grafikom.
│- Kako se VO snalazi sa matematikom (da li je uopšte ima?), konkretno
│ logaritmi, sinus, cosinus,...
└───
Ima sve funkcije - Exp, Log, Log10, Cos, Sin, Tan,...
│- Da li postoji neki dijalog editor (kao u excel-u i verovatno u VB-u)
│ ili sve mora "ručno" (doduše ovo i nije tako bitno)?
└───
Naravno - pa ne zove se džabe *VISUAL* Objects :).
│- Ukratko, da li bi ovaj "jezik" koji je orijentisan ka bazama podataka
│ komotno mogao da se koristi za bilo kakve projekte (u ovom slučaju
│ pomalo grafički orijentisan) ?
└───
Da razjasnim jednu predrasudu :) - CA-Visual Objects nije razvojni alat
orijentisan samo ka bazama podataka. On ima ono što drugi nemaju -
ugrađenu kompletnu podršku za rad sa bazama podataka, ali isto tako ima
vrlo razvijene klase za korisnički interfejs i logiku za obradu
događaja, što takođe fali većini razvojnih sistema za Windows.
clipper.472bulaja,
-> #442, nbatocaninPC.PROG:cavo - CA-Visual Objects
│žini mi se da je prošlo nezapaženo, pa da ponovim: VO je visoko
│kompatibilan sa Clipper-om! To znači da će vaši programi uz 1-5%
│izmena biti VO programi. Na primer, i ovo radi:
└───
Priznajem da od kada sam prvi put video Visual Objects, nisam ni jednom
došao u iskušenje da probam ovako nešto :). Jeste da uglavnom radi (sve
do prvog nepremostivog problema, kao što je korišćenje neke dodatne
Clipper biblioteke koja još nema svoju VO verziju), ali može dovesti do
problema stvaranja vrlo ružnih navika (korišćenje Terminal emulacije)
kojih će se kasnije biti teško osloboditi :). Preporučujem pravljenje
kostura VO aplikacije kompletno od početka, a kasnije će biti mali
problem ubaciti logiku i funkcije razvijene za Clipper program. :)
clipper.473bulaja,
-> #441, nbatocaninPC.PROG:cavo - CA-Visual Objects
│> CAVO3P.HLP - 3rd Party Vendors Help File
│Jel' ovo onaj spisak koji ide uz VO?
└───
Jeste, s tim što je ovo poslednja verzija koja se dobija uz
VO Build 427 Update (onaj od 5 disketa, sa datumom 03.01.95,
samo .HLP nosi datum 12.12.94).
clipper.474bceklic,
-> #462, jolicm>>> Ponekad igranje sa tajmerom moze da bude veoma nezgodno ako
>>> hendler nije napisan kako treba ( posebno u slucaju kada se
>>> dos obraca disku..)
> E ja coeku napisah pretpostavku da je vican u asembleru, a
> veruj mi da mi sasvim razlozno izgleda da kada VEC ima svoju
> funkciju, najlakse mu je da je ugradi u clipper i zavrsi posao
> (VEC JE RADIO U ASEMBLERU). Ja imam u clipper okruzenju INKEY()
Clipper programeri obicni i nisu svesni o cemu sve treba do vodi
racuna jedan asm programer. Postoji gomila elementarnih stvari o kojima
asm koder mora da vidi racuna za razliku od clipper kodera koji taj
posao prepusta samom klipperu (cije su originalne procedure i funkcije
testirane po hiljadu puta). Tipican primer je taj sto je moja asm
aplikacija (program za zastitu programa i izradu instalacionih disketa) od
500 kb sourcea bila na ledu citava 3 meseca jer programi koji su bili
zasticivani nisu radili na 486dx+ masinama?! Casovnik koji sam ugradjivao
u taj i sve ostale asm programe koje koristim radio je besprekorno u
svim okolnostima ali voleo bi da nadjem nekog ko ce mi garantovati da
ce u krhkom klipper okruzenju isti raditi bez problema?! Zato sam pozeleo
neko standardno klipper resenje....
clipper.475bceklic,
-> #467, dr.grba> Ama, video sam da ti je jolicm vec odgovorio, pa sam resio da
> napravim pomalo cinicnu salu. Valjda se nisi naljutio.
;) Kako u toku dana moram po nekoliko puta da menjam nacin razmisljanja
jer radim na vise projekata u razlicitim jezicima cija se filozofija
u potpunosti razlikuje nadam se da mi je oprosteno sto sam u clipper ng-u
prevideo Sxx opciju Picture parametra?
> Ono na sta sam mislio je nevezano za Clipper ili neki konkretni
> programski jezik. Radi se o tome da jedno polje od 80, 90 ili
> 333 znaka moze valjano da se podeli u vise manjih polja, a da
> se ne izgubi na ideji. No, ako kao projektant aplikacije
> insistiras na tako dugackim stringovima, nema veze.
> A svakako nema stete. (:
Kako ces da podelis string koji recimo treba da bude dugacak 80 bajtova
(a treba da recimo sadrzi naziv teme jednog kongresa (a ti nazivi bas znaju
da budu dugacki ;) a da dobijes neki koristan efekat? To secenje jednsotavno
u tom slucaju nema smisla.
Elem, kad sam vec tu. Ocigledno je da je u ovakvim slucajevima pregledan
browse tesko izvesti pa resenje vidim u prikazivanju slog po slog (naravno
uz secenje onog stringa na nekoliko linija) ili?...
clipper.476goxx,
-> #453, vgenije■ elem,kako da u Clipperu editujem neki program,snimim ga i pokusam da
■ pokrenem da vidim dali sam dobro isprogramirao zeljeni program.zvuci
■ laicki(ne mogu da kazem da nije) ali u Clipper direktorijumu,mislim kako
I odgovor će zvučati laički :)
Najbolje (barem mislim da jeste jer je par ljudi na sezamu "odobrilo"
takav način rada) je da za svoju aplikaciju otvoriš poseban direktorijum
i na njemu da otvoriš poddirektorijume za programe (recimo, PRG) i bazu
podataka. Dakle:
APP ─┬── PRG ovde držiš sve *.prg, *.obj, *.clp, *.lnk, *.rmk
└── DBF ovde idu *.dbf, *.ntx (ili neki drugi indeksi) i
*.exe
Možeš da dodaš i još neki direktorijum (recimo za backup, BAK).
Program (najobičniji tekstualni fajl sa ekstenzijom .prg) se edituje
običnim tekst editorom (ja lično koristim qedit jer mi nekako najviše
odgovara). Znači NE POSTOJI INTEGRISANA OKOLINA kao u pascal-u.
Zatim, porgram se kompajlira iz komandne linije sa
CLIPPER ime_programa_sa_ekstenzijom_ili_bez_nje Š/parametar...Ć
od parametara se najčešće koriste:
/n ako se ne navede /n onda se podrazumeva da je ima fajla ujedno i naziv
prve funkcije u fajlu.
/m fajl se prevodi kao modul
/p kreira se fajl .ppo u kojem je dat izgled fajla posle preprocesiranja.
(ovo se najčešće koristi kad imaš neku sintaksnu grešku ili kad uvodiš
nove komande u clipper /ovo je najžešća stvar :))/ )
/s proverava se samo sintaksna ispravnost fajla
/l u .obj fajl se ne upisuju brojevi linija (ovo se koristi samo za
finalnu verziju)
Rezultat kompajliranja je .obj (laički do kraja :) normalno ako nema grešaka.
Posle još samo treba linkovati .obj sa bibliotekama (da bi se dobio .exe :).
A to se radi ovako
RTLINK FI ime_obj_fajla ŠLIB biblioteka,...Ć
Uz clipper ide rtlink linker, a mnogi koriste i blinker.
Da bi malo ubrzao rad (editovanje prg -> kompajliranje -> linkovanje -> proba)
za početak napravi jedan .bat u kome ćeš imati kompajliranje i linkovanje
Na primer:
proba.bat (stavi ga u APPĐPRG direktoriju)
---------
cls
clipper proba /n/m
if errorlevel == 1 goto kraj
rtlink fi proba
if errorlevel == 1 goto kraj
move *.exe ..Đdbf
cd ..Đdbf
:kraj
proba.prg (isto u APPĐPRG)
---------
// primer jedne funkcije u clipper-u
// imena promenljivih i funkcija mogu biti proizvoljne dužine, ali clipper
// uzima u obzir samo prvih deset znakova
FUNCTION Glavna_funkcija_probe()
LOCAL i := 0
CLS
FOR i:=1 TO 10
? i, "Basic-like program :))"
NEXT
RETURN NIL
Posle kompajliranja i linkovanja dobićeš na APPĐDBF direktorijumu
proba.exe, a na APPĐPRG će se formirati proba.obj.
Baš mu ga dadoh po kompjuteru :) Unapred se izvinjavam ostalom auditorijumu,
a tebi srećna plovidba clipper-om!
Goran
clipper.477goxx,
-> #461, jolicm■ E nekad (skoro u svim slučajevima) šta kada Ti napraviš space(45) pa imaš
■ valid, pa se u valid funkciji setiš da dostaviš get-u neku drugu vrednost, pa
■ to ne bude 45 znakova.
Ja u valid klauzuli koristim isto što i pre pripreme podatka dakle
var := PADR(to_što_se_dodeljuje,45) i nema nikakvih problema.
■ Najnezgodniji rad bez picture stringa je baš u tome da kada ti korisnik
■ kuca ENTER na drugom znaku, dobiješ string od 2 znaka, i kasnije
■ (u ponovnom) editovanju ne moze ti niko upisati veći string od ta 2 znaka.
Ako nemaš u GET rečenici PICTURE, string će imati istu dužinu i posle izlaska
iz READ-a bez obzira da li si pritisnuo na 2. ili 45. mestu enter (ovo drugo
pod uslovom da je SET CONFIRM ON inače nećeš ni dočekati enter :))
Ono što je nezgodno u korišćenju XXX... je što ako je string dužine 45 (i
recimo ceo je popunjen) a ti staviš "XXXX..." 40 X-ova, onda će posle
editovanja, string i dalje biti dužine 45, ali poslednjih 5 slova neće
moći da se edituje.
Da li govorimo o istim stvarima? Ovo sam sve upravo isprobao na CLIPPER-u 5.01
Goran
clipper.478goxx,
-> #470, bulaja■ │U NG pise da FWRITE() upisuje u binarni fajl, ali to izgleda nije tako,
■ │barem ne u CLIPPER-u 5.01. Da se to desava i u 5.20
■ └───
Sad sam tek video ovo. Šta ne radi?
■ Ako se dobro sećam, 5.01 (Nantucket-ov) je imao neki bug u FRead/FWrite
■ funkcijama, moguće je da je to u pitanju.
Ja se baš i ne sećam. I ja svakodnevno koristim ovo u clipper-u 5.01 pa
mi sve radi OK.
■ Ako želiš da ostaneš na 5.01 (mada ne znam zašto bi to želeo:) probaj sa
■ patchem za verziju 5.01a
Ima puno razloga zašto. :)
Goran
clipper.480goxx,
-> #474, bceklic■ voleo bi da nadjem nekog ko ce mi garantovati da ce u krhkom klipper
■ okruzenju isti raditi bez problema?!
Clipper okruženje i nije baš tako krhko kao što izgleda. Ako se
poštuju određeni principi sve može da bude veoma stabilno.
Goran
clipper.481goxx,
-> #464, mdrazic■ Pošto si ti već nešto radio u VB za Excell: kako stoji sa brzinom
■ računa, mislim na suvu numeriku? Da li se VB program prevodi ili
■ samo interpretira?
Kad sam rekao nešto malo, stvarno sam to i mislio :). Na žalost
ne mogu da dam neku ocenu o brzini (mislim da nije sporo :)
Program se piše na worksheet-u, dosta je blizak makro jeziku.
Sve u svemu može da bude upotrebljivo!
Interpretira se. Prilikom pisanja proverava sintaksnu ispravnost (kao
MS Quick Basic), ali zato može da se lupi neka metoda koja ne postoji u
objektu, pa on pukne prilikom izvršenja.
Help mi je malo bio konfuzan ili ja nisam imao živce i razumevanje
za njega :).
Bilo bi dobro da nabaviš knjigu (ako već nisi) Excel 5, Thomas Chester,
prevod u izdanju Mikro knjige. Odlična je i nadasve korisna :).
Goran
clipper.482vgenije,
-> #460, mileusna> Ako te je ovo mucilo, onda sam ti valjda pomogao. :) BTW,
> koliko sesecam, Clipper sam po instalaciji dodaje ove linije u
> autoexec, a ti si ga verovatno
Instalirao je pravilno sto znaci da ovo sto si opisao cuka,mada mene
interesuje dali postoji u njemu deo gde cu imati pod menijima(kao u
pascalu) da ga automatski kompajliram u memoriju/disk,da vidim help file
da snimama,otvaram itd...
clipper.483d.petrovic,
-> #445, mdrazic> memory(2) - RUN memorija (?) ( B ?)
Raspoloživa konvencionalna memorija.
If Memory(2) > 192 // tu je negde...
run pkzip ....
Endif
clipper.484d.petrovic,
Će se ubijem.
USE BLA NEW
Set Index to bla1, bla2
// ovde je sve u redu...
dbsetorder(0)
// ovde su indeksi zatvoreni
// ZAŠTO ??? Jesam nešto propustio ? ;(((((
clipper.485d.petrovic,
-> #461, jolicm> E nekad (skoro u svim slučajevima) šta kada Ti napraviš
> space(45) pa imaš neki valid, pa se u valid funkciji setiš da
> dostaviš get-u neku drugu vrednost, pa to ne bude 45 znakova.
> Najnezgodniji rad bez picture stringa je baš u tome da
Loša praksa. Svaka valid funkcija treba da ispita dužinu i da vrati istu.
clipper.486ikordic,
-> #457, bceklicRE: žasovnik
=> Ovo resenje se samo po sebi namece i njega sam vec bio ugradio,
=> ali sat stoji kada inkey nije aktivan ? :(
žekaj, pa tvoja xInkey () funkcija treba biti aktivna sve vreme. Daklem,
praktično jedini slučaj kada nije aktivna, jeste neko ubibože indeksiranje
ili slično, kada je računar po par minuta odsutan. žak i tada možeš da
napraviš neki UpdTimer () koji će na svakih npr. 1.000 slogova osvežiti
prikaz sata.
Obzirom da je rezolucija sata u minutima, a ne sekundama, ne bi se trebale
primetiti pauze u radu.
clipper.487mileusna,
-> #475, bceklic>> browse tesko izvesti pa resenje vidim u prikazivanju slog po slog
>> (naravno uz secenje onog stringa na nekoliko linija) ili?...
Napravi Browse u kome će to polje biti prikazano recimo kao LEFT(cString,60),
a sa recimo <Enter> ulaziš u pregled slog po slog gde se može videti pun naziv.
Sa <Esc>, normalno, vraćaš se u Browse itd. Meni se ovo čini kao najbolje
rešenje, pa ga zato i koristim, naročito ako imam puno kolona.
clipper.488mileusna,
-> #482, vgenije>> interesuje dali postoji u njemu deo gde cu imati pod menijima(kao u
>> pascalu) da ga automatski kompajliram u memoriju/disk,da vidim help file
>> da snimama,otvaram itd...
Axa, pa tako kaži. E, tako nešto nema. Ideš editor, prevođenje+linkovanje,
testiranje, i tako u krug. Sačekaj Clipper 5.3 :)
clipper.489nbatocanin,
-> #437, goxx> - Kako se snalazi sa grafikom. Crtanje linija, poligona...
> kako u prozoru tako i na papiru?
U osnovnoj verziji, teško. Ima nešto za terminal mod, ali nije to
to. Treba ti neka grafička biblioteka za VO, na primer, CLGraph.
> - Kako se VO snalazi sa matematikom (da li je uopšte
> ima?), konkretno logaritmi, sinus, cosinus,...
Ima.
> - Da li postoji neki dijalog editor (kao u excel-u i
> verovatno u VB-u) ili sve mora "ručno" (doduše ovo i nije
> tako bitno)?
Ima.
> - Ukratko, da li bi ovaj "jezik" koji je orijentisan ka
> bazama podataka komotno mogao da se koristi za bilo kakve
> projekte (u ovom slučaju pomalo grafički orijentisan) ?
S obzirom da je pravi kompajler, pravi brz kod, pa bi moglo da se
koristi i za takve stvari.
clipper.490dr.grba,
-> #464, mdrazic>> Pošto si ti već nešto radio u VB za Excell: kako stoji sa brzinom
>> računa, mislim na suvu numeriku?
Ne bi smelo da bude ikakvih problema u brzini, pa taman i da su u pitanju
neke teže funkcije.
>> Da li se VB program prevodi ili samo interpretira?
žisto interpretiranje. Poziva se kao makro operacija, na nekoliko mogućih
načina: kroz meni, na hotkey, na definisani taster, nakon nekog događaja...
clipper.491jolicm,
-> #466, dvesic>>> E sad ...
> E sad :)) kakav je problem dodati jedno EVAL
E pazi sad:
Kakav je problem staviti već gotov ASM program da to radi ili
Kakav je problem staviti u SVE clipperove funkcije zamenu za inkey() (browse,
getSys, achoice <- e tu je problem, .... itd
Ako je neko preuredio clipper kompletno sa SVOJIM funkcijama, tada to nije
problem, ali ako neko to treba SAMO ZBOG SATA da uradi e vala ...
E sad :)) da ti kažem kod mene nema problema jer sve što se moglo prepraviti
stavio sam moje funkcije, i za taj sat mi je potrebno samo 2 linije dodati u
programu ..... E sad ja prekidam (dobrovoljno) repliciranje po ovom pitanju .!
clipper.492mkurtes,
-> #468, bulajaA da li si pokusao da istu tu memoriju das disk kes programu, ili daukljucis
32-bitni pristup disku i njemu prepustis kesiranje? Ovodobijanje u brzini
kompajliranja i linkovanja inace moze imatiposledice u usporavanju nekih drugih
operacija (npr. aktiviranjera
HHHHHH
>>>>>>
32-bitni pristup je vec ukljucen a i kes je bio u kombinaciji. Od svega
je dato resenje sa RAM diskom naj brze. 16 MB RAM-a je sasvim dovoljno
(bar do sada uz sve sto sam aktivirao) da podnese RAM disk bez pokretanja
SWAP file-a.
Sto se tice terminalnog prozora (rada starijih prevedenih aplikacija)
strahovito mi smeta. Sasvim je na mestu da se od pocetka radi pod VO.
Jedino sto je dosta zaj...nKK .
Bice tema ili nece? Pozdrav :).
clipper.493mdrazic,
-> #462, jolicm> E sad gle problema sa clipperom i satom: Korisnik indeksira veliku bazu,
> a sat stoji (clipper varijanta), ASM varijanta..sat i dalje lepo radi.
Pa da se ne vidi koliko brzo radi :) Da bude brži od Fox-a :)
Poslao sam u prethodnoj poruci clock.com rezidentni satić koji radi
(nema laži, nema prevare) i koristim ga kada iz app.bat startujem
aplikaciju, recimo ovako:
APP.BAT :
čecho off
set podaci=ĐappĐbaze
set clipper=f50
clock + (valjda se ovako pali, pročitajte u clock.doc)
appexe.exe %1 %2 %3 %4 %5
clock -
if errorlevel 1 logout (za mrezni rad - kad ode duže vreme)
Sa clock.com nikad nijedan problem nisam imao. Daje u gornjem desnom
uglu vreme u formatu hh:mm:ss AM (ili PM)
Milan
clipper.494cnenad,
ŁŁŁ normalno instalaciono (ne mora da bude original :) ili da ga kupujem
ŁŁŁ sam kod nekog pirata.
Koliko videh, CAVO ne drži baš mnogo pirata, a pogotovo pravu verziju zajedno
sa zakrpama. Cene su podigli do zla boga za dotični i po meni nisu primerene
za nešto što bih rado uzeo da pogledam kako radi uz naravno maksimalno
strpljenje zbog ograničenja u RAM-u.
clipper.495dr.grba,
-> #475, bceklic>> Kako ces da podelis string koji recimo treba da bude dugacak 80 bajtova
>> (a treba da recimo sadrzi naziv teme jednog kongresa (a ti nazivi bas
>> znaju da budu dugacki ;) a da dobijes neki koristan efekat?...
Kako da ga podelim? Na 3x30 znakova (((:
Ako MORA (čuj: mora) da se štampa u jednom redu, odsečem spoljne blankove,
ubacim jedan blanko između delova, ošinem kompresovanu štampu i vozi Miško!
Koji problem?
Nema potrebe da se ide dalje u ovom problemu nego kad obezbeđuješ tabelu
analitičkog kontnog plana...
>> To secenj jednsotavno u tom slucaju nema smisla.
E, ovo je već domen ličnog ukusa i tu argumenti ne pale (:
====================
-----> E, da! Da malo lobiramo VO: uzmi manji font (((:
clipper.496mdrazic,
-> #466, dvesic> E sad :)) kakav je problem dodati jedno EVAL sa pozivom
> funkcije koja ispisuje famozni satić :)) ?
A da preko EVAL malo i tetris igramo?
clipper.497mdrazic,
-> #483, d.petrovic> If Memory(2) > 192 // tu je negde...
> run pkzip ....
> Endif
Meni memory(2) vraća 65498 !?
Milan
clipper.498nbatocanin,
-> #487, mileusna> Napravi Browse u kome će to polje biti prikazano recimo
> kao LEFT(cString,60), a sa recimo <Enter> ulaziš u pregled
> slog po slog gde se može videti pun naziv. Sa <Esc>,
> normalno, vraćaš se u Browse itd.
Može se napraviti i TBrowse kome svaki slog ide u _više_ linija.
clipper.499nbatocanin,
-> #484, d.petrovic> dbsetorder(0)
> // ovde su indeksi zatvoreni
??? U kom Clipper-u?
clipper.500dvesic,
-> #484, d.petrovic>> dbsetorder(0)
>>
>> // ovde su indeksi zatvoreni
>> // ZAŠTO ??? Jesam nešto propustio ? ;(((((
Kako misliš zatvoreni ? Fizički ? Ovim bi samo trebalo da postaviš
na prirodni ( REcNo() ) raspored. Kako uopšte detektuješ da su
zatvoreni ? ( SnoopDos ? )
clipper.501d.petrovic,
-> #499, nbatocanin>> dbsetorder(0)
>> // ovde su indeksi zatvoreni
>
>
> ??? U kom Clipper-u?
5.2d
Tek sam skoro prešao na njega, i sad mi ništa ne radi :(((
Probajte ovo ljudi pa mi kažite kako radi kod vas.
clipper.502d.petrovic,
-> #500, dvesic> Kako misliš zatvoreni ? Fizički ? Ovim bi samo trebalo da
> postaviš na prirodni ( REcNo() ) raspored. Kako uopšte
> detektuješ da su zatvoreni ? ( SnoopDos ? )
Prva detekcija : Puca program po svim šavovima
Druga detekcija : CLD
clipper.503d.petrovic,
-> #497, mdrazic> Meni memory(2) vraća 65498 !?
Program ti se raširio pa imaš samo toliko slobodno. Smesti malo to u overleje,
a nebi škodilo ni da optimizuješ mašinu ;)))
MEMORY() Argument Values
────────────────────────────────────────────────────────────────────────
Value Meaning
────────────────────────────────────────────────────────────────────────
0 Estimated total space available for character values
1 Largest contiguous block available for character values
2 Area available for RUN commands
────────────────────────────────────────────────────────────────────────
Returns
MEMORY() returns an integer numeric value representing the amount of
memory available, in one-kilobyte increments.
Description
MEMORY() is an environment function that reports various states of free
pool memory. (Free pool is the dynamic region of memory that stores
character strings and executes RUN commands.)
clipper.504ndragan,
-> #475, bceklic/ Elem, kad sam vec tu. Ocigledno je da je u ovakvim slucajevima
/ pregledan browse tesko izvesti pa resenje vidim u prikazivanju slog po
/ slog (naravno
Skraćeni naziv u brauzu, a memo polje (samo za tekući slog) sa punim
nazivom u posebnom prozoru, lepo urepovano.
clipper.505jolicm,
-> #501, d.petrovic>> dbsetorder(0)
> Probajte ovo ljudi i kažite kako radi kod vas .
5.2d + NTX
5.2d + NSX
Za ove slučajeve ti sa potpunom odgovornošću :) izjavljujem da dbsetorder(0)
samo ukida redosled po bilo kojem indeksu, ali su svi indeksi i dalje aktivni i
ažuriraju se automatski pri bilo kojoj promeni u bazi. Ako posle toga bilo kada
kažeš bilo šta od ovog:
dbsetorder(1) ...
set order to 1
set order to "nazivTaga"
Sve mora da radi normalno po tom indeksu ... ono (mora) mislim stvarno MORA i
radi. Clipper je pun bagova u nekim drugim slučajevima, ali kod tih naredbi to
radi kako treba. z :)
clipper.506jolicm,
-> #496, mdrazic>> A da preko EVAL malo i tetris igramo?
Znam da je ovo šala, al ajd da repliciramo .. šalu na stranu
ja imam rešeno indeksiranje preko eval i vizualno praćenje procenata izvršenja
takućeg indeksa i ukupno nad svim indeksima u bazi, ALI i dan danas se mislim
dal je to uopšte dobro rešenje, jer ipak osetno uspori indeksiranje.
Dobijamo neki lep efekat na ekranu za uštrb vremena. Pa se čak ovih dana mislim
da napravim i tu funkciju u asembleru.
A ovde se preporučuje da se nakači na tu najsporiju stvar u clipperu još i
prikazivanje vremena izvedeno na clipperu.
LJudi clipper je uglavnom spor za mnogo stvari, i moje ubeđeno mišljenje je da
sve što se može napraviti u asembleru, a pritom ako imamo i potrebno znanje iz
asm to treba uraditi baš u njemu i rasteretiti clipper što se više može.
Primer zabluda:
Ljudi prave čak funkcije za indeksiranje po YU rasporedu u čistom clipperu,
zar treba to odobriti samo zbog ideje o čistom clipperu ??
:) :)
clipper.507mdrazic,
-> #503, d.petrovic>> Meni memory(2) vraća 65498 !?
>
> Program ti se raširio pa imaš samo toliko slobodno. Smesti malo to u
> overleje, a nebi škodilo ni da optimizuješ mašinu ;)))
Da parafraziramo malo Muju:
1. Znam da je program veliki. Znam i za overleje. Na mojoj mašini nije
problem (sa vidram on imam oko 700K), nego je problem sa 286 stanicama
gde se paket koristi (Muja: Pa i nije neki računar:).
2. Poenta moje poruke nije bila da rešim nedostatak memorije za RUN
(jer mi to uopšte i ne treba) već što, za razliku od ostalih vrednosti
koje memory(n) n=0-4 vraća, memory(2) izgleda ;) nije izražen u KB
već u B. Testovi tipa: if memory(2) > 192 uvek prođu ;)
3. Napiši šta misliš o onome pod 2 ;))))
Milan
clipper.508mdrazic,
-> #506, jolicm> ja imam rešeno indeksiranje preko eval i vizualno praćenje procenata
> izvršenja takućeg indeksa i ukupno nad svim indeksima u bazi, ALI i dan
> danas se mislim dal je to uopšte dobro rešenje, jer ipak osetno uspori
> indeksiranje. Dobijamo neki lep efekat na ekranu za uštrb vremena. Pa se
select TABELA
nUkupno := lastrec()
nSvakih := max( 1, int(nUkupno/200) )
index on Kljuc to INDFILE eval MyFunc() every nSvakih
pa nema više od 200 poziva tvoje funkcije, a to ne usporava.
> je da sve što se može napraviti u asembleru, a pritom ako imamo i
> potrebno znanje iz asm to treba uraditi baš u njemu i rasteretiti clipper
> što se više može.
Ni ASM nije svemoguć pošto postoji i 'overhead' od prosleđivanja i
konverzije parametara ASM <--> Clipper. U svakom slučaju treba probati
i videti na delu.
Milan
clipper.509nbatocanin,
-> #501, d.petrovic>>> dbsetorder(0)
> 5.2d
Hm, mora biti da je nešto drugo u pitanju. Pošalji malo koda.
clipper.510d.petrovic,
-> #506, jolicm> ja imam rešeno indeksiranje preko eval i vizualno praćenje
> procenata izvršenja takućeg indeksa i ukupno nad svim indeksima
> u bazi, ALI i dan danas se mislim
Ja imao te muke pa me bulaja podseti...
Najveće usporenje je kod prikaza na ekranu, stavi da se svaki n-ti put
ispisuje na ekranu gde je n := broj slogova / dužina_trake
clipper.511d.petrovic,
-> #507, mdrazic> već u B. Testovi tipa: if memory(2) > 192 uvek prođu ;)
> 3. Napiši šta misliš o onome pod 2 ;))))
Mislim da sam ja tu funkciju napisao odavno pa me mrzelo da je gledam
već sam to sročio iz glave. Što se tiče onog o memoriji, ... preterao
si ;)))
Kada meni treba da izvršim taj backup (poziva PKZIP) proverim koliko ima
slobodne memorije pa, ako ima dovoljno ide običan RUN, a ako nema tu
stupa blinker u akciju. Swapuje i drljavi pa kad stigne...
clipper.512d.petrovic,
dbSetOrder(0)
Neću da se pravdam, kriv sam ;(
Greška je bila u programu, a glavni krivac za moje žalopojke je CLD iz
5.2 koji me je definitivno zbunio kad sam napisao program od 10 linija i
on mi je posle dbSetOrder(0) sklonio sve indekse ispred očiju. Više nisam
ni tražio grešku u programu.
clipper.513jkurtic,
Pri prelasku sa Summer '87 na 5.2 Int'l cesto se pojavljuje poruka,
Fatal error C3049 String space exhausted, koja nije dokumentovana,
ako neko zna o cemu se radi neka ostavi neki odgovor.
Pozdrav...
clipper.514bceklic,
Treba da odradim clipper program koji bi trebalo da radi iskljucivo
na jednoj 286 masini sa 1 mb rama. Nemojte me pitati zasto bas na ovom
racunaru jer mi niko ne bi poverovao...:(
Elem, treba mi koristan savet (mozda ima onih koji su se ovim bavili)
da bi rad na tom sr*nju bio sto brzi i efikasniji (direktive linkeru ili
sta vec..)..
Jos nesto, program koji je radio ok na 386+ racunarima na jednoj 286
mi je pri otvaranju tek kreiranih baza prijavljivao gresku sa indexima
(kombinacija dbfntx)?
clipper.515d.petrovic,
Returns
MEMORY() returns an integer numeric value representing the amount of
memory available, in one-kilobyte increments.
============
Dovoljno ja sjebe zbunjujem sa orderima pa još i da me .... ;)))))
clipper.516djelovic,
-> #446, mdrazic> djelovic: brojiš
Ja brojim, ali vi nešto slabo pišete :).