clipper.1dvesic,
>> Probao sam i ja pa se ništa nije promijenilo. Jesi li siguran
>> da si memo polja trpao u *.SMT ili *.FPT fajl a ne *.DBT od
>> SIX 2.0 ?
Sto posto siguran, jer je ulinkovan SIXCDX.OBJ koji postavlja
SIXCDX kao jedini drjaver u sistemu, a i vizuelna kontrola je
dala istovetne rezultate :)
>> SIX2.LIB 2.01.00 pre-release, datum: 08-01-94 , vrijeme: 05:30
>> ?
>>
>> Šta ti imaš od SIX-a?
six2.lib 311249 94-09-08 5:20
Verzija je 2.01.02 ( nije pre-release )
clipper.2velicko,
Program radi bez ikakvih anomalija. Nešto drugo je u pitanju.
Mi koristimo clipper 5.2d i blinker 3.10.
Primer smo linkovali sa SIXNSX ver 2.01.02 (možda je u tome problem).
U istoriji verzija SIX-a, u update-u za 2.01.02 se pominju nekakve
anomalije sa memo poljima.
linkovanje sa : blinker fi memo, sixUK, sixNsx lib six2
Šta ti znači NOMEMO u lnk fajlu, nismo našli ništa u NG-u?
Milan & Velicko
clipper.4velicko,
Povodom članka Jedrenje na Novell-u Dejana Vesića :
Kakva su vam iskustva sa Novell-ovim TTS-om.
Da li dolazi do usporenja kod upisa na disk?
velicko
clipper.5velicko,
žekajući VO :(
Napokon sam nabavio ispravnu verziju Clip4Win-a. :)
NG je siromašan i loše organizovan. Ali je program veoma interesantan
i može da posluži za utehu dok ne nabavim VO. Početnik sam što se tiče
Windows programiranja pa imam neka pitanja.
Evo isečka iz DEMOMULT.PRG koji ima veze sa mojim pitanjem :
...
// najpre uzmemo handler za DLL
hLib := LoadLibrary("MMSYSTEM.DLL")
...
// onda uzmemo adresu f-je SndPlaySound iz tog DLL-a
cSound := GetProcAddress(hLib, "SndPlaySound", "Pascal", "Int", "str, int")
// i napokon pozovemo f-ju sa parametrima
n := CallDLL(cSound, WAVE_DIRECTORY + waves_[n] + ".WAV", 1)
...
pitanja:
Šta je MMSYSTEM.DLL?
Gde da nađem spisak f-ja (sa sintaksom) iz Windows DLL-ova?
Koliko je korektno pozivati funkcija na ovaj način.
Kako se "slaže" Microsoft SDK sa Clip4Win-om?
U jednom rmk fajlu se pominje program RC. žemu služi i gde se
može naći ( iz kog je paketa )?
Toliko za sada. Nesmem više da gušim.
Unapred hvala
velicko
clipper.6dvesic,
> Kakva su vam iskustva sa Novell-ovim TTS-om.
> Da li dolazi do usporenja kod upisa na disk?
TTS dovodi do usporenja upisa, ali ne naročito drastičnih. Koristio
sam ga u jednog eksperimentalnoj aplikaciji na mreži od 6 stanica.
Generalni savet : ne koristi transakcije koje preterano dugo traju.
Najbolji rezulat daje sistem : pripremi podatke za upis/izmenu,
počni transakciju - upiši podatke - završi transakciju.
clipper.7djelovic,
> Šta je MMSYSTEM.DLL?
> Gde da nađem spisak f-ja (sa sintaksom) iz Windows DLL-ova?
> ...
> U jednom rmk fajlu se pominje program RC. žemu služi i gde se
> može naći ( iz kog je paketa )?
1. MMSYSTEM.DLL je DLL za rad sa multimedijima. Osim u slucaju da tvoji
korisnici imaju multimedija masinu, jedina funkcija koja ce te u
njemu zanimati jeste ona za pustanje WAV datoteka.
2. Spisak Windows funkcija mozes naci u nekom od API Helpova koji dolaze uz
Windows kompajlere (Borland C++, Visual C++, ...).
3. Pod Windowsima se program ne pravi samo u nekom programskom jeziku,
vec postoji i posebna datoteka u kojoj se definisu ikone za taj program,
dijalozi, meniji i sl. Ta datoteka se zove "resource" datoteka, a nju
prevodi "Resource compiler (RC)". Rezultat prevodjenja sa RC-om se
jednostavno ulinkuje u EXE sa ostalim OBJ fajlovima.
clipper.8pstevo,
> Šta ti znači NOMEMO u lnk fajlu, nismo našli ništa u NG-u?
NOMEMO.OBJ treba ulinkovati u program ako ne namjeravas koristiti memo
polja. Time uštediš komadić memorije. Opis ti je u NG, u meniju OBJs/UTILS !
clipper.9mdrazic,
> Kakva su vam iskustva sa Novell-ovim TTS-om.
> Da li dolazi do usporenja kod upisa na disk?
Lično nisam merio, ali u jednom časopisu od pre godinu, godinu i po
sam pročitao da je usporenje oko tri puta. Dva puta usporenje je
minimalno pošto se upisuje još na jedno mesto, resto je valjda za
neku vrstu administracije gde je šta i u kom stanju. Pominjali su
i neke problene u vezi indeksnih fajlova kad se koristi TTS.
Milan
clipper.10vision,
...Evo Vam jedan novogodisnji poklon...
HA. Da vidim sta imate da kazete za ovo. MORATE pogledati...
^^^^^^
P.S. Message box: push buttons, move the message box, >>mouse<<, colors,
(bolje resenje nisam video)...
vbox.zipclipper.11snowwhite,
Molio bih vas da mi u sto skorije vreme odgovorite na ova 2 pitanja:
1.) Aplikacija radjena i prevedena sa Clp 5.2 + Blinker 3.0 radi
na 386/4/250 bez problema, ali prilikom instaliranja na
286/1/40 prijavljuje otprilike ovu gresku:
DbSeek(0) Unrecoverable error 5311
Cannot create VM swap file.
Aplikacija je deljena na OVL-e. (exe + 5 ovl-a)
Inace na 286-ici radi jedno vreme dobro, pa posle prijavi
gresku.
2.) Da li postoji neki lib ili neka proc uz pomoc koje se moze
menjati paleta boja i opis fontova bez nekih rezidentnih com-ova.
Unapred hvala.
clipper.12dvesic,
>> DbSeek(0) Unrecoverable error 5311
>> Cannot create VM swap file.
Da li imaš dovoljno mesta na disku za swap fajl ? (preporučljivo je
da imaš 1 - 2 Mb slobodno).
>> 2.) Da li postoji neki lib ili neka proc uz pomoc koje se moze
>> menjati paleta boja i opis fontova bez nekih rezidentnih
>> com-ova.
Nisam siguran da sam baš razumeo : da li se ovo odnosi na Clipper ?
clipper.13bulaja,
│2.) Da li postoji neki lib ili neka proc uz pomoc koje se moze
│menjati paleta boja i opis fontova bez nekih rezidentnih com-ova.
└───
Za igranje sa paletom uzmi ovo:
MSDOS - R:\CLIPPER
----------------------
fxcolor arj 55257 Specijalni efekti sa bojama na VGA za Clipper 5.x
Za učitavanje VGA fontova postoje funkcije u dosta biblioteka (a to nije
problem ni sam da uradiš uz malo znanja asemblera), pogledaj npr. u
CA-Clipper Tools ili FUNCky bibliotekama.
clipper.14mrajacic,
Gde grešim, imam nameru da u dbx ugradim neke svje funkcije,
no stalno mi prijavljuje ovakvu grešku. Bez obzira dali sam nešto
dodao u MYFUNC ili samo linkovao izvorne stvari. U pitanju je DBX132
CA 5.2d i BLINKER 3.01
Đ║ PP │00001 │SREMPROM │001
║ĐĐ
Đ║ PP │00001 │SREMPROM │010
║ĐĐ
Đ║ PP │00100 │UŠĆE PROMET │000
║ĐĐ
Đ║ DD ┌─────────────────────────────────────────────────┐│000
║ĐĐ
Đ║ SZR │ Error DBCMD/1025 Argument error: ORDNUMBER ││000
║ĐĐ
Đ║ PP │ ││000
║ĐĐ
Đ║ PP │ Quit ││001
║ĐĐ
Đ║ DD └─────────────────────────────────────────────────┘│000
║ĐĐ
Đ║ DD │00104 │GRAFOSREM │001
║ĐĐ
Đ║ DD │00105 │SAVREMENA ADMINISTRACIJA │000
║ĐĐ
Pozdrav Milan
clipper.15bpekic,
Moze li mi neko objasniti sledece:
Obicna FOR-NEXT petlja.
Ako napisem :
FOR i := 1 TO 500
neki kod
NEXT i
kod se izvrsi veoma brzo...
Ako napisem :
FOR i := 1 TO (1000-500) // Znaci isti broj ciklusa
neki kod
NEXT i
kod se izvrsi UBEDLJIVO sporije.
Mislim da ne bi trebalo da takva VELIKA razlika nast+ ne zbog stalnog
izyracunavanja (100-500). Ipak to nije problem za racunar.Tazlika u brzini
je ■˛najmanje 1 prema 100 !
Jedni sto mi pada na pamet je usporavanje zbog izracunavanja uslova za
kraj petlje ali da li je moguřÚce da je takva razlika u brzini?
clipper.16dvesic,
>> Mislim da ne bi trebalo da takva VELIKA razlika nast+ ne zbog
>> stalnog izyracunavanja (100-500). Ipak to nije problem za
>> racunar.Tazlika u brzini je ■˛najmanje 1 prema 100 !
Ja tu razliku čak ne mogu ni da detektujem ;)
Evo ti ceo program i rezultati, pa probaj kod tebe :
PROGRAM :
Proc Main
Local a, i, b,j
a := seconds() ; b :=0
For i:=1 to 5000
For j:=1 to 50
b+=j
Next j
Next i
? Seconds() - a, b
a := seconds() ; b :=0
For i:=1 to (10000-5000)
For j:=1 to 50
b+=j
Next j
Next i
? Seconds() -a, b
Return
REZULTATI :
11.48 6375000
11.32 6375000 ( Bolji rezultat u drugom slučaju ! :)
clipper.17dvesic,
>> dodao u MYFUNC ili samo linkovao izvorne stvari. U pitanju je
>> DBX132 CA 5.2d i BLINKER 3.01
Nije do tebe, nego do dbMAX-a. (i meni se to redovno dešavalo).
Uzmi dbMax 1.33 (mislim da je negde okačen), on nema problema
sa 5.2d verzijom Clipper-a.
clipper.18vlador,
Već sam jednom pitao, ali kako je neko rekao "sramota je da ostane bez
odgovora", pa makar odgovor bio i "ne može". :)
Dakle, da li je moguće Blinkerom v3.0 napraviti exe koji će koristiti PLL
fajlove?
---
■ VLADOR ■ Vazda postoje dva misljenja: MOJE i ono pogresno.
clipper.19lucas,
Da li postoji način da se uz naredbu ACCEPT unapred odredi
koliko maksimalno karaktera treba da bude promenjiva.
Npr.
ACCEPT "Ime i Prezime " TO ime
Korisnik kuca ime i prezime ali kada recimo otkuca 20 znakova da ne može
više (recimo kao u SAY ... GET)
p.s.Nažalost radim u clipper-u summer 87 pa ako neko zna da mi pomogne ....
clipper.20nbatocanin,
> Ako napisem :
> FOR i := 1 TO (1000-500) // Znaci isti broj ciklusa
> neki kod
> NEXT i
> kod se izvrsi UBEDLJIVO sporije.
>
> problem za racunar.Tazlika u brzini je ■˛najmanje 1 prema
> 100 !
Hm, ja ne dobijam tako drastićne razlike. Pošalji test program.
clipper.21dvesic,
>> Dakle, da li je moguće Blinkerom v3.0 napraviti exe koji će
>> koristiti PLL fajlove?
Nije moguće.
clipper.22dr.grba,
>> Dakle, da li je moguće Blinkerom v3.0 napraviti exe koji će koristiti PLL
>> fajlove?
Ne.
clipper.23vgenije,
pozdrav
e posto sam resio da se posle pascala presaltujem na Clipper pomkozite
mi oko literATURE.
Napominjem da sam totalni pocetnik sto se clippera tice
pozdrav
vlada biskupljanin
clipper.24dejanr,
>> Mislim da ne bi trebalo da takva VELIKA razlika nastane zbog stalnog
>> izyracunavanja (100-500). Ipak to nije problem za racunar.Tazlika u
>> brzini je najmanje 1 prema 100 !
Izgleda da to nastaje zbog pozivanja nekog internog kalkulatora, koji se
sporo startuje, rezerviše i posle oslobađa svoje radne prostore itd.
Inače, i ja sam primetio da su brojačke petlje na Clipper-u prava
katastrofa od sporosti, ali me ipak odnos 1:100 malo čudi (ako to nije
figurativno rečeno).
clipper.25nbatocanin,
> Dakle, da li je moguće Blinkerom v3.0 napraviti exe koji
> će koristiti PLL fajlove?
Ne. Bar ne nekim regularnim metodom i šteta što je tako.
clipper.26nbatocanin,
> ACCEPT "Ime i Prezime " TO ime
> Korisnik kuca ime i prezime ali kada recimo otkuca 20
> znakova da ne može više (recimo kao u SAY ... GET)
Ne, nećeš moći. Zašto ne koristiš SAY..GET umesto ACCEPT?
clipper.27nbatocanin,
Ima li neko (ili zna gde mogu da nabavim) nešto od softvera za
generisanje sorsova na osnovu EXE/OBJ datoteka? Stvar je dosta hitna.
clipper.28spantic,
> Ima li neko (ili zna gde mogu da nabavim) nešto od softvera za
> generisanje sorsova na osnovu EXE/OBJ datoteka? Stvar je dosta hitna.
Postoji to za Clipper Summer 87, a i za FOX PRO 2.0. Za kasnije
verzije nisam čuo.
clipper.29jolicm,
Jedno verovatno staro i već razjašnjeno pitanje ....
Kako BLinkerom 3.0 i Clipperom 5.2d napraviti programe koji će raditi u
286-386 i 8086 modu.
Probao sam sa linkovanjem samo dodatne datoteke iz blinkera, ali mi javlja neke
greške. ???
clipper.30vision,
Sta?? Zar niko nije pogledao poruku 10.10 ????
clipper.31jkpbvk,
Imam neku demo verziju programa Lasso koji konvertuje ascii u dbf ali je
ogranicen na 100 polja.Jel' postoji novija verzija koja nije ogranicena ili
ista ta razbijena ili ima neki drugi program koji radi taj posao ?
clipper.32bpekic,
Evo dela koda koji me cudi.
Linker je BLINKER 3.0, vezana je i biblioteka CA-TOOLS i FLIPPER 5.02
Sve zajedno radi u grafici (mada ne znam kakve to veze ima sa obicnom
FOR-NEXT petljom za probno usporavanje rada)
*--------------------------------------------------------------------------*
LOCAL t,i,x,y,radius,disty,distx
x := 200
y := 150
radius := 5
distx := -1
disty := -1
DO WHILE t <> 27
t = INKEY()
**********
// AKO ovde kao reper za kraj, stavim 100, izvrsava se barem 30x brze !!!
FOR i=1 TO (100000-99900) // Druga varijanta je: FOR i=1 TO 100
NEXT i
**********
FCIRCLE(x,y,radius,11)
IF (FPOINT(x,y) == 14)
SOUND(131,1) // C3 za 10 stotih delova sekunde
IF ((x==150) .AND. (y==10)) .OR. ((x==500) .AND. (y==10)) .OR. ;
((x==150) .AND. (y==300)) .OR. ((x==500) .AND. (y==300))
disty = disty * -1
distx = distx * -1
ELSEIF (x == 150) .OR. (x == 500)
distx = distx * -1
ELSEIF (y == 10) .OR. (y == 300)
disty = disty * -1
ENDIF
ENDIF
x = x + distx
y = y + disty
FOR i=1 TO 500
NEXT i
FCIRCLE(x,y,radius,11)
ENDDO
Nije mi nesto vazno za program, ionako sam samo testirao neke ideje, ali
moze biti interesantno za neke ozbiljne aplikacije koje bi trebale da
rade u grafickom rezimu.
Ne mogu da smislim, gde bi bilo sudaranje u radu.
Pozdrav!
clipper.33bpekic,
Ako zelis da dobijes ASSEMBLER cod, postoji SOURCER program, ali je
neupotrebljiv za Clipper aplikacije.
Za Clipper je zgodan program koji iz EXE napravi PRG ali ima jednu manu,
radi samo sa Summer '87 verzijom, pa cak i za tu verziju samo ako nisi
linkovao neku posebnu biblioteku uz kod.
Pozdrav!
clipper.34bpekic,
Ima li neko odgovor na sledece pitanje:
Jedna od aplikacija koje radim (i koja se vrti na 30-tak mesta u gradu,
znaci nista novo) mi zadaje probleme.
Linkovana je BLINKEROM 3.0, i na sva tri kucna racunara indeksiranje
baza podataka jednog od korisnika obavi za oko 3 minuta (386/40).
Na drugim racunarima u gradu (priblizne velicine baza), radi sa otprilike
slicnim vrednostima vremena indeksiranja (ukupna velicina svih baza je
priblizno 15 MB).
Kod jednog od korisnika nakon nekih dorada modula i standardnog linkovanja,
sada indeksiranje traje 35 MINUTA !!!. Pokupio sam njegove baze i ponovio
na sva tri kucna racunara, rezultati su (zavisno od memorije 8MB i 2x 4MB)
3 minuta 20 sec, 3 minuta 40 sec.
Jedino sto mi pada na pamet je nesto u vezi hard diska. Naime korisnik je
dokupio jos jedan hard disk i sada se moja aplikacija vrti na C kao i
ranije. Medjutim, pricao mi je da su mu momci koji su mu prodali i
instalisali hard-disk, iz nekog razloga FORMATIZOVALI disk. Disk je inace
450/420? MB (mislim Quantum ili Coner). Na njemu sam zatekao DOS 5.0
verziju pa sam nakon ovako drasticnog usporenja indeksiranja, instalisao
DOS 6.2 ali se nista nije promenilo.Memorije ima 4MB
BIOS je od 1990.g. tako da u SET-UP nema neke selekcije CLOCK-a, DRAM
memorija je sa 0 W/S (promene tih vrednosti nista ne menjaju). Neke od
Adresa sam stavio na "Enabled/Disabled", probao sve sto sam do sada
procitao ili radio - NISTA. Sporo i kvit!
Sumnjam i na kontroler (ali je isti radio i ranije) ili formatizovanje sa
pogresnim parametrima.
SADA SLEDI POSLASTICA:
Kada sam prelinkovao aplikaciju sa RTLINK-om (i eksterni overleji),
aplikacija radi kako treba!! To je tako jedina masina kojoj je potrebno
da bude aplikacija linkovana sa RTLINKOM umesto BLINKEROM. Na kucnim
racunarima, potpuno je svejedno kako je aplikacija linkovana, radi
istom brzinom (BLINKER-RTLINK)
Ima li neko savet?
clipper.35arazumenic,
Evo šta sam juče otkrio (naravno, sasvim slučajno).
Da li ste znali za ovakvu konstrukciju u GET-u:
č a,b say "Nesto" get Nesto SEND reader:=šđxđ ml_reader(x)ć
U NG to ne postoji, a pronadjeno je u STD.CH. Da ne listate, evo ga:
#command č <row>, <col> GET <var> ;
ŠPICTURE <pic>Ć ;
ŠVALID <valid>Ć ;
ŠWHEN <when>Ć ;
ŠSEND <msg>Ć ;
;
=> SetPos( <row>, <col> ) ;
; AAdd( ;
GetList, ;
_GET_( <var>, <"var">, <pic>, <švalidć>, <šwhenć> ):display();
) ;
Š; ATail(GetList):<msg>Ć
Naravno, umesto READER u gornjem primeru, može se poslati bilo koja instans
varijabla ili bilo koji metod. Što je najlepeše, može se zadati više SEND-ova
u okviru jednog GET-a. Evo, ovo lepo radi:
č a,b say "Nesto" get Nesto send reader:=šđxđ ml_reader(x)ć ;
send colordisp("w+*/g")
Pitanje je samo da li se ovo isplati korisiti, jer može da im padne napamet
da u sledećoj verziji ovo ukinu (u NG se ovo ne pominje).
Saša
clipper.36cnenad,
/reply na PROG.4:clipper 1228, bulaja/
ŁŁŁ davno smo je dovukli ovde, ali sam zaboravio da je stavim u širu
ŁŁŁ javnost. Takođe skupiću najsvežije patch-eve za SIx pa će i oni biti
ŁŁŁ u CLIPPER direktorijumu ovih dana. Ovde je samo spisak izmena za
Još ih nema ?
clipper.37cnenad,
/reply PROG.4 1266, nbatocanin/
ŁŁŁ Izmena konfiguracione datoteke prelazi mogućnosti 99% korisnika mojih
:((
ŁŁŁ programa. Podešavanje svih parametara radi program, preko pogodnih
ŁŁŁ maski i menija.
Da li je baš uvek zgodno 'bezuslovno' ugrađivati takav kod za neka
podešavanja koja se vrlo retko rade ?
Inače, podešavanja mogu biti zaista proste prirode, tako da i nije
problem rešiti to nekim ASCII editor-om. Ako to neko nije u stanju da
uradi :(((
clipper.38dpredovic,
> Dakle, da li je moguće Blinkerom v3.0 napraviti exe koji će
> koristiti PLL fajlove?
> Već sam jednom pitao, ali kako je neko rekao "sramota je da
> ostane bez odgovora", pa makar odgovor bio i "ne može". :)
Ne može :))
clipper.39dpredovic,
> Aplikacija je deljena na OVL-e. (exe + 5 ovl-a)
? Zašto?
> 2.) Da li postoji neki lib ili neka proc uz pomoc koje se moze
> menjati paleta boja i opis fontova bez nekih rezidentnih
> com-ova.
Imaš fxcolor, koji može direktno da gađa RGB komponente svake boje u
paleti, ali za mene je to malo previše. Sasvim dovoljno je odabrati
16 boja iz dosove palete od 64 boje. To radi npr. funcky.
Funcky isto ima i podršku za fontove, ali mi se ne dopada, pa još uvek
koristim moje funkcije iz pre-funcky perioda. Evo ih, pa probajte.
logo.zipclipper.40dejanr,
>> Ima li neko savet?
Meni to "miriše" na neki problem sa memorijom. Ne znam da li može da bude
tako jednostavno, ali da li je na oba mesta instaliran isti memory mgr i
isti disk keš program?
clipper.41dvesic,
Subject: Re: DUAL Mod
> Kako BLinkerom 3.0 i Clipperom 5.2d napraviti programe koji će raditi u
> 286-386 i 8086 modu.
Iz nekoliko koraka :
- Dodaj sledeće stvari u LNK datoteku :
Blinker Exe Dual
Section Into Dual.Ovl # Ovo je eksterna datoteka sa overlejima
# za sada je neophodna
# Search BlxRatex # Za slučaj da koristiš neku biblioteku
# koja očekuje ExoSpace kao linker-a.
# Inače izbaci.
Search BlxClp52
- To bi bilo sve. Drugi korak je da budeš 100% siguran da je
sav kod pisan za protected mode. Praktično, to znači da je
ili čist Clipper, bez dodatnih biblioteka ili da su te biblioteke
pisane za prot.mod (npr. NanForX za NanFor bibloteku).
clipper.42dvesic,
> Linker je BLINKER 3.0, vezana je i biblioteka CA-TOOLS i FLIPPER 5.02
> Sve zajedno radi u grafici (mada ne znam kakve to veze ima sa obicnom
> FOR-NEXT petljom za probno usporavanje rada)
Nemam te biblioteke, pa ako ti nije teško, pokušaj da izvedeš
isto u čistom Clipper-u. Inače se može lako desiti da su ove
spoljne biblioteke umešale prste.
clipper.43spantic,
> Inače, podešavanja mogu biti zaista proste prirode, tako da i nije
> problem rešiti to nekim ASCII editor-om. Ako to neko nije u stanju da
> uradi :(((
To je veoma čest slučaj. A uostalom i zašto da razmišlja korisnik
o tome?
clipper.44aquarius,
<> - Dodaj sledece stvari u LNK datoteku :
<>
<> Blinker Exe Dual
<> Section Into Dual.Ovl # Ovo je eksterna datoteka sa
<> overlejima za sada je neophodna
Dual.Ovl vise nije neophodna, Blinker 3.10
Aquarius
clipper.45bpekic,
°─řÚMasina je sa POTPUNO istim DOS-om, memory-mgr kao i kes programom sa
jednakim parametrima.
Cak stavise, masina korisnika je po konfiguraciji maltene istovetna
sa jednom od mojih masina!
ű▀˝ů
°─
clipper.46bpekic,
Ne mogu to da napravim jer je program pisan u grafickom rezimu i ako
nesto od grafisckih funkcija izbacim, nije vise ista stvar.
Naime, probao sam petlju BEZ ikakvih dodataka, pa nisam primetio razliku
u brojacu (eventualno neke SAY-ove stavim da zakomplikujem ali nema
razlike)
Da li je moguce da neki interni pozivi grafickim ili nekim drugim funkcijama
mogu da uspore brojac. Neverovatno mi je da FOR i=1 TO 100 nije
skoro jednako kao FOR i=1 TO (10000-9900)!
clipper.47stosic,
> Ima li neko (ili zna gde mogu da nabavim) nesto od softvera za
> generisanje sorsova na osnovu EXE/OBJ datoteka? Stvar je dosta hitna.
" As sure as the sun rises, the time is going to come when you need Valkyire.
Dont wait - get it today. It's an inexpensive insurance policy that will
save your life one day. "
Valkyrie * full source code recovery for Clipper Summer '87 through 5.x
Zac Low Price: $289 :(
clipper.48stosic,
Welcome to multimedia sound revolution for Clipper!
Are you ready for playing the best quality sounds from your Clipper
programs ? Now, with the power of Clipper's Object Oriented technology and
SoundBlaster's state of the art sounding board you can easily start enjoying
multimedia sounds.
VOC files are used by Sound Blaster to store high quality sounds, voices,
music, etc... You can also use WAV2VOC.EXE, an utility provided in the
software of Sound Blaster -SB- to convert Windows WAV files into VOC files,
so you should use any of the thousands of files available for Windows. Or
you can use a microphone to record your own new sounds, mixing music and
voice, recording real world sounds... the limit is just your imagination!
Registracijom (35US$) dobija se sors TVocFile klase,
kao i CA-Clipper OOPS API.
Probajte, ako radi javite :)
ovoc.zipclipper.49pstevo,
> Ali zašto onda kod tebe radi a kod mene ne?
> Hm, možda zato što ja imam
>
> SIX2.LIB 2.01.00 pre-release, datum: 08-01-94 , vrijeme: 05:30
> ?
Narode, u vezi famoznog i opasnog bagera u SIX2 memo poljima
(opisao sam ga u 10.1265 i nesto ranije) - provjerio sam sa drugarima
i ustanovio da postoji :((( "samo" na gore spomenutoj verziji SIX-a
( pre-release ) a na konačnoj verziji SIX-a je iskorijenjen !
SREĆNA VAM SRPSKA NOVA GODINA
clipper.50dr.grba,
>> mogu da uspore brojac. Neverovatno mi je da FOR i=1 TO 100 nije
>> skoro jednako kao FOR i=1 TO (10000-9900)!
Izvini, ali nešto mi je palo na pamet: zašto toliko insistiraš na
(10000-9900)? Da ti nije možda negde u kodu napisano
for i = 1 to (a - b)
gde su a i b promenljive dobijene kako rezultat neke funkcije? Ovo
pitam zato što stvarno nema razloga da pišeš onaj kod kao razliku
konstanti, a možda si zaboravio da stvarno pomeneš.
Ili je možda zbilja u pitanju samo akademska rasprava...
clipper.51bpekic,
Ne, uopste nije samo akademska rasprava. Radi se o tome da mi je u
varijanti FOR i=1 TO 100 cela stvar bila prebrza. Zeleo sam da usporim
i normalno povecao limit FOR petlje. Medjutim pri velikim ciframa bilo
mi je i dalje prebrzo. Iz neznam kog razloga palo mi je na pamet da
napravim varijantu sa 10000 - 9900 kao limitom. Tada se DRASTICNO
usporilo.
Za sam program to naravno nije bitno, postoje razni nacini usporavanja
i odredjivanja brzine rada petlje, ali je sama cinjenica RAZLIKE po
meni veoma intersantna jer nema nekog brzog i ociglednog objasnjenja.
Inace, nisam imao a-b varijantu. RAdilo se o cistom FOR slucaju sa
granicnikom od 100 na samom startu petlje. SLucajno sam dakle
primetio da kao granicnik 100 u slucaju moje petlje NIJE isto kao
10000-9900.
Ponovo sam celu stvar probao na razne nacine, ako treba kod da se izvrsi
unutar petlje, kakav je kod mene (neka jednostavna grafika), stvar je
znatno sporija sa 10000-9900.
clipper.52nbatocanin,
> Evo dela koda koji me cudi.
> Linker je BLINKER 3.0, vezana je i biblioteka CA-TOOLS i
> FLIPPER 5.02 Sve zajedno radi u grafici (mada ne znam
> kakve to veze ima sa obicnom FOR-NEXT petljom za probno
>* usporavanje rada)
Prilično je teško ovako odrediti koji je razlog usporenja.
Pretpostavljam da je reč o specifičnom rasporedu overleja. Grafička
biblioteka koristi aktivni deo overleja za svoje procedure. Pri tom
overlej za računanje izraza ispada iz aktivne zone zbog nedostatka
prostora, ali se ponovo poziva pri svakom novom ciklusu za računanje
10000-500. Kada se stavi konstanta, onda ne treba pozivati ovaj
overlej i petlja radi brže. Ako se izbaci grafička biblioteka, ima
više mesta u overlej zoni, pa je "kalkulator" stalno u memoriji =>
ne pojavljuje se velika razlika.
clipper.53nbatocanin,
> Imam neku demo verziju programa Lasso koji konvertuje
> ascii u dbf ali je ogranicen na 100 polja.Jel' postoji
> novija verzija koja nije ogranicena ili ista ta razbijena
> ili ima neki drugi program koji radi taj posao ?
Hm, to mora da radi još nešto, jer je ASCII->DBF mnogo lak zadatak.
clipper.54nbatocanin,
> Valkyrie * full source code recovery for Clipper Summer
> '87 through 5.x Zac Low Price: $289 :(
Ma, znam ja da to postoji i kako se zove i koliko košta, al' mi treba
o'ma i ovde ;)
clipper.55nbatocanin,
> ŁŁŁ programa. Podešavanje svih parametara radi program,
> preko pogodnih ŁŁŁ maski i menija.
>
> Da li je baš uvek zgodno 'bezuslovno' ugrađivati takav kod
> za neka podešavanja koja se vrlo retko rade ?
Pa, to mi i nije neki posao: za svako podešavanje dodam još po par
linija koda i to je to.
> Inače, podešavanja mogu biti zaista proste prirode, tako
> da i nije problem rešiti to nekim ASCII editor-om. Ako to
> neko nije u stanju da uradi :(((
Eeeee, ne znaš ti kakvih sve ljudi ima ;)
clipper.56jkpbvk,
>< Hm, to mora da radi jos nesto, jer je ASCII->DBF mnogo lak zadatak.
Neradi nista vise,evo ga uz poruku pa proveri,nego objasni mi malo taj
lak zadatak.
lasso.arjclipper.57majtoski,
imam problem. clipper 5.2 i gforce 2.22 nece lepo da rade, barem meni,
nemogu da nikako uspem da redim sa tbrowse objektima(nece ni njihovi primeri)
i nemogu da koristim vbrowse. pored toga
kada prevodim i linkujem rtlink uvek javlja undefined symbol CLIPPER501 first
reference quick5.lib
neznam u cemu je problem sumnjam na verziju clipper-a
clipper.58aseovic,
> Imam neku demo verziju programa Lasso koji konvertuje ascii u dbf ali je
> ogranicen na 100 polja.Jel' postoji novija verzija koja nije ogranicena ili
> ista ta razbijena ili ima neki drugi program koji radi taj posao ?
Objasni kakva te konverzija zanima. Ako hoces podatke iz ASCII fajla da
upises u neki DBF tako sto ce jedan red iz prvog biti zapis u drugom
mislim da nije problem da se napise programce.
BTW, da li je pomenuto ogranicenje na 100 POLJA ili na 100 ZAPISA?
Pretpostavljam da su u pitanju ipak zapisi a ne polja, u suprotnom
ne vidim da postoji neko prakticno ogranicenje (DBF sa 100 polja je
TESKO naci. A tek ASCII tekst kojem ce prilikom konverzije trebati 100
polja u DBF-u!!!
Pozdrav,
A.Seovic
clipper.59aseovic,
Taj SEND moze za jos ponesto lepo da posluzi.
Svojevremeno sam pravio HELP sistem za aplikacije, nista posebno,
u HELP.DBF se cuva HelpKod i HelpText, iz programa se trazi HelpKod
i prikazuje HelpText.
Iz menija je odredjivanje HelpKod-a bilo jednostavno, ali problem
je bio napisati dobar help za GET-ove. Onda sam slucajno naleteo
na SEND i jedno
... SEND cargo := <cHelpCode>
a zatim u GETSYS-u
case ch == K_F1
Help(get:cargo)
je resilo problem. Jeste mozda malo duze kad se pise kod, ali je
ispao lep Help. (Jedini problem je sto za najveci broj programa
nikad nisam stigao da napisem Help do kraja :((()
Pozdrav,
A.Seovic
clipper.60bceklic,
>> Valkyrie * full source code recovery for Clipper Summer
>> '87 through 5.x Zac Low Price: $289 :(
>
> Ma, znam ja da to postoji i kako se zove i koliko kosta, al' mi
> treba o'ma i ovde ;)
Koji je konkretan problem u pitanju? Reverzni inzinjering clipper
programa (bez odgovarajuceg alata) je veoma nezahvalan posao...
POzdrav!
clipper.61mileusna,
>> kada prevodim i linkujem rtlink uvek javlja undefined symbol CLIPPER501
>> first reference quick5.lib
Programi u quick5.lib su prevedeni Cliperom 5.01 pa se zato javlja greška,
ali mi se čini da taj nedostatak u radu programa ne izaziva nikakve probleme.
Uostalom, ako probaš da istu aplikaciju linkuješ sa Blinkerom, videćeš da on
čak i ne prijavljuje ništa slično.M
clipper.62cnenad,
ŁŁŁ Svojevremeno sam pravio HELP sistem za aplikacije, nista posebno,
ŁŁŁ u HELP.DBF se cuva HelpKod i HelpText, iz programa se trazi HelpKod
ŁŁŁ i prikazuje HelpText.
ŁŁŁ Iz menija je odredjivanje HelpKod-a bilo jednostavno, ali problem
ŁŁŁ je bio napisati dobar help za GET-ove. Onda sam slucajno naleteo
Negde u starijim konf. možeš pronaći HELP sistem koji je preko MEMOEDIT-a
razradio dpaun, a prema Strelly & Co.
Ukratko, princip je vezan za 3 parametra koji se prosleđuju proceduri za
HELP a to su ime procedure iz koje je help pozvan, ime promenljive kod koje
se "čeka" odnosno trenutak kad je pritisnut F1 i broj linije.
Dakle prevođenje programa ne može da ide sa prekidačem /l
Jedina mana je što za TBROWSE moraš ubaciti CASE Ch==K_F1 ; Help1() itd.
zbog petlje u koju upada programa očekujući pritisak na taster na osnovu
kojeg će se neka akcija izvršiti.
clipper.63jolicm,
nbatocanin je u pravu, apsolutno.
Ako ti treba dbf datoteka, a imaš asci
potreban ti je samo neki od interpretera DBASE, FOX, FOXPRO ili kompajler
clipper.
U dbase, fox .. formiraš *.dbf datoteku sa opisima polja (naziv, tip, duzina)
i kucaš append from datot.txt type SDF i gotovo.
Ono datot.txt zameniš sa nazivom tvoje asci datoteke.
Ja sam imao mnogo posla sa takvim stvarima, morao sam kobolske datoteke da
prepravljam na *.dbf zbog clippera.
Zdravo. :)
clipper.64jkpbvk,
>< Objasni kakva te konverzija zanima. Ako hoces podatke iz ASCII fajla da
>< upises u neki DBF tako sto ce jedan red iz prvog biti zapis u drugom
>< mislim da nije problem da se napise programce.
Pa evo , recimo:
Petar Peric Beogradska 33 Beograd (011) - 999-999
Mika Mikic Uzicka 33 Novi sad (021) - 999-999
itd...
E sad ovaj program koji sam poslao je radio sjajnu stvar,oznacis iznad
prvog reda odakle dokle je prvo polje u dbf-u (recimo ime),pa onda isto
tako za prezime,ulicu,grad i telefon,naravno pre toga treba napraviti
dbf sa takvim poljima i on to perfektno uradi za sekund ali je problem
sto ja imam veliki ASCII fajl pa mi on uradi samo prvih 100 zapisa.
>< BTW, da li je pomenuto ogranicenje na 100 POLJA ili na 100 ZAPISA?
>< Pretpostavljam da su u pitanju ipak zapisi a ne polja, u suprotnom
>< ne vidim da postoji neko prakticno ogranicenje (DBF sa 100 polja je
>< TESKO naci. A tek ASCII tekst kojem ce prilikom konverzije trebati 100
>< polja u DBF-u!!!
Ogranicenje je u zapisima.
clipper.65stosic,
>> Valkyrie * full source code recovery for Clipper Summer
>> '87 through 5.x Zac Low Price: $289 :(
>
> Ma, znam ja da to postoji i kako se zove i koliko kosta, al' mi treba
> o'ma i ovde ;)
Znam da znas, ali ovu konferenciju prati jos ljudi. Lakse je doci do neceg
ako mu se zna ime :)
"Don't lose any more sleep over it!"
Rescue5 will decompile all your CA-Clipper 5.x EXE, OBJ and LIB files and
recover all the original source code.
* Automaticaly determines the linker used.
* Generates RMK and LNK files allowing the application to br rebuilt.
* Supports all major linkers including Blinker 3.0, RTLink, MS_Link
and ExoSpace.
Only $349 :((
E sad, ako je verovati reklamama.
(Uz Rescue5 dobija se i Secure5 koji onemogucuje dekompilaciju.)
clipper.66nbatocanin,
>> Ma, znam ja da to postoji i kako se zove i koliko kosta,
>> al' mi treba o'ma i ovde ;)
>
> Koji je konkretan problem u pitanju? Reverzni inzinjering
> clipper programa (bez odgovarajuceg alata) je veoma
> nezahvalan posao... POzdrav!
Uh, radi se o banalnoj stvari: greškom sam uništio neke sorsove, pa
sad pokušavam da što lakše dođem do njih.
clipper.67nbatocanin,
> Neradi nista vise,evo ga uz poruku pa proveri,nego objasni
> mi malo taj lak zadatak.
Koristiš APPEND FROM ako su polja fiksne dužine ili razdvojena nekim
delimiterom. Ako nisu, koristiš FRead, pa analiziraš format.
clipper.68nbatocanin,
> javlja undefined symbol CLIPPER501 first reference
> quick5.lib neznam u cemu je problem sumnjam na verziju
> clipper-a
To je. Imaš biblioteku za Clipper 5.01.
clipper.69bpekic,
Ja jednostavno dako me to iznervira, napravim funkciju sa tim nazivom
koji linkeru smeta i od tada vise ne prijavljuje nedostatak te funkcije
(simbola)
Inace iako to prijavi, nema nikakvih problema, sve radi normalno a to mi se
prvi puta pojavilo pre neku godinu.
Samo napred, na tu poruku ne obracaj paznju!
Pozdrav Boris
clipper.70mdrazic,
> Ukratko, princip je vezan za 3 parametra koji se prosleđuju proceduri za
> HELP a to su ime procedure iz koje je help pozvan, ime promenljive kod
> koje se "čeka" odnosno trenutak kad je pritisnut F1 i broj linije.
>
> Dakle prevođenje programa ne može da ide sa prekidačem /l
E, ovo mora da se prokomentariše! Ko iole pametan u svom helpu
koristi BROJ LINIJE? Ako ima takvih mučenika, bolje da se ne
javljaju.
žesto i rutina iz koje je pozvan help nije dobro rešenje, jer to
može biti neka druga, a ne ona koja tada stvarno radi (recimo ti
si u nekom meniju, gore prozor sa podacima, help daje instrukcije
kako da biraš iz menija a ne šta je u prozoru). Za mene je zado-
voljavajuće rešenje kombinacija public (ili private) promenljive
cHelpVar i cInputVar. Prvu sam definišeš na nivou gde želiš help,
tipično na ulazu u proceduru koja barata podacima i važi sve dok
ne izađeš iz nje ili startuješ neku drugu funkciju/proceduru sa
novim private cHelpVar. Druga varijabla je standardna sa argument
liste za help. U tabeli koja čuva help poruke prvo tražiš ključ
cHelpVar+cInputVar i ako nađeš prikažeš. Ako ga nema, tražiš
samo cHelpVar i prikažeš, a ako nema ni to, ljubazno mu kažeš da
nema helpa.
Naravno, pošto lenji ljudi prave progres :)) , napraviš na hot-key
i editor za help ekrane (sa izborom: za celu masku ili za get polje),
ispišeš bitnije help ekrane a ostalo prepustiš korisniku da sam piše
jezikom koji on razume (objasniš mu još kako je to bitna prednost
tvog help sistema i aplikacije:) a kasnije kad on to ispiše uzmeš,
pogledaš i daš drugima za početak :)
Ako radiš u timu gde nisu svi angažovani i na programiranju, neko ko
piše dokumentaciju je kao naručen i da sastavlja helpove i to često
ispadne bolje nego da ih sam pišeš pošto se tome više posveti od tebe.
Milan
clipper.71nbatocanin,
> Ukratko, princip je vezan za 3 parametra koji se
> prosleđuju proceduri za HELP a to su ime procedure iz koje
> je help pozvan, ime promenljive kod koje se "čeka" odnosno
> trenutak kad je pritisnut F1 i broj linije.
Princip je prilično zastareo za savremen help sistem. Na primer, meni
bi u 99% slučajeva vraćao da se nalazi u proceduri xKey na liniji za
skaniranje tastature.
clipper.72jpptticb,
Potreban je Norton Guide za DGE graficku biblioteku za Clipper!
Ako znate gde to ima, ili imate Vi vicite.
Pozdrav
clipper.73bpekic,
Koja ti verzija .NG fajla za DGE treba? Poslednja koju imam je 4.0
Boris
clipper.75bceklic,
>> Koji je konkretan problem u pitanju? Reverzni inzinjering
>> clipper programa (bez odgovarajuceg alata) je veoma
>> nezahvalan posao... POzdrav!
>
> Uh, radi se o banalnoj stvari: greskom sam unistio neke
> sorsove, pa sad pokusavam da sto lakse dodem do njih.
Sad mi je stvar mnogo jasnija. Tebi moze da pomogne samo neka vrsta Clipper
dekompajlera (jer ti je potreban izlaz u vidu clipperovog sorsa). Nikakvi
drugi alati koji daju asm sors ti dakle ne mogu pomoci (Kao sto je sourcer).
Bila je neka SW verzija clipper dekompajlera (cini mi se hrvatske proizvodnje)
koja nije radila bas najbolje. Cini mi se da se podrazumevalo da je program
linkovan sa rtlinkom (moguce da je bio samo za summer 87).
Meni se ucinilo da zelis da izvuces samo neki deo koda a za tako stvari
mogu da posluze i 'brute force' metode...
Uopste efikasnost ovih programa je uvek pod znakom pitanja...
POzdrav!
clipper.76bceklic,
> E sad, ako je verovati reklamama.
> (Uz Rescue5 dobija se i Secure5 koji onemogucuje
> dekompilaciju.)
Dovoljno je kompresovati exe program (ili ga omotati nekim programom za
zastitu) i ove vrste programa su nemocne....
POzdrav!
clipper.77dzoric,
Jel se nekom desavao VMIF sa Blinker-om 3.10. Dakle ovaj Blinker
je cudo. Nit boljeg linkera nit vecih problema. Kombinacija je
NTX+FUNCky+BLINKER 3.10 i to na funkcijama RestScreen() i kod
stanja cekanja kao nekada SIX.
__Dejan__
clipper.78cnenad,
Malo sam se igrao sa primerom TBDEMO i u njemu se nalazi funkcija koja
formira TBROWSE objekat. U njoj se nalazi petlja koja ispituje koliko
ima polja u otvorenoj datoteci i na osnovu njih formira kolone za TBROWSE.
Pošto želim da utičem na dužinu kolone i njeno ime u zaglavlju, stavio sam
sledeće:
loKol := tbcolumnnew( 'Ime' ), { || IME })
lKol:width := 40
loB:addcolumn( lKol )
Međutim, kad želim nešto da izmenim (pritisnut bilo koji taster ili ENTER)
poziva se DOGET procedura. Šta god nakon toga upisao u polje i kao potvrdu
ponovo pritisnuo ENTER ili strelice na dole / gore / PgUp, PgDn,
izmena se na ažurira odnosno nova vrednost uopšte nije prihvaćena.
Ova pojava se događa samo kad ubacim drugi način za formiranje objekta ;
ako vratim originalni, preko petlje, sve se lepo promeni i podatak dođe
na svoje mesto pošto je SET TAG TO IME (SixCDX)
Kako rešiti problem ?
clipper.79mickeyl,
Hi everybody!
Upravo sam pročitao FAQ o FlagShipu, Clipper kompajleru za Unix/Dos i
oduševio sam se ;)). Zanima me da li neko zna je li se FlagShip
pojavio negde kod nas? Zna li neko cene i ostalo ili ću morati da
šaljem e-mail na Internet? Ukoliko znate neke odgovore molim da mi ih
hitno dostavite u mail.
Pozdrav,
MIckey.
clipper.80bulaja,
│Šta god nakon toga upisao u polje i kao potvrdu ponovo pritisnuo ENTER
│ili strelice na dole / gore / PgUp, PgDn, izmena se na ažurira odnosno
│nova vrednost uopšte nije prihvaćena.
└───
Verovatno ti nedostaje pozivanje TBrowse metoda refreshAll() ili
refreshCurrent() (koristiš ih zavisno od toga šta je promenjeno
u bazi) posle učinjene izmene :).
clipper.81dejanr,
>> Dovoljno je kompresovati exe program (ili ga omotati nekim programom za
>> zastitu) i ove vrste programa su nemocne....
... bar dok ga neko ne "odkomprimuje" ili "odomota". Takvom kompresijom je,
naravno, otežan posao napadaču, a mislim da i to dosta znači. Ali nema
sigurne zaštite.
Zanimljivo je šta ti Clipper "dekompajleri" rade kada naiđu na poziv nekog
asemblerskog programa, da li i njega pokušavaju da bar izdvoje u neki
poseban fajl radi moguće analize u SOURCER-u?
clipper.82dr.grba,
>> pojavio negde kod nas? Zna li neko cene i ostalo ili ću morati da
>> šaljem e-mail na Internet? Ukoliko znate neke odgovore molim da mi ih
Ako već možeš da pošalješ e-mail na Internet, učini to, sa pitanjem:
"Is It True?"...
clipper.83dpredovic,
Subject: Re: for-next
> > kakve to veze ima sa obicnom FOR-NEXT petljom za probno
> >* usporavanje rada)
> Prilično je teško ovako odrediti koji je razlog usporenja.
> Pretpostavljam da je reč o specifičnom rasporedu overleja. Grafička
Da, probaj da povećaš Overlay Opsize, u link skriptu, ili još bolje kaži
set blinker=/OOXXX, gde ti je XXX veličina slobodne gornje memorije,
ako je imaš dovoljno. Drugo, probaj da povećaš overlay keš.
clipper.84cnenad,
ŁŁŁ Verovatno ti nedostaje pozivanje TBrowse metoda refreshAll() ili
ŁŁŁ refreshCurrent() (koristiš ih zavisno od toga šta je promenjeno
ŁŁŁ u bazi) posle učinjene izmene :).
To sve već postoji, jer kao što rekoh, u TBDEMO-u (originalni) jedine izmene
su bile u delu gde formira TBROWSE. Ako vratim njegove originalne sve radi
ok, sa mojim izmenama ne. :((
I ranije sam imao ovakav slučaj ali sam odustao od daljeg rešavanja problema
i napisao posebnu funkciju za izmenu tekućeg sloga. Sad baš hoću da
koristim TB jer je za to i napravljen ali ne vredi. Zeza :((
clipper.85bceklic,
>>> Dovoljno je kompresovati exe program (ili ga omotati nekim
>>> programom za zastitu) i ove vrste programa su nemocne....
>
> ... bar dok ga neko ne "odkomprimuje" ili "odomota". Takvom
> kompresijom je, naravno, otezan posao napadacu, a mislim da i
> to dosta znaci. Ali nema sigurne zastite.
Kako vecina tih dekompajlera stize iz inostranstva veliko je pitanje
kada ce napraviti novu verziju koja ce prepoznati (mozda cak i samo to?)
novu vrstu kompresije ili zastite koja je nastala na ovim terenima.
Tacno je da 100% sigurne zastite nema. Ali je isto tako tacno da postoje
i zastite koje su sasvim dovoljne da zaustave vecinu provalnika. Npr.
POsle nekoliko meseci testiranja jos niko nije uspeo da skine zastitu sa
programa zasticenih sa pcguard-om. Razlog sto sam program jos uvek nije
u prometu je taj sto zasticeni programi ne rade na 486dx masinama a kako
ja ne posedujem istu masinu ne mogu da ustanovim razlog....
> Zanimljivo je sta ti Clipper "dekompajleri" rade kada naidu na
> poziv nekog asemblerskog programa, da li i njega pokusavaju da
> bar izdvoje u neki poseban fajl radi moguce analize u
> SOURCER-u?
U najboljem slucaju bi mogli dati izdvojeni asm source u zasebnom fajlu
koji je kasnije moguce ulinkovati. Dakle taj dekompajler bi bio neka vrsta
kombinacije Sourcer-a i Clipper dekompajlera. Citav proces nije ni malo
jednostavan i pretpostavljam da bi takav program bio dosta skup. O tome
kako ovaj problem resava Clipper dekompajler koji je bio spomenut u raspravi
moze nam odgovoriti samo onaj ko taj program poseduje.
POzdrav!
clipper.86nbatocanin,
> je li se FlagShip pojavio negde kod nas? Zna li neko cene
> i ostalo ili ću morati da šaljem e-mail na Internet?
Flagship SCO Evaluation košta oko 200 funti.
clipper.87majtoski,
Da li zna neko gde moze da se nabavi Silver Clip biblioteka
bilo na divlje bilo legalno
clipper.88mbiresev,
>> Pošto želim da utičem na dužinu kolone i njeno ime u zaglavlju, stavio sam
>> sledeće:
>> loKol := tbcolumnnew( 'Ime' ), š đđ IME ć)
>> lKol:width := 40
>> loB:addcolumn( lKol )
Umesto: š đđ IME ć stavi: FieldBlock(FieldName(n))
gde je n redni broj polja u datoteci, npr.
lKol := tbcolumnnew( 'Ime' , FieldBlock(FieldName(1)))
lKol:width := 40
oB:addcolumn( lKol )
Ovde postoji jedno ograničenje. Polja koja koristiš moraju respektivno
odgovarati onima u datoteci. Biće ti jasno kad probaš.
clipper.89jpiri,
Pitanje:
Hard disk ima DOS i UNIX particiju: Na DOS particiji radi Clipper
program, a na UNIX Fox.
Ima li šanse (pomoću trikova) iz Clipper programa pročitati
neku bazu sa UNIX particije?
Ako ne, da li postoji ekvivalent doscp naredbe SCO UNIX-a (koja
kopira fajl sa DOS particije na UNIX particiju) samo da radi
obratno (tj. dok sam pod DOS-om da kopira fajl sa UNIX particije?)
clipper.90peacock,
Kako štampati izveštaj iz Clippera u landscape modu?
clipper.91djelovic,
> Kako štampati izveštaj iz Clippera u landscape modu?
Bilo je reči o tome u ovoj temi pre jedno mesec dana. Ukratko, postoje
programi koji rade taj posao - biće najbolje da pogledaš u R:\PRINTER
direktorijumu.
clipper.92bulaja,
│ Kako štampati izveštaj iz Clippera u landscape modu?
└───
Ako se radi o matričnim štampačima, onda je o tome već bilo priče.
Odgovor je - teško :), ali ima utility programa koji standardnu text
datoteku pišu u landscape formatu na matričnim printerima.
Ukoliko je u pitanju laser, onda mu jednostavno pošalješ sekvencu za
prebacivanje u landscape mod (ESC &l1O) i samo vodiš računa da imaš
manje redova (48 kod standarnih uslova - A4 papir i 6 LPI).
clipper.93ppekovic,
>> Ima li šanse (pomoću trikova) iz Clipper programa pročitati
>> neku bazu sa UNIX particije?
Ne, nema načina da dok si u DOS-u čitaš Unix particiju.
Međutim, možeš da pokreneš DOS emulaciju, pod njom pokreneš
Clipper program, pa ćeš onda videti Unix fajle.
Paya
clipper.94peacock,
Šta znači TERM/0 error?
clipper.95nicetin,
Cao !
Posto sam skoro poceo da radim u clipper-u,a naravno ne znam
bas sve komande...zamolio bih vas da mi posaljete neki primer
screen save-ra koji radi sa HOT-KEY.
P.S naravno ako vam ne predstavlja neki problem.
Pozdrav od
Mladena.
clipper.96jolicm,
>>> hot-kry - screen saver
Na samom početku programa staviš:
Include "inkey.ch"
pa u programu:
SetKey(K_F10) to CuvajEkran()
na kraju programa staviš
Function CuvajEkran()
Local Ekran:=SaveScreen()
cls
* ovde tvoje ispisivanje na ekranu po potrebi šta hoćeš
While Inkey()#0
End
RestScreen(Ekran)
Return .t.
To ti je to.
Proveri ono SaveScreen i RestScreen, nisam baš siguran jer već 4-5 godina
koristim moje funkcije, pa za original sintaksu nisam siguran. :)
clipper.97dpredovic,
Subject: CA-VO
Malo gledam VO, pa mi sve nekako izmiče - kako dođavola povezati escape
taster sa cancel ili close PushButtonom?
clipper.98bulaja,
││ hot-key - screen saver
│└───
│Na samom početku programa staviš:
│ Include "inkey.ch"
│pa u programu:
│ SetKey(K_F10) to CuvajEkran()
└───
Uh, pa ja ovo ne bi zvao Screen Saver-om :).
žuvar ekrana je po definiciji nešto što se aktivira posle odredjenog
perioda neaktivnosti (nekucanja po tastaturi) a ne isključivo hot
key-om. Za ubacivanje screen savera u Clipper programe potrebno je
napraviti custom inkey handler (postoji i rešenje preko preusmeravanja
timer interapta, ali ovo je čistije:) i ubaciti ga svuda umesto
standardnog Inkey() - znači u GetSys, TBrowse petlju, menije (potreban
je meni sistem koji omogućava promenu standarndog inkey handlera, npr.
BuMenu:). U ovakav novi Inkey handler (bilo je već ranije reči o tome u
konferenciji) možete strpati razne lepe stvari - screen saver, prikaz
sata, HotKey funkcije, rad sa mišem (naravno uz dodatne parametre koje
prosleđuješ Inkey funkciji),...
U poruci sledi primer jednostavnog CA-Clipper Inkey handlera koji ima
ugrađen screen saver, prikaz sata i ostavljen prostor za dodavanje
opcija po želji. Napisao sam ga sad na brzinu (ali i pored brzine je sve
po propisu - imate komentare, lepo formatiran kod i slično, tako da ne
bi trebalo da bude problema sa razumevanjem:), a handler koji koristim u
svojim programima ima dodate još neke zezalice (npr. mouse support:).
Ako je potrebno detaljnije objašnjenje kako se ovaj inkey handler
ubacuje u podsisteme CA-Clipper-a (npr. u GetSys.prg se samo zameni
jedan poziv Inkey() i GetReader()-u, mada ja više volim da stavim to u
static code block i omogućim eksterno konfigurisanje) kažite, pa ću
objasniti. Inače danas se izležavam i ništa ne radim (što mogu i vama od
srca preporučiti, mnogo je dobro:) pa imam malo vremena da ovo napišem.
:)
/**** =- Početak primera -= ****/
/*
* File......: BuInkey.prg
* Author....: Jovan Bulajić
* Date......: 29.01.95
*
* This is an original work by Jovan Bulajić
* and is placed in the public domain.
*/
STATIC nClockY, nClockX, lClockDisp, cClockTime
// Koordinate na kojima se prikazuje sat, kao i informacije da li
// uopšte treba prikazivati sat (stavljeno u static zbog mogućnosti
// konfiguracije) i koje vreme je poslednje prikazano (pogledati
// source u nastavki zbog daljeg objašnjenja za cClockTime)
STATIC nSaverTimeout := 300
// Vreme neaktivnosti posle koga se aktivira screen saver (u sekundama,
// 300 sec = 5 min). Stavljeno u module-wide static da bi se se moglo
// menjati konfiguracionom funkcijom bu_SetScrSaver()
STATIC bScrSaver := {|| bu_ScrSaver()}
// Code block u koji se stavlja poziv za screen saver.
// Možemo staviti i ceo jednostavan saver u code block, npr.
// bScrSaver := ;
// { ;
// | cSaveScr, ; // fiktivni argumenti, pošto nam
// nKey | ; // trebaju lokalne cb promenljve :)
// ;
// cSaveScr := SaveScreen (0, 0, MaxRow(), MaxCol()) , ;
// Cls() , ;
// nKey := Inkey(0) , ;
// RestScreen (0, 0, MaxRow(), MaxCol(), cSaveScr) , ;
// nKey ; // cb vraća pritisnuti taster
// }
// ali pošto bi ovo bilo suviše perverzno O:) u primeru sam stavio
// konzervativno :) rešenje gde code block samo poziva našu funkciju
**** ---------------------------------------- ****
FUNC bu_Inkey (nWait)
// Ovo je glavna funkcija Inkey handler-a.
// nWait je tu zbog kompatibilnosti sa standardnim Inkey() pozivom
// (ja lično ga nikada ne koristim :). Dodati druge argumente po
// potrebi i zavisno od toga kako ste prepravili pozive standardne
// Inkey() funkcije
LOCAL nKey, nTimer
LOCAL nElapsed
IF nWait == NIL
// ukoliko iz nekih izopačenih :) razloga zovete ovu funkciju
// samo da očita tastaturu umesto Inkey(), zbog potreba
// kompatibilnosti to vam ovde i vraćamo.
RETURN Inkey()
// Ja inače ni ovo ne koristim :) već bu_Inkey() (bez
// argumenata) tretiram kao Inkey(0) ondosno umesto
// ovog IF-a imam jedno
// nWait := IF (nWait == NIL, 0, nWait)
ENDIF
// podešavamo vrednost statičkim promenljivim,
// za slučaj da se prvi put startuje inkey handler
nClockY := IF (nClockY == NIL, 0, nClockY)
nClockX := IF (nClockY == NIL, MaxCol()-8, nClockX)
lClockDisp := IF (lClockDisp == NIL, .T., lClockDisp)
cClockTime := IF (lClockTime == NIL, Time(), lClockTime)
// pamtimo vreme kad je funkcija startovana, za potrebe
// vremena čekanja na pritisak tastera i screen saver-a
nTimer := Seconds()
DO WHILE .T.
nKey := Inkey()
IF lClockDisp
// Ako je konfigurisano da se prikazuje sat, onda ga ovde
// prikazujemo. Obratite pažnju da osvežavamo prikaz sata
// samo ukoliko je vreme promenjeno u odnosu na poslednji
// ispis sata na ekran - zato nam je i potrebno cClockTime.
// Statička promenljiva (koja je mogla biti ubačena unutar
// ove funkcije a ne u okviru modula, ali sam je stavio na
// početak sa ostalim:) je tu zbog slučajeva kada se inkey
// handler aktivira i vraća taster više puta u sekundi -
// npr. ovo je čest slučaj kad legnete na kurzorske tastere
// u TBrowse-u ili menijima. Tada je, koliko god ne bilo
// kritično nekoliko trenutaka vremena da se ispiše sat,
// bolje da se on osvežava samo ukoliko je vreme zaista
// promenjeno u odnosu na prethodni poziv.
IF cClockTime != Time()
FT_VidStr (nClockY, nClockX, Time())
cClockTime := Time()
// Ah, ovde je poziv funkcije FT_VidStr(). Ona je deo
// NanForum Toolkit-a i služi da munjevito (daleko brže
// od QOut()) ispišete neki string na deo ekrana bez
// promene atributa (boje) koji su ranije tamo bili.
// Ukoliko želite rešenje u čistom Clipper-u, onda ovde
// možete staviti jedno
// @ nClockY, nClockX SAY Time() COLOR cClockColor
// pri čemo morate konfigurisati i cClockColor i čuvati
// i posle ispisa vratiti status Row() i Col(). Takođe
// se može napraviti i neka budževina sa SaveScreen()
// i RestScreen() koja radi isti posao kao i FT_VidStr()
// ali je to glupo :). Može se napisati i cela funkcija
// u asembleru, možda to i uradim ovih dana :).
ENDIF
ENDIF
nElapsed := Seconds() - nTimer
IF nElapsed < 0
nElapsed += 24*3600
// ponoćni problem :) - dodajemo jedan
// dan, odnosno 24 časa * 3600 sec/h
ENDIF
DO CASE
CASE nKey != 0
// pritisnut je neki taster, so naš
// inkey handler završava svoj posao
// obrade stanja čekanja
EXIT
CASE nElapsed >= nWait .AND. nWait != 0
// isteklo je vreme za čekanje na taster
// takođe završavamo posao
EXIT
CASE nElapsed >= nSaverTimeout
// Naš dragi korisnik je uzeo cofee break,
// so vreme je za screen saver
nKey := Eval (bScrSaver)
ENDCASE
// Ovde dodajete ostale stvari koje vam padaju na pamet -
// npr. obradu HotKey-ova nezavisnih od Clipper-ovog SetKey(),
// dodatni kod za podršku miša (uz dodatno prenete argumente),
// trčeće reklame preko ekrana, provera događaja na mreži,
// interni multitasking (npr. printer manager),... :)
ENDDO
RETURN (nKey)
**** ---------------------------------------- ****
FUNC bu_SetScrSaver (nSetTime, bSetSaver)
// promena parametara screen savera
nSaverTimeout := IF (ValType(nSetTime) == "N", nSetTime, nSaverTimeout)
bScrSaver := IF (ValType(bSetSaver) == "B", bSetSaver, bScrSaver)
RETURN
**** ---------------------------------------- ****
PROC bu_SetClock (lSetClock, nSetY, nSetX)
// promena parametara sata na ekranu
lClockDisp := IF (ValType(lSetClock) == "L", lSetClock, lClockDisp)
nClockY := IF (ValType(nSetY) == "N", nSetY, nClockY)
nClockX := IF (ValType(nSetX) == "N", nSetX, nClockX)
RETURN
**** ---------------------------------------- ****
FUNC bu_ScrSaver ()
// Default screen saver funkcija. S obzirom na prirodu primera
// (pokazivanje kako uopšte ugraditi čuvar ekrana i napraviti
// inkey handler) ne radi ništa spektakularno (kao što su npr.
// leteći tosteri, nevaljali psi, rupa na ekranu i slične
// besmislice:) već samo zamračuje ekran
LOCAL nKey, cSaveScr, nSaveY, nSaveX, nSaveCurs
cSaveScr := SaveScreen (0, 0, MaxRow(), MaxCol())
nSaveY := Row()
nSaveX := Col()
nSaveCurs:= SetCursor(0)
Cls() // kakav sejver :)
nKey := Inkey(0)
// e da :) - kad budete pravili pristojan sejver, umesto
// ovog Inkey(0) bi trebala da stoji glavna petlja slične
// strukture kao i glavna petlja u bu_Inkey() s tim što
// bi bilo lepo kontrolisati i da li je promenljen status
// prisiska na sive tastere (Shift, Ctrl, Alt, * Lock,..)
RestScreen (0, 0, MaxRow(), MaxCol(), cSaveScr)
SetPos (nSaveY, nSaveX)
SetCursor (nSaveCurs)
RETURN (nKey)
/**** =- Kraj primera -= ****/
That's it. To što ima bar deset linija komentara na jednu liniju koda
je zbog edukativne namene celog ovog primera (koji se može odmah i
praktično primeniti bez izmena:). Nadam se da sam nekom pomogao :).
(Bu)
clipper.99bulaja,
**** new file ****
MSDOS - R:\CLIPPER
----------------------
nflib301 zip 150123 NanForum Toolkit v3.01: Clipper biblioteka (lib/ng)
1 file(s) 147 kb
Konačno :). U dokumentaciji (.NG) se slabo spominje šta je sve izmenjeno
u odnosu na verziju 2.1. Onako na prvi pogled to su kompletna Protected
Mode kompatibilnost (bez dodatnih zakrpa), novi PM interface za Clipper
(CPMI), nešto dodatnih funkcija (nisam još pregledao sve). Od problema
sa kompatibilnošću, primetio sam (odnosno dojavio mi je linker:) jedino
da nedostaje funkcija FT_HandCount() (dakle ništa strašno).
clipper.100dr.grba,
>> nflib301 zip 150123 ...
>>
>> Konačno :). U dokumentaciji (.NG) se slabo spominje šta je sve izmenjeno
>> u odnosu na verziju 2.1. Onako na prvi pogled to su kompletna Protected
Hoće li stići i source kod?
clipper.101bulaja,
│Malo gledam VO, pa mi sve nekako izmiče - kako dođavola povezati
│escape taster sa cancel ili close PushButtonom?
└───
Trebalo bi preko akceleratora (hot-key-ova) :). Međutim problem je što
izgleda da jedino u DataWindow možeš definisati akceleratore van menija,
a pretpostavljam da ti ovo treba za DialogWindow :). Koliko sam video u
DialogWindow klasi, postoji Override() metod koji ti omogućava (bar sam
tako shvatio, nisam probao:) da se poziva tvoj metod (definisan u okviru
dialog prozora) Dispatch() koji radi obradu događaja. Nisam našao primer
kako taj <oDialogWindow>:Dispatch() treba da izgleda, ali trebalo bi da
je negde opisano (možda u onom SouthSeas:).
clipper.102bulaja,
│Hoće li stići i source kod?
└───
Nadam se :).
clipper.103jolicm,
>> Uh, pa ja ovo ne bi zvao Screen Saver-pm :)
Ni ja to nebih nazvao Screen-saverom, ali čovek je lepo postavio pitanje u kom
je naglasio hot-key, koliko se sećam (pišem on line)
I čovek još reče da mu treba nešto jednostavno, E a kako ja ne koristim Sor
već sve pišem on-line, napisao sam Ňü to na brzinu. To bi sigurno radilo, i to
jeste screen-saver preko hot keya.
Inače i ja imam svoj jmInkey() i getsys i browse su prepravljeni da rade sa
njim, imam moj sistem menia koji radi sa njim, ali u On-line pisanju, a Sezam
mi je napisao da mi je ostalo <<2 minuta, sam stigao samo toliko.
E sad pošto sam pročitao moju kritiku u sezamu u konferenciji sezam, bojim se
da nekad napišem nešto daleko oštrije nego što sam zeleo, pa te molim da ovo
shvatiš kao dobronameran odgovor.
:) :) :) :) :)
clipper.104jolicm,
>>(postoji i rešenje preko preusmeravanja timer interapta, ali ovo je čistije:)
Ako ti ne predstavlja problem, opiši mi to preko timer interapta, da li treba
asembler, kako napraviti, Napiši mi samo postupak kako povezati to da poziva
clipper funkciju. TO BI BILO JAAAKO LEPO, tada bih mogao napraviti funkcije u
clipperu, nešto kao ON Time ... Every sec ili slično, a to baš treba,
Napiši mi samo kako iz asemblera pozvati proizvoljnu clipper funkciju.
:)))))))) Fala u napred.
clipper.105jolicm,
JEDAN LEP POZIV, Ukoliko neko od Vas navraća u Kikindu, i ima SixNsx 2.0...,
VO za clipper, ili clipper za windows .. ili još nešto bolje, lepo neka te
diskete stavi u dzep i dođe kod mene na piće i kafu, a bogami i ručak.
Jolić Milorad, Bregalnička 2b (Pitate gde je kafana Šaran).
0230/32-078
:) :)
clipper.106nbatocanin,
> Šta znači TERM/0 error?
Rekao bih nešto oko štampača?
clipper.107dr.grba,
>> JEDAN LEP POZIV, Ukoliko neko od Vas navraća u Kikindu, i ima SixNsx
>> 2.0..., VO za clipper, ili clipper za windows .. ili još nešto bolje, lepo
Tražiš po Beogradu, a ne pitaš mene. Stamota.
Tako ti, uostalom, i treba kad pišeš poruke on-line (((:
Dakle, pozivaš me na ručak? Mogu da povedem i porodicu? (((:
clipper.108stosic,
>> Malo gledam VO, pa mi sve nekako izmice - kako dodavola povezati
>> escape taster sa cancel ili close PushButtonom?
>>
> Trebalo bi preko akceleratora (hot-key-ova) :). Medutim problem je sto
jos nije izasla verzija 1.0d :)
Windows editor generise kod za KeyDown event i to bi trebalo da bude
regularan nacin.
clipper.109nbatocanin,
> TO BI BILO JAAAKO LEPO, tada bih mogao napraviti funkcije
> u clipperu, nešto kao ON Time ... Every sec ili slično, a
> to baš treba, Napiši mi samo kako iz asemblera pozvati
> proizvoljnu clipper funkciju. :)))))))) Fala u napred.
Ovo bi trebao da ima CA-Tools u sebi. Ipak, ja i dalje preporučujem
da se koristi čist Clipper, jer se skoro sve gore navedeno može
izvesti bez problema u njemu. Prekidati složeni sistem kao Clipper-ov
interaptom može biti veoma zeznuto.
clipper.110mdrazic,
Molim malo pažnje. Ko ima pristupa stranim BBS-ovima molim da
pogleda da li ima jedan mali shareware proizvod zvani
UNIXCORN
Dotični služi da iz DOS-a pokreće Windows programe, kažu da ga
koriste da iz Clippera poteraju R&R za Windows.
Sofrver dakle nema veze sa UNIX operativnim sistemom, a sa slike
se vidi da je verzija 1.3 od 24.6.94. Na slici je Win sa 3
prozora. U jednom je Unixcorn help, u drugom DOS prozor iz koga
se sa komandne linije startuje Notepad u trećem prozoru.
clipper.111peacock,
#### Rekao bih nešto oko štampača?
Rekao bih i ja, samo TERM/0 nema u opisu grešaka :(
clipper.112peacock,
#### JEDAN LEP POZIV, Ukoliko neko od Vas navraća u Kikindu, i ima
#### SixNsx 2.0..., VO za clipper, ili clipper za windows .. ili
#### još nešto bolje, lepo neka te
Da si živ i zdrav, to odavno imaš u Kikindi. Proveri :)
clipper.113jolicm,
>> Imaš u Kikindi
Hvala na ukazivaču.
Javio se već čoek, međutim zamisli on zeli da dovede celu porodicu na ručak,
čak i neku dalju rodbinu pominje. :)
clipper.114jolicm,
LJUDI Dal je neko iz asemblera pozivao ikada neku clipper funkciju, znači:
neki proizvoljan asm kod ulinkovan u clipper exe da pozove clipper funkciju.
Ako jeste nek se javi .:)
clipper.115charlie,
Da li neko ima iskustva sa slanjem fax-a uz pomoć SILVERCLIP-a,
ako može u najkraće šta treba još osim biblioteke?
clipper.116dr.grba,
>> Da li neko ima iskustva sa slanjem fax-a uz pomoć SILVERCLIP-a,
>> ako može u najkraće šta treba još osim biblioteke?
Ja bih rek'o da treba i fax-modem.
Sorry, NHF! (:
clipper.117bulaja,
│To bi sigurno radilo, i to jeste screen-saver preko hot keya.
└───
No problemo :). Nisam mnogo obraćao pažnju kakav se to screen-saver
tražio (to u stvari nije bio odgovor na tvoju poruku već na onu gde je
prvobitno tražen saver:), ali su svejedno dobili dolji saver nego što
su tražili. Pošto se ovde ranije više puta spominjao alternativni Inkey
handlera, ovo je taman bila dobra prilika da razjasnim misteriju oko
njega (ako je ranije bilo neko detaljnije objašnjenje, mora da sam ga
propustio:).
clipper.118bulaja,
│Windows editor generise kod za KeyDown event i to bi trebalo da bude
│regularan nacin.
└───
Aaahh :). Video sam u spisku DialogWindow metoda KeyDown i KeyUp, ali
sam mislio da su to događaji koji se generišu za pritisak na strelicu
dole (K_DOWN) i gore (K_UP). :)
clipper.119evlad,
>> Hvala na ukazivaču.
>> Javio se već čoek, međutim zamisli on zeli da dovede celu porodicu na
>> ručak, čak i neku dalju rodbinu pominje. :)
He, biJo je skroman, a šta misliš o momcima iz naše grupe & familije ... ;)
clipper.120bulaja,
**** new file ****
MSDOS - R:\CLIPPER
----------------------
nfsrc301 zip 291142 NanForum Toolkit v3.01: Clipper biblioteka (source)
1 file(s) 284 kb
clipper.121jovca.car,
/* prozora. U jednom je Unixcorn help, u drugom DOS prozor iz koga
/* se sa komandne linije startuje Notepad u trećem prozoru.
Imaš takav program (WinLink) u nekoj od konferencija ovde.
clipper.122d.petrovic,
> Rekao bih i ja, samo TERM/0 nema u opisu grešaka :(
Možda ti pomogne...
Izbacuje to kad pokuša nešto da štampa, a štampač nije spreman.
Nažalost postoje krševi od štampača pa možeš doći u situaciju da iako
šalješ KARAKTER PO KARAKTER izbaci tu grešku jer...
Trenutak ranije dok si ti ispitivao isprinter() on je mogao da primi
taj karakter, međutim dok je on krenuo (verovali ili ne dešava se)
štampač izbaci stranu i dok ne ubaciš novi list ništa ne prima.
Najveća nebuloza je što, ako ne ubaciš papir dovoljno brzo pomaže
samo quit. Ovo poslednje nisam doživeo, ali su mi prijavili takve
slučajeve.
Sve u svemu otkad šaljem jedan po jedan znak tako nešto mi se desilo
SAMO jednom i to sa totalnim kršem od štampača.
clipper.123d.petrovic,
> Javio se već čoek, međutim zamisli on zeli da dovede celu
> porodicu na ručak, čak i neku dalju rodbinu pominje. :)
Ima da dođe i moje strine Jeke i neke sesetre neke rođenog đevera
bratanac ;))))
clipper.124d.petrovic,
> IF nWait == NIL
> // ukoliko iz nekih izopačenih :) razloga zovete ovu funkciju
> // samo da očita tastaturu umesto Inkey(), zbog potreba
> // kompatibilnosti to vam ovde i vraćamo.
Pa šta onda radiš kad skupljaš podatke po nekoj veeeelikoj bazi i
korisnik treba da pritisne K_ESC (greškom izabrao opciju), a i sat
treba da radi (pa nije naodmet i neka štampa, ako je bilo nečeg
pripremljenog, ja za ovo koristim nInkey(-1) ) ?
clipper.125szeman,
**** new file ****
MSDOS - R:ĐCLIPPER
----------------------
pr106 zip 11802* PR v1.06: "nazubljivanje" Clipper source-ova (szeman)
Ispravljeni su bug-ovi i uvedeni novi switch-evi:
Switch
=============================================================
/R - Odmah posle PROC, FUNC i sl. ne vrši "uvlačenje"
-------------------------------------------------------------
/Ln - Brisanje suvišnih linija.
Ukoliko se switch ne navede, vrši se brisanje
samo nepotrebnih linija na kraju fajla. Parametar n
mora da zadovoljava uslov 1<= n <= 10. Pri tome se,
naravno, vrši ignorisanje uzatopnih linija čiji broj
prevazilazi broj zadat u switch-u. Vrši se potpuna
kontrola, tako da text izmedju TEXT ... END TEXT
i komentara /* ...*/ ostaje neizmenjen.
=============================================================
Najviše je vodjeno računa (a samim tim i posla) prilikom optimizacije
algoritma, a rezultat je veoma zadovoljavajući: ubrzanje od min. 40%, a
u nekim specifičnim situacijama i mnogo, mnogo više.
clipper.126bulaja,
**** new file ****
MSDOS - R:\CLIPPER
----------------------
nf301p01 zip 5588 NanForum Toolkit v3.01: patch #01 (CPMI, FT_Int86)
nf301p02 zip 6008 NanForum Toolkit v3.01: patch #02 (FT_IsPrint)
nf301p03 zip 6338 NanForum Toolkit v3.01: patch #03 (FT_Color2N/N2Color)
nf301p04 zip 3646 NanForum Toolkit v3.01: patch #04 (FT_OutP)
4 file(s) 21 kb
U sledećim porukama je kraći opis pojedinačnih zakrpa.
clipper.127bulaja,
--------------------------------------------------------------------
Nanforum Toolkit v3.01 Patch #1 1/12/95
--------------------------------------------------------------------
During testing of some new functions, a bug was found in the
protected mode version of FT_Int86(). This patch supplies a new
CPMI.LIB which cures the problem.
NOTE! The problem only occurs in protected mode. If you do not
call FT_Int86() in protected mode then you do not need this patch.
clipper.128bulaja,
--------------------------------------------------------------------
Nanforum Toolkit v3.01 Patch #2 1/13/95
--------------------------------------------------------------------
In some cases FT_IsPrint() was not working correctly in protected
mode when linked with Blinker. Real mode executables, as well as
executables linked with ExoSpace or CauseWay, are unaffected. This
patch supplies a new FT_IsPrint() which cures the problem.
NOTE! The problem only occurs in protected mode when linked with
Blinker. If you do not use Blinker-linked protected mode or dual
mode executables then you do not need this patch.
clipper.129bulaja,
--------------------------------------------------------------------
Nanforum Toolkit v3.01 Patch #3 1/14/95
--------------------------------------------------------------------
For unknown reasons, the FT_Color2N() and FT_N2Color() functions
were omitted from the original build of v3.01 of the Toolkit. This
patch supplies the source and object modules for those two functions.
NOTE! If you do not use either of these functions, or you do not
use any functions which rely on them, then you do not need this
patch.
clipper.130bulaja,
--------------------------------------------------------------------
Nanforum Toolkit v3.01 Patch #4 1/17/95
--------------------------------------------------------------------
The FT_OutP() function had a parameter validation bug that would
sometimes cause it to fail even when all parameters were okay. This
patch corrects the problem.
NOTE! If you do not use FT_OutP() then you do not need this patch.
clipper.131dsisic,
>izvesti bez problema u njemu. Prekidati slozeni sistem kao
>Clipper-ov interaptom moze biti veoma zeznuto.
Potpuno se slazem sa ovim nacinom razmisljanja. Moram, medjutim da
pomenem izuzetnu mogucnost pozivanja Clipper funkcija iz c-a, koja je
u stvari posledica otvaranja Clipper API-ja. Jedan od lepih primera
je i funkcija, pisana u C-u, koja poziva Clipper kodni blok svakih n
sekundi!
Evo malog citata:
>TimeEval() is an event-driven, Clipper 5.2c function that will evaluate a
>Clipper code block every nth seconds. Note, the computers interal clock
>provides the event of time changing.
Da ne bi bilo zabune...
>Copyright & Disclaimer
>======================
>
>This package is Copyrighted (c) 1994, however, permission is granted for use
>in any finished program, commercial or otherwise. Permission is not granted
>to include these routines in third party commercial or shareware LIBRARIES.
A, sledi i zipo... :))
evalti.zipclipper.132vlaslo,
> ŁŁŁ Koji raspored treba koristiti i kako resiti sortiranje po
> nasim slovima?
Ocajnicki se pridruzujem i ja u skup onih koji ne znaju kako
se vrsi promena sortiranja.
> Za sortiranje mozes probati sa JM_IND-om koji imas u Clipper
> dir-u autora JOLICM-a.
Problem je u tome da vazi samo za yu-rasporede.
Ako bi neko zeleo neki naizgled potpuno kaotican sort
tada... ??? :-)
I ovom prilikom molim Clipper gurue da me poduce na koji
nacin se moze vrstit: - sort po proizvoljnom redu
- konverzija velikih-malih slova
- konverzija na printer
Vec sam ostao bez nade. Svi cute o ovoj temi, to bi trebao
da znaci da je problem trivijalan pa svi snaju osim mene,
ili je tabu tema nesto sto je neuctivo pitati ili nesto
slicno.
Molim za pomoc...
Unapred hvala
cu Zoli
clipper.133peacock,
#### Javio se već čoek, međutim zamisli on zeli da dovede celu
#### porodicu na ručak,
Sledeće nedelje dolazi kod mene. Hvala na upozorenju :)))))
clipper.134dvesic,
>> I ovom prilikom molim Clipper gurue da me poduce na koji
>> nacin se moze vrstit: - sort po proizvoljnom redu
>> - konverzija velikih-malih slova
>> - konverzija na printer
(moram, izvinite me, ali moram :))))
Skini R104VMYU primer iz R:\RSOFT direktorijuma. Tamo ti je data generalna
ideja koja se trivijalno proširuje na sve tražene slučajeve.
(Ako budeš imao problema, na mail).
clipper.137jolicm,
One gornje dve poruke mi uradi on line pisanje i loša veza...
>>> Očajničko se pridruzujem ...
Koliko očajnički ...
>>> Problem je u tome da vazi samo za yu-rasporede.
Daklem, koliko znam, Ukoliko imaš MASM i onaj JM_IND fajl, mozes napraviti
funkciju za sort u clipperu po bilo kojem (bilo kojem) rasporedu slova, samo
treba preurediti neki niz sa vrednostima. E ako ti ne treba to već ti treba
npr:
U jednom nizu uputiš funkciji raspored karaktera kakav ti treba za
indeksiranje, pa zatim ta funkcija od tog trenutka indeksira sve po tom
proizvoljnom rasporedu sve zavisi koliko ti to treba VVIIžžI, a ukoliko ne
vičeš Ti ,a javi se još koji sezamovac da mu baš to treba, eto mene i nove
funkcije. Samo ne verujem da će biti baš tako brza kao ona prva pošto
organizacija tabela neće moći tako da se izvede.
PITANJE, Ako je neko koristio jm_ind ili još koristi, a ima neki problem,
primedbu, neka se ovde javi da bih ispravio.
Zdravo :)
clipper.138dordije,
Predlazem da se odmah otvori posebna tema za Visual Objects
(neka se npr. zove cavo). Verujem da ce takva organizaciona
promena dobro doci svim CLIPPER-asima (setimo se slucaja sa
jezikom C i C++).
Bilo bi dobro i da se sve dosadasnje poruke u vezi VO iz teme
clipper prebace u novu temu cavo.
clipper.139nbatocanin,
> LJUDI Dal je neko iz asemblera pozivao ikada neku clipper
> funkciju, znači: neki proizvoljan asm kod ulinkovan u
> clipper exe da pozove clipper funkciju. Ako jeste nek se
> javi .:)
Pogledaj malo Technical ref., imaš kako se poziva kod blok iz
C-funkcije.
clipper.140nbatocanin,
> Da li neko ima iskustva sa slanjem fax-a uz pomoć
> SILVERCLIP-a, ako može u najkraće šta treba još osim
> biblioteke?
CAS drajver za komunikaciju sa Fax-modemom. Ne, nemam ga ;)
clipper.141bulaja,
│Predlazem da se odmah otvori posebna tema za Visual Objects (neka se
│npr. zove cavo). Verujem da ce takva organizaciona promena dobro doci
│svim CLIPPER-asima (setimo se slucaja sa jezikom C i C++). Bilo bi dobro
│i da se sve dosadasnje poruke u vezi VO iz teme clipper prebace u novu
│temu cavo.
└───
Koliko god ja bio jedan od prvih CA-VO fanova ovde :), mislim da još
uvek nema mesta otvaranju posebne teme. Uslovi sa otvaranje nove teme
na Sezamu su jasni - dovoljno veliko i konstantno interesovanje
korisnika, koje je ispoljeno brojem poruka vezanih za određenu temu.
Do sada u PC.PROG nije bilo više od desetak poruka vezanih za VO, a i
većina njih je bila onda dok smo još očekivali program i nismo znali
na šta liči :). Bojim se da će još jedno vreme (od bar nekoliko meseci:)
većina poruka vezanih za VO biti u stilu "a kako se ovo uključuje" :) -
svima onima koji se odluče da uđu u VO trebaće dosta vremena (ako im već
glavna prepreka nisu hardverski resursi). Ja sam odmah po dobijanju VO
razmišljao o otvaranju grupe (pretpostavljam još uvek malobrojnih
korisnika) za rešavanje problema i koordinaciju otkrivanja Visual
Objects tajni :), ali sam odustao od te ideje. Biće ipak najbolje da
još jedno vreme koristimo Clipper temu, tim pre što pretpostavljam da
rad u CA-VO interesuje većinu sadašnjih ozbiljnih korisnika Clipper-a.
clipper.142dpredovic,
Subject: Re: CAVO
> Windows editor generise kod za KeyDown event i to bi trebalo da bude
> regularan nacin.
Da, bio bi ;) kada bi radio... Koliko sam uspeo da isprobam, keydown
metod se prosto nikada ne poziva?
clipper.143dpredovic,
Subject: Re: SilverClip
> Da li neko ima iskustva sa slanjem fax-a uz pomoć SILVERCLIP-a,
> ako može u najkraće šta treba još osim biblioteke?
Treba ti i CAS drajver za fax. Najlakše za pronaći u okviru
WP6 for DOS.
clipper.144bpekic,
Slazem se da bi bilo dobro otvoriti CAVO odeljak u okviru PC.PROG.
Mada nas za sada ima malo koji pkusavaju da "provale" rad sa CAVO,
nije lose da mozemo i na tu temu organizovanije diskutovati,
makar to bilo za pocetak na nivou "a kako se to sve startuje..."
Konacno, malo ih je koji iamju i kompletno uputstvo, pa je pocetnicki
problem uvek prisutan.
Bavim se Clipperom veoma dug, radio sam nesto u Vbasicu, poznajem i druge
programske jezike ali sam za sada potpuno zbunjen logikom CAVO.
Jos uvek sam u fazi setnje po svim mogucim helpovima. Osecam da tu
nesto ima OK ali treba se snaci.
Ne znam kako je sa drugima ali za pocetak mi sve deluje glomazno i DOSTA
sporo (masina je 386/40 sa 8MB memorije).
Da li neko poseduje neku literaturu za CAVO?
clipper.145jolicm,
Da ne bih skidao celu konferenciju pc.prog do dana današnjeg,
Da li se neko od Vas seća da li je bilo reči o izračunavanju pravoslavnog
uskrsa (na koji dan pada u određenoj godini)KKKKK ?
Ako se sećate, javite gde da trazim.
Još davno sam napravio ??? dobar ??? kalendar sa praznicima, ali pošto se
praznici ukidaju svake godine, odlučio sam se da napravim kalendar sa verskim
datumima. U nanforumovoj .lib postoji za katolički ....
clipper.146dejanr,
>> Da li se neko od Vas seća da li je bilo reči o izračunavanju
>> pravoslavnog uskrsa (na koji dan pada u određenoj godini)
Bajtovi lične prirode broj 677, "Računari 93", jun 1993. Ako nemaš,
mogu negde da nađem source na C-u koji je tamo objavljen.
clipper.147mkurtes,
Subject: CA-VO
Stvarno ne bi bilo lose da se otvori nova tema CAVO jer stvarno
izgleda da ce zbog specificnog pristupa VO biti dosta pitanja;
inacce postoji upgrage na VO 1.0a (bez vecih vizuelno primetnih
efekata) tako da osnovni program (13) i upgrade (4) ukupno staju
na 17 disketa formata 3,5 inca;
Ponavljam pitanje pre postavljeno da li neko ima ili zna gde se moze
nabaviti neka profesionalna literatura ca CA-VO;
Zanimljivost - RadioButtonGroup ne prima u kontroli vise od
5 (pet) RadioButton-a.
clipper.148jolicm,
>>> "Računari 93", jun 1993
E da ti kazem imao sam ja sve brojeve računara, dok se nisam ozenio, bolje reći
udo, Kada sam otišao sa sela u zeninu kuću u grad, mati bez pitanja koristila
računare za potpalu peći ...
Al to nije vazno, šalji taj source ... :)
clipper.149dordije,
Kada sam predlozio uvodjenje nove teme za VO mislio sam
na sledece:
- tema ce se kad tad otvoriti; broj CLIPPER-asa je veliki,
a vecina njih ce sigurno poceti sa radom u VO,
- ako je to tako, onda je bolje tu temu na vreme otvoriti,
bez obzira koliko ona sa ima mali promet; za pola godine ce
se to popraviti - ima i sada drugih tema sa malim brojem
poruka,
- odvojena tema ce sigurno uticati i na veci odziv onih koji
vise znaju o VO (ja sada nisam taj, ali zelim da ucim).
VO diskusije u temi clipper deluju kao nesto sto gostuje u
toj temi (ne pripada joj potpuno); ipak su to dva razlicita
produkta i koncepcije. Svi mi pocinjemo rad u VO i zato su
vredna bilo kakva iskustva u tome.
Ipak, s obzirom da ti imas i druge elemente u vidu uvazavam
tvoje argumente za odlaganje otvaranje VO teme.
clipper.150mbiresev,
Ako otvorim različite datoteke (dbf) koje nisu u istom direktorijumu,
a imaju isto ime, nastaju problemi.
Jedan od načina da se (naizgled) uspe je sledeći:
USE C:ĐTAMOĐBaza NEW
USE Baza ALIAS ovde NEW
Recimo, _BROWSE ()_ će raditi.
_REPLACE Baza -> podatak With Ovde -> podatak_ neće.
Pa još ako se otvore indexi...
Ima li neko sa ovim iskustva ?
clipper.151djelovic,
> Ipak, s obzirom da ti imas i druge elemente u vidu uvazavam
> tvoje argumente za odlaganje otvaranje VO teme.
Sezamova pravila su relativno jasna: čim se pokaže veće interesovanje za
nešto, otvara se tema. Za sada ti uslovi nisu ispunjeni. Tko zna, možda Visual
Objects 1.x ispadne toliko bagovit da se svi odlučimo da sačekamo verziju 2.x,
koja će izaći tek 1996? :)
clipper.152d.petrovic,
> USE C:ĐTAMOĐBaza NEW
> USE Baza ALIAS ovde NEW
>
> Recimo, _BROWSE ()_ će raditi.
> _REPLACE Baza -> podatak With Ovde -> podatak_ neće.
Navedi punu putanju do obe baze
clipper.153stosic,
>> Windows editor generise kod za KeyDown event i to bi trebalo da bude
>> regularan nacin.
>
> Da, bio bi ;) kada bi radio... Koliko sam uspeo da isprobam, keydown
> metod se prosto nikada ne poziva?
Kao sto rekoh, trebalo bi! Iako CA tvrdi da se KeyDown event ne salje
samo za DataWindow, cak ni kroz Dispatch metod (za DialogWindow) nisam
ulovio WM_KEYDOWN.
Brz izlaz iz prozora moze da se resi tako sto postavis fokus na npr.
"Izlaz" push button.
clipper.154dr.grba,
>> Zanimljivost - RadioButtonGroup ne prima u kontroli vise od
>> 5 (pet) RadioButton-a.
Ako je tehničko oraničenje, onda je krajnje blesavo. Ali, istini za
volju, da li je u dobroj organizaciji interfejsa potrebno više od 5
opcija u jednoj grupi?
BTW, zna li ko aktuelnu cenu VO od naših dilera?
clipper.155bceklic,
Uporno pokusavam da aktiviram error handler unutar rutine za
stampanje (begin seq/recover using/end unutar while do petlje za ispis)
ali mi nikako ne uspeva. Probao sam da stampam liniju po liniju a zatim
i karakter po karakter ali nije dolazilo do aktiviranja mog error handlera.
Pre stampanja naravno postavljam svoj handler i sacuvam originalni (koji
kasnije ponovo aktiviram). Ako ne postavim svoj pri npr. namernom iskljucenju
stampaca pri stampanju aktivira se originalni sa porukom TERM 0 (ovde je
vec bila spomenuta).
Koje je resenje ovog problema?
POzdrav!
p.s Stampa se proizvoljni string (iz memoedit-a)
clipper.156jolicm,
>>> Koje je resenje ovog problema?
Rešenje problema je upravo u begin sequence, recover, end bloku i svom
errorhendleru.
Ja svaki ispis na štampač rešavam u tom sklopu i sve šljaka bez problema,
jedino kod testiranja ispisa ukinem moj kodni blok.
To MORA da radi. Verovatno si Ti nešto pogrešio. Onako kako si opisao izgleda
koncepcija ok. ali mora nešto da ne štima baš kod tebe.
Zato pošalji tvoj error blok i taj deo za štampanje, pa ću ti kazem gde je
greška.
clipper.157bpekic,
Ja nabavih neki dan za ukupno 13 dinara (1 din po disketi)
BTW zna li neko nesto o literaturi za VO?
clipper.158mbiresev,
>> Navedi punu putanju do obe baze
Probao sam i to. Ne prolazi.
clipper.159bjirecek,
Problem je malo "dublji". Ja sam morao da čačkam ■˛i brljam po
ERRORSYS.PRG da bi, konačno, cela stvar proradila. (5.01, na 5.2 nikad
nisam prešao) Ako te interesuju detalji, morao bi da ozbiljnije pogledam.
Branko
clipper.160arazumenic,
-> USE C:ĐTAMOĐBaza NEW
-> USE Baza ALIAS ovde NEW
Pa mora ovako. Pazi, ime obe datoteke ti je isto (Baza). Ako ne navedeš
alias, pri otvaranju datoteke alijas se automatski daje isti kao i naziv
same datoteke. Zato je program i buni.
Saša
clipper.161zzk.,
>>> Navedi punu putanju do obe baze
>
> Probao sam i to. Ne prolazi.
Ovaj problem se javlja i u radu sa DBU, vjerovatno zato sto automatski
po otvaranju dodjeljuje ALIAS po imenu baze.
Probaj zadati ALIAS pri otvaranju obje baze.
P.S.
Sto se tice putanja, dovoljna je relativna (u odnosu na default dir),
za baze na default direktoriju - samo naziv.
clipper.162dr.grba,
>> Ja nabavih neki dan za ukupno 13 dinara (1 din po disketi)
>>
>> BTW zna li neko nesto o literaturi za VO?
Ne interesuje me cena kod pirata, već kod dilera. Pod ovim ne baš
lepim, ali uobičajenim izrazom smatram one koji prodaju legalne kopije
softvera. Znaš, odavno sam naučio da se piratskom kopijom programa ne
stiže jako daleko ili je cena stizanja do cilja previsoka.
Znaš ono: "Što ne platiš na mostu, platićeš na ćupriji."
A što se divlje kopije tiče, ona mi je već na putu i bez tih 13 dinara,
osim cene ture pića koju dugujem nabavljaču (pozdrav istom, pošto čita
ovo). Razlog nabavke je banalan, i nema veze sa aktivnim korišćenjem
istog. Hoću samo da se informišem o paketu. Da živim na trulom zapadu,
otišao bih kod distributera i dva sata ga davio da mi pokaže sve što
me interesuje i da mi odgovori na 1500 pitanja. Ili bih već izboksovao
neku prezentaciju. Ili bih se informisao na Sajmu (xaxaxaxa! (((: )...
A ako budem hteo da radim sa paketom VO, naći ću način da ga kupim
legalno. E, zato sam pitao pošto je.
clipper.163stosic,
> BTW zna li neko nesto o literaturi za VO?
U 3rd Party Vendors Help-u pogledaj (ako vec nisi) temu Books and
Publications. Po knjizarama (u Torontu) ih jos nema.
clipper.164snemcev,
>> Sezamova pravila su relativno jasna: čim se pokaže veće interesovanje
>> za nešto, otvara se tema.
Amandman: osim ako se pokaže veće interesovanje za sex, kada se tema ne
otvara. ;)
clipper.165snemcev,
>>>> BTW, zna li ko aktuelnu cenu VO od naših dilera?
>>
>> Ja nabavih neki dan za ukupno 13 dinara (1 din po disketi)
Pitanje se odnosilo na zvanične dilere, a ne na pirate.
clipper.166snemcev,
>> Ako otvorim različite datoteke (dbf) koje nisu u istom direktorijumu,
>> a imaju isto ime, nastaju problemi.
Koristi aliase.
USE \Ovde\Ovde ALIAS Trt NEW
USE \Tamo\Ovde ALIAS Mrt NEW
clipper.167bpekic,
Drugar mi rece da se pre mesec dana raspitivao po BGD i da je kod firme
CET (skadarska ulica) dobio obavestenje da je cena oko 900 DM.
Ja licno ih nisam zvao.
clipper.168bceklic,
> Resenje problema je upravo u begin sequence, recover, end
> bloku i svom errorhendleru.
> Ja svaki ispis na stampac resavam u tom sklopu i sve sljaka bez
> problema, jedino kod testiranja ispisa ukinem moj kodni blok.
> To MORA da radi. Verovatno si Ti nesto pogresio. Onako kako si
> opisao izgleda koncepcija ok. ali mora nesto da ne stima bas
> kod tebe.
> Zato posalji tvoj error blok i taj deo za stampanje, pa cu ti
> kazem gde je greska.
Otprilike ovako:
----------------------------
bSave_Eb=ErrorBlock({|oVar| Print_Handler(oVar)}) // Moj error hendler
// Ovde ide inicijalizacija printera
Do While
Begin Sequence
\
If Isprinter() \
\- U ovom delu moze doci do greske!
** Ovde ide ispis /-
/
EndIf /
/
Recover Using oVar
// Ovde se vracam iz error hendlera sa break oVar
End Sequence
EndDo
// Ovde resetujem printer i vracam ispis na ekran
ErrorBlock(bSave_Eb) // Stari error handler
---------------------------
Uglavnom je ovo pojednostavljena sema rasterecena od nebitnih detalja
za sam ispis. Inace funkcija Isprinter() cesto vraca .f. cak i kad mi je
printer ukljucen i kada bi stampanje trebalo da ide ok. MOguce da je u
pitanju pun bafer stampaca. Ovo sam otkrio ubacivanjem jednog else u
IsPrinter() if petlju.
POzdrav!
clipper.169nbatocanin,
> Uporno pokusavam da aktiviram error handler unutar rutine
> za stampanje (begin seq/recover using/end unutar while do
> petlje za ispis) ali mi nikako ne uspeva.
Garant nešto grešiš. Pošalji kod pa da vidimo.
clipper.170dranko,
Prilikom startovanja jedne aplikacije pisane u clipperu na racunaru 486DX2/66
javlja se sledeca poruka:
RUN TIME ERROR R6003
-INTEGER DIVIDE BY 0
Ako se ista aplikacija startuje na sporijim masinama, radi bez problema.
Kod 486DX2/66 ako se u BIOS SETUP-u iskljuci intrni erni kes ili racunar radi
u ne-turbo modu, aplikacija radi i poruka o gresci se ne javlja.
Molim one koji su mozda imali neka slicna iskustva ili znaju u cemu
je ovde problem da mi pomognu.
clipper.171dejanr,
>> Al to nije vazno, šalji taj source ... :)
Program koji računa datum Pravoslavnog Vaskrsa, za zadatu godinu.
Autor programa je Dragiša Krsmanović (dragisak):
main(argc,argv)
int argc;
char *argv[];
{
int god, dan, i, j, k;
char mesec[10];
if (argc!=2) printf("Upotreba: uskrs godina"), exit(0);
if ((god=atoi(argv[1]))<=0) printf("Greška!"), exit(0);
i = god % 19 ;
j = god % 4 ;
k = god % 7 ;
i = ((19*i)+15) % 30 ;
j = (2*j + 4*k + 6*i +6) % 7 ;
dan = 4 + i + j ;
if ( dan<=30 )
strcpy(mesec,"aprila") ;
else
dan -= 30, strcpy(mesec, "maja");
printf("Pravoslavni Uskrs je po novom kalendaru %2.2d. %s %4.4d. godine",
dan, mesec, god);
}
clipper.172dr.grba,
>> Prilikom startovanja jedne aplikacije pisane u clipperu na racunaru
>> 486DX2/66 javlja se sledeca poruka:
>> RUN TIME ERROR R6003
>> - INTEGER DIVIDE BY 0
Ovo sam apsolvirao:
Source je pisan u Clipperu S'87. Rešenja nema na nivou pisanja
programa. Ako se ne može prekompajlirati u Clipperu 5.x, jedino
rešenje jeste da isključiš turbo prilikom ulaska u program. Kada
jednom uđeš u program, možeš da vratiš turbo.
Na grešku sam bio upozoren od strane jednog iskusnog kolege, ali joj
nisam pridavao značaja sve dok nisam dobio demo verzije nekih
programa, pisane u S'87.
Inače, dotični je, kao registrovani korisnik paketa u Nemačkoj,
zahtevao od nemačkog zastupnika Nantucketa objašnjenje. Dobio je neki
opskuran odgovor koji nije razumeo ni onaj ko ga je dao, a kao rešenje
je sugeriran upgrade na Clipper 5.0 (:
Uzrok je, najzad si i sam pomenuo, neka kvaka sa kešom na 486 (sad,
jel' interni ili eksterni, ne znam)...
Ako neko zna način da se drugačije prebrodi ova bubetina (ili makar da
je do kraja objasni), bilo bi lepo.
clipper.173dr.grba,
Kad već pričamo o bubetinama i Clipperu...
Zove me drugar pre nekoliko dana telefonom i kaže da na jednoj mašini
neće da radi Clipper program koji već pouzdano radi kod četiri
korisnika, kod programera i na njegovoj mašini (od 286 do 486).
Program prosto odbija i da startuje.
Kažem mu da digne čistu mašinu, da ubaci SET CLIPPER... klasični
saveti kojih biste se svi vi setili... Ne pomaže...
Sutra se javlja i kaže da neće da rade ni test primeri, demo
programi... "Jel' radi DBU?", pitam. On stavi DBU (Clipper 5.2d)...
"Ne radi!"... Korisnik kose čupa, ovaj očajan, ja ne znam da mu
pomognem, pogotovo ne putem telefona.
Sledećeg dana se ovaj opet javlja i kaže da je nazvao firmu XXX od
koje je mašina kupljena pre dve godine (od kojih je godinu i po
stajala u kutiji...). Da ne pominjem ime firme, tek - jedna od onih
što imaju kolorne oglase preko cele stranice Računara. Tip s one
strane žice je odmah pozitivno reagovao, nešto u stilu: "Zar je ostalo
još tih ploča kod korisnika? O, Bože! Pa svi su već reklamirali i
dobili zamene još odavno!"
Sve u svemu, ispostavilo se da je dobavljač ušao u pogrešnu garažu u
Singapuru, Koreji, Tajvanu ili gde već i tamo kupio brdo falš 386DX/40
ploča...
Eto vraga! Radi Norton, radi Win, radi ovo, radi ono... Ne radi
Clipper. 'Ajd' ko je stručnjak da objasni. Ovo je luđe od struje (:
ali je činjenica ):
********************
(Navodno, firma XXX priznaje tu grešku i posle garantnog roka, ako se
kupovina dokaže papirima. Bude li ovako, objaviću ime firme.)
clipper.174mkurtes,
>CA-VO cena kod dilera
Zvao sam CET pre nego sto sam nabavio piratsku verziju i zvanicna cena
je 1.190,- DEM (za DIN *1.7 a na Fa - za firme *2.1)
Informacija je od pre 15-tak dana.
Inace su piratske verzije kod nas 1.5 dinara po disketi.
clipper.175bulaja,
│Ne interesuje me cena kod pirata, već kod dilera. Pod ovim ne baš
│lepim, ali uobičajenim izrazom smatram one koji prodaju legalne kopije
│softvera.
└───
Cena kod CET-a je bila nekih 1.200 DEM (za plaćanje preko računa puta
2.x - ne znam koliko je sada to x:) za CA-Visual Objects Pre-Release
verziju sa besplatnim upgrade-om na verziju 1.0. Ne znam da li još uvek
primaju uplate po toj ceni, ali ako primaju (što je moguće, s obrizom da
kod njih još uvek nije stigla konačna verzija 1.0x:) to je jako dobra
prilika koju ne bi trebalo propustiti (naravno ako se uopšte planira
kupovina originalne verzije:). Ta pre-release verzija je napolju koštala
oko 400 USD (sa free upgrade-om), a pošto se konačna prodaje za 800 USD
(list price), realno je očekivati da će i kod CET-a cena konačne 1.0
verzije biti otprilike duplo veća (znači između 2.000 i 2.500 DEM).
clipper.176bulaja,
**** new file ****
MSDOS - R:\CLIPPER
----------------------
fncky202 a01 301548 FUNCky v2.02: konačni protected mode patch za FUNCky #1
fncky202 a02 297834 FUNCky v2.02: konačni protected mode patch za FUNCky #2
2 file(s) 585 kb
Date: May 10, 1994
To: All FUNCky users
Re: Protected mode FUNCky version 2.02
From: Dirk Lesko, dLESKO Inc.
Here is the final version of FUNCky version 2.02 that contains full
protected, real and dual mode support. Please read the enclosed list
of functions that will not be converted to protected mode for various
reasons. This list is small, and most likely won't affect your code.
<Thanks to aquarius>
clipper.177zkrstic,
>> Eto vraga! Radi Norton, radi Win, radi ovo, radi ono... Ne radi
>> Cliper. 'Ajd' ko je stručnjak da objasni. vo je luđe od struje (:
>> ali je činjenica ):
Jedan od ludjih primera koji smo Banex i ja na Kipru
imali je situacija kada se ne stavi hladnjak & ventilator na
AMD 486DX2-66
Clipper program počinje, nakon nekog vremena da
izbacuje greške! Da, lepo uđe u ERRORSYS, prijavi koješta u
nekoj liniji i tako dalje, bla, bla...
A da stva bude lepša, upravo smo tada razvijali neko
čudovište od preko 2 mega sorsa, tako da takve greške,
nepoznate prirode su krajnje nepoželjne. Ko će još u
kompjuterskoj firmi da otvara mašinu kad je bug u programu
tako očigledan... ;) Ali avaj, kada mi je izbacio glupost u
našoj Clipper biblioteci u funkciji od 3 i po linije
kompajliranoj pre Hrista a izvršenoj milijardu puta, onda
posumnjasmo ;) A na AMD-ovim 486 procesorima lepo srpski piše
"Do not use without heat sink and fan" ili tako nekako ;))))
Zkr ;)
clipper.178peacock,
####>> BTW zna li neko nesto o literaturi za VO?
####
#### Ne interesuje me cena kod pirata, već kod dilera. Pod ovim ne
#### baš
Za VO se ne primaju uplate jer još nije počela prodaja za Evropu.
Bićeš obavešten na vreme.
clipper.179bceklic,
Napisao sam svoju univerazalnu funkciju za browsing u slucaju da
je korisnik pogresio pri upisu vrednosti u get sistem. Ta funkcija se
poziva pomocu valid opcije. Zelim da izvedem filtriran prikaz baze u
tbrowse-u. Mojoj funkciji treba da prenesem tri kodna bloka za kontrolu
kretanja kroz tbrowse. Kako da toj funkciji prenesem neke promenjljive
(u okviru kodnog bloka) koje su trenutno deklarisane kao local?
Npr. Korisnik unese neki podatak a ja na osnovu tog podatka i nekog
prethodno definisanog (kao local) zelim da izvedem filtriran prikaz baze.
Bez filtriranja citav posao je bio ok. Dolazi sam do trenutno aktivne
promenjljive u get sistemu (nisam je prenosio kodnim blokom).
Da li je moguce resenje a da se ne menja tip promenjljive?
Sve radi ok kada uslovi u kodnim blokovima za tbrowse sadrze uslove
sa konstantama (npr.{|| Obelezje > 0 } ). Problem je u tome kako da umesto
konstnte prenesem varijablu kao { || Obelezje > Var }. U mom slucaju Var
je deklarisana kao local.
Pozdrav!
clipper.180mdrazic,
> sa konstantama (npr.šđđ Obelezje > 0 ć ). Problem je u tome kako da
> umesto konstnte prenesem varijablu kao š đđ Obelezje > Var ć. U mom
> slucaju Var je deklarisana kao local.
Dole gde se izvršava blok se gornji local ne vidi. Možeš varijablu
deklarisati kao private, a možeš i (ukoliko Var ne menjaš u donjim
modulima da umesto Var kao varijable preneseš konstantu koju ona
sadrži, recimo
Temp := & 'šđđ Obelezje > "' + Var + '" ć'
pa je blok Temp (koji prosleđuješ kompiliran sa vrednošću Var a ne
sa referencom na nju.
clipper.181bceklic,
> Dole gde se izvrsava blok se gornji local ne vidi. Mozes
> varijablu deklarisati kao private, a mozes i (ukoliko Var ne
To mi je bilo jasno. Zeleo sam resenje bez deklarisanja promenljive
kao private. Na kraju sam se odlucio da ipak uvedem tri private promenljive
za definisanje granica za filtriranje u tbrowse-u.
> menjas u donjim modulima da umesto Var kao varijable preneses
> konstantu koju ona sadrzi, recimo
>
> Temp := & 'sdd Obelezje > "' + Var + '" c'
>
> pa je blok Temp (koji prosledujes kompiliran sa vrednoscu Var a
> ne sa referencom na nju.
Da li koristis slican princip pri validaciji unetih podataka u
get sistemu?
POzdrav!
clipper.182dpredovic,
Subject: GPF
*#!#&*& six i clipper sa njim! Taman kada sam se ponadao da će
sve to da fercera kako treba... puffff...
Jedini pouzdan način da se koliko-toliko umilostivi six da ne počne
sa vmif zezanjima je da se sve radi u protected modu. ALI... počeh da
se zezam sa objectdb bibliotekom. Ovako, na papiru (tj. u ng-u) izgleda
jako lepo - referentni integritet, multiuser transakcije, etc, etc...
Problem je što ona zahteva jaaako mnogo clipperovih resursa. Elem,
umesto čuvenog vmifa, eto novog veselja - malo malo pa GPF.
Pošto me je sixovih brljotina već pomalo dosta, sve to lepo prepišem
za comix & guess what? Browseri koji su se pre vukli - počeli da lete,
indexacija barem 10-15% brža, GPF pod blinkerom retko, a pod exospaceom
još nisam video.
Jedini problem u celoj stvari je što sam izgubio FPT/SMT memo polja,
i vratio se na DBT. Još kada bi se nabavio flexfile, eto sreće...
PS. Pošto većina ljudi još uvek radi u realnom modu:
Ne bi da vračam, ali ne verujem da ono što se u protected modu izazove
GPF u realnom modu može da radi kako treba. Rezultat u realnom modu je
brljanje po memoriji, koje može da se ispolji ko zna gde, ko zna kad,
ko zna kako...
clipper.183nbatocanin,
> ErrorBlock(bSave_Eb) // Stari error handler
> ---------------------------
>
> Uglavnom je ovo pojednostavljena sema rasterecena od
> nebitnih detalja za sam ispis. Inace funkcija Isprinter()
> cesto vraca .f. cak i kad mi je printer ukljucen i kada bi
> stampanje trebalo da ide ok.
Izgleda da je greška u proceduri za obradu greške.
IsPrinter zaista nije baš idealna za upotrebu, bolje je koristiti
neku alternativnu funkciju ili iz neke biblioteke ili napisati svoju
pomoću odgovarajućih funkcija BIOS-a.
clipper.184nbatocanin,
>>> RUN TIME ERROR R6003
>>> - INTEGER DIVIDE BY 0
Jednom sam čuo da se ovo izbegava kompajliranjem na mašini na kojoj
se program i izvršava.
clipper.185nbatocanin,
> kretanja kroz tbrowse. Kako da toj funkciji prenesem neke
> promenjljive (u okviru kodnog bloka) koje su trenutno
> deklarisane kao local?
Ako sam te dobro razumeo, muči te tzv. "rano izračunavanje" kodnih
blokova.
Rešenje za to je:
cb := &("{|| x < " + Str(n) + "}")
tako se dobija cb := {|| x < 5 }, za x = 5, i nema referisanja na
promenljive.
clipper.186bceklic,
Funcija koju koristim za pomeranje pointera u tbrowse-u
(funkcija koju poziva skipblock kada je pritisnut neki od Up Down
PgUp PgDw tastera) prilikom filtriranja ne uspeva da se snadje sa
PgUp i PgDw tasterima. Pokusao sam da iskoristim funkciju iz
Spence-a ali se problemi ponavljaju. Naime kada je pritisnut PgUp
taster ceo prikaz se zamrzne sa pokazivacem na prvom zapisu. Uopste
cini mi se da funkcija iz Spence-a ne obavlja posao kako treba u
svim slucajevima. Da li je neko imao slicne probleme i kako ih je
resio? Sve radi ok kada se ne vrsi filtriranje.
POzdrav!
clipper.187bceklic,
> Izgleda da je greska u proceduri za obradu greske.
U mojoj ili u njihovoj?
Moja funkcija ni ne dobije kontrolu prilikom greske?
> koristiti neku alternativnu funkciju ili iz neke biblioteke ili
Preporuka?
clipper.188bceklic,
> Ako sam te dobro razumeo, muci te tzv. "rano izracunavanje"
> kodnih blokova.
> Resenje za to je:
> cb := &("{|| x < " + Str(n) + "}")
> tako se dobija cb := {|| x < 5 }, za x = 5, i nema referisanja
> na promenljive.
Ipak sam se odlucio za definisanje private varijabli. Trudim se da
koliko mogu izbegnem resenja koja koriste makroe. Koliko sam upoznat
makro se razvija samo prvi put pri izvrsavanju. Kasnije bi on koristio
ovu istu konstantu (pri ponovnom pozivu ove funkcije) sto meni ne
odgovara, zar ne?
POzdrav!
clipper.189bceklic,
> obavlja posao kako treba u svim slucajevima. Da li je neko
> imao slicne probleme i kako ih je resio? Sve radi ok kada se ne
> vrsi filtriranje.
U medjuvremenu sam resio problem. Nekoliko dodatnih uslova u
funkciji za pomeranje i sve sada radi ok no imam novo pitanje...
Upotreba relacija. Kada i koliko upotrebljavati relacije. KOliko
upotreba relacija usporava rad sa bazama?
Nesto nevezano za relacije. Pri inicijalizaciji mog programa
automatizovao sam otvaranje baza kao i postavljanje odgovarajucih
indexa (podaci se nalaze u nekoliko indexnih promenjljivih). Tako
da odmah na pocetku sve potrebne radne oblasti budu otvorene i svi
indexi postavljeni. Da li je ova metoda losa (zbog usporenja rada
programa usled velikog broja aktivnih oblasti) ili treba po potrebi
da otvaram oblasti postavljam indexe, zatvaram oblasti itd...?
clipper.190szeman,
>> Eto vraga! Radi Norton, radi Win, radi ovo, radi ono... Ne radi
>> Clipper. 'Ajd' ko je stručnjak da objasni. Ovo je luđe od struje (:
>> ali je činjenica ):
Davno sam radio sa jednom prastarom XT pločom, program radi nekoliko minuta
kako treba i onda me ispsuje sa "Internal error..." (C '87) Poteram ja Checkit
(ili već nešto slično) i stavim da ciklično testira memoriju. Sve prodje lepo,
al' drugi put prijavi gomilu stvari te parity ovo, pa ono, pa bad chip...
Problem verovatno leži u napajanju ili nekom "kuršlusu" na ploči.
Rešenje - kontejner ;)
clipper.191milanv,
Dva pitanja u vezi Browse().
- Da li postoji mogućnost (ma znam da postoji:) korišćenja
dugižih polja nego što mogu da stanu u predviđeni prostor za
Browse()? Mislim na nešto kao PICTURE "čS30".
- Kako se najlakše aktivira MemoEdit() iz Browse()?
clipper.193jolicm,
bceklic. Pitanje za tebe, Da li je onaj primer što si poslao ovde sve što si
napisao oko obrade grešaka u tvom programu. Meni ovo miriše na to da Ti ni
nemaš napisan tvoj errorhendler.
nbatocanin ti lepo napiše da je izgleda greška u proceduri za obradu greške i
naravno misli da je greška u TVOJOJ proceduri, koju nisi ni poslao da je
vidimo. Ponavljam ti da je onaj primer što si poslao dobar, ali da FALI
funkcija (TVOJ) ErrorSys. Da li si napisao tvoj errorhendler, ako jesi pošalji
da vidimo, ako nisi onda je to i odgovor. U primeru lepo napišeš da obradu
greške preuzima tvoja funkcija, a funkcije nigde.
E sad preporuka. Ako ne zeliš da ti obrađuješ greške onda samo napišeš:
Function mojErrorh(objErr)
Break objError
I to će ti vraćati kontrolu u tvom primeru.
clipper.194jolicm,
Mislim, (siguran sam) da ti je loše, čak izrazito loše rešenje da ti uvek budu
sve datoteke otvorene. To je dobro ako imaš 2-3 datoteke, ne moraš da vodiš
računa u svom programu o mnogo čemu, Ali kod više datoteka uzmi u obzir da
svaka radna oblast koju koristiš guta memoriju, da svaki indeks guta memoriju,
da clipperov VMM nije pouzdan (iskustvo drugih) da kada nestane struje (nedo
bog restrikcije) ti pucaju svi indeksi i svi zapisi koje računar nije uspeo da
isprazni iz bafera. A tek kada se radi u mrezi, tek onda ne smeš zauzeti sve
datoteke .:)
clipper.195dzoric,
>> Mislim, (siguran sam) da ti je lose, cak izrazito lose resenje da ti
>> uvek budu sve datoteke otvorene...
Hm, ne bih bio toliko siguran da je lose. Stvar je koncepcije programa
da li zelis
clipper.196dzoric,
Sorry, pisao sam on-line pa sam zbog jako lose veze zabrljao
prethodnu poruku.
> Mislim, (siguran sam) da ti je lose, cak izrazito lose resenje
> da ti uvek budu sve datoteke otvorene.
Ne bih bio toliko siguran da je to toliko lose. Oba sistema
imaju svoje prednosti i mane. Stvar je koncepcije aplikacije
kojem sistemu treba dati prednost. Ako su tabele zavisne jedna
od druge bolje ih je imati sve otvorene, narocito ako su
azuriranja transakciono orijentisana jer transakcija mora
trajati sto krace. Ako su u pitanju tabele koje se retko
koriste mozes raditi Open-Close.
>> Ali kod vise datoteka uzmi u obzir da svaka radna oblast
>> koju koristis guta memoriju, da svaki indeks guta memoriju
Ne bih rekao "guta" memoriju. Svaki FILE HANDLE odvlaci samo
nekoliko bajtova memorije (mrzi me da trazim koliko tacno).
Ako ti je mnogo da stavis u config.sys FILES=100 onda
predji na SIx ili Comix.
>> da clipperov VMM nije pouzdan (iskustvo drugih)
To je apsolutno tacno ali nije dokazano :)
Lomi se najvise sa SIx-om 1.5, ali to nema veze koji
ce se sistem koristiti.
>> da kada nestane struje (nedo bog restrikcije) ti pucaju svi
>> indeksi i svi zapisi koje racunar nije uspeo da isprazni iz bafera
A kako ti kod sistema OPEN-CLOSE resavas ovaj problem ???
>> zapisi koje racunar nije uspeo da isprazni iz bafera. A tek
>> kada se radi u mrezi, tek onda ne smes zauzeti sve datoteke
Ovo mi definitivno nije jasno ???
clipper.197snemcev,
U Nanfor-u 3 nema funkcije FT_FLOPYTST (ili kako se već zvaše).
Slučajno ili namerno?
clipper.198bceklic,
> bceklic. Pitanje za tebe, Da li je onaj primer sto si poslao
> ovde sve sto si napisao oko obrade gresaka u tvom programu.
> Meni ovo mirise na to da Ti ni nemas napisan tvoj errorhendler.
:))))
Naravno da imam. :) Vidi se u samom codu koji sam poslao kako
postavljam error handler ({|oE|Print_Handler(oE)} samu funkciju
nisam naveo).Citava prica je bila o tome da taj MOJ handler ne
preuzima kontrolu (odnosno kontrola mu se ne predaje). Sam hendler
je nezanimljiv i za testiranje sam u njega ubacio jedan alert box
koji signalizira da printer nije u redu i daje opcije korisniku da
nastavi ili prekine rad. Moj problem je da se ta funkcija uopste ne
pozove u slucaju da printer nije ok.
> nbatocanin ti lepo napise da je izgleda greska u proceduri za
> obradu greske i naravno misli da je greska u TVOJOJ proceduri,
> koju nisi ni poslao da je vidimo. Ponavljam ti da je onaj
> primer sto si poslao dobar, ali da FALI funkcija (TVOJ)
> ErrorSys. Da li si napisao tvoj errorhendler, ako jesi posalji
> da vidimo, ako nisi onda je to i odgovor. U primeru lepo
> napises da obradu greske preuzima tvoja funkcija, a funkcije
> nigde.
Kao sto rekoh nisam je poslao sa onim kodom jer problem nije bio
sa njom vec u tome sto joj clipper ne predaje kontrolu iako sam pre
toga pruzeo error hendler. Da nisam imao svoju funkciju imao bi
gresku pri kompajliranju, zar ne?..;)
> E sad preporuka. Ako ne zelis da ti obradujes greske onda samo
> napises: Function mojErrorh(objErr)
> Break objError
Jasno. Ovaj deo sadrzi i moj hendler u slucaju da treba vratiti kontrolu.
POzdrav!
clipper.199bceklic,
> Ne bih rekao "guta" memoriju. Svaki FILE HANDLE odvlaci samo
> nekoliko bajtova memorije (mrzi me da trazim koliko tacno).
> Ako ti je mnogo da stavis u config.sys FILES=100 onda
> predji na SIx ili Comix.
Slazem se sa tim da kolicina memorije koju zauzima svaka oblast
moze da se tolerise na racun komfornijeg programiranja. Citav proces
sam uveo zbog automatizacije posla sa .dbf i .ntx fajlovima. Naime
pri pokretanju programa sam program proveri postojanje potrebnih
dbf i ntx fajlova i ako ne postoje ili ako je program neregularno
zavrsen izvrsi potrebno kreiranje i reindexiranje s tim da automatski
izvrsi i otvaranje svih dbf i odgovarajucih ntx datoteka.
Sto se tice pucanja indexa, koliko se meni cini pri nestanku struje
moze doci do ostecenja samo na indexima trenutno selektovane baze ili
one u koju se vrsi indirektan upis preko aliasa. Isti slucaj
je kada se koristi open-close princip?
Sta kazu ostali? Koji princip koristite?
clipper.200mdrazic,
> Da li koristis slican princip pri validaciji unetih podataka u
> get sistemu?
Za konkretno pitanje je u get sistemu jednostavnije
č .., .. get Obelezje .... valid Obelezje > 0
od pravljenja nekih kodnih blokova, zar ne?
Odgovor na gornje pitanje zavisi koliko je komplikovana
validacija get polja i šta sve radi. U svakom slučaju
prevođenje kod bloka (pomoću makroa &) je beznačajno
kratko u odnosu na samo getovanje podataka pa ne smeta
bar što se brzine tiče.
Kod mene se u validaciji retko sretne ispisan kodni blok.
Većinu stvari validiram uz pomoć nekoliko svojih funkcija
spretno prilagođenih za korišćenje pri validaciji.
Jedan prost primer:
True() --> .t.
Funkciju pozivaš u when i/ili valid da ti nešto odradi tako
što prvo stačuna argumente sa kojima ništa dalje ne radi.
č .., .. get Obelezje picture '99999'
when True( Poruka('Samo pozitivni brojevi, molim!') ) ;
valid Obelezje > 0
Milan
clipper.201mdrazic,
> Upotreba relacija. Kada i koliko upotrebljavati relacije. KOliko
> upotreba relacija usporava rad sa bazama?
Ako ti uvek za svaki 'parent' zapis trebaju svi 'child' zapisi
onda nema usporenja. Ako ne treba, radi se nepotreban posao
seekovanja na 'child' zapise koji ti ne trebaju.
Ja retko eksplicitno koristim set relation komandu. Više
volim sam sa tražim CHILD->( dbseek( Kljuc Š,.t.Ć ) ) kada treba.
> automatizovao sam otvaranje baza kao i postavljanje odgovarajucih
> indexa (podaci se nalaze u nekoliko indexnih promenjljivih). Tako
> da odmah na pocetku sve potrebne radne oblasti budu otvorene i svi
> indexi postavljeni. Da li je ova metoda losa (zbog usporenja rada
> programa usled velikog broja aktivnih oblasti) ili treba po potrebi
> da otvaram oblasti postavljam indexe, zatvaram oblasti itd...?
1. Deo svake tabele i deo indeksa se baferiše u memoriji tokom rada.
Što ih je više otvoreno, manje je mesta po tabeli pa aplikacija
sporije radi.
2. Kad sve otvoriš i radiš, radiš i nestane struje (ili padne sistem)
pre zatvaranja tabela, potencijalno je moguća mnogo veća šteta
nego da otvaraš kad ti nešto treba pa zatvoriš kad ti ne treba.
U mojim aplikacijama dok si u meniju sve je zatvoreno. Kad pokreneš
neki modul iz menija, za njega otvorim sve tabele i potrebne indekse
(pazi, potrebne, ne obavezno sve) a pri napuštanju modula sve to
lepo pozatvaram da bude urednije od moga stola, za sobu i da ne pričam :)
Milan
clipper.202nbatocanin,
> To mi je bilo jasno. Zeleo sam resenje bez deklarisanja
> promenljive kao private. Na kraju sam se odlucio da ipak
> uvedem tri private promenljive za definisanje granica za
> filtriranje u tbrowse-u.
Ovo ti nikako ne preporučujem: generalne rutine ćeš kasnije koristiti
na svakom ćošku, pa nije pametno koristiti ovakav (nepreporučljiv)
metod komunikacije.
> Da li koristis slican princip pri validaciji unetih
> podataka u get sistemu?
Zašto?
clipper.203dvesic,
>> Upotreba relacija. Kada i koliko upotrebljavati relacije.
>> KOliko upotreba relacija usporava rad sa bazama?
Umereno ih upotrebljavati. Veliki broj relacija primetno usporava
program (za svako dbskip() u parent oblasti, treba izvesti po jedno
seek u svakoj child oblasti). Broj do 4 mi se čini Ok.
>> indexi postavljeni. Da li je ova metoda losa (zbog usporenja
>> rada programa usled velikog broja aktivnih oblasti) ili treba
>> po potrebi da otvaram oblasti postavljam indexe, zatvaram
>> oblasti itd...?
Stvar ukusa i resursa. Ako je mali broj baza u pitanju, ovo rešenje
je ok. Ako je veliki broj baza ili mrežno okruženje, to će usporiti
rad programa.
clipper.204dvesic,
>> Sto se tice pucanja indexa, koliko se meni cini pri nestanku
>> struje moze doci do ostecenja samo na indexima trenutno
>> selektovane baze ili one u koju se vrsi indirektan upis preko
>> aliasa. Isti slucaj je kada se koristi open-close princip?
>> Sta kazu ostali? Koji princip koristite?
Ja koristim otvaranje po zahtevu : obično se na nivou jedne celine
(procedure) otvore sve baze i indeksi za tu i child procedure a na
njenom kraju se zatvore.
Što se indeksa tiče, ako nema baga ;) do korupcije indeksa će doći
samo ako je vršena izmena nad nekim od polja koja ulaze u indekse.
Ako se samo čitalo, indeksi ostaju OK.
clipper.205dvesic,
>> U mojim aplikacijama dok si u meniju sve je zatvoreno. Kad
>> pokreneš neki modul iz menija, za njega otvorim sve tabele ...
Ovo sam i ja hteo da kažem prethodnom porukom :)
clipper.206bceklic,
POtreban mi je neki pointer na temu kako klipper prenosi parametre
asm kodu. Uz clipper se dobija primer kako se radi ali je ocigledno pisan
za kompajliranje sa masm-om jer tasm izbacuje gomilu upozorenja. Ukljucna
datoteka sadrzi makroe za CLfunc,Clcode,CLret sto bi trebalo da bude sasvim
dovoljno za ok rad ali tasm nece ni da cuje. Ugradjivao sam yu font direktno
u clipper program pomocu asm funkcija koje sam pisao (za instaliranje i
resetovanje fonta). Sam problem sam resio bez problema jer nisam prenosio
nikakve parametre niti funkcije vracaju bilo kakve parametre. Samo sam
vodio racuna o tome da sacuvam stek i registre, ostalo je klasican asm kod
pri cemu su mi funkcije deklarisane kao private. Blinker takodje nije pravio
probleme. Za vracanje parametara za sada koristim _retNI() i sl.
Dakle, kombinacija Tasm,Blinker,EXTENDA.INC sa prenosenjem parametara.
Uzgred, da li neko ima ideju kako neterati Blinker da sav overley strpa u
OVL fajl a da sam EXE ne sadrzi overlay? POstavljajuci Section Into blinker
ipak ostavi jedan mali deo (oko 5 kb, mali exe program nisam siguran o cemu
se radi, sadrzi nekakvu tabelu(najverovatnije ukazuje na OVL))
POzdrav!
clipper.207bulaja,
│U Nanfor-u 3 nema funkcije FT_FLOPYTST (ili kako se već zvaše).
│Slučajno ili namerno?
└───
Nedostaje još nekoliko funkcija - do sada sam primeio da fali
FT_HandCount() (ništa strašno) i ceo skup FT_F* funkcija (za rad
sa tekst datotekama, ovo je već stvar koja se češće koristila).
Pretpostavljam da za FT_F* nisu stigli da naprave PM kompatibilnu
verziju (doduše takvu stvar više nema ni svrhe raditi osim kao RDD),
a ove druge su možda suviše prljave - ipak s obzirom da je FlopyTst
pisana u ASM, pokušaj da ulinkuješ verziju iz 2.1 (javi da li radi
u PM:).
clipper.208mdrazic,
> kojem sistemu treba dati prednost. Ako su tabele zavisne jedna
> od druge bolje ih je imati sve otvorene, narocito ako su
> azuriranja transakciono orijentisana jer transakcija mora
> trajati sto krace. Ako su u pitanju tabele koje se retko
Sigurno da pre početka transakcije moraš imati sve tabele otvorene
(i lokotiro šta treba!) ali ne moraju biti i tabele koje nemaju
veze sa poslom koji se trenutno radi. Na početku diskusije je
pomenuto rešenje da se sve tabele otvore na POžETKU aplikacije,
protiv čega su neki izneli svoje argumente protiv.
Milan
clipper.209mdrazic,
Evo nekih odgovora za probleme sa SIx-om.
Preko cele strane SuccessWare objavljuje otvoreno pismo gde se posipa
pepelom za ranije verzije i hvali novu verziju SIx Drivera.
Ukratko. Kažu da je verzija 1.0 bila čist hakeraj uz pomoć inverznog
inženjeringa Clipper koda da vide kako bi trebao da radi RDD sistem.
Pošto nisu imali želju ili vremena za inverzni inženjering VM sistema
nisu se ni javljale VM greške, ali je kod bio veći. Da bi smanjili
kod, od 1.1 su uveli korišćenje VM-a za alokaciju memorije. I od tada
SIx počinje da puca jer je to razotkrilo i druge greške pri projektovanju
celog sistema. RDD kada je konačno dokumentovan je ispalo da (treba da)
radi drugačije nego što su oni mislili, a bilo je kažu i drugih grešaka.
Osamnaest meseci su ispravljali bagove i krpili gde 'curi' sve dok nisu
ceo kod projektovali i napisali od početka poštujući specifikacije za
RDD i ostalo. Rezultat je verzija 2.0 (2.01) za koju trvde da je
žestoko testiraju pre završetka za razliku od ver 1.x koju su testirali
mnogo površnije.
Sada nude besplatno ko hoće SIx Driver na 30 dana na probu i uz to
besplatno HiPer-SIx RDD.
Izgleda da ih onaj Comix baš guši. (moja primedba)
Milan
clipper.210bceklic,
> Z .., .. get Obelezje picture '99999'
> when True( Poruka('Samo pozitivni brojevi, molim!') ) ;
> valid Obelezje > 0
Moje pitanje nije bilo dovoljno jasno. Kada sam spominjao validaciju
i kodne blokove nisam mislio na proste validacije. POkusacu da razjasnim
celu stvar....
Naime napisao sam univerzalne funkcije za dodavanje i brisanje podataka
iz neke baze. Ovim funkcijama se prenosi ime baze, komentari za get sistem
(njihov broj mora da odgovara broju polja), uslovi za valid get sistema
(u obliku kodnih blokova koji sadrze funkcije o kojima ce biti reci nesto
kasnije). Komentari i valid opcije se prenose kao indexiran promenjljive.
Funkcije za dodavanje i brisanje vrse isctavanje prozora u meni sistemu
na osnovu poznatih velicine (komentara za get, kao i duzine polja u bazi)
a potom uspostavljaju get sistem cije valid opcije sadrze prenete kodne
blokove kojima se kao argument prenosi promenjljiva koja se trenutno unosi.
Valid kodni blokovi najcesce sadrze pozive odredjenim funkcijama.
Obicno se radi o funkcijama koje vrse proveru jedinstvenosti kljuca pri
dodavanju ili provere postojanja nekog podatka pri brisanju. Ovo su
najednostaviji slucajevi. Cesto se desava da ove funkcije sadrze gomilu
uslova koje uneti podatak treba da zadovolji i sto je najvaznije omogucavaju
korisniku da ako pogresi moze lako da dodje do tacnog podatka.
Npr. Korisnik pokusa da unese neku vrednost. Funkcija izvrsi sve
jednostavnije provere i ukoliko nisu zadovoljeni svi uslovi pokusa da
pomogne korisniku da dodje to tacnog podatka. Tako se u nekim slucajevima
moze desiti da je potrebno omoguciti korisniku koji je uneo pogresan
podatak da browsuje odgovarajucu bazu po nekoliko uslova.
Citav ovaj sistem je dosta komplikovan i ide dosta u dubinu. Ukoliko se
prvi korak izvede kako treba kod za operaciju dodavanja ili brisanje podataka
bi mogao da bude veoma kratak. Definisu se odgovarajuce indexne promenjljive
i proslede funkciji.
Same funkcije vode racuna i o mnogim drugim stvarima a sustina svega
ovoga je pokusaj da se izbegne ponavljanje istog koda u mnogim delovima
programa sto je u clipperu tako cest slucaj.
Nadam se da sam sad bio malo jasniji....
Pozdrav!
clipper.211bceklic,
> Ja retko eksplicitno koristim set relation komandu. Vise
> volim sam sa trazim CHILD->( dbseek( Kljuc S,.t.C ) ) kada
> treba.
I ja koristim isti princip. Relacije do sada nisam ni
upotrebljavao. Ovaj nacin je brzi i nije nikakav problem za
izvodjenje (cak je i laksi)
> U mojim aplikacijama dok si u meniju sve je zatvoreno. Kad
> pokrenes neki modul iz menija, za njega otvorim sve tabele i
> potrebne indekse (pazi, potrebne, ne obavezno sve) a pri
> napustanju modula sve to lepo pozatvaram da bude urednije od
> moga stola, za sobu i da ne pricam :)
Dvoumio sam se izmedju tvog i principa koji trenutno koristim.
Kako vidim da vecina ovde koristi otvaranje po potrebi izvrsicu
potrebne korekcije. Bojim se da ce mi za to sada trebati dosta vremena
(projekat mi je odmakao)
POzdrav!
clipper.212bceklic,
> Stvar ukusa i resursa. Ako je mali broj baza u pitanju, ovo
> resenje je ok. Ako je veliki broj baza ili mrezno okruzenje, to
> ce usporiti rad programa.
Ajde da probamo da definisemo to "mali broj baza"? Koliki je
prosecni broj baza i indexnih fajlova u tvojim programima (naravno
orjentaciono, jer ovaj broj zavisi od velicine projekta)
Uzgred kako sam ja asm coder koji trenutno radi u cliperu
interesuje me na koji nacin organizujes pisanje programa? Da li
npr. za svaku stavku iz menija radis poseban .prg ili recimo za
svaki meni box (par opcija). Ja za sada koristim ovaj drugi princip,
pri cemu pojedniacni .prg bude oko 20k.
POzdrav!
clipper.213mileusna,
>> A kako ti kod sistema OPEN-CLOSE resavas ovaj problem ???
Ja posle svakog upisa pozovem DBCOMMIT(), a može i DBCOMMITALL(). U NG-u se
savetuje da se, pri radu u mreži, DBCOMMIT() poziva pre upotrebe UNLOCK komande
Što se tiče otvaranje datoteka, radim slično kao i mdrazic: tabele otvaram
tek kada se startuje deo programa u kojem će iste biti korišćene. Tako mi se
više sviđa, a i manja je šansa da se program slučajno izgubi u bezbroj baza i
indeksa.
clipper.214snowwhite,
Pomagajte drugovi, i to sto pre jer je hitno!
U ruke mi je pao R104, i u njemu Clipper savetnik.
Covek dao dobre ideje, ali ima jedna specificnost
koja nije obradjena.
Ja isto imam datoteku sifarnika i datoteku stanja
kao sto je u tekstu.Da se nepotrebno ne bi pojavlji-
vao naziv artikla na x mesta, naziv artikla se nalazi
samo u sifarniku (sto je i logicno), te je veza izvedena
preko sifre artikla.
E sada ono najvaznije.
Korisnik hoce da lista stanje magacina, i to po
abecednom redu, sto automatski onemogucava bilo
kakve relacije STANJE->ROBA. Sada nije ni to
problem vec ovo. U sifarniku se nalazi 3393(tacna
cifra) artikala , a na stanju je 800 artikala.
Covek nece da se zamara da gleda silne nuletine
u kolonama tabele stanja, vec hoce samo one
stavke koje se nalaze na Stanju.
Na pamet mi je padala ideja da se obrisu svi slogovi
koji se ne poljavljuju na stanju, ali to nije to.
P.S. Ukoliko nekoga cudi odnos artikala stanje/sifarnik
u pitanju je apoteka.Uz program isporucujem
gotov spisak lekova, a od apoteke zavisi koliko
ona ima lekova na lageru.
Koristim priliku da se zahvalim ljudima,koji su odvojili
malo slobodnog vremena da mi odgovore na moje prethodno
pitanje uvezi boja i fontova.
Snow.
clipper.215zkrstic,
>> Pretpostavljam da za FT_F* nisu stigli da naprave PM kompatibilnu
>> verziju (doduše takvu stvar više nema ni svrhe raditi osim kao RDD),
>> a ove druge su možda suviše prljave - ipak s obzirom da je FlopyTst
>> pisana u ASM, pokušaj da ulinkuješ verziju iz 2.1 (javi da li radi
Funkcije za rad sa text fajlovima, FTTEXT.OBJ iz Nanfor-a 2.1 rade,
( mala ograda, za sada, već skoro dve nedelje ) kod mene u radnji, znači arče
se u proseku 10 sati dnevno, vezane sa novim nanforom i onim CPMI.LIB-om koji
ide i ulinkovane sa EXOSPACE 1.0F. Tu su još i CA-Tools & Six 201. Da kucnem u
kukavicu... fdercera za sada. Tu i tamo sam primetio problem da mi tastatura na
jednom nodu malo luduje... ali pritisak na oba SHIFT-a rešava problem.
Pozdrav, Zkr
PS. Ako enkom treba taj FTTEXT, vičite ako ste ga obrisali.
clipper.216zkrstic,
Apropos teorije šta je starije kokoška ili jaje, ili ti kada otvarati baze,
na početku ili kada treba, evo malog priloga:
- sve baze se otvaraju na početku
- izuzetak koji potvrdjuje pravilo - pojedine (exclusive) lične ili ti
temp bazew otvaram kada mi trebaju
Kao prilog ovoj teoriji, postavljam jedno prosto pitanje: Ako uzmemo da
otvaram baze kada mi trebaju, program radi u mreži, šta kada neko zapne da radi
reindex ili kako nekom dati da radi pack ili slične operacije koje traže
exclusive pristup. Odgovor je semafor, ali probajte da razgrnete malo, nije ni
maaalo naivno rešenje. Najbezbolniji način je s početka, 'apsi sve exclusive,
uradi šta imaš pa uzmi shared. Ako neemože exclusive, uzimaj shared i to je to.
Nema potrebe za preteranim filozofiranjem.
Pozdrav, Zkr
clipper.217dvesic,
>> problem vec ovo. U sifarniku se nalazi 3393(tacna
>> cifra) artikala , a na stanju je 800 artikala.
>> Covek nece da se zamara da gleda silne nuletine
>> u kolonama tabele stanja, vec hoce samo one
>> stavke koje se nalaze na Stanju.
>> Na pamet mi je padala ideja da se obrisu svi slogovi
>> koji se ne poljavljuju na stanju, ali to nije to.
Nisam siguran da sam dobro shvatio, možda je ovako :
Jednostavno nad tabelama kreiraj indeks npr.
INDEX ON Upper(Naziv_Artikla) FOR Stanje <> 0
pa uradi Browse sa ovim indeksom aktivnim.
Ovim si poređao po abecedi, i elminisao one sa 0 stanjem. Ako je to
to, ok. Ako nije, pojasni mi malkice problem.
clipper.218dvesic,
>> otvaram baze kada mi trebaju, program radi u mreži, šta kada
>> neko zapne da radi reindex ili kako nekom dati da radi pack
>> ili slične operacije koje traže exclusive pristup. Odgovor je
>> semafor, ali probajte da razgrnete malo, nije ni
Nije ni preterano teško. Na nivou aplikacije postoji flag DozvoliOtvaranje
i rečnik podataka gde uz svaku tabelu stoji lokalni flag DozvoliOtvaranje,
i BrKorisnikaKojiJeOTvorioBazu.
E sad, ako imaš dovoljno prava ;) postaviš generalni flag DozvoliOtvaranje
na false. Prilikom zatvaranja tabele taj generalni flag se kopira u lokalni
na nivou tabele. Sačekaš malo i u trenutku kada su sve tabele zatvorene,
uradiš
ReIndex i Pack.
clipper.219dr.grba,
>> Ukratko. Kažu da je verzija 1.0 bila čist hakeraj uz pomoć inverznog
>> inženjeringa Clipper koda da vide kako bi trebao da radi RDD sistem.
Sorry, but...
"Inverzni inženjering", "reverzibilni inženjering"....
Izrazi stoje k'o piletu sise. Kao kad bi za švercera rekao "referent
spoljne trgovine".
clipper.220vlaslo,
Da li zna neko sta bi to trebalo da zanci
ADAM: Error opening application catalog
kod CA-VO. Instalacija je ok, ali nista ne radi zbog gornje
greske.
cu Zoli
clipper.221vlaslo,
> Ne interesuje me cena kod pirata, vec kod dilera. Pod ovim ne
> bas lepim, ali uobicajenim izrazom smatram one koji prodaju
> legalne kopije softvera. Znas, odavno sam naucio da se
> piratskom kopijom programa ne stize jako daleko ili je cena
> stizanja do cilja previsoka.
Ima u Subotici jedan (pre neki dan smo se sreli kod pirata
:-)) ) on je kupio CAVO i poslali su mu prvo pre release
verziju pa onda pravu, obe sa kompletnom dokumentacijom.
Rekao je da bi prodao kopiju disketa ver 1.0a i knjige sa
pre releaseom (kako kaze izmene su neznatne) . Cena je negde
oko 600-700 DM.
Vucem vreme :-)) na zalost ne znam tel tipa, ali ako ima
zainteresovani, raspitacu se...
cu Zoli
clipper.222vlaslo,
Da li neko ima ideju :-)
Gde bih mogao dobiti (kupiti ) exospace i six
Molio bih broj bbs-a ili nekog kome bih mogao platiti
poduzecem.
cu Zoli
clipper.223vlaslo,
>>> Sto se tice pucanja indexa, koliko se meni cini pri nestanku
>>> struje moze doci do ostecenja samo na indexima trenutno
>>> selektovane baze ili one u koju se vrsi indirektan upis preko
>>> aliasa. Isti slucaj je kada se koristi open-close princip?
>>> Sta kazu ostali? Koji princip koristite?
>
> Ja koristim otvaranje po zahtevu : obicno se na nivou jedne
> celine (procedure) otvore sve baze i indeksi za tu i child
> procedure a na njenom kraju se zatvore.
Moja iskustva kazuju da je najbolje koristiti CDX fileove,
iz dva razloga. Zauzima samo 1 handle a ima 49 kjuceva, sa
druge strane (u mrezi ) odmah ljavlja da je greska u indeksu
pa se preusmerenjem errorsys-a lako moze resiti problem.
U lokalu ovo zadnje ne vazi :-((
Inace za gornju svrhu, napravio sam jedan project checker
koji ide sa mojim projektima i kod prvog (usera) poziva
proveri integritet projekta( vise projekta).
A posle sve drzim zatvoreno do zadnjeg momenta i otvaram ih
po potrebi.
cu Zoli
clipper.224d.petrovic,
> Kao prilog ovoj teoriji, postavljam jedno prosto pitanje: Ako
> uzmemo da otvaram baze kada mi trebaju, program radi u mreži,
> šta kada neko zapne da radi
Nijedna baza nije otvorena u osnovnom meniju. Odmah zatim se otvaraju
SVE koje će trebati.
> exclusive pristup. Odgovor je semafor, ali probajte da
> razgrnete malo, nije ni maaalo naivno rešenje. Najbezbolniji
> način je s početka, 'apsi sve exclusive,
Šta je semafor? Viđevah to svuda, ali mi ne pade na pamet da koristim.
clipper.225mdrazic,
>>> U mojim aplikacijama dok si u meniju sve je zatvoreno. Kad
>>> pokreneš neki modul iz menija, za njega otvorim sve tabele ...
>
> Ovo sam i ja hteo da kažem prethodnom porukom :)
Danas sam prisustvovao prezentaciji jednog softvera koji obrađuje
veću količinu podataka (na disku zauzima 200 MB, min. 50 MB) iako je
sam Clipper EXE manji od 1 MB. Program je pisan tako da je dizajnerski
perfektno urađen, bolji nisam video, radi sve poslove koje treba i
to uz promišljene testove protiv pokušaja varanja sistema (pare su
u pitanju). Izveštaji na laseru izgledaju da bolje nisam video.
Ali. Na ulasku u paket se otvara 70-80 fajlova koji ostaju otvoreni
do izlaska iz paketa. Još gore. Lokotiranje su ugradili u get (!)
sistem, pa zapisuju svako polje ponaosob kad prelaziš na sledeće i
to zovu "zaključavanje polja". Lokotiranje zapisa i tabela su
uglavnom jeres (mada de facto lokotiraju zapis kada menjaju svako polje).
I to su kažu uradili po zahtevu kupca (?!). Još sam se čudio zašto
otvore gomilu šifara sa praznim ostalim sadržajem koji posle popune.
Znači, za upis novih zapisa prvo treba da 'otvoriš' šifru ako već
ranije nije neka 'otvorena' pa onda da tu šifru popunjavaš sadržajem
(i svako polje čini transakciju!). Ovako projektovani sistemi mogu
da se koriste i čak da budu vrlo upotrebljivi, ali pate od odsustva
provere konzistencije na ulazu podataka u sistem i vrlo teško se posle
mogu preneti na neki SQL DBMS zbog ozbiljnih prepravki koje to traži.
Milan
clipper.226bulaja,
│Korisnik hoce da lista stanje magacina, i to po abecednom redu, sto
│automatski onemogucava bilo kakve relacije STANJE->ROBA. Sada nije ni to
│problem vec ovo. U sifarniku se nalazi 3393(tacna cifra) artikala , a na
│stanju je 800 artikala. Covek nece da se zamara da gleda silne nuletine
│u kolonama tabele stanja, vec hoce samo one stavke koje se nalaze na
│Stanju. Na pamet mi je padala ideja da se obrisu svi slogovi koji se ne
│poljavljuju na stanju, ali to nije to.
└───
Ovo možeš rešiti na više načina, predlažem ti sledeći (koji je dobar
zato što ne zahteva nikakve izmene u sadašnjoj strukturi podataka,
kreiranje novog indeksa i sl.):
1) Kreiraj niz koji sadrži pointere u sifarniku (RecNo()) na sve artikle
kojih ima na zalihama (odnosno imaju ne-nula stanje) kao i nazive
artikala. Znači prvo aktiviraj indeks po stanju (pretpostavljam da ga
imaš:), zatim jedno dbSeek(1) (skače na prvi artikal sa ne-nula tj.
pozitivnim stanjem) i puni niz sve do EOF. Za 800 (verovatno kratkih)
slogova ova operacija neće dugo trajati, u svakom slučaju neoporedivo
kraće od raznih kreiranja indeksa, brisanja, filtera ili sličnih
alternativnih rešenja.
2) Sortiraj (ASort()) niz po nazivima artikala.
3) Kreiraj TBrowse objekat koji umesto Skip, GoTop i GoBottom metoda
skače po bazi na osnovu record pointera iz sortiranog niza, a kao kolone
stavi one kolone koje inače imaš u pregledu sifarnika. To je sve :).
clipper.227bulaja,
│PS. Ako nekom treba taj FTTEXT, vičite ako ste ga obrisali.
└───
Stari (v2.1) NanForum Toolkit je još uvek (i nemam nameru da ga brišem
odatle:) u R:\CLIPPER direktorijumu (lib, source i sve zarkpe) tako da
kome nešto treba ima ga i tamo :).
clipper.228goxx,
■ > Temp := & 'sdd Obelezje > "' + Var + '" c'
■ >
■ > pa je blok Temp (koji prosledujes kompiliran sa vrednoscu Var a
■ > ne sa referencom na nju.
Ne praktikujem makroe (samo u krajnjoj nuzdi, a ovo to jeste). Međutim, ne
vidim razlog zašto ne bi moglo sa promenljivom.
■ Da li koristis slican princip pri validaciji unetih podataka u
■ get sistemu?
Ja koristim isti princip.
Primer:
1. GET ima u VALID klauzuli poziv funkcije za proveru šifre organizacione
jedinice. pored šifre se posle uspešne provere ispisuje naziv jedinice.
(ovo je već stvar ukusa)
2. funkcija za proveru se sada može pozivati na svim mestima gde je potreban
unos organizacione jedinice (sektor+odeljenje; 2+2 char). u funkciji nije
dozvoljen unos samo sektora bez odeljenja (sektor+"00").
treba obratiti pažnju na poziv funkcije AppChooseCode(), a radi lakšeg
kapiranja parametara evo i strukture datoteke SSB000:
// Organizacione jedinice
SSB000
rsb030 C 2 0 Sifra sektora
rsb031 C 2 0 Sifra odelenja
rsb032 C 30 0 Naziv organizacione jedinice
rsb033 L 1 0 Status (T-izbrisana, F-aktivna)
// index po sifri organiozacione jedinice
ssb000->rsb030 + ssb000->rsb031
// odeljenje 00 je u stvari naziv sektora i ne može se uneti u GET-u
// šifra 0100 ili recimo 0200. primer:
01 00 sektor Beograd
01 01 odeljenje 1
01 02 odeljenje 2
01 03 odeljenje 3
02 00 sektor Novi Sad
01 01 odeljenje 1
01 01 odeljenje 2
3. generalna funkcija koja služi za biranje šifre iz šifarnika odnosno
jednog sloga iz neke datoteke (ili njenog jednog dela) uz postavljanje
filtera za određene slogove (i ti slogovi se vide, ali se ne mogu
izabrati i ispisani su u drugoj boji). ako nema podataka koji bi se
ponudili za biranje u zadnjem redu se ispisuje poruka o tome i prekida
se rad funkcije.
parametri: (******* su obavezni)
naziv opis default
----- ---- -------
cAlias alias datoteke-šifarnika *******
cHeader naslov tabele ""
bColumn kodni blok za kolonu prikaza *******
cTop vrh podataka "" (početak baze)
cBottom podatak iza dna "■... (kraj baze)
bSkip kodni blok za kretanje kroz bazu šđđ .T.ć
uz poštovanje cTop i cBottom
bValid kodni blok za validaciju izbora šđđ .T.ć
bEsc kodni blok koji se izvršava prilikom *******
prekida biranja (ESC taster)
bEnter kodni blok koji se izvršava po biranju *******
sloga
NAPOMENA: primer je "sirov" iz mojih programa, pa može da (malo :) zbuni,
jer koristim gomilu mojih funkcija i objektno proširenje clipper-a
oClip. Ipak mislim da nije teško za razumevanje ideje i suštine.
ako bude nejasnoća pitajte.
1.
...
LOCAL cSek := SPACE(4)
...
č nY+3, nX+13 GET cSek PICTURE "čK" WHEN _AZURIRANJE ;
VALID šđxđ;
x := ONOkSektor(čcSek, čcON),;
SETPOS(nY+3, nX+18), DISPOUT(cON,aClrŠ2Ć),;
x;
ć
...
READ
2.
// ----------------------------------------------------------------------
// kontrola sektora i odeljenja
FUNCTION ONOkSektor(cSek, cON)
LOCAL lOk := .F.
Push(ssb000->(RECNO()))
IF EMPTY(cSek)
AppChooseCode(;
"SSB000", " ■2Organiz. jedinice ",;
šđđ " "+ssb000->rsb030+IF(ssb000->rsb031 <> "00", ssb000->rsb031, "
")+;
IF(ssb000->rsb033,"*"," ")+LEFT(ssb000->rsb032,20)+" " ć, ,,,;
šđđ .NOT. ssb000->rsb033 .AND. ssb000->rsb031 <> "00"ć,;
šđđ cSek := SPACE(4), cON := SPACE(30) ć,;
šđđ cSek := ssb000->rsb030+ssb000->rsb031, cON := ssb000->rsb032ć )
ELSE
cSek := PADL(ALLTRIM(cSek),4,"0")
ENDIF
IF .NOT. ssb000->(DBSEEK(cSek,.T.)) .OR. ssb000->rsb033 .OR.;
RIGHT(cSek,2) == "00"
msg:display("ON0011")
ELSE
lOk := .T.
cON := ssb000->rsb032
ENDIF
ssb000->(DBGOTO(Pop()))
RETURN lOk
3.
// ---------------------------------------------------------------------
// funkcija za biranje sifre iz odredjenog sifarnika
FUNCTION AppChooseCode(cAlias, cHeader, bColumn, cTop, cBottom, bSkip,;
bValid, bEsc, bEnter)
LOCAL wnd, tbl, nW, lOk := .T., ch, cKey, nRecNo, nMax
VideoPush(SC_NONE)
PushLastRow()
// stara radna oblast se sacuva i selektuje se nova
PushSelect(nW := SELECT(cAlias))
Push((nW)->(RECNO()))
// brojanje slogova
IF (nMax := (nW)->(DbfCount(_Default(cTop,""),;
_Default(bSkip, šđđ .T.ć)))) > 0
AppBottomRow(" Enter-■2Prenos sifre ■1Esc-■2Izlazak")
// otvaranje prozora (donji desni ugao ekrana)
wnd := Window():New(;
MAXROW()-3-2-MIN(nMax-1,MAXROW()-8),;
MAXCOL()-4-1-LEN(EVAL(bColumn)),;
MAXROW()-3,MAXCOL()-4,;
sys:get("choose.color"), WNDF_EDGE,B_SINGLE, cHeader)
DISPBEGIN()
wnd:Open()
// tabela
tbl := TBrowseNew(wnd:WTop, wnd:WLeft, wnd:WBottom, wnd:WRight)
tbl:colorSpec := _NizUStr(sys:get("choose.color"))
tbl:addColumn(TBColumnNew(,bColumn))
// pozicioniranje na vrh podataka
IF cTop <> NIL
tbl:goTopBlock :=;
šđđ (nW)->(DBSEEK(cTop,.T.)),;
IF(.NOT. EVAL(bSkip),;
( (nW)->(DBGOBOTTOM()), (nW)->(DBSKIP()) ),;
);
ć
ELSE
tbl:goTopBlock := šđđ (nW)->(DBGOTOP()) ć
cTop := ""
ENDIF
// pozicioniranje na dno podataka
IF cBottom <> NIL
tbl:goBottomBlock :=;
šđđ (nW)->(DBSEEK(cBottom,.T.)),;
IF(.NOT. (nW)->(EOF()), (nW)->(DBSKIP(-1)), );
ć
ELSE
tbl:goBottomBlock := šđđ (nW)->(DBGOBOTTOM()) ć
cBottom := REPLICATE(CHR(255),10)
ENDIF
// pomeranje po podacima
IF bSkip <> NIL
tbl:skipBlock := šđnSkipđ (nW)->(DBFSkip(nSkip,bSkip)) ć
ELSE
tbl:skipBlock := šđnSkipđ (nW)->(DBFSkip(nSkip,šđđ.T.ć )) ć
ENDIF
tbl:getcolumn(1):colorblock := šđđ IF(EVAL(bValid), š1,3ć, š4,3ć)ć
DISPEND()
// pozicioniranje na prvi ispravan slog
(nW)->(DBSEEK(cTop,.T.))
ELSE
AppBottomRow("■2NEMA PODATAKA ZA IZBOR. PRITISNITE...")
TONE(100,1); TONE(500,1); TONE(200,1)
INKEY(0)
lOk := .F.
ENDIF
SETCURSOR(SC_NONE)
DO WHILE lOk
DO WHILE .NOT. ( tbl:stabilize() .OR. NEXTKEY() <> 0 ); ENDDO
ch := INKEY(0)
DO CASE
CASE ch == K_ESC ; EVAL(bEsc); EXIT;
CASE ch == K_ENTER ; IF EVAL(bValid); EVAL(bEnter); EXIT; ENDIF
CASE ch == K_UP ; tbl:Up()
CASE ch == K_DOWN ; tbl:Down()
CASE ch == K_PGUP ; tbl:PageUp()
CASE ch == K_PGDN ; tbl:PageDown()
CASE ch == K_CTRL_PGUP ; tbl:goTop()
CASE ch == K_CTRL_PGDN ; tbl:goBottom()
ENDCASE
ENDDO
// zatvaranje prozora, ako je uopste bio otvoren
IF nMax > 0
wnd:close()
ENDIF
(nW)->(DBGOTO(Pop()))
// povratak stare radne oblasti
PopSelect()
PopLastRow()
VideoPop()
RETURN NIL
Goran
clipper.229goxx,
■ > ErrorBlock(bSave_Eb) // Stari error handler
■ > ... Inace funkcija Isprinter() cesto vraca .f. ...
■ Izgleda da je greška u proceduri za obradu greške.
■ IsPrinter zaista nije baš idealna za upotrebu, bolje je koristiti
■ neku alternativnu funkciju ili iz neke biblioteke ili napisati svoju
■ pomoću odgovarajućih funkcija BIOS-a.
Moja iskustva:
Pre otprilike pola godine (ili je bilo godinu dana?) i ja sam postavljao
ovakva pitanja u ovoj konferenciji i dobijao sam slične odgovore što mi
na kraju nije baš previše pomoglo, ali glavna smernica je ostala da se
štampač tretira kao binarni fajl.
Zaboravio sam na ISPRINTER() i pozivanje interapta i sada me, da kucnem u
drvo, glava više ne boli. Ovakav način rada omogućava i paralelno upisivanje
u dva fajla (ili štampac i fajl) na primer izveštaj i rekapitulacija
izveštaja.
Ovo što šaljem dole bi trebalo da radi bez problema, ali ako ih kojim
slučajem bude (malo sam sekao neke svoje funkcije da bi se ovo dobilo,
a nema vremena za proveru) ukažite na njih pa ću da ih izmenim.
I na kraju, što je najlepše od svega nema ERRORBLOCK( :).
...
#define PRN_READY 0
#define PRN_NOT_READY 1
#define PRN_EXIT 2
#define PRN_INTERRUPT 3
#define PRN_EMPTY 4
#define PRN_UNKNOWN 5
#define PRN_GET_READY 6
#define PRN_FERROR 7
#define PRN_EXIST 8
// uredjaj za izlaz !!! moraju da budu ovakvi brojevi zbog DOS handle-a
#define PRN_SCREEN 99999
#define PRN_PRINTER 99998
#define PRN_FILE 99997
#define CRLF CHR(13) + CHR(10)
#include "FileIO.Ch"
STATIC _Status := PRN_GET_READY, _Device := 0, _FileName := "PRN",;
_TimeOut := 2.5
...
// ---------------------------------
// ime stampaca ili fajla na disku
_FileName := "PRN"
_Device := FOPEN(_FileName, FO_WRITE)
Print("Ode na štampač kao u fajl!" + CRLF)
// sitna stampa sa malim proredom
Print(CHR(15) + CHR(27) + CHR(48))
Print("Vidi me tek sad" + CRLF +;
"kako sam ga usitnio," + CRLF +;
"a šta kažeš?")
// za fajlove potrebno i ovo da bi se odsekao kraj fajla
// ako je on ranije imao vecu duzinu
FWRITE(_Device, "", 0)
FCLOSE(_Device)
...
// ------------------------------------
// stampa odredjene sekvence
FUNCTION Print(cSeq)
LOCAL nSeconds := SECONDS(), nLen := LEN(cSeq), nDone
DO WHILE _Status == PRN_READY
IF Inkey() == K_ESC
_Status := PRN_INTERRUPT
Message()
LOOP
ENDIF
// upis sekvence
nDone := FWRITE(_Device,cSeq)
// da li je nastupila greska prilikom upisa
IF FERROR() > 0
// da li se sve odstampalo
IF nDone < nLen
cSeq := RIGHT(cSeq, (nLen -= nDone))
ELSE
EXIT
ENDIF
// neko vreme se pokusava sa operacijom
IF SECONDS() - nSeconds > _TimeOut
_Status := PRN_NOT_READY
Message()
nSeconds := SECONDS()
ENDIF
LOOP
ENDIF
EXIT
ENDDO
RETURN _Status
// ------------------------------------
// obrada poruke
FUNCTION Message()
// promenljiva _Status mora da se postavi na vrednost PRN_READY
// (ako korisnik zeli da ponovo proba stampu) ili na PRN_EXIT
RETURN NIL
Goran
clipper.230goxx,
O otvaranju i zatvaranju datoteka.
Ja lično, sam pobornik ideje (kakav početak rečenice, užas :) da ono što ne
treba da bude otvoreno ne treba ni otvarati. Pošto su mi aplikacije
organizovane po menijima tj. po ulasku u program korisnik je u glavnom
meniju gde posle biranja neke opcije uglavnom ulazi u program koji otvara
sve potrebne datoteke i obično tabelarno prikaže podatke (jedna, dve ili
tri povezane tabele, a može i više). pri izlasku iz programa sve što je
otvoreno to se i zatvara i korisnik se vraća na glavni meni (otkriće tople
vode u organizovanju aplikacije :)
Otvoriti sve datoteke na početku programa je gubljenje resursa (memorija),
a stalno otvarati i zatvarati datoteku u nekom programu kad je nešto iz
nje potrebno (čitanje ili upis) je gubljenje vremena. Znači, potrebna je
(gore opisana) međuvarijanta.
Goran
clipper.231snowwhite,
■ Nisam siguran da sam dobro shvatio, možda je ovako :
■
■ Jednostavno nad tabelama kreiraj indeks npr.
■
■ INDEX ON Upper(Naziv_Artikla) FOR Stanje <> 0
■
■ pa uradi Browse sa ovim indeksom aktivnim.
■ Ovim si poređao po abecedi, i elminisao one sa 0 stanjem. Ako je
to
■ to, ok. Ako nije, pojasni mi malkice problem.
Izvinjavam se zbog nejasnoca.
Vidis u jednoj bazi je cist sifarnik robe sa cca 3400 lekova,
a u drugoj bazi je stanje sa 800 artikala. Jedina veza je
preko polja koji oznacava sifru robe u obe baze.
Baza za artikle je indexirana i po nazivu, a baza za stanje
samo po sifri robe.
ROBA.DBF STANJE.DBF
-------- ----------
sifra n8 0 st_sifra n8 0
naziv c30 st_kolic n15 3
jdm c3
barcode c13
farmgr c5
..
..
Indexi: Index:
_______ ------
ROBA1 Str(sifra,8) Str(st_sifra,8)
ROBA2 farmgr
ROBA3 SubStr(naziv,1,13)
Nadam se da je sada jasnije.
Pozdrav.
clipper.232snowwhite,
■ Ovo možeš rešiti na više načina, predlažem ti sledeći (koji je
dobar
■ zato što ne zahteva nikakve izmene u sadašnjoj strukturi podataka,
■ kreiranje novog indeksa i sl.):
Nije neophodno, posto aplikacija nije jos u potpunosti zazivela.
■ 1) Kreiraj niz koji sadrži pointere u sifarniku (RecNo()) na sve
artikle
■ kojih ima na zalihama (odnosno imaju ne-nula stanje) kao i nazive
■ artikala. Znači prvo aktiviraj indeks po stanju (pretpostavljam da
ga
■ imaš:), zatim jedno dbSeek(1) (skače na prvi artikal sa ne-nula tj.
Index postoji :).
Ova brojka 800 je cirka. Problem je pokazati na ekranu.
3400 lekova je ppo sifarniku iz 1993. Za sada je taj broj
cca4000-4500
i plus razne cetkice,cuclice,....
Znaci broj artikala je preko 5000. E sada na stanju recimo ima vise
od 4096 artikala sa stanjem != 0 (Jedno veledrogerija).
E sta sada ?
■ Za 800 (verovatno kratkih)
■ slogova ova operacija neće dugo trajati, u svakom slučaju
neoporedivo
■ kraće od raznih kreiranja indeksa, brisanja, filtera ili sličnih
■ alternativnih rešenja.
Krace hoce za 800, ali je potrebno da radi i za 50000!
Molio bih neke vratolomije preko baza, ili nesto slicno
P.S. Radio sam na taj nacin, i OK je ali broj artikala je vec frka
Hvala ti puno na opsirnom odgovoru.
Pozdrav.
clipper.233goxx,
■ > promenljive kao private. Na kraju sam se odlucio da ipak
■ > uvedem tri private promenljive za definisanje granica za
■...
■ Ovo ti nikako ne preporučujem: ...
Ja takođe :)
Goran
clipper.234goxx,
■ Kao prilog ovoj teoriji, postavljam jedno prosto pitanje: Ako uzmemo da
■ otvaram baze kada mi trebaju, program radi u mreži, šta kada neko zapne da
■ radi reindex ili kako nekom dati da radi pack ili slične operacije koje traže
■ exclusive pristup. Odgovor je semafor, ali probajte da razgrnete malo,
■ nije ni
Šta ima svaka šuša kog đavola da reindeksira (osim toga ako ne može da
ekskluzivno otvori fajl nema indeksiranja) ili nedaj bože da pakuje bazu.
I dalje mislim da otvaranje svih baza na početku samo nepotrebno "jede"
memoriju (baferi za baze i baferi za indekse).
Kad smo već kod indeksa. Uvek sa otvaranjem baze otvaram i sve njene indekse.
Ako je potrebno da nešto ažuriram u svakom slučaju moram da ažuriram i indekse,
a ako nema ažuriranja i program pukne, nema šta da ošteti u indeksima koji su
mi višak, jer i ne treba da ažurira bazu iz bafera.
Goran
clipper.235goxx,
■ problem vec ovo. U sifarniku se nalazi 3393(tacna
■ cifra) artikala , a na stanju je 800 artikala.
■ Covek nece da se zamara da gleda silne nuletine
Video sam Vesićevo i Bulajino rešenje. Koji je clipper u pitanju.
Koliko se sećam, clipper 5.01 nema FOR klauzulu u INDEX komandi.
// novi index po stanju
INDEX ON stanje->(Kljuc()) TO Stanje01
// funkcija ne može da bude STATIC
FUNCTION Kljuc()
RETURN IF(stanje->kolicina > 0,;
( roba->(DBSEEK(stanje->sifra_robe)),;
UPPER(roba->naziv_robe) ),;
SPACE(_duzina_polja_naziv_robe),
)
podrazumeva se da ti je sifarnik vec otvoren i pravilno indeksiran po
sifri robe. sada prikazuj stanje od slova "A" pa do kraja datoteke.
(to znači da ćeš morati da napraviš CUSTOM blokove za TBrowse() kao
što je bulaja rekao - nemoj da te ovo plaši, to je sasvim trivijalna
stvar)
stanje->(DBSEEK("A")) // za početak podataka
ako promeniš kolicinu (stanje) funkcija pravilno preuredi index.
Goran
clipper.236goxx,
■ Danas sam prisustvovao prezentaciji jednog softvera koji obrađuje
■ veću količinu podataka (na disku zauzima 200 MB, min. 50 MB) iako je
■ sam Clipper EXE manji od 1 MB. Program je pisan tako da je dizajnerski
■ perfektno urađen, bolji nisam video, radi sve poslove koje treba i
■ to uz promišljene testove protiv pokušaja varanja sistema (pare su
■ u pitanju). Izveštaji na laseru izgledaju da bolje nisam video.
Ko, gde, šta? Gde može da se nabavi demo tog programa. U stvari interesuje
me samo taj perfektni dizajn i eventualno ta štampa na laseru.
Goran
clipper.237dvesic,
>> Ajde da probamo da definisemo to "mali broj baza"? ...
>> prosecni broj baza i indexnih fajlova u tvojim programima ...
Oko 12-tak baza (toliko i indeksnih datoteka, koristim Six).
Kod najvećeg (Velikoprodaja, maloprodaja, ...) je 22 baze.
>> Uzgred kako sam ja asm coder koji trenutno radi u
>> cliperu interesuje me na koji nacin organizujes pisanje
>> programa? Da li npr. za svaku stavku iz menija radis poseban
>> .prg ili recimo za svaki meni box (par opcija)....
Odavno sam napisao svoju biblioteku koja se brine oko ispisa na
ekran, Yu slova, štampača, faksa, browse baze, itd, itd ...
Obično stvari vezane za jednu tabelu stavljam u jedan prg.
(oko 10Kb u proseku).
Što se organizacije datoteka tiče (na nivou projekta) to izgleda
ovako :
APP───┬─DBF
│
├─OBJ_WORK
│
└─OBJ_EXE
U APP su PRG, CH i jedan RMK fajl. U DBF rečnik, tabela menija, INI datoteke
i naravno DBF, FPT i CDX fajlovi. U OBJ_WORK OBJ fajlovi razvojne verzije
u OBJ_EXE finalne verzije programa. Zašto ovako ? Dok sam radio još na 286
ovo mi je garantovalo da će se sa minimalnim brojem kompajliranja i
linkovanja
doći do rezultata. Za sve se brine jedan generalizovani RMK fajl koji po
potrebi generiše i LNK fajl.
clipper.238dvesic,
>> ROBA.DBF STANJE.DBF
>> -------- ----------
>> sifra n8 0 st_sifra n8 0
>> naziv c30 st_kolic n15 3
>>
>> Indexi: Index:
>> _______ ------
>> ROBA1 Str(sifra,8) Str(st_sifra,8)
>> ROBA2 farmgr
>> ROBA3 SubStr(naziv,1,13)
Evo ti jedne teške prljavštine, koju primenjujem samo u krajnjim
slučajevima :)))
(Pošto nisi rekao koji RDD koristiš, smatraću da se radi o CDX tipu).
Use Roba Index Roba Exclusive New
Set Order To Tag Roba1
Use Stanje Exclusive New // Sada ćemo kreirati potrebni indeks
Set Relation To Str(st_Sifra,8) Into Roba
Index On Upper(Roba->Naziv) To TAG MojIndeks For st_Kolic <> 0
// U ovom trenutku si kreirao indeks MojIndeks
Sada je moguće da radiš Browse nad STANJE.DBF i da ostale podatke
o artiklu kupiš iz ROBA.DBF jer su u relaciji. Indeks zadovoljava
ono što si tražio : sortirano je po abecedi, prikazuju se samo oni
koji imaju nešto na lageru. Naravno, moguće je i obrnuto : da relaciju
usmeriš iz ROBA ka STAVKE i izvedeš sličnu vratolomiju.
Ovo rešenje ima puno loših strana : ako želiš ažuran indeks, moraš se
potruditi da prilikom unosa/izmene sloga važi ova relacija kao i aktivni
indeksi. No, dok se ne setim nečeg pametnijeg, probaj ovo :)
clipper.239spantic,
> Šta je semafor? Viđevah to svuda, ali mi ne pade na pamet da koristim.
Semafore prvi spominje i uvodi u računarsku teoriju Dajkstra 1968. godine.
Koristimo ih za obezbeđivanje međusobnog isključivanja kritičnih sekcija. Što
je od vitalnog značaja kada god imamo slučaj pristupa dva procesa nekom
resursu.
Recimo da imaš nenegativnu celobrojnz promenljivu nad kojom su
definisane dve operacije:
P (ili Wait) i V (ili Signal), (ako se neko čudi P, V su od holandskih reči
:)
Pri čemu ih definišemo kao:
P(S): for(;;;)
{
if s > 0 then
{
s = s-1;
break;
}
}
V(S): s++;
Operacije koristimo pri radu sa kritičnom sekcijom, i P i V se sigurno
obavljaju cele, kao nedeljive operacije. Pre ulaska u kritičku sekciju
koristimo P, posle izlaska V.
Na početku se semafor (ovde S) postavi na 1.
BTW. semafori koji imaju vrednost 1 i 0 su binarni semafori. Uzajamno
isključivanje se obavlja binarnim semaforima.
clipper.240bceklic,
> ■ > promenljive kao private. Na kraju sam se odlucio da ipak
> ■ > uvedem tri private promenljive za definisanje granica za
> ■ Ovo ti nikako ne preporucujem: ...
> Ja takode :)
Izbaceno, uzgred izmenio sam i sistem otvaranja baza i indexa.
Sada ih otvaram po potrebi u modulima. Uzgred, ono pitanje o Blinkeru
vise nije aktuelno, uspeo sam da resim problem velikih overleya...
Sada se sa Pc Guard-om mogu zastiti i veliki kliper programi.
POzdrav!
clipper.241bceklic,
> Ovo sto saljem dole bi trebalo da radi bez problema, ali ako ih
> kojim slucajem bude (malo sam sekao neke svoje funkcije da bi
> se ovo dobilo, a nema vremena za proveru) ukazite na njih pa cu
> da ih izmenim.
Mnogo hvala na primeru, trenutno nemam vremena da ga proverim
jer imam gomilu obaveza ali cu sigurno javiti da li sljaka ok!
POzdrav!
clipper.242bulaja,
│Znaci broj artikala je preko 5000. E sada na stanju recimo ima vise od
│4096 artikala sa stanjem != 0 (Jedno veledrogerija). E sta sada ?
└───
Pa ništa :). Samo umesto niza koristi privremenu bazu (sa dva sloga,
RECNO i ARTIKAL, indeksirano po ARTIKAL) koju ćeš puniti na isti način
kao niz. Rešenje sa nizom je u slučaju manjeg broja slogova bolje zato
što je brže.
Možeš čak i da napraviš funkcije za rad sa velikim virtuelnim nizovima,
koji prividno imaju i više od 4096 članova. Interno takav niz dobija
jednu dodatnu dimenziju koja se koristi sa subindeksiranje (nešto slično
segmentnom adresiranju kod *86 procesora) - svaki segment je i dalje
ograničen na max 4096 elemenata, ali možeš imati još 4096 segmenata
(naravno i manje, po želji:) odnosno virtulni niz od 16M članova.
Potrebno je samo da napraviš svoje A* funkcije za linearni korišćenje
(dodavanje, brisanje, pristup) ovakvog niza (tako da ne moraš da ga
adresiraš npr. sa aNiz[16,0], već sa AGetClan (aNiz, 65536)).
Btw ovi virtuelni nizovi nemaju baš mnogo veze sa osnovnom dikskusijom,
ali nema veze :).
clipper.243bulaja,
│Ovo što šaljem dole bi trebalo da radi bez problema, ali ako ih kojim
│slučajem bude (malo sam sekao neke svoje funkcije da bi se ovo dobilo,
│a nema vremena za proveru) ukažite na njih pa ću da ih izmenim.
└───
Osnovni problem je - ne radi uvek :). I ja sam ranije imao rešeno
štampanja na sličan način, tako što sam tretirao printer kao običnu
binarnu datoteku. Međutim ispostavilo se da u velikom broju slučajeva
FOpen() nad nekim PRN portom ima tendenciju da se zaglavi (a ne da javi
grešku) ukoliko je štampač priključen ili je off-line. Računar bi ostao
potpuno blokiran sve do uključenja računara.
Trenutno koristim rešenje koje se oslanja na FUNCKy funkcije PrnStatus
(vraća status štampača - ready, off-line, out of paper,..) i lPrintByte
(šalje jedan bajt na štampač i vraća status operacije). Inače postoje i
BIOS funkcije koje rade isto to (dakle ako već i BIOS tretira štampač
drugačije od datoteke, zašto onda ne bi smo i mi:), FUNCKy koristim
čisto zato što me mrzelo da se petljam oko tih nekoliko INT poziva :).
Ovakvo rešenje mi radi pouzdano već nekih godinu dana, tako da ga
preporučujem :).
clipper.244mdrazic,
> "Inverzni inženjering", "reverzibilni inženjering"....
>
> Izrazi stoje k'o piletu sise. Kao kad bi za švercera rekao "referent
> spoljne trgovine".
I meni zvuči nakaradno, ali je smisao 'obrnuti inženjering' (reverse
engineering), tj. da od gotovog proizvoda dobiješ od čega je on nastao.
Termin 'reverzibilni' je pogrešan (reversible) jer se on odnosi da
opiše procese koji su u stanju da dovedu do istog početnog stanja od
kojeg su krenuli. Izvinite što ne upotrebljavam zvanične (?) termine
ali se nadam da ste me u prethodnoj poruci razumeli.
Milan
clipper.245mdrazic,
> Dvoumio sam se izmedju tvog i principa koji trenutno koristim.
> Kako vidim da vecina ovde koristi otvaranje po potrebi izvrsicu
> potrebne korekcije. Bojim se da ce mi za to sada trebati dosta vremena
> (projekat mi je odmakao)
To nema veze sa projektom, već implementacijom. I nije teško.
Napravi jednu funkciju koja otvori sve šta treba a sve to je
zapisano u nekoj listi, recimo, ili kako zoveš indeksiranoj
promenljivoj. Zatim napravi drugu funkciju koja sve to zatvara.
I još reši kako ćeš postupiti ako se nešto ne može otvoriti.
Recimo:
proc Obrada
local aTabele := š š'PRVA','shared',,'IND11','IND12'ć, ;
š'DRUGA','exclusive','ALIAS2','IND21'ć )
begin sequence
OtvoriTabele( aTabele )
recover
ZatvoriTabele( aTabele )
return
end sequence
...
ZatvoriTabele( aTabele )
return
Funkcija OtvoriTabele() izvršava break ako se posao otvaranja ne da
završiti do kraja iz nekog razloga.
Ovako u osnovi i ja radim i ne predstavlja nikakav problem, a kao
dobru stranu imaš da se sve tabele otvaraju tvojom jednom funkcijom
i kasnije prelaženje na drugi drajver (na primer) je trivijalno.
Milan
clipper.246mdrazic,
> Citav ovaj sistem je dosta komplikovan i ide dosta u dubinu. Ukoliko se
> prvi korak izvede kako treba kod za operaciju dodavanja ili brisanje
> podataka bi mogao da bude veoma kratak. Definisu se odgovarajuce indexne
> promenjljive i proslede funkciji.
Ja više volim da u validaciji ako treba ispišem uslove u nekom stringu,
a da ga funkcija koja taj string sa uslovom (filter,...) primi, ako je
potrebno pretvori u kodni blok i tako koristi. Znači kod samog geta
nemam ispisane blokove čime izbegavam probleme vidljivosti. I kod mene
moje funkcije u validu odrađuju i pretraživanje šifarnika ako se traži
i slične ljubaznosti.
Milan
clipper.247mdrazic,
> Ja posle svakog upisa pozovem DBCOMMIT(), a može i DBCOMMITALL(). U NG-u
> se savetuje da se, pri radu u mreži, DBCOMMIT() poziva pre upotrebe
> UNLOCK komande
Napravite vašu funkciju za unlock u kojoj možete automatski pre toga
da komitujete i još mnogo drugih stvari da automatski uradite:
function MojUnlock()
dbcommit()
// mogu se ovde i trigeri implementirati
// može i neki žurnal fajl (log) da se ažurira po potrebi, itd.
unlock
// dodajte po željama šta je potrebno
return nil
A može se napraviti i funkcija za lokotiranje i delokotiranje više
radnih oblasti odjednom. Time vaš osnovni kod postaje pregledniji,
lake su izmene tipa 'da li commit ili ne', a i doslednije se držite
osnovne filozofije pri transakcionom radu:
- faza širenja (lokotiranje svega što će se menjati
- upisivanje
- commit
- faza skupljanja (delokotiranje svega gornjeg)
Milan
clipper.248mdrazic,
>>> otvaram baze kada mi trebaju, program radi u mreži, šta kada
>>> neko zapne da radi reindex ili kako nekom dati da radi pack
>>> ili slične operacije koje traže exclusive pristup. Odgovor je
>>> semafor, ali probajte da razgrnete malo, nije ni
Da bi neko radio reindex ili pack mora otvoriti tabelu ekskluzivno.
Ako to ne može, nema ni reindexa ili pakovanja. A ako je otvorio
ekskluzivno od ostalih je bezbedan jer ne vide tu tabelu. Sam način
otvaranja tabele je neka vrsta semafora, drugi ne treba.
Na mreži je princip: ništa nije sigurno da te čeka na izvol'te.
Svaki put moraš da probaš, pa ako dobiješ, dobiješ, ako ne, drugi
put. Ali kad dobiješ neka prava, dok ih se sam ne odrekneš možeš
sve raditi mirno (dok ne padne mreža :> ).
Ako je neko u toku (re)indeksiranja neke tabele, i ako ti otvaraš sve
tabele na početku, ti uopšte i ne možeš startovati program. Pri drugoj
filozofiji otvaranja onih tabela na početku procedure koje tamo stvarno
trebaju ti i tada možeš neke poslove da radiš mimo dotične tabele.
Samo ponekad u nekim opcijama menija se može desiti da dobiješ
poruku tipa: 'tabela trenutno nedostupna, ponovi pokušaj ili odustani?' .
> Nije ni preterano teško. Na nivou aplikacije postoji flag
> DozvoliOtvaranje i rečnik podataka gde uz svaku tabelu stoji lokalni flag
> DozvoliOtvaranje, i BrKorisnikaKojiJeOTvorioBazu.
A šta da radiš kada više aplikacija napada iste tabele (tvoj program,
dBase, DBU, DBX, Excell, Quattro, itd. ? Ne tiču se njih tvoji semafori.
Tvoja aplikacija treba da otrpi i takve napade kao nešto sasvim realno.
Milan
clipper.249mdrazic,
> Šta je semafor? Viđevah to svuda, ali mi ne pade na pamet da koristim.
Pa znaš ono: crveno svetlo, zeleno svetlo. čuto još nisu izmislili.
Na Novellu postoji mogućnost da postaviš neki imenovani semafor i da
kontrološeš maksimalan broj korisnika koji 'prolaze tom raskrsnicom'
istovremeno. Međutim sama aplikacija treba da pali i gasi te
imenovane semafore. Za bezobrazne aplikacije tipa dBase i sl. nema
pomoći, one su daltonisti i nemaš kontrolu nad njima pomoću semafora.
Semafore možemo pametno koristiti samo ako smo disciplinovani.
Semafori se mogu i simulirati recimo formiranjem tabele SEMAFORI u
koju ćemo upisivati potrebne podatke i koja će nam odgovarati na
pitanje 'Da li više od 5 korisnika trenutno radi?' ili 'Da li neko
želi sam da koristi tabelu XYZ ?'
Milan
clipper.250mdrazic,
Testiranje aplikacije. Bolna tema :(
Evo informacije o dva alata koji pomažu testiranje:
Coverage - prilikom izvršavanja programa registruje koje su sve
linije koda izvršavane a koje nisu. Jako zgodno pri
testiranju da se prođu sve grane u do case i sličnim
strukturama.
Scrutiny - error sistem koji omogućava da se u kodu deklarišu
neki uslovi i pretpostavke koji moraju važiti i koji
se mogu proveravati u cilju testiranja i eksploatacije
programa. Pri greškama vrlo elegantno i opširno daje
podatke o tome šta se desilo i nudi izlaz iz neugodnih
situacija.
Ako vas neko iz inostranstva pita šta vam treba, eto dva predloga :)
Ja ovo nemam, ali bih voleo da vidim.
Milan
clipper.251goxx,
■ >> Ajde da probamo da definisemo to "mali broj baza"? ...
■ >> prosecni broj baza i indexnih fajlova u tvojim programima ...
■ Oko 12-tak baza (toliko i indeksnih datoteka, koristim Six).
■ Kod najvećeg (Velikoprodaja, maloprodaja, ...) je 22 baze.
Mala baza do 5 dbf-a; velika preko 20.
■ APP───┬─DBF
■ ├─OBJ_WORK
■ └─OBJ_EXE
Kod mene:
// opšti programi
APP─┬─LIBR (prg, bat, ch, pl?) prg moduli koje koriste sve aplikacije
└─BAK
// aplikacije (svaka posebno)
SERVIS─┬─PRG (prg, ch, bat, clp, obj)
├─SYS (exe, DICT, MESSAGE, CONFIG, USER, FORM, LOGO, DRIVER)
│ sve datoteke tekstualne zbog lakše izmene i
│ rasterećenja exe programa
├─DBF (dbf, ntx)
├─PRT lokalni spool
├─COM komunikacija i transfer podataka iz poslovnica
└─BAK
PS.
Mogu da organizujem prezentaciju svih programa koje smo napravili
(moje kolege i ja), normalno ako ima zainteresovanih.
PSPS.
Pade mi na pamet. Zašto ne bi mogla da se organizuje jedna velika
prezentacija, recimo programa za knjigovodstvo (ili nešto drugo),
gde bi se pojavilo jedno 20-tak programa (a definitivno ih ima
milion različitih) iz te oblasti pa da se vidi ko je lep.
Zašto recimo računari ne bi mogli da naprave neki "Editor/User choice"
takvih programa jer na našem tržištu zasigurno nema domaćih tekst
procesora ili spredšitova već samo knjigovodstvenih i evidencionih
programa iz mnogih oblasti.
Ovo je možda trebalo pod razno, ali nema veze.
Goran
clipper.252bpekic,
Mislim da se radi o nedostatku memorije prilikom automatskog kreiranja
osnovnih modula kada pravis nov progra űm.
To se meni desavalo kada sam probe radi, pokusao da napravim nov program
na masini sa 2MB memorije. Tada uspeva eventaualno da napravi samo
START modul i nista vise, pa i taj START je neki puta bez ijedne
metode, definicije, potpuno prazan.
Nisam siguran u to, ali izgleda da je memorija u pitanju. Na kucnom
racunaru (8MB) to mi se jos nije desilo.
Pozdrav!
clipper.253dvesic,
>> A šta da radiš kada više aplikacija napada iste tabele (tvoj
>> program, dBase, DBU, DBX, Excell, Quattro, itd. ? Ne tiču se
>> njih tvoji semafori. Tvoja aplikacija treba da otrpi i takve
>> napade kao nešto sasvim realno.
A šta se njih tiču moje tabele ? :) Da se niko nije usudio da ih
dira ! :)))
clipper.254d.petrovic,
> grešku) ukoliko je štampač priključen ili je off-line. Računar
> bi ostao potpuno blokiran sve do uključenja računara.
Sasvim logično ;)
clipper.255d.petrovic,
> Izbaceno, uzgred izmenio sam i sistem otvaranja baza i indexa.
> Sada ih otvaram po potrebi u modulima. Uzgred, ono pitanje o
> Blinkeru
Opet ne valja ;))).
Treba centralizovati otvaranje baza pa ih onda otvarati po modulima.
Naime često mi se desi da mi treba novi indeks. Ako ne obiđem sve
postojeće module ostaće indeks neažuran. Zato napraviš sa svakim programom
po jedan modul koji otvara traženu bazu, na traženi način i uz to otvori
SVE njegove indekse. Onda postavi Order na 0 (malo brži rad) pa se ti
posle zezaj prema potrebi.
clipper.256d.petrovic,
> local aTabele := š š'PRVA','shared',,'IND11','IND12'ć, ;
> š'DRUGA','exclusive','ALIAS2','IND21'ć )
Ovo sam malopre opisao. Neka funkcija ima svoje podatke o indeksima
pridruženim bazi, ti samo reci koje baze.
clipper.257markoni,
Ako koristite 4dos, može vam se desiti da imate problema sa nekim
programima pisanim na Clipper-u. Naime, ukoliko program koristi naredbu
RUN da bi izvršio neki eksterni program to neće raditi. Rešenje je da
podesite promenljivu okruženja COMSPEC na COMMAND.COM sa recimo
SET COMSPEC=C:\DOS\COMMAND.COM.
Verujem da je bilo, ali nije na odmet da se podsetimo :))
clipper.258bceklic,
> tako koristi. Znaci kod samog geta nemam ispisane blokove cime
> izbegavam probleme vidljivosti. I kod mene moje funkcije u
> validu odraduju i pretrazivanje sifarnika ako se trazi i slicne
> ljubaznosti.
Kada si spomominjao problem vidljivosti prepostavljam da si mislio
na promenljivu koja se unosi (ciju validaciju i vrsimo). Ja taj
problem u funkcijama kojima se prenosi valid kodni blok resavam na taj
nacin sto direktno pristupim promenjljivoj koja se unosi u aktivni
get. U tim funkcijama i menjam njenu vrednost. Jedini problem je
sto u tom slucaju Update() ne javlja zeljene rezultate (reaguje samo
na keyboard)..
Pozdrav!
clipper.259bceklic,
> To nema veze sa projektom, vec implementacijom. I nije tesko.
> Napravi jednu funkciju koja otvori sve sta treba a sve to je
> zapisano u nekoj listi, recimo, ili kako zoves indeksiranoj
> promenljivoj. Zatim napravi drugu funkciju koja sve to
> zatvara. I jos resi kako ces postupiti ako se nesto ne moze
> otvoriti. Recimo:
Ne znam da li si videom jednu od mojih prethodnih poruka u kojoj
pise da sam vec presao na modularni nacin otvaranja. Naravno napisao
sam svoje funkcije za otvaranje i zatvaranje grupe baza. Prenose se samo
imena baza a funkcija pootvara sve sto je potrebno (ukljucujuci i
indexe naravno). Citava struktura baza se kao sto rekoh nalazi u jednoj
'listi'....
Problemi koje sam spominjao odnose se na to da sam morao da prekopam sve
do tada napisane module u kojima se podrazumevalo da su sve datoteke otvorene
i da na njihovim pocecima (odnosno krajevima) postavim funkcije za otvaranje
i zatvaranje. Zatim su usledile izmene u funkcijama za pakovanje i
reindexiranje (koje su takodje pretpostavljale da su sve baze otvorene)
Pozdrav!
clipper.260mdrazic,
> Ko, gde, šta? Gde može da se nabavi demo tog programa. U stvari
> interesuje me samo taj perfektni dizajn i eventualno ta štampa na laseru.
Bili ljudi i na živim podacima demonstrirali. Softver prvenstveno služi
za obračun utrošene električne energije. Tu ima puno detalja o kojima
mi iz klase 'domaćinstva' i ne sanjamo. Za preduzeća se račun pravi
drugačije i sadrži još brdo detalja, informacija itd. Praćenje plaćanja
firmi liči na knjigovodstvo. Računi se štampaju na laseru sa senčenim
poljima, kućicama itd. sa kontrolom fontova, vertikalnog proreda.
Pošto ne mogu da opišem te 'kućice', pogledaj Računare 105, str.67.
E, pa bolje od toga.
Svaki korisnik određuje koje će podatke da ima u browse-ima i na koji način
sintetizovane (i to može da menja vrlo elegantno), rad je uglavnom
organizovan po prozorima (DOS karakter grafika na VGA sa nekim predefini-
sanim karakterima da liči na Windows) kojima se položaj i veličina mogu
lako menjati, izmenjive palete za korisnike itd. Vidi se da je veliki
trud uložen u dizajn user interface-a. Međutim, moje zamerke se odnose
na osnovno projektovanje i orgainzaciju transakcija.
Milan
clipper.261mdrazic,
> 1) Kreiraj niz koji sadrži pointere u sifarniku (RecNo()) na sve artikle
...
> pozitivnim stanjem) i puni niz sve do EOF. Za 800 (verovatno kratkih)
> slogova ova operacija neće dugo trajati, u svakom slučaju neoporedivo
...
> 2) Sortiraj (ASort()) niz po nazivima artikala.
Neupotrebljivo. Sortiranje niza samo po sebi dugo traje, takođe i
drljanje po celoj tabeli da se niz formira. Bolje je održavati
jedan (ili više) indeksa po nazivu uz uslov isti onaj koji ti puni
niz. Indeks se ažurira samo pri promenama u tabeli i uvek je
spreman za rad i ne troši memoriju i ...
Milan
clipper.262mdrazic,
> // Organizacione jedinice
> SSB000
> rsb030 C 2 0 Sifra sektora
> rsb031 C 2 0 Sifra odelenja
> rsb032 C 30 0 Naziv organizacione jedinice
> rsb033 L 1 0 Status (T-izbrisana, F-aktivna)
>
> // index po sifri organiozacione jedinice
> ssb000->rsb030 + ssb000->rsb031
>
> // odeljenje 00 je u stvari naziv sektora i ne može se uneti u GET-u
> // šifra 0100 ili recimo 0200. primer:
> 01 00 sektor Beograd
> 01 01 odeljenje 1
> 01 02 odeljenje 2
> 01 03 odeljenje 3
> 02 00 sektor Novi Sad
> 01 01 odeljenje 1
> 01 01 odeljenje 2
Jel ovo rađeno sa iskustvom u COBOL-u ? Aman, zaman, normalizujte te
tabele i koristite smislenije nazive polja. Kada budete jednog dana
prelazili na SQL (a biće i toga, iako sad ne vidite kad) ovakve strukture
su neprenosive. Jednostavno, jeres za relacione baze.
Bolje je:
ORGJED
ODELJENJE C 2 0 Sifra odelenja
NAZIV C 30 0 Naziv odeljenja
STATUS C 1 0 Status ('T'-izbrisana, 'F'-aktivna, 'R'-...)
SEKTORI
ODELJENJE C 2 0 Sifra odelenja
SEKTOR C 2 0 Sifra sektora
NAZIV C 30 0 Naziv sektora
STATUS C 1 0 Status ('T'-izbrisana, 'F'-aktivna, ...)
Sadržaj tabela otprilike:
01 sektor Beograd 01 01 odeljenje 1
02 sektor Novi Sad 01 02 odeljenje 2
01 03 odeljenje 3
02 01 odeljenje 1
02 01 odeljenje 2
i uvedeš vezu između preko ODELJENJE. I statusi ako su C 1 mogu da
nose mnogo više informacija nego ako su L 1 a i lakše se barata njima.
A i konzistencija se lakše ovako održava.
Milan
clipper.263mdrazic,
> ROBA.DBF STANJE.DBF
> -------- ----------
> sifra n8 0 st_sifra n8 0
> naziv c30 st_kolic n15 3
> jdm c3
> barcode c13
> farmgr c5
> ..
> ..
0. Ne deklarišite polje kao numerik ukoliko sa njim ne računate! Da li
se sa šifrom nešto računa? (a može i sa val() ako treba).
Numerik se pamti u tabeli kao niz cifara, dakle u ASCII obliku. Kad
god čitaš, to se konvertuje u IEEE numerik format što oduzima vreme
i taj numerik zauzima 10 bajtova. Kada se nešto upisuje oper se
numerik konvertuje u ASCII (interno naravno, ali se ne može mimoići).
1. rešenje
ROBA.DBF STANJE.DBF
-------- ----------
sifra c8
naziv c30 ukini tabelu
jdm c3
barcode c13
farmgr c5
..
..
st_kolic n15 3
2. rešenje
ROBA.DBF STANJE.DBF
-------- ----------
sifra c8 st_sifra c8 0
naziv c30 st_kolic n15 3
jdm c3 naziv c30
barcode c13
farmgr c5
..
..
Prenošenjem imena u stanje dobijaš mogućnost indeksiranja u toj tabeli
po nazivu, ali uvodiš i redundansu u bazu pa moraš biti vrlo disciplinovan
pri promenama u tabelama (da jedna izmena imena ažurira i one u drugoj
tabeli).
Milan
clipper.264mdrazic,
> Use Roba Index Roba Exclusive New
> Set Order To Tag Roba1
> Use Stanje Exclusive New // Sada ćemo kreirati potrebni indeks
> Set Relation To Str(st_Sifra,8) Into Roba
> Index On Upper(Roba->Naziv) To TAG MojIndeks For st_Kolic <> 0
Ne valja. Osim tvog programa sa obe otvorene tabele i postavljenom
relacijom među njima nećeš moći ažurirati zapise. Iz DBX-a nećeš
ni moći čak da koristiš index za pregled. Da ne pričamo ako još
neka aplikacija treba da koristi ove podatke.
Milan
P.S. Dejane, mani se motora na flopi drajvovima, spremaj ispite :)
clipper.265mdrazic,
> APP───┬─DBF
> ├─OBJ_WORK
> └─OBJ_EXE
SHELL───┬─FT_DOC (!)
├─OBJ_WORK
└─OBJ_FINAL
APP───┬─DBF
├─BACKUP
├─IZVESTAJ
├─TEMP
├─PRINTER
├─ ... prema aplikaciji
├─DOC za aplikaciju
├─OBJ_WORK
└─OBJ_FINAL
> U APP su PRG, CH i jedan RMK fajl. U DBF rečnik, tabela menija, INI
takođe :)
> sam radio još na 286 ovo mi je garantovalo da će se sa minimalnim brojem
> kompajliranja i linkovanja
> doći do rezultata. Za sve se brine jedan generalizovani RMK fajl koji po
> potrebi generiše i LNK fajl(ove).
i meni je to iz 286 perioda, ali tako treba :) I još je štos da omogućiš
da više ljudi radi istovremeno na aplikaciji po svojim kućama a da se
aplikacija 'sastavi' samo kopiranjem odgovarajućih fajlova, bez ikakvog
editovanja bilo kog fajla radi sastavljanja aplikacije (da to istrpi i
dodavanje novih modula u menije, nove .prg fajlove itd.).
Milan
clipper.266bulaja,
│Mislim da se radi o nedostatku memorije prilikom automatskog kreiranja
│osnovnih modula kada pravis nov program.
└───
Imao sam i ja sličnih problema u početku :). Međutim krivica je izgleda
do nestabilno podešenog računara (matične ploče) i glupih Windows-a koji
to ne detektuju. To "nestabilno podešen" obično znači da su u BIOS
setapu neki parametri preforsirani - obično stanja čekanja ili refresh
cache ili RAM memorije. Do pojave grešaka (GPF-ova ili sasvim levih) u
tom slučaju izgleda dolazi najčešće prilikom obraćanja virtuelnoj
memoriji (Windows swap fajlu), pa zato prividno deluje da više memorije
otklanja uzrok. Dakle pokušajte u BIOS Setup-u malo da usporite računar
:) i probajte da li se problemi javljaju i posle toga.
clipper.267goxx,
■ > 02 00 sektor Novi Sad
■ > 01 01 odeljenje 1
■ > 01 01 odeljenje 2
■
■ Jel ovo rađeno sa iskustvom u COBOL-u ? Aman, zaman, normalizujte te
■ tabele i koristite smislenije nazive polja. Kada budete jednog dana
Cobol radim samo po potrebi (nisam ga radio barem poslednjih godinu dana :), a
što se tiče naziva polja mislim da se ovako lakše radi bez obzira što izgleda
nerazumljivo. Na neki način to je dodatna zaštita programa, a i imena se,
normalno, daju po nekim pravilima a ne bezveze.
Tabela stvarno može da se normalizuje, ali u ovom slučaju nema potrebe, jer
ni u jednoj bazi ne stoji samo šifra sektora već je uvek jedinica koja se
posmatra odeljenje, znači 4 char (2+2), (uzgred šta je veće sektor ili
odeljenje ? kod mene je sektor > odeljenje).
Na kraju, ne toliko bitno, tu je i manja potrošnja memorije u radu programa
(fajl + index umesto dvostruko više). Pa još jedan program i opcija na meniju
manje. (racionalno do krjaja :)
Goran
clipper.268goxx,
■ 0. Ne deklarišite polje kao numerik ukoliko sa njim ne računate! Da li
■ se sa šifrom nešto računa? (a može i sa val() ako treba).
Saglasan sam u potpunosti. Naročito kada su šifre u pitanju.
■ 1. rešenje
■ ... STANJE.DBF ... ukini tabelu
Mislim da ipak nije dobro brkati šifarnik i datoteku stanja (babe i žabe :).
■ 2. rešenje
■ ... ali uvodiš i redundansu u bazu pa moraš biti vrlo disciplinovan
■ pri promenama u tabelama (da jedna izmena imena ažurira i one u drugoj
■ tabeli).
Redudansa bi stvarno bila beznačajna da je u pitanju polje koje se ne
ažurira u osnovnoj bazi i to bi bilo najbolje rešenje.
Goran
clipper.269snowwhite,
■1. rešenje
■
■2. rešenje
Ne valja. Ali nisi ti kriv.
Zaboravio sam da u stanje.dbf stavim st_mag c 3!!!
Ipak hvala na trudu.
Snow.
clipper.270nbatocanin,
> U mojoj ili u njihovoj?
> Moja funkcija ni ne dobije kontrolu prilikom greske?
U tvojoj. Verovatno je neka banalna greška, samo ju je nezgodno
uočiti. Napravi neki mali primer i probaj ga.
>> koristiti neku alternativnu funkciju ili iz neke
> biblioteke ili
> Preporuka?
Ja koristim ovih nekoliko ASM funkcija.
clipper.271nbatocanin,
> U mojoj ili u njihovoj?
> Moja funkcija ni ne dobije kontrolu prilikom greske?
U tvojoj. Verovatno je neka banalna greška, samo ju je nezgodno
uočiti. Napravi neki mali primer i probaj ga.
>> koristiti neku alternativnu funkciju ili iz neke
> biblioteke ili
> Preporuka?
Ja koristim ovih nekoliko ASM funkcija.
print.zipclipper.272nbatocanin,
U vezi sistema za otvaranje datoteka...
Ja sam dugo tražio dobar način za ovo i mislim da sam ga pronašao. To
je sistem pseudo-transakcija koji sam opisao u nekim Računarima. Da
ne hvalim sopstvene ideje, ali taj sistem se pokazao izuzetno u
praksi i svakim danom uviđam sve više njegovih prednosti. Jednostavan
je za realizaciju i krajnje jednostavan za upotrebu.
Prva faza ovog rešenje bi bila da uvedete neki rečnik podataka: nije
bitno kakav, ali važno je da ne vodite računa o otvaranju indeksa
pridruženih DBF-u i sl.
U sledećoj fazi sam definisao kao elementarne transakcije sledeće operacije:
- Otvaranje DBF datoteke sa indeksima (T_USE)
- Selektovanje radne oblasti (T_SELECT)
- Izbor aktivnog indeksa (T_ORDER)
- Zaključavanje sloga ili datoteke (T_?Lock)
- šta vam još zatreba
Za svaku od el.transakcija napravio sam funkciju koja obavlja šta
treba, pri čemu vodi računa da u mreži u slučaju neuspeha postavi
kontrolno pitanje o nastavku operacije i sl. Takođe, funkcija za
otvaranje koristi rečnik podataka i otvara sve pridružene indekse.
Može se lako uključiti i SET RELATION, ali ovo ne koristim. Veoma je
važno da svaka transakcija kada obavi posao u specijalni LOG upiše
šta je urađeno.
E, sad: kada mi zatrebaju podaci iz baze, pravim niz transakcija u
okviru specijalne konstrukcije. Na primer, ako neka procedura treba
da prelistava par DBF datoteka, telo te procedure izgleda ovako:
T_BEGIN
T_USE Artikli
T_USE MagKol
T_USE Magacini
// obrada...
T_END
Kako ovo radi: redom se otvaraju ove datoteke. Ako negde zapne, pravi
se ponovni pokušaj, pri čemu se posle nekoliko pokušaja pita korisnik
hoće li da nastavi ili odustane. No, to nije bitno: krajnji rezultat
su ili sve otvorene datoteke ili se sve zatvaraju, a kontrola prelazi
iza T_END naredbe. Pri restauraciji se koristi prethodno pomenuti LOG
(običan niz). Naravno, ovo prethodno može biti i komplikovanije: može
se tražiti otvaranje, zaključavanje i još svašta po želji: postoji i
posebna naredba koja prekida transakciju. Na primer:
T_BEGIN
T_USE Artikli
T_Order ("Art_Naz")
IF NextID() == NIL ; T_BREAK ; END IF
T_END
Ako se obrada uspešno završi, T_END zatvara sve otvoreno, skidaju se
lokovi, vraćaju kontrolni indeksi, i uopšte, sistem je opet u
stanju pre naredbe T_BEGIN. Može li bolje? Možda, ali ja ne znam
kako. Ovako nema zezanja sa "zaboraviš da vratiš aktivnu oblast",
zaboraviš da zatvoriš otvoreno i sl. Sve je maksimalno pregledno i
jednostavno. Prelaz sa jednog na drugi RDD je trivijalan. Izmene
takođe.
Dalje: zaključavanja baze sam vremenski sveo na najmanju moguću meru:
prvo se sve spremi u memoriji i tek onda se sve upisuje na disk u
novoj (ugnježdenoj) transakciji. Na primer:
T_BEGIN
T_FLock ("Artikli")
T_RLock ("MagKol")
// upis...
T_END
Inače, kod "velikih" baza je pitanje otvaranja i zatvaranja datoteka
besmislen i o njemu vodi računa sistem za upravljanje bazom. Na
primer, ObjectDB vodi evidenciju otvorenih datoteka po LRU algoritmu,
pa kad mu zafali file handleova, on zatvori koji DBF, otvori novi i
tako u krug. Ovo bi se moglo lepo primeniti gore i tako dobiti
beskonočano file handleova. Eto meni ideje za proširenje :)
clipper.273nbatocanin,
>> cb := &("{|| x < " + Str(n) + "}")
>
> Kasnije bi on koristio ovu istu konstantu
> (pri ponovnom pozivu ove funkcije) sto meni ne odgovara,
> zar ne?
Da, ali kako ti onda ne rešava problem običan kodni blok? Jer, on
deli promenljive sa funkcijom u kojoj je definisan. To znači da će
izmene promenljive van kodnog bloka videti i on.
clipper.274nbatocanin,
> Same funkcije vode racuna i o mnogim drugim stvarima a
> sustina svega ovoga je pokusaj da se izbegne ponavljanje
> istog koda u mnogim delovima programa sto je u clipperu
> tako cest slucaj.
Da ti dam jedan savet: nemoj dozvoliti da te želja za uopštavanjem
procedura odvede u krajnost previše uopštenih komplikovanih procedura
kojima je teško upravljati. Moraš naći pravu meru kako bi očuvao
kontrolu. Da ne ispadne da popujem, i sam sam dosta često pravio ovu
grešku. Procedure RadimSveŠtaOćeš nisu baš dobre za kvalitet
programa. Rekao bih da je ovo klasična greška _dobrih_ ne-Clipper
programera kad pređu na Clipper.
clipper.275nbatocanin,
> POtreban mi je neki pointer na temu kako klipper prenosi
> parametre asm kodu. Uz clipper se dobija primer kako se
> radi ali je ocigledno pisan za kompajliranje sa masm-om
> jer tasm izbacuje gomilu upozorenja.
Imaš detalje u NG-u. Makroi su tu da bi ti samo olakšali pozive, ali
se ne moraju koristiti. Inače, ja nisam uspeo da nateram TASM da
prevede EXTENDA.INC, mada se reklamira kao 100% MASM kompatibilan ;)
Mada, čini mi se da je neko rekao da ovo može.
clipper.276nbatocanin,
> Moja iskustva:
>
> Pre otprilike pola godine (ili je bilo godinu dana?) i ja
> sam postavljao ovakva pitanja u ovoj konferenciji i
> dobijao sam slične odgovore što mi na kraju nije baš
> previše pomoglo, ali glavna smernica je ostala da se
> štampač tretira kao binarni fajl.
Rešenje nije loše, ali mislim da ćeš imati problema u neregularnim
situacijama. Inače, ja koristim sistem sa INT 17, ali nemam nikakvih
problema. Pošto svo štampanje ide preko jedne funkcije, nije mi
problem usmeriti sve na drugi port, datoteku i sl.
clipper.277nbatocanin,
> U ruke mi je pao R104, i u njemu Clipper savetnik.
> Covek dao dobre ideje, ali ima jedna specificnost
> koja nije obradjena.
Hm, ja ovo nisam obrađivao, ali evo kako bi moglo:
1) Korišćenjem uslovnog indeksa, indeksiraš po uslovu MagKol->Kol<>0
2) Napraviš poseban skipBlock za TBrowse koji za sledeći element bira
onaj koji ima količinu <> 0. Ovo je mnogo bolje rešenje.
clipper.284dvesic,
>> Ne valja. Osim tvog programa sa obe otvorene tabele i
>> postavljenom relacijom među njima nećeš moći ažurirati zapise.
>> Iz DBX-a nećeš ni moći čak da koristiš index za pregled. Da
>> ne pričamo ako još neka aplikacija treba da koristi ove
>> podatke.
Nisam ni ja rekao da je rešenje savršeno (daleko od toga!),
ali radi posao, bar dok ne prestruktuira baze :)))
clipper.285bceklic,
> U tvojoj. Verovatno je neka banalna greska, samo ju je nezgodno
> uociti. Napravi neki mali primer i probaj ga.
Vec sam pisao o tome da je problem u tome sto ona ni ne dobije
kontrolu.
> Ja koristim ovih nekoliko ASM funkcija.
Pogledacu, vec sam planirao da napisem nekiliko funkcija baziranih
na int 17..Thanx
clipper.286dvesic,
>> Ako koristite 4dos, može vam se desiti da imate problema sa
>> nekim programima pisanim na Clipper-u. Naime, ukoliko program
>> koristi naredbu
U kom Clipper-u (S'87 ili 5.2d) i kakvih problema ? Radim sa šest
mašina (5 na poslu, 1 kući), SVE koriste 4dos 5.5 i nemam ama baš
nikakvih problema sa RUN komandom.
clipper.287bceklic,
> komplikovanih procedura kojima je tesko upravljati. Moras naci
> pravu meru kako bi ocuvao kontrolu. Da ne ispadne da popujem, i
> sam sam dosta cesto pravio ovu gresku. Procedure
> RadimSveStaOces nisu bas dobre za kvalitet programa. Rekao bih
> da je ovo klasicna greska _dobrih_ ne-Clipper programera kad
> predu na Clipper.
Moram priznati da sam ovaj problem vec osetio. Jednostavno nemoguce
je napraviti potpuno univerzalnu proceduru a da njena upotreba bude
jednostavna. Zato sam citav posao zaustavio na odredjenoj granici a
posebne zahteve resavam posebnim procedurama. Kako istovremeno radim
na dva velika projekta (jedan u asm-u a drugi u clipper-u) moram
priznati da mi nije ni malo lako, jer vrlo cesto moram da menjam
nacin razmisljanja. Pc guard (program za zastitu i izradu instalacionih
disketa na kome radim) sastoji se iz nekoliko nezavisnih programa,ukupno
oko 500 kb sorsa. Istovremeno clipper exe mi je presao 500 kb.
Ipak bez obzira na sve najvise volim da radim u asm-u.
clipper.288bceklic,
> Da, ali kako ti onda ne resava problem obican kodni blok? Jer,
> on deli promenljive sa funkcijom u kojoj je definisan. To znaci
> da ce izmene promenljive van kodnog bloka videti i on.
Kodni blok samo sadrzi poziv funkcije a njemu se prenosi promenjljiva
iz trenutno aktivnog get-a. Problem resen...:)
clipper.290mileusna,
>> organizovan po prozorima (DOS karakter grafika na VGA sa nekim predefini-
>> sanim karakterima da liči na Windows) kojima se položaj i veličina mogu
>> lako menjati, izmenjive palete za korisnike itd. Vidi se da je veliki
Time sam se i ja zanimao jedno vreme (CA-TOOLS). Ali, odustao sam od fontova
jer nisam našao način kako da moja aplikacija detektuje da li je slučajno
startovana u _prozoru_, pa bi se onda umesto lepih okvira pojavile kuke i kvake
Inače, svojevremeno sam nabavio i neku biblioteku (PROVISION.WIN) za koju mi
je rečeno da pravi Win Clipper programe. Međutim, :)) radi se o tome da se sve
zasniva upravo na baratanju sa fonovima, tako da aplikacija liči na Win.
(tasteri, prozori, itd.) O nekom pravljenju Win programa nema ni govora. A što
je najlepše, i oni imaju problem sa Win prozorom, tako da u Prozoru sve liči na
lošu vezu bez MNP-a :)
clipper.291dpredovic,
Subject: Re: Open-close
> Što se tiče otvaranje datoteka, radim slično kao i mdrazic: tabele
> otvaram tek kada se startuje deo programa u kojem će iste biti korišćene.
> Tako mi se više sviđa, a i manja je šansa da se program slučajno izgubi u
> bezbroj baza i indeksa.
ObjectDB ima prilično inteligentnu taktiku: jednom otvoren fajl više se
ne zatvara, sve dok ne ponestane hendlova, a onda zatvori fajl koji najduže
nije korišćen. Doduše, ima i opcija da pri startovanju otvori sve, pa kud
puklo.
clipper.292dpredovic,
Subject: Re: relacije
> Ako ti uvek za svaki 'parent' zapis trebaju svi 'child' zapisi
> onda nema usporenja. Ako ne treba, radi se nepotreban posao
> seekovanja na 'child' zapise koji ti ne trebaju.
Hmh... Gledajući onaj NG za pravljenje RDDova, čini mi se da je dobar
deo njegovih aktivnosti posvećen "stabilizovanju" relacija, što bi trebalo
da znači da child->dbseek sledi tek ako se explicitno obratiš child bazi.
clipper.293dpredovic,
Subject: funcky
Ni funcky nije što je nekad bio... I u ovom final patchu ima jedan
vrlo blesav bag u dual modu: javlja gpf pri fast-formatizovanu diskete.
Razlog? Izgleda da je u rootvx zaostala real-mode verzija funkcije.
Rešenje?
SEARCH rootvx
MODULE _fastfor FROM funcky2x
MODULE __fmt FROM NUL
BEGINAREA
LIB funcky52
LIB funckyvm
LIB funcky2x
ENDAREA
Pošto ovo i nije baš najčistije rešenje (ali radi) trebalo bi videti
da nije izašao i neki super-extra-final patch.
clipper.294mdrazic,
> ■ > 02 00 sektor Novi Sad
> ■ > 01 01 odeljenje 1
> ■ > 01 01 odeljenje 2
> Tabela stvarno može da se normalizuje, ali u ovom slučaju nema potrebe,
> jer ni u jednoj bazi ne stoji samo šifra sektora već je uvek jedinica
> koja se posmatra odeljenje, znači 4 char (2+2), (uzgred šta je veće
> sektor ili odeljenje ? kod mene je sektor > odeljenje).
Ali 02 00 nije odeljenje već sektor.
> Na kraju, ne toliko bitno, tu je i manja potrošnja memorije u radu
> programa (fajl + index umesto dvostruko više). Pa još jedan program i
> opcija na meniju manje. (racionalno do krjaja :)
Zašto bilo kakva promena menija. Može sve da se radi i bez dodatnih
menija (osim ako samo otvoriš browse na tabelu pa da se puni bez kontrole
recimo da ne uđe odeljenje a da nema definisan sektor kome pripada).
Sa više fajlova smanjuješ vreme obrade ako želiš recimo samo da listaš
i/ili pretražuješ sektore. Kako rešavaš upit tipa: daj sva odeljenja
sektora iz Novog Sada (a ne znamo mu šifru)?
Milan
clipper.295mdrazic,
> Mislim da ipak nije dobro brkati šifarnik i datoteku stanja (babe i žabe
> :).
A zašto ne bi moglo da stanje uđe u tabelu artikala? Razmisli. Da li
taj šifarnik održava neko drugi, a ti ga dobiješ gotovog?
> ■ ... ali uvodiš i redundansu u bazu pa moraš biti vrlo disciplinovan
> ■ pri promenama u tabelama (da jedna izmena imena ažurira i one u drugoj
> Redudansa bi stvarno bila beznačajna da je u pitanju polje koje se ne
> ažurira u osnovnoj bazi i to bi bilo najbolje rešenje.
Treba samo pri ažuriranju prve tabele automatski da se ažurira i to
polje u drugoj. Ako samo tvoja aplikacija radi sa tim podacima, to
je sve što je potrebno. Ako ne, postoji problem. Možeš i da uradiš
neku 'utility' opciju za ažuriranje ovih polja u drugoj tabeli za ne
daj bože.
Milan
clipper.296goxx,
■ > jer ni u jednoj bazi ne stoji samo šifra sektora već je uvek jedinica
■ > koja se posmatra odeljenje, znači 4 char (2+2), (uzgred šta je veće
■ Ali 02 00 nije odeljenje već sektor.
Na primer, slog ulaznog računa. Ne stoji da je račun iz 02 00, već iz
02 01 (sve mora da bude iz nekog odeljenja).
■ Zašto bilo kakva promena menija. Može sve da se radi i bez dodatnih
■ menija (osim ako samo otvoriš browse na tabelu pa da se puni bez kontrole
■ recimo da ne uđe odeljenje a da nema definisan sektor kome pripada).
Pa, na meniju "Šifarnici", imam opciju "Organizacione jedinice", a sa dve
datoteke bih morao da napravim opcije "Sektori" i "Odeljenja", ili da
iskomplikujem jedan program da radi sa dve tabele ili sa jednom tabelom
koja kombinuje podatke iz dve datoteke :)
■ ... Kako rešavaš upit tipa: daj sva odeljenja sektora iz Novog Sada
■ (a ne znamo mu šifru)?
I da pravim upit po odeljenjima, morao bih da imam indeks po tom polju
koje u sebi ima na dva prva mesta, šifru sektora, i na sledeća dva
šifru odeljenja. Naziv sektora dobijam sa org_jed->(DBSEEK(sektor+"00")).
Naziv sektora je u stvari neko nulto odeljenje koje inače ne postoji
(nije dozvoljeno za korisnika). Znači "0201" .. "0299" je sektor Novi Sad.
Goran
clipper.297markoni,
> U kom Clipper-u (S'87 ili 5.2d) i kakvih problema ? Radim sa šest
> mašina (5 na poslu, 1 kući), SVE koriste 4dos 5.5 i nemam ama baš
> nikakvih problema sa RUN komandom.
U 5.2d. Ne znam kako ti nemaš problema, ali kod mene je upravo kako
sam opisao. Dok ručno ne postavim COMSPEC, uopšte neće da pokrene
neki eksterni program, a što je najžalosnije ne prijavljuje nikakvu
grešku, nego samo pređe preko takve naredbe :(( Na šta ti je
postavljen COMSPEC? Probao sam još na jednoj mašini i isto ne radi.
Inače, 4dos je takođe 5.5, dos 6.20 (u oba slučaja).
clipper.298vlaslo,
> Da li zna neko sta bi to trebalo da zanci
> ADAM: Error opening application catalog
> kod CA-VO. Instalacija je ok, ali nista ne radi zbog gornje
> greske.
Sorry... izgleda da je uzbuna bila lazna. Malo ceprkanje po *.ini
i namestanje dir-ova na pravo mesto sve je resio problem...
10x
cu Zoli
clipper.299bulaja,
│Indeks se ažurira samo pri promenama u tabeli i uvek je spreman za rad
│i ne troši memoriju i ...
└───
... i za druge stvari sem pregleda po tom fiksnom uslovu je neupotrebljiv
:). Teorijski posmatrano, ovakvi indeksi nisu dobro rešenje i ne treba ni
razmišljati o njihovom korišćenju :). Idealno bi bilo da ne postoje ovakvi
složeni indeksi i da programer mnogo ne razmišlja o optimizaciji uputa -
nek RDD-u samo prosledi željeni uslov pregleda (odnosno filtriranja baze),
a RDD bi dalje trebao da se brine o optimizaciji. To je npr. princip po
kome radi MachSIx ili Comix-ov ClipMore (za ovaj drugi pretpostavljam,
nisam ga još koristio:) ili (u određenoj meri) i SIx-ov SET SCOPE.
Ono rešenje sa nizom je u osnovi slično načinu na koji ovi optimizatori
inače rade - iz cele baze se izdvoje samo slogovi koji zadovoljavaju
određeni uslov, koristeći pri tome postojeće indekse i što većoj meri.
Pošto ne pravimo RDD koji to sve radi transparentno, potrebno je još i
predefinisati standardne metode za skakanje po bazi.
Određivanje redosleda pregleda (koje se u mom primeru obavlja sortiranjem
niza) je nažalost stvar koju Mach SIx ne radi (doduše može se aktivirati
neki indeks u MachSIx filtirranoj oblasti, ali je to jako sporo), iako to
nije neki problem za izvođenje - npr. može se izvesti tako da prilikom
kreiranja preseka dve liste slogova (JOIN-ovanja po AND uslovu) ostaje
aktivan redosled u prvoj listi (a taj redosled je uslovljen indeksom na
osnovu koga je izdvojen skup slogova).
clipper.300bulaja,
│Mislim da ipak nije dobro brkati šifarnik i datoteku stanja (babe i žabe :).
└───
A što :)? I naziv artikla (i druge informacije za čije potrebe se
koriste šifarnici) i stanje su na isti način (1-1) vezani za neki
artikal (odnosno njegovu šifru) pa nema potrebe koristiti odvojene
baze (sem ukoliko se šifarnik održava na nekom drugom mestu).
clipper.301bulaja,
│2) Napraviš poseban skipBlock za TBrowse koji za sledeći element bira
│onaj koji ima količinu <> 0. Ovo je mnogo bolje rešenje.
└───
Ovo je praktično isto (po koncepciji, a i po "brzini") što i SET FILTER
(koji nije lepo koristiti:), s tim što se prilikom ulaza u browse
izračunava samo za vidljive slogove (SET FILTER prođe kroz celu bazu) pa
nema neprijatnog čekanja, a dobro je što ostavlja mogućnosti za neke
optimizacije (npr. čuvanje liste slogova za koje je već jednom izračunat
uslov).
clipper.302bulaja,
│Inače, svojevremeno sam nabavio i neku biblioteku (PROVISION.WIN) za
│koju mi je rečeno da pravi Win Clipper programe. Međutim, :)) radi se o
│tome da se sve zasniva upravo na baratanju sa fonovima, tako da
│aplikacija liči na Win. (tasteri, prozori, itd.) O nekom pravljenju Win
│programa nema ni govora.
└───
Biblioteka koja omogućuje da Clipper programi rade pod Windows-ima zove
se "Clip for Win" (izdaju je Grumpfish Inc.). ProVision:Windows je
kompletna biblioteka za event-driven user interface za Clipper (dakle
nešto :) više od običnog redizajniranja text mode fontova). U slučaju da
detektuješ da ti program radi pod Win, PW-u se može naložiti da ne
koristi redefiniciju fontova (oni to zovu TMR - Text Mode Redefinition
mode), u kom slučaju program radi sa standardnim line-draw karakterima
(kad izgleda ružno:) koje PV:W i inače koristi kad radi na herculesu.
clipper.303stosic,
Zatvaranje dijalog prozora (u VO) pomocu ESC tastera se moze resiti na sledeci
nacin (primer je za Standard MDI aplikaciju):
1. Dodati self:Override() u init() metod klase HelpAbout
2. Napisati Dispatch() metod:
method Dispatch(oEV) class HelpAbout
local strucEVENTMSG as NB_EVENTMSG
strucEVENTMSG := memalloc (_sizeof (NB_EVENTMSG) )
strucEVENTMSG := ptr (_cast, oEV:__pCat)
if strucEVENTMSG.Message == WM_COMMAND
if strucEVENTMSG.wParam == 2
self:EndDialog()
endif
endif
strucEVENTMSG := NULL_PTR
memfree (strucEVENTMSG)
return super:Dispatch(oEV)
clipper.304nbatocanin,
> Vec sam pisao o tome da je problem u tome sto ona ni ne
> dobije kontrolu.
To i kažem: mora biti da nešto trivijalno grešiš.
clipper.305dsisic,
Six patch...
sx202.zipclipper.306dsisic,
A tu je i internacionalna verzija...
sx202i.zipclipper.307milanv,
║║ - Da li postoji mogućnost (ma znam da postoji:) korišćenja
║║ dugižih polja nego što mogu da stanu u predviđeni prostor za
║║ Browse()? Mislim na nešto kao PICTURE "čS30".
║║ - Kako se najlakše aktivira MemoEdit() iz Browse()?
Da li to što nema odgovora na ova dva pitanja znači da su
suviše trivijalna ili su suviše složena/nerešiva (ma, dobro,
znam da nije ovo drugo:)?
U vezi prvog pitanja, recite bar da li je rešenje u liniji:
- AADD (cols, TBColumnNew ('Naziv artikla', šđđ ar_nazivć))
ili u
- browser:addColumn (colsŠiĆ).
clipper.308vlaslo,
hi :-)
Ima li neko iskustva sa Clipper 5.2d International ver.
Uz njega se dobijaju neki obj-evi...
Problen je sledeci: tu se nalaze objevi za ntx i mdx,
interesuje me da kakva su iskustva ako se neki koristi sa
cdx driverom.
Moji rezultati su sledeci:
- svi vrse date konvrezije i sorteve
- ntx trazi nesto vise memorije nego mdx
Pa sta kazete...
cu Zoli
clipper.309d.petrovic,
> U 5.2d. Ne znam kako ti nemaš problema, ali kod mene je upravo
> kako sam opisao. Dok ručno ne postavim COMSPEC, uopšte neće da
> pokrene neki eksterni program, a što je najžalosnije ne
> prijavljuje nikakvu
5.01 nigde ne zeza. Probaj da izvrsis run 4dos.com
clipper.310mileusna,
>> se "Clip for Win" (izdaju je Grumpfish Inc.). ProVision:Windows je
>> kompletna biblioteka za event-driven user interface za Clipper (dakle
>> nešto :) više od običnog redizajniranja text mode fontova). U slučaju da
Da, u pravu si. Gledajući Demo dalo se naslutiti da ima tu "nečeg", ali, ja
sam očekivao "prozore", pa sam zato bio razočaran te se nisam puno ni obraćao
pažnju na ostalo. Inače, oni moji fontovi nemaju nikakve veze sa ovom
bibliotekom. Sve je u stilu novijih verzija NORTON UTILITY-a, ali, kao što
rekoh od toga sam odustao iz pomenutih razloga, a i našao sam prelazno rešenje
za izradu okvira koje mi savršeno odgovara i ne dira fontove.
clipper.311bceklic,
> redizajniranja text mode fontova). U slucaju da detektujes da
> ti program radi pod Win, PW-u se moze naloziti da ne koristi
Kad smo vec kod toga, kako se najlakse a sa najvecom sigurnoscu moze
ustvrditi da je dos program startovan pod Win-om. Ja na svojoj masini
i nemam Win...:(
clipper.312mdrazic,
> ... i za druge stvari sem pregleda po tom fiksnom uslovu je neupotrebljiv
> :). Teorijski posmatrano, ovakvi indeksi nisu dobro rešenje i ne treba ni
> razmišljati o njihovom korišćenju :). Idealno bi bilo da ne postoje
Zavisi koliko često ti treba pregled po tom fiksnom uslovu.
> ovakvi složeni indeksi i da programer mnogo ne razmišlja o optimizaciji
> uputa - nek RDD-u samo prosledi željeni uslov pregleda (odnosno
> filtriranja baze), a RDD bi dalje trebao da se brine o optimizaciji. To
> je npr. princip po kome radi MachSIx ili Comix-ov ClipMore (za ovaj drugi
Pa ko može bolje da izvrši optimizaciju od tebe koji znaš i posao koji se
radi i obim podataka. MachSix, Rushmore i slični su dobri kada bazu
napadaš sa 'dot prompta' ali ne vidim da mogu da poboljšaju rad kod
poznatog posla koji je predviđen i ugrađen u aplikaciju. Ako neko misli
da glupa mašina može bolje da optimizuje upit od njega samog, bolje
da traži drugi posao :)
Kada brdo poslova prevališ na mašinu (optimizacija upita, organizacija
transakcija, održavanje integriteta) dobiješ aplikaciju pisanu bez
neposredne brige (i rada) po ovim stvarima. A onda se iznenadiš kako
to recimo u Oracle-u na 8MB RAM radi sporije nego na Clipper-u sa 1MB.
Milan
clipper.313dvesic,
>> naredbe :(( Na šta ti je postavljen COMSPEC? Probao sam još na
COMSPEC=c:\4dos\4dos.com
Ako te ne mrzi, iskonstruiši neki primer za koji si siguran da
ne radi, pa ga baci ovde ili u mail.
clipper.314djelovic,
> Kad smo vec kod toga, kako se najlakse a sa najvecom sigurnoscu moze
> ustvrditi da je dos program startovan pod Win-om.
Najlakše je da proveriš da li je definisana sistemska promenljiva "windir".
clipper.315snemcev,
>> ipak s obzirom da je FlopyTst pisana u ASM, pokušaj da ulinkuješ
>> verziju iz 2.1 (javi da li radi u PM:).
Izvukoh je ja i sve radi ok, al' još ne probah PM -- nekako me baš ne
privlači. :)
clipper.316bulaja,
**** new file ****
MSDOS - R:\CLIPPER
----------------------
sx2011i zip 12851 SIx Driver Update: 2.01.00 -> 2.01.01 (Intl)
sx2012i zip 30795 SIx Driver Update: 2.01.01 -> 2.01.02 (Intl)
sx202i zip 22575 SIx Driver Update: 2.01.02 -> 2.02.00 (Intl)
sx202 zip 22145 SIx Driver Update: 2.01.02 -> 2.02.00 (US)
4 file(s) 86 kb
Zahvaljujemo dsisic-u na poslatim zakrpama za verziju 2.02, a usput sam
prebacio u v2.01.x patcheve (imam samo za International verziju SIx-a,
ali valjda svi koristimo baš nju:).
clipper.317nbatocanin,
>│ 2) Napraviš poseban skipBlock za TBrowse koji za sledeći
>│ element bira onaj koji ima količinu <> 0.
>
> Ovo je praktično isto (po koncepciji, a i po "brzini") što
> i SET FILTER (koji nije lepo koristiti:),
Hm, mislio sam na _poseban_ kod blok koji bi bio inteligentniji od
ima/nema algoritma. Na primer, mogao bi da "kešira" ono što je
pregledao ili tako nešto.
clipper.318nbatocanin,
> - Da li postoji mogućnost (ma znam da postoji:)
> korišćenja dugižih polja nego što mogu da stanu u
> predviđeni prostor za Browse()? Mislim na nešto kao
> PICTURE "čS30".
Pretpostavljam da misliš na TBrowse. Odgovor je da, naravno. U kodnom
bloku u kome definišeš prikaz staviš Left(string,xx) i dobićeš suženi
prikaz.
> - Kako se najlakše aktivira MemoEdit() iz Browse()?
Pretpostavljam da opet misliš na TBrowse. Pa, prosto, kao i sve
drugo. Kad korisnik zatraži izmenu memo polja, jednostavno pozoveš
MemoEdit i to je to. Ipak ti objasni detaljnije šta ti treba, pa će i
odgovor biti precizniji.
clipper.319dpredovic,
Subject: Re: CAVO
> Zatvaranje dijalog prozora (u VO) pomocu ESC tastera se moze resiti na
> sledeci nacin (primer je za Standard MDI aplikaciju):
> method Dispatch(oEV) class HelpAbout
...
> strucEVENTMSG := memalloc (_sizeof (NB_EVENTMSG) )
> strucEVENTMSG := ptr (_cast, oEV:__pCat)
...
> return super:Dispatch(oEV)
Pa narafski, ne znam samo kako se ranije nisam setio ;))
Ovo je već za žuti karton, a PowerBuilder poslat na zagrevanje.
clipper.320mirche,
> ustvrditi da je dos program startovan pod Win-om. Ja na svojoj
> masini i nemam Win...:(
Eh :( Blago tebi! Ti i ne znaš za naše muke :(
clipper.321mirche,
Evo jednog tužnog podatka:
Posle višednevnog probanja zaključio sam da je na clipperu neizvodljivo
napraviti dobar sistem audit-a i rollback-a a da to ne bude očajno sporo :(
A tek pod mrežom? Ne smem ni da pomislim. Stvar je ipak trebalo poveriti
DOS-u koji još uvek nema taj prokleti DMS. :((((
clipper.322jolicm,
MMMMMMM>> , mogao bi da "kešira" ono što je pregledao ili tako nešto.
E pa to je jakooooo loše rešenje, em se gubi vreme u mahinacijama u browseu, em
se gubi vreme u samom radu programa u tom keširanju. Mislim da je u takvim
slučajevima najbolji indeks i . (tačka).
clipper.323jolicm,
>> Left(string,xx)
Mislim da milanv pita kako moze to prikazati, a i editovati, a tu mu jedino
pomaze da zasuče rukave i skroz na skroz izmeni browse naredbu, doda Picture
svakog polja. A ako se u to već upusti onda neka doda sve što mu treba (zabrane
, kodne blokove, validaciju upisa svakog polja, when funkcije, provere dozvole
skip-a, dozvole izlaska i sl...
clipper.324soul,
Ovde jednom beše kraća načelna rasprava oko dizajna
korisničkog interfejsa, pa u vezi s tim:
Ima li neko iskustva sa velikim maskama (if you know
what I mean):
Da li je bolje problem rešiti nečim kao Scroll Get
(vidi dir) ili podeliti masku na više ekrana. Meni
se lično skrol više dopada, ali kako je sa prosečnim
korisnicima?
clipper.325bpekic,
CA-VO pitanja:
Probijam se kroz CAVO i postoje stvari koje mi nisu jasne, verovatno
pisu negde u helpu, ima i primera, ali mozda mi neko moze pomoci da
ne otkrivam rupe u saksijama.
1.) Kako se postize provera unosa u, recimo polje meke sifre, kada je
data-window u browse modu, pa na polju SIFRA, unesem nesto. Zelim
da se u drugoj bazi nadje naziv za tu sifru. U definiciji servera
za polje, nisam nasao nista poput "event-a", jedino sto dolazi u
obzir je deo servera opisa polja - VALIDACIJA. Tu sam se spetljao
jer ne znam sta da tu unesem. Ako unesem da validnost unosa u polje
SIFRA, proveri neka funkcija, kako toj funkciji zadati parametre i
koje parametre da prenesem (verovatno svakako najmanje oNazivServera)
Osim toga ako recimo NE nadjem naziv za zadatu sifru, na koji
nazin da obavestim korisnika (ko je OWNER za display teksta).
2.) Drugi problem mi je sledeci:
Ako imam recimo samo dva "geta"
Sifra: XXXXX
Naziv: XXXXXXXXXXXX
to je naravno definisano kroz server za tu bazu, ali kako u samim
prozorima getova da omogucim skok sa TABOM sa jednog na drugo
polje. Sada kako stvari stoje, kada pritisnem TAB, brise se tekuci
zapis, a kada na tako izbrisan zapis kliknem misem, pojavi se
prethodna vrednost.
Znaci ponovo dolazim do problema kako da postignem da se pocetak
aktivnosti unosa u neko polje "geta", prijavi sistemu kao da je to
neki "event" i da mu se za tu aktivnos zada akcija.
Kada sam se vec raspisao, da kazem da sam sa vise merenja ustanovio da
je CAVO skoro duplo sporiji kod recimo indeksiranja od standardnog
DOS-Clippera. Verovatno nisam napravio optimalni kod a deo i otpada na
pripreme servera za rad ali to usporenje mozda i nije tako veliko.
Inace, mozda i nije losa ideja o CAVO temi !??
Ako je neko raspolozen da mi pomogne - ne branim.
clipper.326milanv,
║║ Pretpostavljam da misliš na TBrowse. Odgovor je da, naravno. U kodnom
║║ bloku u kome definišeš prikaz staviš Left(string,xx) i dobićeš suženi
║║ prikaz.
Naravno da mislim na TBrowse (ne znam ni sam zašto sam
izostavio "T") :)
Nije problem u prikazu početnog dela stringa, već u
mogućnosti da se celo polje, znači svih npr. 100 karaktera u
polju mogu editovati kroz TBrowse. Potrebno mi je da karakteri
dugog stringa mogu da skroluju kroz kratko polje. Nadam se da
sam uspeo da objasnim. Pokušao sam sa PICTURE "Sn", ali ne ide
mi u glavu gde da ga stavim ;).
║║> - Kako se najlakše aktivira MemoEdit() iz Browse()?
║║
║║ Pretpostavljam da opet misliš na TBrowse. Pa, prosto, kao i sve
║║ drugo. Kad korisnik zatraži izmenu memo polja, jednostavno pozoveš
║║ MemoEdit i to je to. Ipak ti objasni detaljnije šta ti treba, pa će i
║║ odgovor biti precizniji.
Pa, otprilike, da smo se ovde razumeli. Delimičan problem
je što mi standardna funkcija obavlja prikaz tabele koji se
poziva iz više mesta u programu za razne baze i namene, gde
većina nema memo polja, pa je potrebno da dotična funkcija sama
prepozna kada se radi o memo polju (bez komplikovanih pitalica
"ako me je pozvao baš taj i ako je baš ta kolona...") i da ga na,
recimo, ENTER pozove. (Uh, može li neko da napiše
komplikovaniju rečenicu:)
clipper.327milanv,
║║ Mislim da milanv pita kako moze to prikazati, a i editovati, a tu mu
║║ jedino pomaze da zasuče rukave i skroz na skroz izmeni browse naredbu,
║║ doda Picture svakog polja. A ako se u to već upusti onda neka doda sve
║║ što mu treba (zabrane , kodne blokove, validaciju upisa svakog polja,
║║ when funkcije, provere dozvole skip-a, dozvole izlaska i sl...
I pored toga što sam većinu dole navedenog ostvario,
prilično mi složeno deluje ubacivanje PICTURE u svako polje. Da
li je takva operacija negde dokumentovana, ili si krenuo od nule?
clipper.328goxx,
■ polju mogu editovati kroz TBrowse. Potrebno mi je da karakteri
■ dugog stringa mogu da skroluju kroz kratko polje. Nadam se da
...
■ većina nema memo polja, pa je potrebno da dotična funkcija sama
■ prepozna kada se radi o memo polju (bez komplikovanih pitalica
■ "ako me je pozvao baš taj i ako je baš ta kolona...") i da ga na,
Ovo se baš oteglo! :) Kako sam te ja razumeo, imam utisak da pitaš
neku banalnu stvar (bar ću ti za nju dati odgovor :)
// prvo se definiše nova komanda da bi se lakše formirala tabela.
// koristi se cargo promenljiva iz objekta column. od nje se
// formira niz od dva elementa; get-set blok i picture
// (po potrebi može još gomila drugih varijabli).
// get-set blok se izvršava funkcijom EVAL (sasvim logično :) i
// to na dva načina: EVAL(blok) daje vrednost promenljive ili
// EVAL(blok, vrednost) postavlja promenljivu na novu vrednost.
// definisane su samo dve komande. ako se ne navede VAR klauzula
// tada se izraz iz klauzule BLOCK koristi za formiranje get-set bloka
// (ovo mora pažljivo da se koristi, tj. SAMO kada je BLOK "prosta"
// promenljiva ili polje iz baze.
#xcommand TABLE <t> ADD COLUMN <h> BLOCK <b> ŠPICTURE <p>Ć =>;
<t>:AddColumn(TBColumnNew(<h>, <šbć>));;
<t>:GetColumn(<t>:ColCount):Cargo :=;
š šđxđ IF(PCOUNT()==0, <b>, <b> := x)ć, <p> ć
#xcommand TABLE <t> ADD COLUMN <h> BLOCK <b> VAR <v> ŠPICTURE <p>Ć =>;
<t>:AddColumn(TBColumnNew(<h>, <šbć>));;
<t>:GetColumn(<t>:ColCount):Cargo :=;
š šđxđ IF(PCOUNT()==0, <v>, <v> := x)ć, <p> ć
// primer kako bi to sve moglo da izgleda u programu
// ...
tbl := TBrowseDB(y1, x1, y2, x2)
TABLE tbl ADD COLUMN "Naziv";
BLOCK LEFT(baza1->naziv,30);
VAR baza1->naziv
TABLE tbl ADD COLUMN "Sifra";
BLOCK baza1->sifra
TABLE tbl ADD COLUMN "Komentar";
BLOCK "<memo>";
VAR baza1->komentar
TABLE tbl ADD COLUMN "Iznos";
BLOCK TRANSFORM(baza1->iznos, "999,999.99");
VAR baza1->iznos;
PICTURE "999,999.99"
TBrowse_With_Edit(tbl)
// ...
// ---------------------------------------
FUNCTION TBrowse_With_Edit(tbl)
LOCAL nKey := 0, var
DO WHILE .T.
DO WHILE .NOT. tbl:stabilize() .AND. NEXTKEY() == 0 ; ENDDO
nKey := INKEY(0)
DO CASE
CASE nKey == K_ESC ; EXIT
CASE nKey == K_UP ; tbl:up()
// ...
// ******************************************************
CASE nKey == K_ENTER
// ovde OBAVEZNO treba stabilizacija objekta, ako imaš
// nameru da nešto pišeš preko tabele, a što se odnosi
// na tekući red (znači koristiš ROW() i COL())
tbl:ForceStable()
col := tbl:getcolumn(tbl:colpos)
nType := VALTYPE(var := EVAL(col:cargoŠ1Ć))
DO CASE
// long char "čSn"
CASE nType == "C"
č ROW(), COL() GET var PICTURE "čS"+ALLTRIM(STR(col:width))
READ
IF LASTKEY() <> K_ESC
EVAL(col:cargoŠ1Ć, var)
ENDIF
// memoedit
CASE nType == "M"
EVAL(col:cargoŠ1Ć, MEMOEDIT(y1,x1,y2,x2, var))
// numerik
CASE nType == "N"
č ROW(), COL() GET var PICTURE col:cargoŠ2Ć
READ
IF LASTKEY() <> K_ESC
EVAL(col:cargoŠ1Ć, var)
ENDIF
// ...
ENDCASE
ENDCASE
ENDDO
RETURN NIL
■ (Uh, može li neko da napiše komplikovaniju rečenicu:)
Mogu ja :))
Goran
PS. Ovo bi moglo u bajtove :)
clipper.329mdrazic,
> Ima li neko iskustva sa velikim maskama (if you know
> what I mean):
>
> Da li je bolje problem rešiti nečim kao Scroll Get
> (vidi dir) ili podeliti masku na više ekrana.
Ja sam koristio i jedno i drugo. Evo nekih iskustava. Vget sistem sam
preradio (ugradio mu još po nešto i povezao sa drugim delovima mog
okruženja. Kod veće količine podataka za jedan logički 'zapis' koji se
nalazi u vget-u (ili vsay-u) oseća se usporenje zato što se ceo sistem
zasniva na korišćenju cargo-a u get objektu kroz koji se provlače sve
informacije i ažuriraju u svakom objektu pri svakom skrolovanju.
Za manji obim podataka je prihvatljivo, a za get listu od 30x5 = 150
getova je neprijatno sporo.
U normalnom (ne 'browse' nego 'edit') modu pregleda podataka iz tabela
mi se na ekranu vidi sadržaj (samo) jednog zapisa. Sa PgUp, PgDn se
tipično listaju zapisi i postoji standardan meni (kod mene u donjem
delu ekrana) koji reaguje na Left, Right. Za zapise gde sve stane na
ekran, sve se normalno radi iz menija. Kada treba više mesta, tada
oformim više maski (sa rednim brojem u uglu okvira:) koje se mogu
ciklično smenjivati (za isti zapis) na neki hotkey ili kao kod mene
opcijom iz menija. Kada listaš zapise (PgUp, PgDn) prikazuju se podaci
za poslednje izabranu masku. Tako namestiš masku, pa listaš, što je
po meni nekako logično. Kod korisnika ovaj način omogućava da određenu
informaciju uvek dobije na istom mestu na ekranu (u svojoj masci) a ne
da je juri po skrolujućem prozoru (čas gore, čas dole). Ovaj drugi
način i mnogo brže radi jer se ograničava samo na podatke sa jedne maske
i nema potrebe sa trikovima sa cargom. Pri promeni zapisa normalno
menjaš samo trenutnu masku, ali pri unosu novog zapisa mora da ga
provedeš redom kroz sve maske.
Milan
clipper.330d.petrovic,
> Pretpostavljam da misliš na TBrowse. Odgovor je da, naravno. U
> kodnom bloku u kome definišeš prikaz staviš Left(string,xx) i
> dobićeš suženi prikaz.
TBColumn Class Provides the column objects TBrowse objects
width Column display width
width (Assignable)
Contains a numeric value that defines the display width for the
column. If TBColumn:width is not explicitly set, the width of the
column will be the greater of: 1) the length of the heading, 2) the
length of the footing, and 3) the length of the data at the first
evaluation of TBColumn:block. The width of the displayed data will be
the length at the first evaluation of TBColumn:block.
If this instance variable is explicitly set, the width of the column
will be TBColumn:width. Displayed headings, footings, and data will
all be truncated to this width when necessary. The width of the
displayed data will be the length at the first evaluation of
TBColumn:block for all data types other than character. Character
data will be extended to TBColumn:width for display purposes.
clipper.331d.petrovic,
Šta treba uraditi novell-u da dozvoljava clipper-u da otvori puuuno
fajlova ?
clipper.332nbatocanin,
>>> , mogao bi da "kešira" ono što je pregledao ili tako nešto.
> E pa to je jakooooo loše rešenje, em se gubi
> vreme u mahinacijama u browseu, em se gubi vreme u samom
> radu programa u tom keširanju. Mislim da je u takvim
> slučajevima najbolji indeks i . (tačka).
štos je izbeći vreme potrebno za indeksiranje. Šta ćeš ako treba
izdvojiti 5 _prvih_ slogova u tabeli od 100.000? Bolje je prikazati
brzo šta se može, a onda po potrebi tražiti sledeće.
clipper.333zkrstic,
>> Šta treba uraditi novell-u da dozvoljava clipper-u da otvori puuuno
>> fajlova ?
Poljubiti ga u čelence, pomaziti i staviti u SHELL.CFG
FILE HANDLES = XXX gde XXX + FILES iz Config.SYS ne prelaze 255
Zkr :)
clipper.334milanv,
║║ ■ (Uh, može li neko da napiše komplikovaniju rečenicu:)
║║ Mogu ja :))
Uh, uh;)), tek si me sada oznojio. Ovoliki tvoj trud je
zaslužio jednu ovakvu poruku u kojoj je poenta - hvala!.
Samo jedno podpitanje: kako ti izgleda ForceStable()?
(Ako je to ona Nenadova funkcija za poboljšano osvežavanje
ekrana, znam je).
clipper.335goxx,
■ Samo jedno podpitanje: kako ti izgleda ForceStable()?
Pravo da ti kažem, ni ja nemam pojma! :)))
Neka me ispravi neko, ko radi clipper 5.2, ako grešim.
To bi valjda trebalo da bude:
DO WHILE .NOT. tbl:Stabilize() ; ENDDO
Bilo mi kraće da napišem ForceStable, a toga nema u clipperu 5.01 već
u 5.2.
Goran
clipper.336jolicm,
>> ForceStable()?
To jeste to
U clipperu 5.01 toga nema i moralo se pisati Do while .not. tbl:stabilize();End
U clipperu 5.2 je tbl:ForceStable()
:)
clipper.337jolicm,
>> Šta ćeš ako treba izdvojiti 5 _prvih_ slogova u tabeli od 100.000 ?
E šta ćeš ako treba izdvojiti oko _zadnjih_ 5 slogova od 100.000 ? ili
_srednjih_ ?
:
:)
RPůî(EŹžŁłŔ
clipper.338nbatocanin,
> Nije problem u prikazu početnog dela stringa, već u
> mogućnosti da se celo polje, znači svih npr. 100 karaktera
> u polju mogu editovati kroz TBrowse. Potrebno mi je da
> karakteri dugog stringa mogu da skroluju kroz kratko
> polje. Nadam se da sam uspeo da objasnim. Pokušao sam sa
> PICTURE "Sn", ali ne ide mi u glavu gde da ga stavim ;).
Treba da raščistimo jednu stvar: TBrowse objekat ima primarnu ulogu
za _prikaz_ tabele/datoteke na ekranu. _Editovanje_ i ostale stvari
se posebno dodaju. Znači, ne treba vezivati unos/izmenu podataka za
TBrowse objekat: on služi za prikaz, a edit se dodaje. Kako, to je
duža priča, bilo je ovde govora, a mogu ti koristiti i tekstovi u R.
> Pa, otprilike, da smo se ovde razumeli. Delimičan problem
> je što mi standardna funkcija obavlja prikaz tabele koji
> se poziva iz više mesta u programu za razne baze i namene,
> gde većina nema memo polja, pa je potrebno da dotična
> funkcija sama prepozna kada se radi o memo polju (bez
> komplikovanih pitalica "ako me je pozvao baš taj i ako je
> baš ta kolona...") i da ga na, recimo, ENTER pozove. (Uh,
> može li neko da napiše komplikovaniju rečenicu:)
Ne vidim poseban problem. Ako želiš da dobiješ efekat kao u DBU ili
DBX (kada se proba unos na polju na kome piše <Memo> dobiješ prozorče
u kome unosiš tekst, obrada je skoro ista kao i za sva druga polja -
zavisi od rešenja koje već primenjuješ. Kako rešavaš, na primer, unos
datuma?
clipper.339nbatocanin,
> width (Assignable)
Da, može i ovo, naravno. Ja ipak radije koristim Left() :)
clipper.340nbatocanin,
> Šta treba uraditi novell-u da dozvoljava clipper-u da
> otvori puuuno fajlova ?
Kreiraš NET.CFG na lokalnom disku sa dira u kome su mrežni drajveri i
u njega upišeš:
FILE HANDLES = 100
clipper.341nbatocanin,
>>> Šta ćeš ako treba izdvojiti 5 _prvih_ slogova u tabeli
> od 100.000 ? E šta ćeš ako treba izdvojiti oko _zadnjih_ 5
> slogova od 100.000 ? ili _srednjih_ ?
Hm, nisam ovo probao, ali mi se čini da je prosto indeksiranje sasvim
sigurno po vremenu najgori slučaj mog rešenja i to kad su svi slogovi
na kraju. Ko koristi Six mogao bi da paralelno oformljava RYO indeks:
prikaže se prva strana i svi vidljivi slogovi se upišu u indeks. Ako
korisnik zatraži <PgDn>, upisuju se slogovi iz sledeće strane itd.
Prvi put bi kretanje unapred bilo usporeno, ali sledeći prolaz bi bio
trenutan.
Nego, evo šta mi pade na pamet:
// Artikli, indeksirani po ID-u i nazivu
USE Artikli INDEX Art_ID, Art_Naz NEW
// Kolicine, index:
// Str(k_mag) + IIF (k_kol<>0, " ", "Z") + Upper(Artikli->a_naziv)
USE MagKol INDEX MagKol NEW
SET RELATION TO k_art INTO Artikli
Sada će svi traženi slogovi (željeni magacin, količina <> 0) biti u
jednoj grupi i to unutar nje poređani po abecedi! Sad je trivijalno
raditi restriktivni prikaz po tabeli MagKol (jedan magacin, <>0).
Važno je da pri kreiranju/izmeni indeksa MagKol bude aktivirana SET RELATION
naredba. Jel' sam nešto prevideo?
clipper.342jolicm,
// Str(k_mag) + IIF (k_kol<>0, " ", "Z")+Upper(Artikli->a_naziv)
Mislim da je upravo to ono pravo .
Nego da ti kažem da sam ja ono rešenje sa pravljenjem matrice pri prikazu
koristio u KOBOLU kada sam pravio verovao ili ne BROWSE u kobolu. To ti je kad
clipperaša primoraju da se sroza na cobol jer na vaxu i vms-u nema clippera.
STR(K_MAG)
Pitanje za tebe (samo pitanje jer ni ja nisam siguran):
Da li je bolje STR(K_MAG,sirina) , da li to usporava izvršenje STR funkcije,
ako ne usporava onda je to bolje zbog kraćih indeksa.
:)
clipper.343mileusna,
žesto mi se nešto blokirao program, ne pomaže ni <Alt C>. Gledam ja šta ću i
uzmeme RTLink, prelinkujem module, i sve radi. Opet probam na Blinkeru i opet
ne radi. Zatim uzmeme .lnk fajl za Blinker i počnem da gledam blinker komande
koje sam unutra ubacio. I šta primetim. Kada se stavi BLINKER INCREMENTAL OFF
program mi blokira, kad ne stavim INCREMENTAL OFF, program radi kako i treba da
radi. Jel ovo neki poznati BUG, nepoznati (redak) BUG, ja sam u nečemu pogrešio
ili nešto treće (tj. četvrto). A BLINKER INCREMENTAL OFF preporučuju za finalnu
verziju...
clipper.344.bdd.,
>> žesto mi se nešto blokirao program, ne pomaže ni <Alt C>...
Ukoliko je inkerementalno linkovanje uključeno, overlejima
upravlja blinkerov overlej menadžer. BLI INC OFF dovodi do toga
da C i asm kod kontroliše blinkerov overlej menadžer, a clipper kod
menadžer ugrađen u sam clipper. Probaj sa BLINKER CLIPPER PAGE OFF
čime isključuješ clipperov menadžer, mada je bolje da proveriš šta sve
stavljaš u overleje (posebno obrati pažnju na module iz biblioteka,
MODULE .... FROM ... ), jer clipperov menadžer troši nešto manje memorije,
a i malo brže radi, pa je bolje da ga ne isključuješ.
Bogi
clipper.345nbatocanin,
> STR(K_MAG)
> Pitanje za tebe (samo pitanje jer ni ja nisam siguran):
> Da li je bolje STR(K_MAG,sirina) , da li to usporava
> izvršenje STR funkcije, ako ne usporava onda je to bolje
> zbog kraćih indeksa. :)
Hm, pretpostavljam da na početku Str funkcije postoji jedno:
IF nDec == NIL
IzračunajDecDužinu()
END IF
a bez jednog argumenta br`e ide prenos parametara, tako da mi liči na
slično? Mada, možda je bolje staviti i broj decimala kako promena
strukture u bazi ne bi uticala na rad programa. Najbolje je da se za
šifru i ne koriste brojevi, što reče mdrazic (nema konverzije
broj-string-broj), ali ja sam tako odavno počeo, pa mi je sad mrsko
da to menjam.
clipper.346mileusna,
>> mada je bolje da proveriš šta sve stavljaš u overleje (posebno obrati pažnju
>> na module iz biblioteka, MODULE .... FROM ... ),
Da sam ovde negde zabrljao, ne bi bilo u redu uopšte, ni sa RTLinkom, ni sa
Blinkerom. Inače, kad sam onda tražio uzrok, u overlaje sam stavio samo
module moga programa i ništa više, i opet je bilo isto.
clipper.347milanv,
║║ Ne vidim poseban problem.
Ne vidim ga ni ja, al' ne šljaka. :)
║║ Ako želiš da dobiješ efekat kao u DBU ili
║║ DBX (kada se proba unos na polju na kome piše <Memo> dobiješ prozorče
║║ u kome unosiš tekst,
TO!
║║ obrada je skoro ista kao i za sva druga polja -
║║ zavisi od rešenja koje već primenjuješ. Kako rešavaš, na primer, unos
║║ datuma?
Pa na vrlo klasičan (?) način. Mislim da je prilično sličan
onome kakvog si ti naveo u Računarima, svojevremeno:
...
AADD (cols, TBColumnNew ('Sifra', šđđ ar_sifrać))
AADD (cols, TBColumnNew ('Naziv artikla', šđđ ar_nazivć))
AADD (cols, TBColumnNew ('Datum', šđđ ar_jedinć))
Tabela (cols, aFields, 'A')
...
FUNCTION Tabela (cols, aFields, cPoziv, cUpis)
...
browser := TBrowseDB (5,1,22,78)
FOR i = 1 TO LEN (cols)
browser:addColumn (colsŠiĆ)
NEXT i
WHILE .T.
ch := 0
WHILE !browser:stable .AND. ch == 0
ch := Inkey ()
browser:stabilize ()
END DO
ch := Inkey (0)
DO CASE
...
CASE ch == K_ENTER .AND. cUpis == NIL
IF cPoziv == 'A' .OR. ...
Fresh (browser)
fname := aFieldsŠbrowser:colPosĆ
xPriv := &fname
č Row(), Col() GET xPriv VALID IIF (...)
save_curs := setcursor(INS_CURSOR)
save_ikey_cb := setkey(K_INS,;
šđđ readinsert(!readinsert()),;
setcursor(INS_CURSOR)ć)
READ
REPLACE &fname WITH xPriv
setcursor(save_curs)
setkey(K_INS, save_ikey_cb)
KEYBOARD CHR (K_RIGHT)
Fresh (browser)
ELSE
CLEAR TYPEAHEAD
END IF
...
ENDCASE
END DO
...
Otprilike, to je - to. I to radi za sve tipove varijabli,
osim za memo polje. Zapravo, verujem da radi i u tom slučaju, samo?
OK, sviđa mi se goxx-ov način, ali ne kapiram šta ovde nedostaje?
clipper.350aseovic,
Subject: SIX 2.02
Da li je neko primetio "čudno" ponašanje SIX-a prilikom brisanja
nekoliko uzastopnih zapisa? Situacija je sledeca:
OTP_DET.DBF - Stavke otpremnica
------------
BRFAK C 8 - broj otpremnice (aktivan je indeks po ovom polju
sa uslovom "FOR !Deleted()")
/******************/
dbSeek(BrOtp)
while otp_det->brfak == BrOtp
dbDelete() // brise zapis
dbSkip(1) // trebalo bi da predje na sledeci
enddo // ali skace na kraj datoteke - Eof()->.t.
Rezultat je da se stornira samo prva stavka otpremnice i napravi opsti
haos na lageru.
Slicnu stvar sam primetio i kad se radi dbSkip(-1) s tim sto se skace
na pocetak datoteke (Bof()->.t.)
Sa SixCDX 1.5 i ranije NTX-om sve je radilo OK.
Ima li komentara?
Pozdrav,
Sele
clipper.351mdrazic,
> Najbolje je da se za
> šifru i ne koriste brojevi, što reče mdrazic (nema konverzije
> broj-string-broj), ali ja sam tako odavno počeo, pa mi je sad mrsko
> da to menjam.
'Će te ubedimo, milom ili silom :)))
Milan
clipper.352goxx,
■ ch := 0
■ WHILE !browser:stable .AND. ch == 0
■ ch := Inkey ()
■ browser:stabilize ()
■ END DO
■ ch := Inkey (0)
Ovo ti baš i nije najbolje iako ispravno radi !
Kad, recimo, uporno držiš "taster" K_DOWN i ideš kroz tabelu evo šta se
dešava. Program uđe u petlju za stabilizaciju i primeti da je pritisnut
taster, zatim izlazi odatle (taster više nije u baferu !!!) i dolazi
na Inkey(0) gde čeka na novi "taster".
Znači, ako pritisneš neki taster samo jednom dok se vrši stabilizacija
neće "reagovati" tabela.
Rešenje: 1) zameni Inkey() u do-while petlji sa NextKey() ili
2) DO WHILE .NOT. browser:Stabilize() .AND. NEXTKEY() == 0
ENDDO
Ovo pod 2 je brže jer sam metod ::stabilize() vraća ::stable.
■ xPriv := &fname
■ č Row(), Col() GET xPriv VALID IIF (...)
■ ...
■ READ
■ REPLACE &fname WITH xPriv
■ ...
■ Otprilike, to je - to. I to radi za sve tipove varijabli,
■ osim za memo polje. Zapravo, verujem da radi i u tom slučaju, samo?
Evo šta se dešava. On počne da edituje memoedit polje koje se sada
zbog dodeljivanja drugoj promenljivoj pretovrilo u karakter polje
(veoma velike dužine).
Kako nemaš PICTURE u GET-u onda on uzima dužinu podatka za PICTURE
tj. prikaže od pozicije pa do desne ivice ekrana, a u okviru njega možeš
daleko da odeš iz vidljivog dela ekrana (ovo isto se dešava i u DBU
ako je "C" polje veće od ekrana).
Rešenje bi bilo da u slučaju memo polja ( Valtype(&fname)=="M" )
edituješ podatke (memo) u nekom prozoru sa MEMOEDIT() ili na neki
drugi način.
Probaj da izbegneš makroe :)
Goran
clipper.353majtoski,
Da li neko zna kako u clipper uz gforce lib ubacim sliku u 640x480 u
program, ili preko neke druge lib. koja i kako
clipper.354dsisic,
// Ukoliko bi ovde ...
> AADD (cols, TBColumnNew ('Sifra', sdd ar_sifrac))
// ... postavio set/get blok
AAdd( cols,;
TbColumnNew( 'Sifra', { |x| if( x == NIL, ar_sifrac, ar_sifrac := x ) } )
// ... Onda bi ovo
> CASE ch == K_ENTER .AND. cUpis == NIL
> ...
> fname := aFieldsSbrowser:colPosC
> xPriv := &fname
>
> Z Row(), Col() GET xPriv VALID IIF (...)
> ...
> READ
> ...
// ... izgledalo 'elegantnije'
CASE ch == K_ENTER
oGet := GetNew( Row(), Col(), browser:GetColumn( browser:ColPos ):Block )
ReadModal( { oGet } )
// ...
Jos bih da razjasnim:
Ukoliko u toku 'refresha' tj. stabilizacije, dodje do pritiska
na neki taster (ch != 0), trebalo bi preduzeti neku akciju saglasno
pritisnutom tasteru. Jasno je da ono 'ch := Inkey( 0 )' iza 'END DO' anulira
vrednost ch koji je prekinuo stabilizaciju. Dakle, ukoliko zelis da
'konstruktivno' prekidas stabilizaciju moras da zaobidjes to Inkey( 0 ).
U suprotnom ovih pet linija koda moze da se opise samo sa dve:
> WHILE !browser:stable .AND. ch == 0 browser:ForceStable()
> ch := Inkey () ---- ----
> browser:stabilize () ---- ----
> END DO ch := Inkey(0)
> ch := Inkey (0)
// Najbolje bi pak islo:
While !browser:Stable .and. ch == 0
browser:Stabilize()
ch := Inkey()
end
if browser:Stable
ch := Inkey( 0 )
end
do case
// ...
clipper.355dsisic,
> dbSeek(BrOtp)
> while otp_det->brfak == BrOtp
> dbDelete() // brise zapis
> dbSkip(1) // trebalo bi da predje na sledeci
> enddo // ali skace na kraj datoteke - Eof()->.t.
Mislim da je krajnje neprimereno brisati zapise iz tabele pod uslovom
koji je sastavni deo kljuca trenutnog indeksa.
Da ne pominjem da samo brisanje nije bas u 'fazonu'. Probaj sa reciklazom :)
clipper.356nbatocanin,
> TO!
Sve ti je dobro u programu, jedino što memo polja ne možeš učitavati
sa GET, već treba upotrebiti MemoEdit.
clipper.357d.petrovic,
> Subject: SIX 2.02
>
> Da li je neko primetio "čudno" ponašanje SIX-a prilikom
> brisanja
Napravili sad nešto što sam ja pre par godina O;))
Već je poznata priča da obrisan zapis može ponovo da se koristi...
Krenem po stavkama otpremnice, pokupim podatke, napunim sva polja sa
Chr(0), obrišem pa dbSkip() i ... normalno da nije na sledećoj stavci,
sada je prvi u bazi. Posle sam za takve rabote napravio...
Do While <Uslov> .AND. ! Eof()
// Pokupi podatke
dbSkip()
aadd(aBris, RecNo())
EndDo
Utamani(aBris)
Func Utamani(a)
Local i := Len(a), n := 0
For n := 1 To i
dbGoto(aŠnĆ)
// Obrisi
// Napuni sa Chr(0)
Next
Možda sada drajver nešto interno pokušava da sortira (obrisane
fajlove na vrh ili kraj) da ne skakuće po njima. Radim samo sa .NTX pa
neznam koje te muke muče, samo filozofiram O:). Probaj da promeniš stanje
_SET_DELETED pa da vidiš šta se dešava ili probaj ovo gore.
A da se vratiš na .NTX ? ;)))
clipper.358d.petrovic,
> Ukoliko u toku 'refresha' tj. stabilizacije, dodje do pritiska
> na neki taster (ch != 0), trebalo bi preduzeti neku akciju
> saglasno pritisnutom tasteru. Jasno je da ono 'ch := Inkey( 0
> )' iza 'END DO' anulira
Zar nije mnogo efikasnije da ( Ch := 0 ) ide na kraj glavne petlje ?
clipper.359mdrazic,
>> dbSeek(BrOtp)
>> while otp_det->brfak == BrOtp
>> dbDelete() // brise zapis
>> dbSkip(1) // trebalo bi da predje na sledeci
>> enddo // ali skace na kraj datoteke - Eof()->.t.
>
> Mislim da je krajnje neprimereno brisati zapise iz tabele pod uslovom
> koji je sastavni deo kljuca trenutnog indeksa.
>
> Da ne pominjem da samo brisanje nije bas u 'fazonu'. Probaj sa reciklazom
> :)
Ne razumem. Ma kakav index da imaš, u brisanom zapisu mu se nalazi ključ.
A prvi metod sa 'čistim' delete ne pravi probleme osim ako možda imaš
uslovni index po .not.deleted(). Reciklaža (ukoliko menjaš ključ radi
toga) uvodi nove probleme. Jedan od problema je što se promenom ključa
odmah nađeš na drugom mestu u tabeli, a drugi što se prilikom rada oseća
usporenje kada pointer 'prelazi' preko brisanih zapisa. Primer: ako u
ključno polje radi reciklaže upišeš recimo chr(255) tada su po tom
ključu svi brisani zapisi na dnu tabele, i go bottom dugo radi dok ne
nađe poslednji neobrisani zapis.
U gornjem problemu sa skipovanjem objašnjenje je moguće i logično ako
je aktivni index uslovni po .not.deleted(). Inače bi to trebao biti bug.
I na kraju jedan kompromis za reciklažu: ako želite da reciklirate
zapise a i da ih čuvate u izvornom obliku možda pokušate ovako.
Za reciklažu koristite uslovni index po uslovu deleted() a koji će
sadržati datum i vreme zadnje promene zapisa (može se i spakovati
u 6 znakova ko ekonomiše sa prostorom).
Primer: index on Timestamp() to I_RECIKL for deleted() gde vaša
funkcija Timestamp() vraća recimo descend(dtos(date())+time()) ili slično.
Na vrhu su najsvežije brisani zapisi. Pri reciklaži nećemo koristiti
brisane zapise u recimo zadnjih 5 dana. Tada se traženje slobodnog
mesta svodi na dbseek( descend(dtos(date()-5), .t. ). Ovim rešenjem
se omogućava recall zapisa u nekom razumnom roku uz efikasnu reciklažu.
Milan
clipper.360bulaja,
CA-Visual Objects
Pitanje..: Može li se promeniti izgled statusne linije u VO programima
(po default-u u njoj su prikazani HyperLabel i sat)?
Odgovor..: Može. :)
Za to je zadužena StatusBar klasa čiji je vlasnik ShellWindow, odnosno
StandardShellWindow ukoliko korisite kostur (app framework) Standard MDI
apllikacije koji je generisao VO. Neki od metoda StatusBar klase su npr.
DisplayTime() (prikazuje sat u statusnoj liniji - ovo je default u Std
MDI App), DisplayKeyboard() (prikazuje status Insert, Num Lock, Caps
Lock i Scroll Lock tastera - mnogo lepo izgleda:), DisplayMemory()
(prikazuje količinu slobodne memorije - korisno prilikom razvoja
aplikacije),.. Redosled pozivanja StatusBar metoda određuje i redosled
prikazivanja tih informacija sa leva na desno. Opis StatusBar klase
imate u VO help-u, s tim što su neke stvati dosta šturo objašnjene -
hroničan nedostatak VO helpa je odsustvo dobrih primera. Izgled statusne
linije je najzgodnije podesititi u Init metdu ShellWindow-a, npr. ovako:
METHOD Init( oOwnerApp ) CLASS StandardShellWindow
local oSB as StatusBar
// ostale stvari koje idu u Init()
oSB := self:EnableStatusBar()
oSB:DisplayMemory()
oSB:DisplayKeyboard()
oSB:DisplayTime()
// znači u statusnoj liniji će biti prikazani redom
// sa leva na desno (uz right justification) količina
// slobodne memorije, keyboard indikatori i sat
// ...
return self
clipper.361soul,
Moderator bi zaista učinio uslugu svima kada bi otvorio temu VO.
Još jedan glas razuma: ZA
clipper.362rccomp,
Jos jedan glas za otvaranje VO konferencije !
clipper.363djelovic,
> Jos jedan glas za otvaranje VO konferencije !
Konferencije? Ih, ma to nije ništa, daj da ceo Sezam preimenujemo u VO :).
Šalu na stranu, trnenutna realnost je da se o VO zapravo i ne diskutuje, pa bi
bilo kakva novootvorena tema zvrjala prazna. Zbog toga je ipak najbolje da se
priča o VO obavlja u temi clipper, a da se sa otvaranjem teme ipak malo
pričeka.
P.S. A šta je sa temom PowerBuilder? Ja hoću PowerBuilder! :)
clipper.364peacock,
#### P.S. A šta je sa temom PowerBuilder? Ja hoću PowerBuilder! :)
To čudo izgleda mnogo interesantnije nego VO. Imaš li neka
konkretnija iskustva sa PB, bilo bi lepo da ih podeliš sa nama.
clipper.365mileusna,
>> Šalu na stranu, trnenutna realnost je da se o VO zapravo i ne diskutuje,
BTW, napravi li neko nešto na tom VO, mislim na kompletnutnu aplikaciju, bilo
da je u pitanju neki veći projetak, ili kućni adresar.
clipper.366djelovic,
> To čudo izgleda mnogo interesantnije nego VO. Imaš li neka
> konkretnija iskustva sa PB, bilo bi lepo da ih podeliš sa nama.
Nisam se baš ubio od korišćenja - pošto sam ga dobio tek pre koji dan
kranji domet u radu sa njim mi je jedan telefonski imenik, no, svejedno, evo
kratkog iskustva:
1. PowerBuilder je trenutno *hot* aplikacija u Americi, i tamo su oglasi po
novinama rečenica tipa "traže se PB programeri".
2. Kao alatka za razvoj, PB ima dve krupne prednosti u odnosu na Fox4Win,
dBase 4 Win, Access i sl. Prvo, pravi EXE koji radi na mašinama sa 4MB,
i drugo, lepo se slaže sa velikim serverima.
3. Mana PowerBuildera je to što nije baš najkomforniji - iako se aplikacije
sa njim prave veoma brzo, ipak bi to moglo i bolje. Help nije "context
sensitive", neke opcije su komplikovane i nekomforne i sl.
Ukratko, PB je dobar program koji radi posao. Pravi EXE koji radi u 4MB što
mu je za nekoga ko danas prodaje Clipper programe a želeo bi da pređe na
Windows najveći adut, a usput je strašan u client/server okruženju kome je to
potrebno.
Zbog toga što je nekomforan i zbog onog basic-like jezika najverovatnije ću
preći na Delphi kada se pojavi. Do tada, PB is it.
clipper.367bulaja,
│Zbog toga što je nekomforan i zbog onog basic-like jezika najverovatnije
│ću preći na Delphi kada se pojavi. Do tada, PB is it.
└───
A da li si uopšte probao VO? :)
clipper.368djelovic,
> A da li si uopšte probao VO? :)
Nisam. Vidim da se o VO ovde još ne priča, pa se nisam ni mnogo raspitivao
kako radi. Elem, da li ispunjava:
1. Da programi napisani njime rade bez problema u 4MB.
2. Da nije bagovit.
Ako su ova dva uslova ispunjena, dobili ste novog manijaka u ovoj temi :).
clipper.369jolicm,
>> Jos jedan glas za otvaranje VO konferencije !
E posle ovakvog glasa uvek glasač dobije odgovor: NE, ima još vremena, tema
nema dovoljno interesenata ...
E BAŠ ME BRIGA ...
JOŠ JEDAN GLAS ZA OTVARANJE VO TEME
Razlozi za:
VO i standardan clipper su kao dos i windows (za šta su baš i pravljeni)
Imaju samo dodirne tačke u radi dbf.datoteka i tačka.
Ja do sada nisam niš napisao u VO, osim nekog jednostavnog programa za pregled
dbf datoteka i ne mislim da ću moći skoro da bilo šta radim na VO pošto imam
samo 4MB memorije.
E sad MODERATORE Zamisli nekog ko ne radi u VO i mora da čita raspravu i
listinge koji će sve VIŠE biti u ovoj temi.
E ima još:
Zamislite jednu lepotu:
Odluči se neko za VO, mislim da radi na njemu (nekad, nekog dana) i tada pokupi
lepo SVE što je ikada napisano o VO na sezamu iz konferencije PC.PROG tema VO.
Ukoliko se ODMAH ne otvori ova tema (a bogami skoro je već KASNO), nema šanse
da se kasnije pokupi sve, pošto je pomešano sa običnim clipperom !!!
MODERATORE ukoliko planiraš otvaranje teme VO nekada u budućnosti, ODGOVORI
zašto onda ne SADA (upravo zbog budućnosti)
Zdravo !:)
clipper.370dr.grba,
>>> A da li si uopšte probao VO? :)
>>
>> Nisam. Vidim da se o VO ovde još ne priča, pa se nisam ni mnogo raspitivao
>> kako radi. Elem, da li ispunjava:
Video sam i VO i PB. Ovaj prvi se čini glomazniji, daje (naizgled)
mnoooogo više kontrole, dok ovaj drugi (naizgled, takođe) daje
mnoooogo brže rezultate...
E, sad. Mogu ja da špekulišem i dangubim kad bih imao na raspolaganju
vreme koje nemam. Fakat, ovo su alati za Win programiranje baza za
leto gospodnje 1995. žućemo mi mnogo o ovome, sigurno.
Ali nema smisla sa piratskom kopijom... Da sedim i da bajam kao da
uradim ovo ili ono... Vreme je preskupo (da, tačno, šta ja tražim
ovde? (: )
Najzad, voleo bih da dam ličnu ocenu VO i PB, posebno i uporedno (neko
će se ovoga već setiti, pa napraviti članak u....), ali tu ocenu ne mogu
da dam posle dvadeset minuta čeprkanja po interfejsu. Moram videti ceo
paket, sve knjige u njemu. žak mi računar ni ne treba. Prosto, pokušao
bih da u najkraćem roku nađem odgovor na neka test pitanja.
clipper.371mkurtes,
Jeste da sam vec dao svoj glas za temu VO ali nije na odmet da se ponovo
pridruzim novopridoslim pristalicama VO-a. Treba otvoriti temu VO sto
pre. :)
clipper.372aseovic,
> Mislim da je krajnje neprimereno brisati zapise iz tabele pod uslovom
> koji je sastavni deo kljuca trenutnog indeksa.
To brisanje je ostalo još iz vremena Clipper-a 5.01 kada _nije bilo_
uslovnih indexa. Sa SIX-om 1.5 i USLOVNIM indexom JE RADILO pa nisam ništa
menjao, a sa 2.0 NE RADI. Dakle, bez obzira na to da li je brisanje
'primereno' ili nije, sa jednom verzijom radi a sa drugom ne.
> Da ne pominjem da samo brisanje nije bas u 'fazonu'. Probaj sa reciklazom :)
Ako baš želiš da budes u 'fazonu' pogledaj ĐSIX20ĐSAMPLESĐRECYCLE.PRG :)
Pozdrav,
Sele
clipper.373aseovic,
> Krenem po stavkama otpremnice, pokupim podatke, napunim sva polja sa
> Chr(0), obrišem pa dbSkip() i ... normalno da nije na sledećoj stavci,
> sada je prvi u bazi. Posle sam za takve rabote napravio...
Nisam hteo da radim takvu reciklažu. Hteo sam jednostavno da
obrišem zapis :)
> Do While <Uslov> .AND. ! Eof()
> // Pokupi podatke
> dbSkip()
> aadd(aBris, RecNo())
> EndDo
> Utamani(aBris)
Moze i tako. Meni je problem rešilo sledeće:
do while Found()
dbDelete()
dbSeek(brOtp)
enddo
> Možda sada drajver nešto interno pokušava da sortira (obrisane
> fajlove na vrh ili kraj) da ne skakuće po njima. Radim samo sa .NTX pa
> neznam koje te muke muče, samo filozofiram O:). Probaj da promeniš stanje
> _SET_DELETED pa da vidiš šta se dešava ili probaj ovo gore.
Mislim da jednostavno izbacuje zapis iz indexa (uslovni index: FOR !Deleted())
Problem je nastao zato što prethodna verzija SIX-a to nije odmah radila već se
ponašala (izgleda) kao NTX sa SET DELETED ON: osvežavala je index tek posle
pomeranja pokazivača na drugi zapis. (SET DELETED je sada OFF)
> A da se vratiš na .NTX ? ;)))
Neću! :)
Zar da se odreknem CDX-ova, transakcija, memo polja i mnogih drugih pogodnosti?
Taman sam sve sredio da ne puca, kad 'oćeš, teraju me da se vratim na NTX :))
Pozdrav,
Sele
clipper.374mileusna,
>> 1. Da programi napisani njime rade bez problema u 4MB.
Bilo je čini mi se reči o tome. Za normalan rad samog VO-a je potrebno bar
8 MB, dok aplikacije mogu da rade i sa manje memorije tj. 4 MB. žini mi se da
je o tome pisao nbatocanin u baze.podataka.
Nego, hoće li Borlandov Delfi da ima ugrađenu podršku za rad sa bazama, kao
što je to u VBasicu for Win (ja sam još uvek 99% u DOS-u, a Win, normalno, za
Hearts;) Jel' bilo nešto u NOVOSTI-ma o tome. Ako jeste, jel zna neko gde i
kada. Odgovor može i u PC.PROG/jezici ili razno, da ne bi gušili Clipper.
clipper.375saks,
Da li negde na Sezamu postoji opis TTF fontova (struktura fajla).
Bio bih vam jako zahvalan na odgovoru.
Sasa
clipper.376bpekic,
Ne znam zasto bi bio problem otvoriti temu CAVO, stvarno cemo poceti
da se "guramo" u jednoj temi, generalno posveceno Clipperu, ali kod
CAVO, bice i drugacijih poruka od cisto "programerskih mozgalica".
RAdi se o tome da imamo nazalost mnogo posla oko utvrdjivanja raznih
"rupa u saksijama" jer smo naravno veoma dobro opremljeni literaturom
i parama za nju.
U takvoj temi, nece biti problema sa korisnicima koji ne zele da za sada
krenu u rad na CAVO, a ni njima nece smetati poruke koje i ne zele da
citaju.
Posto ja na primer, nemam novca za lepo "kako bog nalaze" kupim original
CAVO, naravno da sam ga nabavio kod dilera i naravno da zelim da se
dokopam literature zaobilazno.Sta mi drugo preostaje?
Osim toga, koliko nas ima koji radimo i zaradjujemo, radeci na
REGISTROVANIM verzijama programa (bilo da je to Clipper, C, ili se samo
igramo...) Siguran sam da velika vecina od nas tako ne radi zbog "cefa"
vec jednostavno, ne mozemo se meriti sa valutnim iznosima koji se krecu
od 1000DM pa navise.
Iz tog razloga u temi CAVO, bice mnogo poruka u vezi "provaljivanjem"
kako sve to radi, a manje za pocetak o samoj tehnici programiranja.Nema
druge nego da sami sebi pomognemo, zasebna tema je jedno od resenja.
Dakle CAVO, CAVO tema!
clipper.377d.petrovic,
> Bilo je čini mi se reči o tome. Za normalan rad samog VO-a je
> potrebno bar 8 MB, dok aplikacije mogu da rade i sa manje
Sa 4 MB oupšte neće da prevede onaj program koji se dobija uz njega. Puca
po svim šavovima posle jedno pola sata maltretiranja diska.
> memorije tj. 4 MB. žini mi se da
Nova aplikacija (prazna, samo klikneš na new i napraviš "prazan program")
se učitava OKO 30 sec, a prvi poziv neke opcije (otvaranje dbf-a) traje
OKO 20 sec. Drugi poziv je već brz.
clipper.378d.petrovic,
Jesete, treba nam tema. 'oćemo VO.
= tačka ;)
clipper.379dejanr,
>> Jesete, treba nam tema. 'oćemo VO.
JEDINI način da se tema otvori jeste da, kroz duži vremenski period,
bude veći broj poruka u kojima se diskutuje o VO (diskusija != prosto
traženje teme). Samo tako nastaju teme na Sezamu.
clipper.380nbatocanin,
> BTW, napravi li neko nešto na tom VO, mislim na
> kompletnutnu aplikaciju, bilo da je u pitanju neki veći
> projetak, ili kućni adresar.
Dve su tu stvari: prva, nije nimalo lako bez papirnog uputstva.
Koliko sam primetio, ni u finalnoj verziji se help i dokumentacija ne
poklapaju. Druga stvar je što je VO u startu koncipiran kao alat za
profesionalce i zaista nije tako lak za upotrebu kao Visual Basic.
clipper.381mkurtes,
CAVO
Posto se dosta vec prica o tome dali moze ili ne moze da se radi
ispod 8 MB RAM-a sa VO paketom evo uporednih testova:
486DX/66MHz/4MBKKKKKKKKKKKKKKK ->/50MHz/8MB ->/66MHz/16MB
02 min 56 sec 01 min 35 sec 01 min 11 sec = pravljenje exe file-a
00 35 00 10 00 06 = pokretanje exe file-a
00 17 00 03 00 02 = otvaranje Data Window-a
sa 47 polja u vezi sa
serverom.
Kao sto vidite RAM je presudan ali se moze raditi i sa 4 MB
(ako imate dovoljno zivaca da docekate rezultate bild-ovanja
i ostalih operacija zavisnih od RAM-a).
Iako moram reci da je ovo sve radjeno bez RAM diska koji bi
jos ubrzao rad ako bi se napravio kao TEMP (ko ima visak RAM-a
neka izvoli)
Pozdrav. :) -CAVO TEMA - CAVO TEMA - CAVO TEMA - CAVO TEMA - CAVO TEMA.
clipper.382mkurtes,
cavo
NASTAVAK
Posto je ubrljalo K red u predhodnoj poruci objasnjenjež
prva kolona se odnosi na 486/66MHz/4MB RAM-a
druga kolona se odnosi na 486/50MHz/8MB RAM-a i
treca kolona se odnosi na 486/66MHz/16MB RAM-a.
Server koji pominjem je DataServer.
:) CAVO TEMA -> ...
clipper.383mdrazic,
> do while Found()
> dbDelete()
> dbSeek(brOtp)
> enddo
Kraće i bolje (ne traži početni seen pre petlje):
do while dbSeek(brOtp)
dbDelete()
enddo
clipper.384goxx,
Povodom CA-VO teme. I ja sam za, be obzira što još uvek ne radim na njemu
Ako se otvori posebna tema počinjem i ja da radim (ovo je ucena :)
clipper.385bulaja,
│Nisam. Vidim da se o VO ovde još ne priča, pa se nisam ni mnogo raspitivao
│kako radi. Elem, da li ispunjava:
│ 1. Da programi napisani njime rade bez problema u 4MB.
│ 2. Da nije bagovit.
│Ako su ova dva uslova ispunjena, dobili ste novog manijaka u ovoj temi :).
└───
1. Rade.
2. Nije.
:)
Naravno Visual Objects je još uvek suviše nova i neispitana stvar da bi
bio 100% siguran u ove dve stvari, ali za sada se dobro pokazuje :).
Doduše sama razvojna okolina izgleda još uvek nije potpuno očišćena od
bubica (dešavaju mi se po neki GPF otprilike svaki drugi-treći dan, a u
VO u poslednje vreme provodim po nekoliko sati dnevno:), ali gotove
aplikacije izgleda da ne pate od toga. Konačni EXE radi lepo i na
slabijim mašinama, jedino mi se čini da se nekako sporo učitava :).
Pretpostavljam da je to zbog dosta velike količine DLL-ova koja je
potrebna za rad (prosečno nekih 20-ak datoteka, ukupne dužine nešto
iznad 2Mb), dok je sam EXE relativno mali (150Kb pa naviše). Ako
stignem, napraviću neku konkretnu manju aplikaciju do sledeće nedelje
(taman dok otvoriš CAVO temu:), pa ću poslati ovde (tj. u PC.PROG:cavo
na uvid :).
clipper.386nbatocanin,
> Ako su ova dva uslova ispunjena, dobili ste novog manijaka
> u ovoj temi :).
Hm, mislim da ti nisu dobri uslovi :) Što bi rekao tipičan komentator
RTS, svedoci smo velikih promena u softverskim alatima. Nema više
editor+kompajler i vozi! Sada se radi u integrisanim okolinama od po
50MB na disku (uzgred, šta sada preporučujete čoveku-neprofesionalcu
da uzme za kućnu upotrebu?). Ako malo razmislite, videćete da je to
za sada jedini način da se izborimo sa složenim sistemima kao što je
Win i ostalima koji, svakako, tek dolaze. Htedoh da kažem: svi ti
proizvodi će u budućnosti postati toliko slični, sa sličnim
mogućnostima, da će u izvesnom smislu izbor između njih biti skoro
nevažan. Kladim se da će svi tražiti skoro iste resurse, imati
približno isto bagova i sl. - kao i sada, uostalom.
clipper.387nbatocanin,
> Nego, hoće li Borlandov Delfi da ima ugrađenu podršku za
> rad sa bazama, kao što je to u VBasicu for Win
Koliko sam ja obavešten, hoće, i to vrlo jaku. Moj drugar je bio u
test-timu i nešto priča o isključivoj distribuciji na CD-u. Doduše,
ovo nije provereno.
clipper.388tvucko,
I ja sam za temu VO. Ko voli nek izvoli !!!
Sve sto sam uradio u VO je instalacija, izrada programa
za obradu žiro računa, testiranje i brisanje VO.
Ako je u pitanju Windows i XBASE onda ipak ostajen
na FiveWin koji je mnogo praktičniji za izradu aplikacija i
kasnije održavanje.
clipper.389d.petrovic,
> JEDINI način da se tema otvori jeste da, kroz duži vremenski
> period, bude veći broj poruka u kojima se diskutuje o VO
> (diskusija != prosto traženje teme). Samo tako nastaju teme na
> Sezamu.
Ubedio si me. ;((((
Javljajte se ko 'oće u grupu.
clipper.390dr.grba,
>> Ako
>> stignem, napraviću neku konkretnu manju aplikaciju do sledeće nedelje
>> (taman dok otvoriš CAVO temu:), pa ću poslati ovde (tj. u PC.PROG:cavo
Telefonski imenik? (((:
clipper.391mkurtes,
CAVO
Prijavljujem se za grupu. :)
clipper.392mdrazic,
Molim ko zna da javi:
Šta sve utiče na LOAD SIZE (veličina koju javlja linker na kraju)
Clipper programa. Koristim RTLink sa jednim ili dva PLL-a i sa
Nanfor plus sopstvenom bibliotekom. Load size aplikacije je 426K
u razvojnoj verziji (sa debugerom) i 387K u finalnoj. Razvojna
verzija kada radi sa 605K RAM na jednom mestu zaglavi zbog
nedostatka osnovne memorije. Za sada nije ništa kritično jer
postoji i vidram :)) ali pitanje ostaje.
Još jedno zapažanje: kada aplikacija koristi EMS tada u osnovnoj
memoriji odvaja izvesni prostor za neku administraciju dotičnog.
Što je veći EMS, to više odvaja RAM-a. Iako je isti load size,
sa set clipper=Fxx;E0 opcijom ostane dole više memorije. Gornje
opisano zaglavljivanje je otklonjeno baš isključivanjem EMS, čime
je dobijeno ekstra 9KB.
Da li neko zna neku literaturu o organizaciji memorije, koliko na
load size itd. utiču private, local, static i slično. Ako se takav
nadje, neka se javi, neću mu ništa :)
Milan
clipper.393bulaja,
│Kao sto vidite RAM je presudan ali se moze raditi i sa 4 MB
│(ako imate dovoljno zivaca da docekate rezultate bild-ovanja
│i ostalih operacija zavisnih od RAM-a).
└───
Sa 4 Mb se sigurno ne može ozbiljno raditi :). Može se eventualno
pogledati help, generisati i kompajlirati Standardna MDI aplikacija,
promeniti HelpAbout :) i to je sve. Već je prebacivanje iz VO u Help
vremenski intenzivna operacija, a aktiviranje nekog od alata traje po
pola minuta što se sigurno ne odražava pozitivno na produktivnost :).
Sticajem okolnosti, i ja sam VO prvi put probao na 486/40 sa svega 4 Mb
memorije, i baš je bilo naporno raditi :). Trenutno u VO radim na
dve konfiguracije - jedna 486/40/8Mb (kućna mašina) i jedna 486/66/16Mb
(na poslu). žak i na ovoj drugoj (dakle sa 16 Mb RAM) se često oseti da
bi doborodošao i koji Mb više, ali se i sa 8 Mb može raditi (mada je
potrebno malo strpljenja:). Gledao sam VO i na 386 mašini sa 8 Mb
memorije, i to je radilo bolje nego 486 sa svega 4 Mb.
Ipak ko ima svega 4 Mb nek se ne ustručava da proba CA-Visual Objects -
može bar okvirno videti o čemu se radi i isplati li se investicija u
koji Mb RAM memorije više, koji je za ozbiljniji rad ipak neophodan.
│Iako moram reci da je ovo sve radjeno bez RAM diska koji bi jos ubrzao
│rad ako bi se napravio kao TEMP (ko ima visak RAM-a neka izvoli)
└───
:) RAM disk ne bi ubrzao rad, čak naprotiv.
clipper.394bulaja,
│Javljajte se ko 'oće u grupu.
└───
Daj oladi sa grupom :). Ako hoćeš da nešto doprineseš otvaranju CAVO
teme, bolje ako imaš pošalji ovde neki prilog vezan za VO :).
clipper.395jolicm,
>> JEDINI način da se tema otvori ...
Ako je to jedini način :) Zahtevam :) da se zatvore teme:
comment 0 poruka do sada,
dos 8 poruka do sada
algoritmi 21 poruka
cpp 22 poruke
CAVO je taj broj prešao.
Nije u redu da se ne dozvoljava iz teme clipper koja ima 391 poruku do sada da
se izdvoji još jedna tema.
Dejane ne poznajem te lično, ali čitajući tvoje tekstove ranije u računarima,
kada su počeli izlaziti nebih verovao da ćeš preći u birokrate
clipper.396d.petrovic,
> Daj oladi sa grupom :). Ako hoćeš da nešto doprineseš otvaranju
> CAVO teme, bolje ako imaš pošalji ovde neki prilog vezan za VO
> :).
Trebalo je da dobiješ pivo večeras za EH, ali, ako mi ovako odgovaraš na
mail ima da igram bilijar ;)))
clipper.398mileusna,
>> CAVO
>> Prijavljujem se za grupu. :)
E, moram i ja malo da zašumim. ;)
.To moderator "Daj čoveče, otvori im tu temu, bar da mi se ne puni PAD sa
nečim što nema veze ni sa Clipper-om ni sa CA.VO-om, kao što su recimo ove
žalopojke tipa "Hoćemo temu, hoćemo temu". U temi Ca.Vo bi moglo bar nešto
pametno da se pročita. Ako i ne bude previše rasprave, neće to biti ni prva ni
poslednja tema na Sezamu koja će zvrjati prazna ( bar neko vreme ;)."
REPLY dr.grba
>> Telefonski imenik? (((:
Why not. Hint : "Bulaja Organizer" ;) Nek' bude šta bude, ja bih samo
voleo da vidim neko čedo iz tog Ca.Vo-a, pa makar i prozor sa "Hello World"
Title-om :))))
clipper.399dvesic,
>> Šta sve utiče na LOAD SIZE (veličina koju javlja linker na
>> kraju) Clipper programa. Koristim RTLink sa jednim ili dva
>> PLL-a i sa Nanfor plus sopstvenom bibliotekom. Load size
>> aplikacije je 426K u razvojnoj verziji (sa debugerom) i 387K u
>> finalnoj. Razvojna verzija kada radi sa 605K RAM na jednom
>> mestu zaglavi zbog nedostatka osnovne memorije. Za sada nije
>> ništa kritično jer postoji i vidram :)) ali pitanje ostaje.
E sada ide priča ... (Ne čitaš članke u Računarima :)
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).
Zatim se prostor deli na Fixed i Swap space. U Fixed space idu
sistemske tabele, C i ASM rutine (kod RTLINK-a; Blinker i ove
rutine gura u dinamičke overleje -> više memorije). Što je veći Fixed 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.
Kod korišćenja PLL biblioteka RtLink sam odvaja deo Realne mem. za tabele
simbola : za svaku PLL biblioteku spisak svih simbola koje je moguće
referisati iz programa sa njihovim adresama i još nekim servisnim
informacijama. To se radi PRE nego što se prepusti kontrola VMM-u.
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).
>> load size itd. utiču private, local, static i slično. Ako se
>> takav nadje, neka se javi, neću mu ništa :)
Evo me :)))
Generalni savet(i) :
- Smanji Private/Public na račun statičkih
- Izbaci iz PLL-ova podršku za NTX ako ih ne koristiš
- ako ostaješ pri RTLinku, razmisli o ručnom razbijanju
aplikacije na overleje
- Upotrebi Blinker sa min/mid/max LNK fajlovima
- mail me, ako ti treba pomoć :)))
clipper.400djelovic,
> Nije u redu da se ne dozvoljava iz teme clipper koja ima 391 poruku do sada
> da se izdvoji još jedna tema.
Nije pitanje moguceg ili nemoguceg, vec pitanje interesovanja. Evo koliko
je vremena proslo od kada se prica o otvaranju teme VO, i osim silnih poruka u
kojima se trazi tema, nije bila *nijedna* poruka koja bi se VO-ima konkretno
bavila!
Evo da napravimo :) deal: Vi napisite 20 poruka koje se bave VO-om (pravih
poruka, ne kukanja i simuliranja poruka?), i eto teme. Fer?
clipper.401stosic,
> Nije pitanje moguceg ili nemoguceg, vec pitanje interesovanja. Evo koliko
> je vremena proslo od kada se prica o otvaranju teme VO, i osim silnih
> poruka u kojima se trazi tema, nije bila *nijedna* poruka koja bi se VO-ima
> konkretno bavila!
Ovo je greska, a kako se svaka placa mogao bi malo da pomognes:
Potreeban mi je DLL (za CA-VO) sa samo DVE funkcije: _inp() i _outp()
(pricali smo o tome u temi windows). Pozeljan je i source edukativnog
karaktera. Imam MSVC++ v1.0 i Watcom C++ v10.0, pa biraj.
Pozdrav, Boban
clipper.402stosic,
>>> CAVO
>
> E, moram i ja malo da zasumim. ;)
Samo napred! Sumelo je i kada je dr.grba trazio LALE.
clipper.403toma,
Konačno je došao trenutak da štampam dokumente na laseru. E sad,
pošto ja to do sada nisam radio, voleo bih da mi neko malo pripomogne.
žitah ovde da je neko to radio preko Crystal Reports-a (ili sam se
prevario). Mašina je 486 na 100Mhz, disk 540, 8MB RAM, so moguće su i
takve egzibicije.
Koji je po vašem mišljenju najbezbolniji prelazak iz EPSON
sekvenci na PCL (tako se zvaše) jezik.
Ni sam ne znam šta još da pitam, dakle, napišite što više. Ja sad
čekam vas, čovek čeka moj program i tako...
Namerno nisam napisao da je hitno (a jeste) jer nedavno na nekom
zidu pročitah poruku "Ništa nije hitno, samo ste vi zakasnili" :)
clipper.404dejanr,
>> Dejane ne poznajem te lično, ali čitajući tvoje tekstove ranije u
>> računarima, kada su počeli izlaziti nebih verovao da ćeš preći u
>> birokrate
Ne bih to nazvao birokratijom, to su pravila koja vladaju na Sezamu.
Teme se *nikada* ne otvaraju "napamet", nego samo na osnovu kontinuiranog
interesovanja korisnika izraženog kroz mnoštvo poruka, u dužem vremenskom
intervalu. A to mnoštvo poruka *nije* "hoću temu". Diskutujte o VO, ako
bude dovoljno poruka, biće i teme. Tako je, uostalom, nastala tema fox
pre mesec ili dva.
clipper.405dr.grba,
>> :) RAM disk ne bi ubrzao rad, čak naprotiv.
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?
clipper.406dr.grba,
>> Samo napred! Sumelo je i kada je dr.grba trazio LALE.
Ali sam barem pisao viceve zajedno sa zahtevima. (:
clipper.407d.petrovic,
> Koji je po vašem mišljenju najbezbolniji prelazak iz EPSON
> sekvenci na PCL (tako se zvaše) jezik.
Ako si koristio #define za setovanja štampača nebi trebalo da bude muke.
Ja sam davno probao i nije mi baš išlo podešavanje kodne strane štampača
iz programa pa je crtao nebuloze umesto linija (to podesiš unapred, na
štampaču), ali sve ostalo je radilo kako treba.
clipper.408rccomp,
Evo, malo da smetam: i ja se prijavljujem za grupu !!! :)
clipper.409ndragan,
/ ključu svi brisani zapisi na dnu tabele, i go bottom dugo radi dok ne
/ nađe poslednji neobrisani zapis.
Zato umesto go bottom može da ide
seek chr(255)
skip -1
Trebalo bi da je brže u ovakvom slučaju.
/ sadržati datum i vreme zadnje promene zapisa (može se i spakovati
/ u 6 znakova ko ekonomiše sa prostorom).
Datum se pakuje u dva bajta ovakvom funkcijom:
param datum
priv y
y=year(datum)-1980
y=max(0,y)
y=min(y,128)
numdatum=512*y+32*month(datum)+day(datum)
low=mod(numdatum,256)
hi=(numdatum-low)/256
gemd=chr(hi)+chr(low)
retu gemd
U tom formatu se, inače, upisuje i u direktorije. Ono GEM u nazivu
promenljive potiče od toga što sam taj format, na svoje veliko
iznenađenje, pronašao na Atariju (bio sam ubeđen da sam ga prvi
izmislio, a eto nisam), a tek potom i u DOSu.
Slično bi moglo i za vreme, recimo minuti 6 bitova, plus sati 5 bitova,
hm, mora se otkinuti od drugog bajta. Skoro da se isplati da se radi BCD
pakovanje, lakše se posle čita, a može i iz kobola (isprobao pod CP/M MS
kobolom, radilo).
clipper.410stosic,
CA-VO:DRAG-AND-DROP
U Init metodi za StandardShellWindow nalazi se i poziv metode
EnableDragDropClient(). Time je omoguceno otvaranje dbf fajlova pomocu
drag-and-drop servera: u File Manager-u pokupite dbf fajl i prevucite
ga u StandardShellWindow!
HOCEMO VO! HOCEMO VO! HOCEMO VO! HOCEMO VO! HOCEMO VO! HOCEMO VO! HOCEMO VO!
HOCEMO VO! HOCEMO VO! HOCEMO VO! HOCEMO VO! HOCEMO VO! HOCEMO VO! HOCEMO VO!
HOCEMO VO! HOCEMO VO! HOCEMO VO! HOCEMO VO! HOCEMO VO! HOCEMO VO! HOCEMO VO!
Finalnu verziju (:
Neko je vec ima ?
clipper.411nbatocanin,
> Ako je u pitanju Windows i XBASE onda ipak ostajen
> na FiveWin koji je mnogo praktičniji za izradu aplikacija
> i kasnije održavanje.
Može li malo detalja?
clipper.412ndragan,
/ 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...
clipper.413toma,
■> Ako si koristio #define za setovanja štampača nebi trebalo da bude
■> muke. Ja sam davno probao i nije mi baš išlo podešavanje kodne
■> strane štampača
To, to, al meni treba nešto kao :
Epson Laser (IIp kompatibilan)
EscP --> ?
EscM --> ?
Condensed --> ?
Probao sam malo i sam i počeo sam da kapiram, ali nije na odmet
i malo tuđeg iskustva
clipper.414bulaja,
│Evo da napravimo :) deal: Vi napisite 20 poruka koje se bave VO-om
│(pravih poruka, ne kukanja i simuliranja poruka?), i eto teme. Fer?
└───
Fer :). S tim što nisi baš u pravu da nije bila *nijedna* konkretna
poruka o VO :) - bilo je do sada diskusija o zvaničnim i nezvaničnim
patch-evima za VO 1.0, zatvaranju prozora pritiskom na ESC, problemima
sa inicijalizacijom VO, StatusBar-u, memorijskim zahtevima... Sve u
svemu nekih bar deset-petnaest korisnih poruka :).
clipper.415bulaja,
CA-Visual Objects
│Nek' bude šta bude, ja bih samo voleo da vidim neko čedo iz tog Ca.Vo-a,
│pa makar i prozor sa "Hello World" Title-om :))))
└───
Ok, you asked fot it: :)
METHOD Start() CLASS App
local oBox as TextBox
oBox := TextBox { , "Hello", "Hello, world!" }
oBox:Type := BOXICONEXCLAMATION + BUTTONOKAY
oBox:Show()
DJelovicu, jel brojiš? :)
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,
> 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,
>>> Š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,
> 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,
│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,
> 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,
>> 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,
>> / 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,
>> 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,
CAVO
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,
Subject: 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,
ŁŁŁ .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,
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?
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,
> 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,
>> 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,
č 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,
>> FWRITE() ...
I ja sam imao istih takvih problema baš ovih dana, meni je pomoglo COPY FILE
...
clipper.441nbatocanin,
> CAVO3P.HLP - 3rd Party Vendors Help File
Jel' ovo onaj spisak koji ide uz VO?
clipper.442nbatocanin,
> 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,
RE: ž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,
>> ŁŁŁ .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,
>>> 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,
> Poruka vise za temu. Pozdrav :).
djelovic: brojiš ?
clipper.447mdrazic,
> Koji je najefikasniji nacin resavanja unosa stringova duzih od sirine
> ekrana?
memoedit() ?
clipper.448dr.grba,
>> Koji je najefikasniji nacin resavanja unosa stringova duzih od sirine
>> ekrana?
Ponovno projektovanje aplikacije.
// Sorry, nisam mogao da odolim (((: //
clipper.449aseovic,
> 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,
RE: 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,
■ č 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,
■ č 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,
>> 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,
>>> 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,
> 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,
> 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,
>> 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,
>>> 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,
>> 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,
>> č 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,
>> 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,
> 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,
>> 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,
>>> // 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,
PC.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,
│Pade mi na pamet. Hteo bi da lupim mali casnovnik u uglu ekrana.
└───
Pogledaj PC.PROG.5:10.98
clipper.470bulaja,
│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,
PC.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,
PC.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,
PC.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,
>>> 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,
> 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,
■ 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,
■ 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,
■ │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,
■ 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,
■ 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,
> 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,
> 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,
> 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,
RE: ž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,
>> 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,
>> 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,
> - 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,
>> 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,
>>> 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,
A 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,
> 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,
>> 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,
> 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,
> If Memory(2) > 192 // tu je negde...
> run pkzip ....
> Endif
Meni memory(2) vraća 65498 !?
Milan
clipper.498nbatocanin,
> 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,
> dbsetorder(0)
> // ovde su indeksi zatvoreni
??? U kom Clipper-u?
clipper.500dvesic,
>> 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,
>> 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,
> 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,
> 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,
/ 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,
>> 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,
>> 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,
>> 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,
> 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,
>>> dbsetorder(0)
> 5.2d
Hm, mora biti da je nešto drugo u pitanju. Pošalji malo koda.
clipper.510d.petrovic,
> 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,
> 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,
> djelovic: brojiš
Ja brojim, ali vi nešto slabo pišete :).
clipper.517bulaja,
PC.PRO:c - -Visual Objects
Za one koji koriste 4DOS, evo je Descript.ion datoteka
sa opisima svih datoteka iz \CAVO direktorijuma.
descript.ionclipper.518bulaja,
│Ja brojim, ali vi nešto slabo pišete :).
└───
Biće ipak da ti slabo brojiš :). Od ovoga:
> 10.400 PC.PROG.5:clipper
> djelovic, 10.03.95. 20:00, 506 chr
>
> Evo da napravimo :) deal: Vi napisite 20 poruka koje se bave VO-om
> (pravih poruka, ne kukanja i simuliranja poruka?), i eto teme. Fer?
je po mojoj računici stiglo tačno oko 20 *konkretnih* poruka o VO.
Sad ti odluči hoćeš li sačekati još neku ili otvoriti odmah CAVO
temu, ali sasvim je izvesno da će teme biti (prema tome bolje otvori
što pre :).
clipper.519dvesic,
>> 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..)..
- Koristi Blinker.
- Sve što nijer escencijalno neophodno trpaj u overleje
- Koristi CL520MID.LNK ili CL520MAX.LNK skript za overlejisanje
Clipper.Lib i Extend.Lib
- Ako je moguće (tj. ako ti ploča podržava) pretvori onih 320 Kb
(što ostane posle DOS=HIGH) u EMS. Ako ne, upotrebi ga za keš.
NEMOJ ga koristiti kao RAM disk na koji ćeš usmeriti TEMP fajlove.
Clipper programa (//SWAPPATH: odnosno //TEMPPATH: direktive)
jer ćeš imati gadnih problema ako mesta nestane.
>> 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)?
Možda je trivijalno ... da li si imao potrebnih FILES=65,75,85...
u Config.SYS-u ? Koju grešku je prijavio : redovnu :)) ili internu ?
clipper.520jolicm,
>>> Koristi Blinker
DA LI JE NEKO DIREKTNO ISPROBAO U PRAKSI ŠTA JE BRčE:
Program linkovan Blinkerom ili program linkovan rtlinkom ?????????
Moja neka iskustva (možda mala) su ipak na strani rtlinka, naročito kod
indeksiranja.
PS. Ne pitam za brzinu linkovanja, već programa.
clipper.522bpekic,
Ja sam taj problem imao dok sam radio na verziji 5.a2a i 5.2b
Onog momenta kada sam presao na 5.2c toga vise nema. Kasnije sam
saznao da je to bio bag u pomenutim verzijama PRE 5.c i dalje.
Pretpostavljam da radis na 5.2a,b ... Predji dalje...
Pozdrav Boris
clipper.523bceklic,
> Mozda je trivijalno ... da li si imao potrebnih
> FILES=65,75,85... u Config.SYS-u ? Koju gresku je prijavio :
> redovnu :)) ili internu ?
Moguce da je u pitanju nesto ovako trivijalno mada bi onda istu
gresku prijavio i za .dbf fajlove a on je javljao gresku samo za neke
od index fajlova .Btw, ne secam se tacno koja je greska bila u pitanju.
clipper.524nbatocanin,
> Fatal error C3049 String space exhausted,
Probaj da izdeliš PRG na više delova.
clipper.525dvesic,
>> Program linkovan Blinkerom ili program linkovan rtlinkom
>> ????????? Moja neka iskustva (možda mala) su ipak na strani
>> rtlinka, naročito kod indeksiranja.
>> PS. Ne pitam za brzinu linkovanja, već programa.
Dosta dugo sam se lomio između ova dva linkera i Blinker je pobedio.
Ako se dobro isprojektuje LNK datoteka, nema šanse da RTLink bude
brži.
žesto se recimo meri indeksiranje, zaboravljajući pri tom da je
za takve stvari potrebno da moduli za indeksiranje (npr. kod SIX2)
odu u ROOT a ne u overlej, jer su pisani u C-u i ASM-u -> da ih RTLink
stavlja u root. Tek tada treba izmeriti vremena.
clipper.526d.petrovic,
Možda tema nije prava, ali treba mi za clipper :)
1. Kako da dobijem broj mrežne kartice (%P_STATION) ?
2. Kako da dobijem broj mrežne kartice na Serveru ?
clipper.527mdrazic,
> 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 .... ;)))))
I mene zbunjuje memory(2) kada javi više od 65000. Da li je QEMM ili
nešto drugo, ne znam. Probajte i vi pa javite šta dobijate.
Milan
clipper.528mdrazic,
> - Ako je moguće (tj. ako ti ploča podržava) pretvori onih 320 Kb
> (što ostane posle DOS=HIGH) u EMS. Ako ne, upotrebi ga za keš.
Bolje je da staviš EMS=0KB a da tu memoriju nekim menadžerom
(QRAM, TLB, i sličnim - ponekad proradi i običan HIMEM.SYS)
dodaš osnovnoj i da drajvere za mrežu, DOS i eventualno ostalo
đubre instaliraš 'gore'. Sa više osnovne memorije program brže
radi. Brže nego da premestiš XXX KB sa osnovne memorije i
premestiš je u EMS.
Milan
clipper.529mdrazic,
> 1. Kako da dobijem broj mrežne kartice (%P_STATION) ?
Potraži u NETTO biblioteci. Postoji jedna funkcija koja daje masu
podataka o stanici, između ostalog i ovaj podatak.
Milan
clipper.530d.petrovic,
>> 1. Kako da dobijem broj mrežne kartice (%P_STATION) ?
>
> Potraži u NETTO biblioteci. Postoji jedna funkcija koja daje
> masu podataka o stanici, između ostalog i ovaj podatak.
Hvala lepo.
Zna li neko gde se može dokumentacija o svemu što se može dobiti od
novela. Jel će to ići preko interapta ?
clipper.531tvucko,
Izašao je PATCH za Clipper 5.2e !!!
Da li ga neko ima ?
Ja imam samo info fajl.
52eint.arjclipper.532nbatocanin,
Evo kompletnog listinga iz savetnika o INI datotekama.
ini.zipclipper.533zkrstic,
> │ BLX286 : 1313 : exception error 0D : general protection fault,
> │ code = 0000h Active host is VCPI (v3.10 i386 4752kb)
Ha! Sad bi ti Banex da može da tegli pad održo' predavanje o čitanju
uputstava od A do Š a verovatno bi ti pretio mnome :)))
Elem, prepravi link skript tako da:
- posle CT-ovih objekata ide link skript za SIX & MACHSIX
- nakon svih drugih objekata ide SEARCH BLXRATEX
- za kraj ostavi SEARCH BLXCLP52 i LIB CLIPPER Onaj link skript
iz blinkera za Clipper ( CL520???.LNK ) ti ne treba.
Sada bi trebalo da radi.
Pozdrav, Zkr
clipper.534majtoski,
Imam problem sa ProVision:windows bibliotekom, nikako da povezem
tbrowse sa prozorom u kome bi se ti podaci prikazivali. on ima
komandu CREATE TBROWSE WINDOW AT <RED>,<KOLONA> itd... ali mi pri
tome javlja da objekat nije definisan.
I jos jedna stvar, kako da pri tabelarnom prikazu prikazujem samo one
slogove koje ispunjavaju zadati uslov.
clipper.535bulaja,
│Izašao je PATCH za Clipper 5.2e !!!
│Da li ga neko ima ?
└───
Da li je neko voljan (tj. ima mogućnosti:) da skine patch sa nemačkog
Mum BBS-a? Ima 1.3 Mb, što znači da je neophodan 14.4k modem i dobra
veza. Skinuo bih ja (15 min sa Nemačkom i nije neki problem:), samo
nemam stabilnu vezu ni na 2400, a kamoli na 14.4k :(.
clipper.536crnjini,
ű
Pozdrav,
Da li neko ima iskustva sa pravljenjem aplikacija u Clipper-u
u PROTECTED modu, pri cemu aplikacija poziva graficke biblioteke kao
sto su DGE,GFORCE,FLIPPER6,FUNCKy itd. Naime, linkovanjem uz pomoc
EXOSPACE-a, cesto linkovanje uspe, ali program pada sa porukom
EXCEPTION 35 na nekoj od funkcija graficke biblioteke, i to po pravilu
kada ova radi sa video memorijom. U datoteci 3RDPARTY.TXT Blinkera
stoji da se ov biblioteke mogu koristiti u aplikacijama u PROTECTED
modu.
->* crnjini *<-
clipper.537nbatocanin,
> I jos jedna stvar, kako da pri tabelarnom
> prikazu prikazujem samo one slogove koje ispunjavaju
> zadati uslov.
U "golom" Clipper-u, ili tako što prethodno postaviš FILTER, ili
koristeći indeks - zavisi od uslova. Prvi način je daleko sporiji, pa
je pogodan samo za manje grupe podataka.
clipper.538peacock,
#### Da li je neko voljan (tj. ima mogućnosti:) da skine patch sa
#### nemačkog Mum BBS-a? Ima 1.3 Mb, što znači da je neophodan
#### 14.4k modem i dobra
Daj baci telefon Mum-a, pa da probamo.
clipper.539vlaslo,
hi :-)
Ima li neko iskustva sa Five Win-om.
Pomoc za asociaciju: To je jedan Lib nekog spanca, koji
omogucava da se clipper 5.2+blinker3.0+lib pravi Win
aplikacija. Moj problem je da imam samo demo, a to je nesto
fantasticno: - koriscenje svih clipper libova i pogodnosti
- brz rad pod win (pravi win exe) sa svim win.
karakteristikama.
cu Zoli
clipper.540vlaslo,
>#### Da li je neko voljan (tj. ima mogucnosti:) da skine patch
>#### sa nemackog Mum BBS-a? Ima 1.3 Mb, sto znaci da je
>#### neophodan 14.4k modem i dobra
> Daj baci telefon Mum-a, pa da probamo.
CLIPPER TOOL SUPPORT BBS - SOFTSOL GmbH
─────────┐ ─┐ ─┐ ─────────┐
██████████│ ██│ ██│ ██████████│
██│ ██┘ ██│ ██│ ██│ ██│ ██┘ ██│
██│ ██│ ██│ ██│ ██│ ██│
██│ ██│ ██└─────██│ ██│ ██│ SOFTSOL's Support
██ ██ ██████████ ██ ██ ▄▄▄▄▄▄ ▄▄▄▄▄▄ ▄▄▄▄▄▄
█ █ █ █ █ █
█▄▄▄▄Ţ █▄▄▄▄Ţ █▄▄▄▄▄
CA-CLIPPER AND 3RD-PARTY SUPPORT █ █ █ █ █
█▄▄▄▄█ █▄▄▄▄█ █▄▄▄▄█
┌┤Fido├─────┤Phone├─────────┤Modem├────┐
│ 2:240/5300 +49-40-7665527 ZYX 19.2 │
│ 2:240/5301 +49-40-7665528 ZYX 19.2 │
│ 2:240/5302 +49-40-7665529 USR 16.8 │ SOFTSOL GmbH
│ 2:240/5303 +49-40-76611121 ISDN 64K │ Neue Strasse 35a
├────────┤CIS ID: 100112,340├──────────┤ 21073 Hamburg
│ +49-40-7661290 Sales │ GERMANY
│ +49-40-7665764 Support │
│ +49-40-7665664 Fax │
└──────────────────────────────────────┘ ...first choice programmer's
BBS
cu Zoli
clipper.541cnenad,
Kako saznati da li postoji neka mem.var. (PUBLIC / PRIVATE) i koja je njena
vrednost ?
clipper.542ikordic,
RE: Clipper 5.2e
=> Izašao je PATCH za Clipper 5.2e !!!
A o istom kažu i:
=> o Corrected Virtual Memory Integrity Failure (VMIF) error in TBrowse
=> stabilization.
Konačno! Dovlačite to 'vamo, ne žalim para za pretplatu :)
clipper.543zkrstic,
> Kako saznati da li postoji neka mem.var. (PUBLIC / PRIVATE) i koja
> je njena vrednost ?
Jel može malo detaljnije, da ne lupetam okolo ? Debugerom možeš u
toku izvršavanja da vidiš sve što ti treba.
clipper.544mdrazic,
Ako pokušate da u jednom redu ispišete više komandi postoji problem
(bug or feature, now is the question?) sa endif, enddo, endcase:
i:=1
if i==1; i:=2; endif; if i==2; i:=3; endif
? i
daje rezultat 2. To je zbog toga što predprocesor ignoriše sve u redu
iza ove tri službene reči.
Međutim, ukoliko umesto njih koristite obično end, problema nema. Tako
će prethodni primer dati rezulrat 3 ako u nekom .ch fajlu recimo ubacite
#command ENDIF => END
#command ENDDO => END
#command ENDCASE => END
Milan
clipper.545jolicm,
>> Jel može malo detaljnije, ..
>> Debugerom možeš
Mislim da cnenad traži drugi odgovor , a ako ne ondak da ja postavim pitanje
koje meni treba:
DA LI POSTOJI NAžIN DA SE SAZNA U PROGRAMU (U TOKU IZVRŠENJA) BEZ DEBUGERA, U
SAMOM PROGRAMU, DA LI JE NEKA PROMENJIVA DEFINISANA (DA LI POSTOJI).
OVO BI BILO MNOGO ZGODNO UKOLIKO SE PROMENJIVE UžITAVAJU IZ NEKOG
KONFIGURACIONOG FAJLA, A PROGRAM NAM JOŠ NIJE ZAVRŠEN, ILI .... ....
IMA VEĆ DOSTA PRIMERA ZA KORISNU UPOTREBU da ih ne nabrajam dalje ????
clipper.546cnenad,
ŁŁŁ Mislim da cnenad traži drugi odgovor , a ako ne ondak da ja postavim
ŁŁŁ pitanje koje meni treba:
ŁŁŁ DA LI POSTOJI NAžIN DA SE SAZNA U PROGRAMU (U TOKU IZVRŠENJA) BEZ
ŁŁŁ DEBUGERA, U SAMOM PROGRAMU, DA LI JE NEKA PROMENJIVA DEFINISANA (DA LI
Ovo je upravo ono što sam ja pitao. Naime, listing u Savetniku 105 je OK ali
ako se npr. u CFG fajlu zada ( Promenljiva := ) makro operator prijavljuje
grešku. Takođe, i ako se stavi i samo Promenljiva bez in line dodeljivanja.
Naravno, nije problem prepraviti sistem za obradu grešaka.
Jedina stvar oko koje se vrtim sada je da postavim, na početku programa sve
potrebne promenljive koje će imati .f. vrednost. Nakon toga ide čitanje iz
CFG fajla, pa provera šta koja promenljiva sadrži i da li je vrednost korektna
a ako nije dodeljuje se podrazumevana vrednost. U stvari problem je makro
operator.
clipper.547majtoski,
Imam sledeci problem. Otvorim vise prozora sa tabelarnim prikazom,
svaki je nezavisan, tj. predstavlja objekat za sebe. Svi prozori
koriste isti dbf fajl ali podaci su "filtrirani" sa set filter.
Problem je u toma sto kada otvorim vise prozora i pokusam da sa
jednog predjem u drugi javlja mi gresku, ili mi pokazuje podatke iz
prethodnog prozora.
clipper.548bulaja,
│Ako pokušate da u jednom redu ispišete više komandi postoji problem
│(bug or feature, now is the question?) sa endif, enddo, endcase:
│...
│Međutim, ukoliko umesto njih koristite obično end, problema nema.
└───
Zanimljivo :). Razlog različitog ponašanja end* iskaza je njihova
različita implementacija u STD.ch:
/***
* Basic statement synonyms
*/
#command END <x> => end
#command ENDDO <*x*> => enddo
#command ENDIF <*x*> => endif
#command ENDCASE <*x*> => endcase
#command ENDFOR [ <*x*> ] => next
Dakle osim u slučaju običnog END gde se koristi regular match marker
<x>, u svim ostalim se koristi wild match marker <*x*>. Posledica ovoga
je da se sve iza END* (u ENDIF, ENDCASE, ENDDO, ENDFOR) iskaza ignoriše
(wild marker se ne prevodi ni u šta), dok se u END zamenjuje (tj. briše
pošto se regular match marker takođe ne prevodi ni u šta) samo prvi
argument iza iskaza - pošto iza END odmah sledi separator komandi (;)
ništa neće biti izbrisano tj. ignorisano od strane pretprocesora.
Zašto je ovo urađeno ne znam :). Nije nikakav feature, pa će pre biti da
je u pitanju sitan bag (tj. propust onih koji su bili zaduženi za STD.ch
u razvojnom timu za Clipper:) koji na sreću nije teško ispraviti (samo
se promene pravila za prevođenje u std.ch). Još jedna nelogična stvar
(na sreću bez ikakvih posledica:) je što je wild match marker u ENDFOR
iskazu označen kao opcioni - ovo je potpuno nepotrebno (dakle [ i ] su
višak) pošto je za wild marker regularna situacija i onda kad nema
dodatnih argumenata.
clipper.549mdrazic,
> Kako saznati da li postoji neka mem.var. (PUBLIC / PRIVATE) i koja je
> njena vrednost ?
Ako to treba da se radi u toku razvoja, debuger može to da vidi.
U toku izvršavanja programa bez debugera:
Probaš sa type(), valtype() da li se bar nešto odaziva na to ime :)
Ako postoji, pročitaš i vrednost.
Da li je public/private ili local/static ili field možeš probati
recimo sa release. Ako ne uspe, onda nije public/private.
Drugi način je da kod za ovo ispitivanje izdvojiš u poseban fajl
funkciju za to. Tada se neće videti static/local iz gornjih modula
a private/public hoće.
Milan
clipper.550dvesic,
>> Ovo je upravo ono što sam ja pitao. Naime, listing u Savetniku
>> 105 je OK ali ako se npr. u CFG fajlu zada ( Promenljiva := )
>> makro operator prijavljuje grešku. Takođe, i ako se stavi i
>> samo Promenljiva bez in line dodeljivanja.
>>
>> Naravno, nije problem prepraviti sistem za obradu grešaka.
Ako sam dobro shvatio pitanje :
IF TYPE(BojaPozadine) == "U"
// Nije definisana
Public BojaPozadine := "W/N"
ENDIF
( Type ne prepoznaje Local/Static za razliku od ValType )
clipper.551d.petrovic,
Dali je neko pravio fontove za matrični štampač ? Daklem treba mi
10 puta po 11 bajtova kojima se definišu fontovima na 9 pinskim
štampačima.
clipper.552d.petrovic,
Dali je drugim objektima vidljiv uslov za filter iz drugih ?
Dali negde pamtiš prethodnu poziciju (recno() ) pa da se pozicioniraš ?
Verovatno bi trebalo da izvršiš Bro:RefreshAll()
clipper.553cnenad,
ŁŁŁ IF TYPE(BojaPozadine) == "U"
Runtime BASE Error 1003, Variable not exist
Zbog toga sam i pitao, kako se može saznati da li postoji promenljiva. Sa TYPE
se saznaje kojeg je tipa vrednost neke promenljive a ne da li ona i postoji.
clipper.554djelovic,
> Runtime BASE Error 1003, Variable not exist
žovek bi rekao da Clipperov Turbo-Sistem-Za-Detekciju-Grešaka ovo može da
uhvati, kad ono... :>
clipper.555aseovic,
> Da li neko ima iskustva sa pravljenjem aplikacija u Clipper-u
> u PROTECTED modu, pri cemu aplikacija poziva graficke biblioteke kao
> sto su DGE,GFORCE,FLIPPER6,FUNCKy itd. Naime, linkovanjem uz pomoc
Ne znam za ostale, FLIPPER treba da može ali tek od verzije 6.2
(tako bar piše u ZACFAX-u). Verovatno se na nju odnose podaci iz
3RDPARTY.TXT
Što se FUNCKy-ja tiče, skoro sve funkcije rade u PROT. modu ako se
ulinkuju RootVX i Funcky2x umesto RootVM i Funcky2c. Nisam iz njega
koristio ništa što je vezano za grafiku pa ne znam šta radi a šta ne.
Pogledaj PROTECT.ME u Funcky DIR-u.
Sele
clipper.556goxx,
■ Kako saznati da li postoji neka mem.var. (PUBLIC / PRIVATE) i koja je njena
■ vrednost ?
Vrednost se saznaje tako što je referenciraš. Na primer:
? promenljiva
:))) Izvini, ali nisam mog'o da odolim.
Goran
clipper.557goxx,
■ Ako sam dobro shvatio pitanje :
■ IF TYPE(BojaPozadine) == "U"
■ // Nije definisana
■ Public BojaPozadine := "W/N"
■ ENDIF
■ ( Type ne prepoznaje Local/Static za razliku od ValType )
Program će svojim crvenim pravougaonikom javiti da BojaPozadine definitivno
nije definisana :). Zaboravio si navodnike.
IF TYPE("BojaPozadine") == "U"
Goran
clipper.558goxx,
■ Imam sledeci problem. Otvorim vise prozora sa tabelarnim prikazom,
■ svaki je nezavisan, tj. predstavlja objekat za sebe. Svi prozori
■ koriste isti dbf fajl ali podaci su "filtrirani" sa set filter.
■ Problem je u toma sto kada otvorim vise prozora i pokusam da sa
■ jednog predjem u drugi javlja mi gresku, ili mi pokazuje podatke iz
■ prethodnog prozora.
Kakvu ti grešku javlja? Kakve prozore-objekte koristiš?
Pazi da ti se ne preklapaju promenljive prozora koje su vezane za bazu.
Svaki put kad napuštaš prozor ti zapamti slog na kome si bio. Kad
sledeći put "uđeš" u prozor, pozicioniraj se na slog (obavezno setuj
filter !!!) i osveži tabelu. Ne bi trebalo da ima problema (probaj da izbegneš
SET FILTER, ako je ikako moguće).
Goran
clipper.559goxx,
■ > Runtime BASE Error 1003, Variable not exist
■
■ žovek bi rekao da Clipperov Turbo-Sistem-Za-Detekciju-Grešaka ovo može da
■ uhvati, kad ono... :>
žžžž
Ovo me je nasmejalo do suza (kažem iskreno!). Izgleda da ovu temu prati
veliki broj ne-clipper programera koji jedva čeka da se javi neka ŠKLJ
greška koju niko ne može da objasni, kako bi mogli da likuju sa tezom da
clipper ništa ne valja. E, likovanje se odlaže do daljnjeg. Ovo je bila
samo nepravilna upotreba funkcije TYPE (dvesic je to slučajno ispustio!).
Već sam napisao u nekoj od prethodnih replika, ali nije loše da ponovim.
Funkcija TYPE ima kao argument izraz u obliku stringa. Ona treba da preko
makroa odredi vrednost tog izraza i vrati tip te vrednosti. Pošto je u
pitanju makro, nije dozvoljena upotreba lokalnih i statičkih promenljivih.
Još nisu dozvoljene i UDF funkcije, a isto tako i funkcije iz drugih
biblioteka sem standardne clipper.lib.
Ako je izraz nije u obliku stringa, program "puca". Funkcija vraća sledeće:
"A","B","C","D","L","M","N","O" za niz, kodni blok, string, datum, logičku
vrednost, memo polje, numerik i objekt; zatim "U" za NIL, lokalne i
statičke promenljive; "UE" za sintaksnu neispravnost izraza i "UI" za
nedefinisane vrednosti (korišćenje UDF funkcija).
Sve ovo može da se nađe u ng-u. Evo i primera iz njega:
? TYPE("SUBSTR("Hi There", 4, 5)") "C"
? TYPE("UDF()") "UI"
? TYPE("IF(.T., "true", 12)") "C"
Uzgred, ovo i nije "Clipperov Turbo-Sistem-Za-Detekciju-Grešaka" niti ima
ikakve, meni poznate, veze sa tim clipper-ovim sistemom. Šta više, funkcija
TYPE() datira iz verzije Summer87 (možda i iz dBase-a, ne mogu da se setim) i
njena upotreba se ne preporučuje u višim verzijama clipper-a. Zato se
preporučuje funkcija VALTYPE().
Ono što nema u ng-u, a verovatno nije ni preporučljivo je funkcija __TYPE_()
koja se nalazi u biblioteci i koja za ne-string vrednosti vraća NIL, a ne
generiše grešku (čak i za lokalne promenljive). Ja je lično ne koristim.
Toliko o Clipperovom Turbo-Sistemu-Za-Detekciju-Grešaka, koji to i nije :>
Goran
clipper.560djelovic,
> Ovo me je nasmejalo do suza (kažem iskreno!). Izgleda da ovu temu prati
> veliki broj ne-clipper programera koji jedva čeka da se javi neka ŠKLJ
> greška koju niko ne može da objasni, kako bi mogli da likuju sa tezom da
> clipper ništa ne valja. E, likovanje se odlaže do daljnjeg.
Šala mala, nisam mogao da odolim zbog mdraziceve poruke u PC.PROG::cavo :).
Inače, svi koji danas pljuju Clipper mogu to još da rade samo na konto
njegove sintakse koja još uvek previše podseća na dBase - sve ostale mane koje
Clipper ima polako nestaju kako ih ljudi iz CA, neopterećeni ANSI i drugim
standardima, "pokrivaju" mogućnostima iz drugih jezika. Još iteraciju-dve, i
neće mu biti ravnog po moći.
clipper.561vlaslo,
>> Da li neko ima iskustva sa pravljenjem aplikacija u Clipper-u
>> u PROTECTED modu, pri cemu aplikacija poziva graficke
>> biblioteke kao sto su DGE,GFORCE,FLIPPER6,FUNCKy itd. Naime,
>> linkovanjem uz pomoc
Slicne probleme imam i ja. Koristim Blinker 3.0 i nenmam
nikakvih problema sa real, dual i win aplikacijama, ali sa
extended uvek mi daje gresku 1313 0d tj. moze biti sve.
bio bih zahvalan
cu Zoli
clipper.562vlaslo,
hi :-)
Vidim da ima ljudi koji se interesuju...
U prilogu Clipper related files list from MuM BBS, Hamburg
cu Zoli
mum.zipclipper.563dvesic,
>> Program će svojim crvenim pravougaonikom javiti da
>> BojaPozadine definitivno nije definisana :). Zaboravio si
>> navodnike.
>>
>> IF TYPE("BojaPozadine") == "U"
Izvinjavam ! Pisano ON-LINE :)))
clipper.564majtoski,
Pravim najobicniji imenik. i za njega koristim
clipper+pro.vision:windows biblioteku. Objasni mi poblize ovo sa
pamcenjem broja sloga. Kad izaberem slovo u meniju, on lepo prikaze
podatke, koje pocinju zadatim slovom. Problem je u tome sto neznam
sta se desava kad se prozor jednom otvori, ko preuzima kontrolu nad
njim. kad izaberem slovo pozove se funkcija gde definisem objekat, i
filter, i prozor. Medjutim, kada mi je otvorem samo jedan prozor sa
podacima, ovog problema nema. Ima li neki bolji nacim od set filter,
koji je nekako spor, kad imam vise podataka.
Matija
clipper.565evlad,
>> Dali je neko pravio fontove za matrični štampač ? Daklem treba mi
>> 10 puta po 11 bajtova kojima se definišu fontovima na 9 pinskim
>> štampačima.
Da, ćerilicu i latinicu, ali u Turbo Pascalu ...
clipper.566jolicm,
>> If Type("Prom")
E svaka ti čast. Mislim ozbiljno !
Malopre sam čitao tvoje odgovore na temu nepostojećih pro ű űmenljivih i
nisam ti poverovao, čak šta više baš sam hteo da ti repliciram, kad se reših,
´kizađoh sa sezama i proverih to i kad gle čuda a ono tačno !
Naime i ja sam davno ukapitao da je Type() funkcija daleko nemoćnija od
ValType()
i od tada ni ne mislim da ona nešto može što ValType() ne može. Eto ti kad
mozak zastrani i neda se ispraviti. U Clipperu radim od pre 5 godina i Type
funkciju ne koristim.
Znači proverio sam: Type("prom") vraća "U" za nepostojeću. :)))
clipper.567d.petrovic,
> ŁŁŁ IF TYPE(BojaPozadine) == "U"
R1. If Type("BojaPozadine") == "U"
R2. If BojaPozadine == NIL
clipper.568d.petrovic,
> Da, ćerilicu i latinicu, ali u Turbo Pascalu ...
Ma daj ti stringove po 11 ovamo pa neka su u bilo čemu :)))
Šalji u TP-u, ali i strukturu :))
clipper.569d.petrovic,
> podacima, ovog problema nema. Ima li neki bolji nacim od set
> filter, koji je nekako spor, kad imam vise podataka.
Indeks :))
Pogledaj metode :
goBottomBlock Code block executed by TBrowse:goBottom()
goTopBlock Code block executed by TBrowse:goTop()
skipBlock Code block used to reposition data source
pa onda središ sve kako voliš
clipper.570goxx,
■ > ŁŁŁ IF TYPE(BojaPozadine) == "U"
■ R1. If Type("BojaPozadine") == "U"
■ R2. If BojaPozadine == NIL
R1 i R2 su potpuno različite stvari. R2 odmah "puca" jer promenljiva
nije definisana (ne postoji). R2 prikazuje način ispitivanja
definisanosti njene vrednosti, a ne njenog postojanja.
Goran
clipper.571peacock,
#### U prilogu Clipper related files list from MuM BBS, Hamburg
Ovo ti je mngo lepo, barem da se napare oči. Šta znači ono
restricted za pojedine oblasti. Daj opiši malo ceo sistem. Da li se
plaća pretplata, šta još ima osim Clippera, etc...
clipper.572vesboj,
Interesuje me dali neko od programera poseduje
DECOMPILER za clipper 5.xx .I ako poseduje kako mogu da
ga nabavim .Javiti mailom .Unapred hvala za odgovor.
Pozdrav VESKO
clipper.573jolicm,
>> javiti mailom ...
E vala javiti OVDE. Iako je ranije o tome bilo ovde dosta govora, ali ako ima
nešto novo ...
clipper.574anenad,
Pozdrav narode !
Da li je neko imao prilike da se susretne sa Dbsee4 razvojnim
okruzenjem za Clipper 5.2.
Ako niste sigurni sta to znaci evo i malo vise podataka u
datoteci uz ovu poruku.
Nadam se da ce biti interesantno!
Pozdrav i uzivajte dok citate.
dbsee4.arjclipper.575d.petrovic,
> ■ R1. If Type("BojaPozadine") == "U"
> ■ R2. If BojaPozadine == NIL
>
> R1 i R2 su potpuno različite stvari. R2 odmah "puca" jer
> promenljiva nije definisana (ne postoji). R2 prikazuje način
> ispitivanja definisanosti njene vrednosti, a ne njenog
> postojanja.
Poslednje tragove private i public promenljivih (osim getlist ;) )
sistematski tamanim u svojim programima. Za zamenu par neophodnih public
promenljivih sam ubacio par udf-a koje se inicijalizuju na početku.
E, zbog toga mogu i da zaboravim takvu situaciju, a dešava mi se i da ne
pratim diskusiju najpažljivije O:)
clipper.576vlaslo,
> Daj opisi malo ceo sistem.
hi :-)
Radi na RA 2.02, supper je uradjen, mada mislim da su ANSI
suvise velike (ponekad po celom ekranu, i tako svaki meni).
Imas OLR vise vrsta (BW, QWK...) i mnogo conf. (preko 500)
na engleskom i nemackom jeziku.
Oblasti koji su oznaceni sa RESTRICTED su ocito zabranjeni,
ili se dobija pristup na visem nivou (BTW nema pretplate).
Imas sve DOS, OS/2, UNIX, Win ... i na to prg jezike...
jednom recju SVE. allfiles list je vise od 1M pa ga
nisam skinuo (radije Clip 5.2e ).
Inace ne navracam mnogo cesto samo kad nesto zatreba. Mnogo
je daleko... :-(
Nadam se da sam sve rekao...
cu Zoli
clipper.577bulaja,
│Da li je neko imao prilike da se susretne sa Dbsee4 razvojnim
│okruzenjem za Clipper 5.2.
└───
Uzeo, instalirao, pogledao, obrisao :).
Posao je tehnički toliko loše uradjen (instalacioni program koji radi
brzinom puža, stalno iskakanje iz programa sa run-time greškama zbog
neotvorenih baza i nedefinisanih promenljivih) da, bez obzira na dobru
ideju i specifikacije na papiru, nemam previše poverenja da tako nešto
koristim u svakodnevnom radu :).
clipper.578aseovic,
SUBJECT: Clipper 5.2e (dobra i loša vest:))
Dobra vest:
Patch je skinut sa MUM-a, Bulaja ga je dobio i biće uskoro u dir-u
Loša vest:
Imam problema oko patchovanja :(((
Na većini fajlova je odradio posao kako treba, ali nije uspeo da
"zakrpi" CLIPPER.LIB, EXTEND.LIB, DBFNTX.LIB i još neke datoteke.
U prilogu šaljem PATCH.ERR sa porukama o greškama koje su se javile
pri patchovanju LIB dira.
Verzije problematičnih fajlova su:
CLIPPER LIB 516,769 03-25-94 5:24a
DBFNTX LIB 38,977 03-25-94 5:24a
EXTEND LIB 127,931 03-25-94 5:24a
DBFNDX LIB 27,175 03-25-94 5:24a
DBFMDX LIB 90,757 03-25-94 5:24a
Pozdrav,
Sele
BTW, bilo je problema i pri patchovanju drugih dir-ova, ali oni
nisu toliko važni.
patch.errclipper.579zorand,
Ovo jeste oglas ali mislim da mu je mesto ovde.
Firmi Genex-Hoteli potreban je program koji bi pokrio odelenje
centralne nabavke sa sledecim poslovima:
- Evidencija zahteva za nabavku (po grupama)
- Evidencija i analiza ponuda
- Evidencija ulaznih faktura sa evidencijom placanja
- Pracenje realizacije - isporuke magacinima
- Propratna dokumentacija (Otpremnice, Magacinski ulazi itd)
- Plan nabavke (po grupama)
- Evidencija dobavljaca i analiza cena iz ponuda
Program bi se vrteo na 2-3 radne stanice u Novell mrezi.
Za dogovor oko prezentacije i sva ostala objasnjenja, molim vas
u mail ili, jos bolje, glasom na 605287 ili 2223733 ili 2222739.
Zoran Djuricic.
clipper.580bulaja,
**** new file ****
MSDOS - R:\CLIPPER
----------------------
52eix a01 349567* CA-Clipper 5.2e (Int'l) / ExoSpace 1.0g - Update #1/4
52eix a02 349617* CA-Clipper 5.2e (Int'l) / ExoSpace 1.0g - Update #2/4
52eix a03 349621* CA-Clipper 5.2e (Int'l) / ExoSpace 1.0g - Update #3/4
52eix a04 313926* CA-Clipper 5.2e (Int'l) / ExoSpace 1.0g - Update #4/4
4 file(s) 1331 kb
<Thanks to aseovic>
clipper.581bulaja,
│Imam problema oko patchovanja :(((
│Na većini fajlova je odradio posao kako treba, ali nije uspeo da
│"zakrpi" CLIPPER.LIB, EXTEND.LIB, DBFNTX.LIB i još neke datoteke.
└───
Meni je sve prošlo Ok (uključući i LIB-ove, ExoSpace, nove primere,..),
dakle patch je ipak u redu - slobodno se upustite u download :).
clipper.582anenad,
Moze li neko da mi kaze da li ce biti upgrade i za 5.2e US!!??!!
clipper.583vlaslo,
hi :-)
Ima li neko iskustva u pisanju ASM f-ja za clipper,
koji bi radio u EXT modu.
cu Zoli
clipper.584brus,
Za korisnike Ca-Clipper Tools biblioteke evo jednog interesantnog Screen
Savera...
ss_tfw.zipclipper.585brus,
*
* Problem sa machsix 2.00-komanda CONTINUE (m6_dbcontinue()). Da li negde
* grešim ili je posredi bag? Inače, koristim Six 2.01.02 i Blinker 3.00.
* Ima li neko rešenje ?
*
* KUPCI.DBF
* Recno SIFRA NAZIV MESTO ...
* ---------------------------------------
* 1 00001 MIKA MIKIC BGD
* 2 00002 PERA PERIC SVRLJIG
* 3 00003 LAZA LAZIC ZAJECAR
* 4 00005 MIRKO MIRKOVIC SVRLJIG
* 5 00006 SAVA SAVIC UB
* Program :
#INCLUDE 'SIXCDX.CH'
#INCLUDE 'MACHSIX.CH'
REQUEST SIXCDX
RDDSETDEFAULT('SIXCDX')
USE KUPCI
INDEX ON MESTO TAG MESTO
LOCATE FOR MESTO='SVRLJIG'; ? RECNO() && 2
WHILE FOUND()
CONTINUE; ? RECNO() && Opet 2 ?? itd. itd.... do nestanka struje.:(
ENDDO
QUIT
* Komandna linija :
* CLIPPER TEST
* BLINKER FI TEST,SIXUK,MACHSIX,CDXMACH6 LIB SIX2,MACHSIX
clipper.586aquarius,
jel neko trazio rescue ???
Nenad
rescue.zipclipper.587toma,
Evo jednog stvarno dobrog programčeta. Radi se, naime, o
spooleru i redirekciji LPT i COM portova. Sve je to lepo ali zašto u
clipper temu. Samo i jedino zato što konačno radi i CLD (debbuger)
bez obzira što je aktivna redirekcija. Ko se patio sa LPTX-om zna o
čemu pričam.
Skinuto sa MR-NET-a.
dmp205.zipclipper.588pyc.guy,
*!
Kako da dobijem 132 karaktera u redu ()TBrowse) ???
Miki
clipper.589pstevo,
>* Problem sa machsix 2.00-komanda CONTINUE (m6_dbcontinue()). Da
>* li negde grešim ili je posredi bag? Inače, koristim Six
Vrlo zanimljivo ali me ipak ne raduje jer ponovo pokazuje bagovitost
SIX-a.
Provjerio sam. Kod mene je isto.
Ne znam da li si već prokljuvio ali to ispravno radi ako napises ovako:
#INCLUDE 'SIXCDX.CH'
#INCLUDE 'MACHSIX.CH'
REQUEST SIXCDX
RDDSETDEFAULT('SIXCDX')
USE KUPCI
INDEX ON MESTO TAG MESTO
// LOCATE FOR MESTO='neznam sta' ; ? RECNO() && 2 ... umjesto toga ->
LOCATE FOR (MESTO)='neznam sta' ; ? RECNO() && 2 // ovo radi !!!???
WHILE FOUND()
CONTINUE; ? RECNO() && Opet 2 ?? itd. itd.... do nestanka struje.:(
ENDDO
QUIT
RETURN (NIL)
Mozda neko zna sta su zagrade promijenile ?
Ne radi se o tome da preprocesor nesto izmjeni jer .PPO fajl u oba
slucaja sadrzi nepromijenjen kod.
clipper.590pstevo,
> jel neko trazio rescue ???
A SECURE si zaboravio, jeli ? ;>>>
clipper.591brus,
> LOCATE FOR (MESTO)='neznam sta' ; ? RECNO() && 2 // ovo
> Mozda neko zna sta su zagrade promijenile ?
Ocigledno je bag u m6_dblocate(). Medjutim, odlicno sto si nasao
kako moze da se ispravi. Fazon je u stvari kod pogresne interpretacije
prvog parametra cFORBLK (ukupno se zadaju 2 parametra: string definicija
uslova i kodni blok sa uslovom).
Greska je takva da se ne moze preko pretprocesora ispraviti,
zbog mogucih slozenih uslova tipa : uslov1 .and. uslov2 .or. itd.
U tom smislu preimenovao sam preko diskedit-a funkciju m6_dbloc() u
m6_dblocfx(), napravio novu f-ju m6_dbloc() koja poziva m6_dblocfx()
sa prepravljenim prvim parametrom. Za sada je proslo sve testove.
Evo ispravne machsix.lib biblioteke.
Ja inace ne koristim locate ... continue ali sam prilikom testiranja
(i blago je reci odusevljenja) naisao na ovu nebulozu koja ipak ne kvari
ceo utisak o paketu (normalno, ako je to za sada sve).
m6_fix.zipclipper.592vgenije,
hi
potreban mi je jedan prosecan clipperas za jedan poslic od 15-2
sata.
placanje:pretplata na Sezam
ako moze u mail i izvinjavam se na ovom *izletu* unapred
pozdrav
clipper.593d.petrovic,
> Kako da dobijem 132 karaktera u redu ()TBrowse) ???
Pre ulaska u myapp.exe postavi 132 reda
clipper.594d.petrovic,
Jel radio neko sa EAN (JANA) brojevima ?
Nije mi baš jasno kako da pun broj (13 cifara) pretvorim u skraćeni oblik
(8 cifara). Neka bude na primeru :
Kako da od 8600264083645 nastane
00000xxxxxxxx
clipper.595cnenad,
***
Subj. ft_floptst( nA ) iz NFLIB-a 2.01.
Ima li neko sors ove funkcije ?
Problem kod nje je što ne može detektovati oštećenu disketu i kad se natrči
na IF file( cDat )... dolazi do šlogiranja programa.
***
Subj. Complier Switch - /A
Koliko vidim dotični služi da sve nedeklarisane PUBLIC ( PRIVATE )
promenljive sam deklariše, dakle umesto da ja navedem MEMVAR Var odnosno
M-> Var on to sam uradi prilikom kompajliranja.
Kad sam dotični stavio, prevodilac je javio brdo upozorenja za nedeklarisane
promenljive. (naravno sve deklaracije sa MEMVAR sam uklonio).
Nije baš bitno, jer sam vratio na staro ali me ovo malo zbunilo.
Prekidači kompajleru su /B /M /N /Q /L /W.
***
Subj. NG / EHD
Pretpostavljam da ima dosta vas koji radite sa EHD-om umesto NG-om.
Ja dotični nikako ne mogu pokrenuti, odnosno mogu ali umesto NG datoteke
pritiskom na HOT-KEY dobijam QEMM-ovu poruku Exception Error. Ako je čist
DOS mašina se samo zaglavi.
Probao sam sa svim mogućim prekidačima, a pitanju je nekoliko verzija EHD-a
(iz različitih paketa, SIXCDX, SilverClip, Vern 6.....)
***
Subj. Ispis u različitim tekst modovima
Da li postoji neka 'univerzalna' ;) formula da se u različitim tekst modovima
tekst ispiše na ispravnom mestu. Npr. u modu od 24 reda, tekst se ispisuje u
redu 12, a u modu od 48 redova bi trebao da bude u redu 24 itd... ?
clipper.596cnenad,
Da li je moguće uraditi patch sa ovim 52EIX na već postojeću 5.2d US verziju ?
Ako nije, hoće li se uskoro pojaviti u DIR-u i patch za US verziju ?
clipper.597aseovic,
Uz ovu i sledeće poruke ide nešto od sitnica sa MUM-a.
Uživajte :)))
------------------------------------
CopyNew.arj - Kopira samo promenjene i nove datoteke u dest.dir
copynew.arjclipper.598aseovic,
------------------------------
Info.arj - Razne korisne (i manje korisne:) informacije o okruženju
u kojem se program izvršava
info.arjclipper.599aseovic,
---------------------------------
MSWIni.arj - Rad sa Windows INI datotekama
mswini.arjclipper.600aseovic,
----------------------------------
NWBCAS.ARJ - Netware Broadcast Messages
nwbcas.arjclipper.601aseovic,
-----------------------------------
FGL_V12.ZIP - Interesantna grafička biblioteka (SW)
-----------------------------------
Biće još neki drugi put :)))
Sele
fgl_v12.zipclipper.602aseovic,
Pogledajte CLNFILES.TXT - spisak Clipper related fajlova na MUM-u,
(bio je ovde uz neku poruku vlasla).
Vikajte na mail po 10 fajlova koje biste želeli da vidite na Sezam-u.
Napraviću listu najtraženijih datoteka pa ćemo polako da dovlačimo.
Pozdrav,
Sele
clipper.603dvesic,
>> Ja dotični nikako ne mogu pokrenuti, odnosno mogu ali umesto
>> NG datoteke pritiskom na HOT-KEY dobijam QEMM-ovu poruku
>> Exception Error. Ako je čist DOS mašina se samo zaglavi.
EH.EXE verzija 1.28 + Qemm 7.5 sa patch-om :
Bez poblema radi, čak je i kompletan otišao gore.
clipper.604cnenad,
ŁŁŁ EH.EXE verzija 1.28 + Qemm 7.5 sa patch-om :
Ovo smo apsolvirali telefonom ali da javim i ovde, verzije koje ja imam su
DEMO, dakle one koje stižu uz razne pakete.
Problem će valjda biti rešen kad pređem na tu verziju 1.28.
clipper.605d.petrovic,
> Subj. ft_floptst( nA ) iz NFLIB-a 2.01.
>
> Ima li neko sors ove funkcije ?
>
> Problem kod nje je što ne može detektovati oštećenu disketu i
> kad se natrči na IF file( cDat )... dolazi do šlogiranja
> programa.
Tu stvar sam izvukao iz 2.00 (2.01 ??) i stavio u 3.01 i radi. Reci kakva
ga disketa tačno zbunjuje.
Da pokušam da objasnim:
Bilo je nekih nelogičnosti (zaboravio sam koje) gde mi oko neformatiranih
i oštećenih disketa vraća istu glupost, ali, ako javi da je disketa
ispravna onda jeste ispravna.
clipper.606pyc.guy,
~~~ Pre ulaska u myapp.exe postavi 132 reda
Da li postoji neki zgodan utility za 132 kolone?
Pyc
clipper.607brus,
> Mozda neko zna sta su zagrade promijenile ?
AHA !!!!! Nakon analize na vecem fajlu, ukapirao sam. Greska se javlja u
slucaju kada je prosledjen string moguc za optimizaciju tj. f-ja
m6_isoptimized()==.T.. Ako postavim zagrade, string nije vise optimizovan
i m6_dblocate() je o.k. Sve je to lepo da nije tuzno. Sta ako recimo
radim sa bazom od 10,000 i vise slogova, COUNT FOR divno radi, a LOCATE FOR
ceka do besvesti (radi u stvari isto kao i __dblocate() iz standardnog klipera,
string nije optimizovan). Na kraju, nakon svih peripetija sa prepravljanjem
biblioteke, koje su nazalost bile manje-vise neuspesne, u trenutku ludila
sam dosao do resenja. Modul m6loca1.obj u okviru machsix.lib-a sadrzi
nedokumentovanu f-ju _M6CONTINUE(), koja nepogresivo radi. Ostaje samo da
se u MACHSIX.CH umesto
#command CONTINUE => m6_dbcontinue()
postavi
#command CONTINUE => _m6continue()
i problem je resen !
U tom smislu, moju poruku 10.591 sa pratecom datotekom M6_FIX.ZIP ne bi trebalo
uzimati u obzir.
clipper.608bulaja,
│Da li je moguće uraditi patch sa ovim 52EIX na već postojeću 5.2d US verziju?
│Ako nije, hoće li se uskoro pojaviti u DIR-u i patch za US verziju ?
└───
Nije moguće za kompletan paket (pojedinačno se neke stvari verovatno i
mogu iskrpiti iz .RPT-ova i onih arhiva sa novim primerima i nation
.OBJ datotekama), ali radi se na dovlačenju patch-a i za US verziju :).
clipper.609bulaja,
│Da li postoji neki zgodan utility za 132 kolone?
└───
MSDOS - R:\UTILITY
----------------------
vrow100 zip 16823 VRow v1.00: promena raznih VGA tekst modova (ematic)
clipper.610toma,
■> Da li postoji neka 'univerzalna' ;) formula da se u različitim
■> tekst modovima tekst ispiše na ispravnom mestu. Npr. u modu od 24
■> reda, tekst se ispisuje u redu 12, a u modu od 48 redova bi trebao
■> da bude u redu 24 itd... ?
nRed := MaxRow() / 2
@nRed, 10 say "Uvek sam u sredini!"
clipper.611aseovic,
Stiže još sa MUM-a:
-----------------------------------
AUTOMA.ARJ - Automatizuje izradu RMK i LNK scriptova
-----------------------------------
automa.arjclipper.612aseovic,
-------------------------------
CLPVAR.ARJ - Na osnovu DBF fajla pravi kod za deklaraciju promenljivih,
njihovu inicijalizaciju, popunjavanje vrednostima iz DBF-a,
upisivanje vrednosti u DBF i kreiranje DBF datoteke.
-------------------------------
clpvar.arjclipper.613aseovic,
----------------------------
FAXS11.ARJ - Eksterni programčić za slanje faxa. Ne treba CAS!!!
----------------------------
faxs11.arjclipper.614aseovic,
-------------------------
LD100.ARJ - Clipper LIB za BarCode (HP LJ, Epson...)
-------------------------
ld100.arjclipper.615aseovic,
-------------------------
PPP.ARJ - Pregled i štampanje datoteka
-------------------------
ppp.arjclipper.616aseovic,
-------------------------
RAMCLR.ARJ - Punjenje nekorišćenog dela RAM-a nulama
-------------------------
ramclr.arjclipper.617cnenad,
ŁŁŁ Tu stvar sam izvukao iz 2.00 (2.01 ??) i stavio u 3.01 i radi. Reci kakva
ŁŁŁ ga disketa tačno zbunjuje.
Iz verzije 2.01.
Disketa koja ga zbunjuje, ne može uopšte da se formatira, prijavljuje
INVALID TRACK 0.
ŁŁŁ Bilo je nekih nelogičnosti (zaboravio sam koje) gde mi oko neformatiranih
Za ovo ne znam, probao sam sa nekoliko novih neformatiranih disketa i
funkcije je korektno vratila da disketa nije formatirana.
ŁŁŁ i oštećenih disketa vraća istu glupost, ali, ako javi da je disketa
ŁŁŁ ispravna onda jeste ispravna.
Kao što rekoh, ne prepoznaje oštećenu disketu, a kad nakon toga usledi
FILE() dolazi do kraha. Možda bi mogla da se preradi FILE() funkcija (?), mada
mi je logičnije da to sve odmah obavi FT_FLOPTST.
Inače, funkcija vraća 4 - undetermined, ako pokušate da pristupite flopi
drajvu B: ili A: koji ne postoje na mašini.
clipper.618cnenad,
ŁŁŁ .OBJ datotekama), ali radi se na dovlačenju patch-a i za US verziju :).
Sa nestrpljenjem očekujem, i nisam jedini ;)
clipper.619cnenad,
ŁŁŁ nRed := MaxRow() / 2
ŁŁŁ @nRed, 10 say "Uvek sam u sredini!"
Ma tek posle sam uvideo da sam izvalio glupost.
clipper.620d.petrovic,
> Kao što rekoh, ne prepoznaje oštećenu disketu, a kad nakon toga
> usledi FILE() dolazi do kraha. Možda bi mogla da se preradi
> FILE() funkcija (?), mada mi je logičnije da to sve odmah obavi
> FT_FLOPTST.
Nastavak sledi kada nađem oštećenu disketu :)
clipper.621aseovic,
-------------------------------------
Subject: SIx 3.0
-------------------------------------
Evo malo informacija o novoj verziji SIx-a:
* HiPer-SEEK
Superfast non-indexed searches are now supported through our agreement with
Index Applications, Inc. to bundle "Clipper Fast Text Search" with SIx 3.0.
Combined with Mach SIx's RYO Filters, this provides high speed filters for
substrings within MEMOs or CHARACTER fields.
* Enhanced VariField Support
Da ne prepisujem (ima mnogo:) evo u kratkim crtama o čemu se radi.
Osim što, kao u SIx-u 2.0, možete da upisujete promenljive različitih
tipova u MEMO polja, možete i da kreirate polja tipa "V" - VariField,
i to dve vrste:
1) Weakly-typed
2) Strongly-typed
Weakly-typed "V" polja su nešto između Char i Memo polja. Na primer, ako
kreirate "V" polje dužine 16, prvih 10 bajtova će biti 'značajni' i po njima
možete vršiti indeksiranje. Poslednjih 6 bajtova služe za pointer. Ako u
ovo polje upišete tekst dužine 30 bajtova, prvih 10 će se upisati u DBF polje,
a preostalih 20 u memo fajl.
Ako, sa druge strane, upišete u ovo polje string dužine 14, ništa neće biti
upisano u memo fajl: VariField sistem je dovoljno 'pametan' da oceni da ceo
string može da stane u polje. Poslednja 2 bajta su uvek rezervisana za
čuvanje dužine teksta u "V" polju.
Strongly-typed "V" polja služe za smeštanje pakovanih datuma i long int-ova.
Ako kreirate "V" polje širine 4 bajta, podrazumeva se da će se u njega
smeštati long int, a ako je širine 3 bajta podrazumeva se smeštanje datuma.
* Integrated MachSIx Query Optimization
MachSIx više nije posebna biblioteka već je ugrađen u SIX3.LIB i automatski
se koristi.
* Reduced Memo File Block Sizes
FPT memo polja imaju default block size 32 (umesto 64), a SMT def.bl.size
je 1 (jedan). Oba memo formata podržavaju minimalni block size od 1-og bajta.
-----------------------------
I na kraju poslastica (bar prema materijalu SuccessWare-a:))
SIx 3.0 je oko 40% manji i 30% brži od SIx-a 2.0
Sudeći po uporednom testu, prilično je brži i od Comix-a 3.0
U "Databased Advisor"-u je dobio titule "1995 Reader's Choice Award" i
"Best of Breed: Database Driver"
Rick Spence ga naziva Revolucionarnim prozvodom.
---------------
-------------------------------------------------
Cijena, prava sitnica:
The SIx Driver 3.0 (U.S. Version) US$ 249
The SIx Driver 3.0 (Intl Version) US$ 299
SIx 2.0 to SIx 3.0 Upgrade US$ 149
-------------------------------------------------
P.S. U materijalu se nigde ne spominje SIx za VO, mada je to ono što sam
tražio. Međutim, spominju ROCKET - "a high-speed database solution for Win",
"the award-winning, very fast Windows-DLL database engine". žim nabavim
više informacija o njemu javiću vam.
Sele
clipper.622aseovic,
MUM BBS
-----------------------
PRNPCX.ZIP - Štampanje PCX slika
-----------------------
prnpcx.zipclipper.623aseovic,
--------------------------
SYNC.ZIP - Sinhronizacija datoteka
--------------------------
sync.zipclipper.624dr.grba,
>> Problem će valjda biti rešen kad pređem na tu verziju 1.28.
I tek sad mi kažeš da nemaš EH 1.28..... ):
clipper.625vlaslo,
hi :-)
Ima li neko iskustva u pisanju ASM f-ja za clipper,
koji bi radio u EXT modu.
Pozeljna bi bila neka f-ja za primer bez koriscena
Exospace f-ja,( tj neka opsta)
Unapred hvala...
cu Zoli
clipper.626cnenad,
ŁŁŁ I tek sad mi kažeš da nemaš EH 1.28..... ):
Xe, od juče imam, zahvaljujući... zna on ko je O:)
Uglavnom, problem kod mene je pravila Stealth opcija QEMMM-a, kad sam
dotične EH-ove pokrenuo sa -mc prekidačem sve je proradilo.
***
Juče sam iz nekih razloga vratio sistemski datum na 17.04.95. i pokrenuo
RMAKE i počeo je da se šlogira na jednoj datoteci. S obzirom da je to bilo
popodne a da je problematični PRG fajl nastao 17.04.95 ali vreme je bilo
oko 22:00 RMAKE je prijavljivao neviđene gluposti.
Recimo, greška u liniji 36532, C 2003 Untrapped syntax error i slične.
Kad sam vratio datum na 19.04. sve je proradilo.
Međutim nije izgleda problem samo u tome.
Jedan sasvim drugi fajl (npr. TEST.PRG )koji je stojao na svom mestu (treće
po redu) u RMK datoteci isto prouzrokuje da se jave opisane greške na sasvim
drugom PRG fajlu. Kad TEST.PRG bacim na prvo mesto u listi RMK sve prođe
kako treba.
Zaista čudno.
clipper.627d.petrovic,
> LD100.ARJ - Clipper LIB za BarCode (HP LJ, Epson...)
Zaradio si pivo, ako dovučeš i source dobiješ i picu..., na tanjiru ;))
Treba je malo doraditi...
clipper.628bulaja,
│Ima li neko iskustva u pisanju ASM f-ja za clipper, koji bi radio u EXT
│modu. Pozeljna bi bila neka f-ja za primer bez koriscena Exospace f-ja.
└───
Pogledaj pravila za pisanje protcected mode programa koja se nalaze u
NG-u za ExoSpace API (poglavlje "Protected Mode Rules"), na Sezamu je u
R:\Clipper=ExoNG.zip.
clipper.629nbatocanin,
> Rick Spence ga naziva Revolucionarnim prozvodom.
> ---------------
Bio bih mnogo zadovoljniji da je malo manje revolucionaran i mnogo
više testiran nego dosadašnje verzije ;>
> P.S. U materijalu se nigde ne spominje SIx za VO, mada je
> to ono što sam tražio. Međutim, spominju ROCKET - "a
> high-speed database solution for Win",
SIX za VO navodno postoji, ali ni ja nisam mogao da nađem detalje.
Rocket je SIX za VB.
clipper.630sobrenovic,
HI!
Kako da iz clipper-a procitam serijski broj diska
(onaj koji zadaje dos pri formatiranju). Naravno,
potrebna je .LIB sa funkcijom koja vraca taj broj, bilo kao
2-bajtni broj, bilo kao 9 karaktera u formi XXXX-XXXX, kao
sto to dos daje. Dobro bi dosla i funkcija koja cita
neke parametre (bilo koje) koji su karakteristicni
za maticnu plocu.
Pozdrav, SASA.
p.s. kao sto predpostavljate, treba za zastitu.
bio bih zahvalan za trazeni lib ili informaciju gde ima :)
clipper.631cnenad,
ŁŁŁ Kako da iz clipper-a procitam serijski broj diska
ŁŁŁ (onaj koji zadaje dos pri formatiranju). Naravno,
Potraži u Funcky II biblioteci.
clipper.632ikordic,
RE: 132 kolone u redu
=> │ Da li postoji neki zgodan utility za 132 kolone?
=> vrow100 zip 16823 VRow v1.00: promena raznih VGA tekst modova
Neće biti ...
Probaj onaj što ide uz odgovarajuću karticu.
clipper.633aseovic,
>> Rick Spence ga naziva Revolucionarnim prozvodom.
>
> Bio bih mnogo zadovoljniji da je malo manje revolucionaran i mnogo
> više testiran nego dosadašnje verzije ;>
Takođe :)))
clipper.634snemcev,
Jedno malo pitanje koje traži malo veći odgovor: šta (u principu) treba
promeniti u programima u Clipperu da bi mogli da rade u protected modu
(BLI EXE DUAL ili EXTENDED)?
Na blic sam probao u par svojih programa da samo ubacim ovu direktivu
(ne znam samo da li sam se zaista nadao da će sve od prve proraditi :)
i nije išlo. Verovatno koristim nešto što treba upotrebljavati na drugi
način kada radiš u protected modu. E sad, u principu, te stvari bi
trebao da reši Clipper Protected Mode Interface (transparentno?). Sve u
svemu, želeo bih da neko ko je prošao celu proceduru prelaska sa real na
protected mode uz pomoć Blinkera iznese svoja iskustva i preporuke.
clipper.635bceklic,
> p.s. kao sto predpostavljate, treba za zastitu.
> bio bih zahvalan za trazeni lib ili informaciju gde ima :)
Nabavis PC Guard i resio si problem oko zastite svog softwera... :)
Anyway, pre neki dan sam sklepao ovo za prijatelja, analiziraj malo kod
i sve ce ti biti jasno... Sam program upisuje u fajl ime diska i seriski
broj sa koga je program startovan...
Pozdrav!
numb.comclipper.636zkrstic,
>>
>> Nabavis PC Guard i resio si problem oko zastite svog softwera... :)
Jel može neka višak info o ovome. Gde, šta, kako...
Zkr
clipper.637toma,
■> Jedno malo pitanje koje traži malo veći odgovor: šta (u principu)
■> treba promeniti u programima u Clipperu da bi mogli da rade u
■> protected modu (BLI EXE DUAL ili EXTENDED)?
Apsolutno ništa!
■> Na blic sam probao u par svojih programa da samo ubacim ovu
■> direktivu (ne znam samo da li sam se zaista nadao da će sve od prve
■> proraditi :) i nije išlo.
U kom smislu nije išlo?
■> Interface (transparentno?). Sve u svemu, želeo bih da neko ko je
■> prošao celu proceduru prelaska sa real na protected mode uz pomoć
■> Blinkera iznese svoja iskustva i preporuke.
Pa ja sam se samo malo igrao sa time, programi su mi pucali
jedino onda kada je pozivana neka .ASM funkcija, moje .c funkcije su
radile besprekorno. Jedino što sam uradio je bilo dodavanje BLI EXE
EXTENDED/DUAL na početku i SEARCH BLXCLP52 (.ng za Blinker 3.10) pri
kraju .lnk fajla, a ispred onog @CL520MIN.LNK.
Mala napomena. Ako je .EXE linkovan sa DUAL opcijom, i ako se
izvršava na mašini u real modu, usporenje je više nego očigledno.
clipper.638bulaja,
│Jedno malo pitanje koje traži malo veći odgovor: šta (u principu) treba
│promeniti u programima u Clipperu da bi mogli da rade u protected modu
│(BLI EXE DUAL ili EXTENDED)?
└───
Koristiti PM kompatibilne biblioteke :). Sav Clipper kod radi bez
problema u protected modu, problem je jedino u dodatnim bibliotekama
(ili tvojim funkcijama) pisanim u C-u ili assembleru (ove druge obično
prave manje problema, pošto ne pate od null pointer assigment grešaka).
Rešenje je da prvo izoluješ funkcije koje prave probleme (pogledaj tekst
o CA-Clipper/ExoSpace u poslednjim Računarima, pošto je u osnovi
svejedno da li koristiš ExoSpace ili Blinker-ov extended mode) i zatim
nađeš njihovu PM kompatiblnu zamenu, što se kod dodatnih bilbioteka
obično svodi na traženje njene PM kompatibilne verzije - npr. ako
koristiš NanForum Toolkit v2.1, uzmi verziju 3.01, za FUNCky ili
CA-Clipper Tools uzmi odgovarajuće patch-eve (ima ih u R:\Clipper),...
clipper.639bceklic,
>>> Nabavis PC Guard i resio si problem oko zastite svog
> softwera... :)
> Jel moze neka visak info o ovome. Gde, sta, kako...
Uz poruku prikacena demo verzija sa uputstvom.
dguard.zipclipper.640sobrenovic,
Neko je ovde pre izvesnog vremena trazio program
koji od .EXE programa pravi izvorni .PRG kod.
Isti sam skinuo sa BIROSTROJ BBS-a. Nisam ga isprobavao
ali evo ga pa ko voli nek...
disclipp.arjclipper.641cnenad,
ŁŁŁ Neko je ovde pre izvesnog vremena trazio program
ŁŁŁ koji od .EXE programa pravi izvorni .PRG kod.
Ovo što si zakačio, može napraviti PRG fajlove (pre će biti OBJ ili ASM)
samo ako je EXE rađen sa S87 verzijom Clipper-a i valjda klasičnim PLINK-om
86.
clipper.642bulaja,
Dovučen je i 5.2e US patch (thanks to aquarius), biće
prebačen ovih dana u dir čim ga skinem i upladujem na
Sezam :).
clipper.644zkrstic,
> Interesujeme dali neko ima DECOMPILER za clipper 5.2x
> Da od EXE napravi izvorni PRG kod
Koliko znam, tako što ćeš jaaaako teško naći ( čitaj: Nema bre )
a samo da te podsetim: Blinker verzija od pre 3.01 pravi haos
sa Clipper >= 5.2C prema tome... nema tako čega, bar za sada.
Ono što sam video, radi lepo isključivo sa S'87 & PLINK, a čIm
ima Blinker, makar i V1.5, pravi haos. Demo koji smo videli,
iste firme ( Aladin ) je shit, a trebao je da radi sa 5.x,
uspeo je samo da razbije "Hello world" i to kompajliran
sa 5.01 ( ne 5.01a ) & RTLINK-om ( ne blinkerom ) i tu
je biJo kraj.
A medju nama ženama, vrlo mi je veoma mnogo drago da tako nešto
ne postoji, u suprotnom... pa koji moj ja imam sve na dva harda
medjusobno udaljena 2km, i na dve trake iste udaljenosti ;)
Pa ak oi bomba padne... valjda neće biti toliko jaka. ;)
Zkr
clipper.645bulaja,
**** new file ****
MSDOS - R:\CLIPPER
----------------------
52eusx a01 349492 CA-Clipper 5.2e (US) / ExoSpace 1.0g - Update #1/4
52eusx a02 349567 CA-Clipper 5.2e (US) / ExoSpace 1.0g - Update #2/4
52eusx a03 349595 CA-Clipper 5.2e (US) / ExoSpace 1.0g - Update #3/4
52eusx a04 313742 CA-Clipper 5.2e (US) / ExoSpace 1.0g - Update #4/4
4 file(s) 1330 kb
<Thanks to aquarius>
clipper.646d.petrovic,
Šta treba dodati u *.RMK za svič /es ?
On prekida prevođenje, ali izlazi sa greškom 2001, treba negde ubaciti
nešto kao :
EXIT 2: bla bla
Šta tačno i gde u fajlu (početak, kraj, pre prevođenja.... ?)
clipper.647majtoski,
Da li je neko radio sa pro vision windows bibliotekom za clipper.
dos biblioteka koja simulira win u text modu.
imate li neku preporuku, za GUI nalik na windows, koji podrzava
event dirven metodologiju
p.s de moze da se nabavi class(y) biblioteka
clipper.648bulaja,
**** new file ****
MSDOS - R:\CLIPPER
----------------------
sx203i zip 44681 SIx Driver Update: 2.02.00 -> 2.03.00 (Intl)
sx20301i zip 8560 SIx Driver Update: 2.03.00 -> 2.03.01 (Intl)
2 file(s) 52 kb
SIx Driver 2.0 Release History
------------------------------
Rev 2.03.01 (04-03-95)
SIX203 Under Windows, using 2 DOS windows, a 1012 error could
occur during opening/closing of data/index files.
This has been FIXED.
SIX203 dbRlock(Recno()) on newly appended record failed.
This has been FIXED.
CDX203 Sx_KeyGoto() with SCOPE failed if the scope was set to
the last key in the active order.
This has been FIXED.
Rev 2.03.00 (03-27-95)
CDX202 Sx_KeyGoto() did not position correctly in some cases.
This has been FIXED.
NSX201 IE1210 Error w/ SIXNSX and Multi-Key RYO index.
This has been FIXED.
SIX201 Calling Sx_KeyCount() causing SKIPs to move to wrong RYO key.
This has been FIXED.
SIX201 Sx_KeyDrop() fails if even non-key field changed first.
This has been FIXED.
SIX202 GPF error on key replaces (data dependant).
This has been FIXED.
SIX202 Sx_SetTag("x","y") returns .t. when there is no index file.
This has been FIXED.
SIX202 Only 1st MEMO field being encrypted in encrypted database.
This has been FIXED.
CDX202 GPF when doing REPLACEs in conditional index (_bmove).
This has been FIXED.
CDX202 File size problem w/ File2BLOB using COMPRESS option.
This has been FIXED.
SIX202 GPF on index creation @ __NSXPLACEKEY / __CDXPLACEKEY.
This has been FIXED.
SIX202i Sx_KeyCount() appears to mess up rec pointer (INTL release ONLY).
This has been FIXED.
<Thanks to aquarius>
clipper.649bulaja,
Ovo je neki update-ovan .OBJ za FUNCky :), thanks to aquarius.
funstack.zipclipper.650nbatocanin,
> Koliko znam, tako što ćeš jaaaako teško naći ( čitaj: Nema
> bre ) a samo da te podsetim: Blinker verzija od pre 3.01
> pravi haos sa Clipper >= 5.2C prema tome... nema tako
> čega, bar za sada.
Hm, nisam ništa uživo video, ali nije valjda da od onolike ponude
ništa ne radi kako piše!?
clipper.651zkrstic,
>> pravi haos sa Clipper >= 5.2C prema tome... nema tako
>> čega, bar za sada.
>
> Hm, nisam ništa uživo video, ali nije valjda da od onolike ponude
> ništa ne radi kako piše!?
Ja još nisam naleteo na reklamu za Clipper 5.2, a ovo resto, jednio
je Aladin pravio haos ( zaista bacao sors napolje ) od Summera
linkovanog Plinkom ili MS Linkom. Na Kipru smo Banex i ja dobili
neki Južno Afrički ( ima reklama u RDBMS, šatro najbolji na svetu,
ima toplu/ladnu vodu, zavija sarme, čuva decu, mal'ne komentariše
tuđ sors ), a kad mi tamo - ono moedjutim ;) Izbaci nešto, ali
to nemože da se upotrebi ni pod tačKom razno.
Sve u svemu, najveći problem je to što je 5.01 -> 5.2 menjan format
OBJ fajla, pa onda opet na 5.2b ->5.2c, pa i na kraju na 5.2d. Mašala
na CA ;)
Zkr
clipper.652whitie,
-->> Uz poruku prikacena demo verzija sa uputstvom.
Uz poruku prikacen deo uputstva za upotrebu. :-)
Obzirom na tip programa, jasno je da autor ne moze dozvoliti upotrebu
demo verzije ni jedan jedini put, ni jedan jedini minut...
... al sto ne napisa cenu. Moze li se kupiti program za jednokratnu upotrebu
?
clipper.653dzoric,
Ako medju vama ima i COBOL-asa da mi objasni strukturu baze u cobol-u,
ili jos bolje ako ima programcic koji ce prebaciti Cobol format u
ASCII ili DBF.
Unapred zahvalan.
__Dejan__
clipper.654toma,
■> Koliko znam, tako što ćeš jaaaako teško naći ( čitaj: Nema bre )
Rescue5 radi posao sasvim pristojno, probano sa 5.2c +
Blinker 3.10.
PC.PROG.5:10.586 Naravno demo.
clipper.655bceklic,
> Uz poruku prikacen deo uputstva za upotrebu. :-)
Radi se o uputstvu za tutor (demo). Pravo uputstvo sadrzi
mnogo vise informacija....
> Obzirom na tip programa, jasno je da autor ne moze dozvoliti
> upotrebu demo verzije ni jedan jedini put, ni jedan jedini
> minut...
Zato sam i napravio tutor ;) No razmisljao sam i verziji
kod koje bi se mogli zasticivati programi ali samo sa
Demo opcijom i vremenskim ogranicenjem ali sam od toga odustao.
Pozdrav!
clipper.656aseovic,
>> LD100.ARJ - Clipper LIB za BarCode (HP LJ, Epson...)
>
> Zaradio si pivo, ako dovučeš i source dobiješ i picu..., na tanjiru ;))
Na žalost, mislim da nema source za nju :( Ako slučajno znaš gde ga ima
javi pa ćemo da ga skinemo.
Pozdrav,
Sele
clipper.657flash,
Pozdrav!
Da li neko zna koja je najnovija verzija Flipper grafičke biblioteke
i da li je moguće iz njega koristiti grafički mod 1024x768 (u bilo
koliko boja) ?
Ja imam Flipper v6.09 koji je ograničen na 800x600 maksimalno.
Da li je sa nekom drugom grafičkom bibliotekom moguće koristiti mod
1024x768, i kojom ?
clipper.658d.petrovic,
Funkcija FT_EXIST iz NANFOR-a :
FUNCTION FT_EXIST( cDrvDir )
// check for "Đ" passed; add if necessary
RETURN FILE(( cDrvDir + IF(Right( cDrvDir, 1) == "Đ", "", "Đ" ) + "NUL" ) )
radi posao sasvim lepo sve dok nisam umesto novela 3.11 stavio 3.12
Sada nijedan direktorijum ne postoji. Zašto? Kako? :(((
clipper.659d.petrovic,
> FUNCTION FT_EXIST( cDrvDir )
> // check for "Đ" passed; add if necessary
> RETURN FILE(( cDrvDir + IF(Right( cDrvDir, 1) == "Đ", "", "Đ" )
> + "NUL" ) )
>
> radi posao sasvim lepo sve dok nisam umesto novela 3.11 stavio
> 3.12
>
> Sada nijedan direktorijum ne postoji. Zašto? Kako? :(((
Nije krivac 3.12 nego VLM.
Vraćam ja lepo netx, samo ..., kako su smeli da naprave nešto takvo ?
Ako clipper-u kažem da štampa nešto sa :
set device to print
set printer to laza. // tačka da nebi dodao eksetenziju prn
? "tt"
....
obavezno se zatupavi pod VLM-om
clipper.660stanic,
Da li je neko resio stampu iz clippera na laseru ali sa
cirilicnim fontovima.Znam da resenje nema veze sa clipperom
ali kako inace.Ima li ko cirilicn űe fontove za IVL ili IIIp.
clipper.661vgenije,
HI
Instalirao sam po treci put clipper za 5 dana i opet mi se javlja neka
greska.Elem,program izgleda ovako:
procedure jjjj
clear
@ 10,10 say "ffhhjkfhjfhj"
return
posle startovanja ecl-a on mi kaze bad format or object file 'fsdfsd"
gde je greska?
clipper.662nexy,
Problem je gluplji od mene ...
Fazon je u tome sto recimo public niz := {.t., .t., .f.}
nece da zapise u fajl sa SAVE ALL TO temp ...
Kreira fajl i u njemu jedno veliko nista ...
Kod drugih tipova promenljivih nisam imao problema ...
Ocekujem da mi dokazete teoremu iz 2. reda ...
Pozdrav,
Wizard NEXY
PS : Ovo je urgentno ...
clipper.663dvesic,
>>HI
>>Instalirao sam po treci put clipper za 5 dana i opet mi se javlja neka
>>greska.Elem,program izgleda ovako:
>>
>> procedure jjjj
>> gde je greska?
Probaj da program ovako :
Clipper TEST.PRG /n /m
RTLink File Test
Trebalo bi da radi. :))
clipper.664dvesic,
>> Problem je gluplji od mene ...
>> Fazon je u tome sto recimo public niz := {.t., .t., .f.}
>> nece da zapise u fajl sa SAVE ALL TO temp ...
SAm si resio problem :) SAVE NE snima nizove.
clipper.665nexy,
Zasta sluzi onda, BOGATI ?
Ne mari, i onako sam problem resio na bolji nacin ...
U svakom slucaju hvala na saradnji ...
CU,
Wizard NEXY
clipper.666zkrstic,
> gde je greska?
Smrdi na nekompatibilnost izmedju verzije Linkera & Clippera.
Koje verzije koristiš ?
clipper.667zkrstic,
> Problem je gluplji od mene ...
> Fazon je u tome sto recimo public niz := š.t., .t., .f.ć
> nece da zapise u fajl sa SAVE ALL TO temp ...
RTFM :)
SAVE ALL to nemože da uradi. Koristi funkcije za to SAVEARR & RESTARR
iz Nanfor.LIB-a
clipper.668vgenije,
> Smrdi na nekompatibilnost izmedju verzije Linkera & Clippera.
> Koje verzije koristis ?
Dobio sam od prijatelja cliper 5.1 instalaciona verzija.kod njega sve ok
radi,cak je u tom programu napravio aplikaciju za knjigovodstvo ..
clipper.669vgenije,
>
> Clipper TEST.PRG /n /m
> RTLink File Test
>
Nece
clipper.670jolicm,
>> procedure
HI :)
Koji clipper ?
To što si napisao ne treba ništa da uradi. Samo da se vrati na dos
pod uslovom da si rekao samo clipper program <-
Clipper sve do ključne reči >>PROCEDURE<< ili >>FUNCTION<<
smatra da je tekuća procedura i kada naiđe na tu reč završava tekuću proceduru
kao da si mu rekao >> RETURN <<
Dakle
č 2, 2 Say "kreni"
procedure proba
č 3,2 say "proba"
return
kada se prevede sa clipper prog
rtlink prog
ispiše samo na 2,2 "kreni"
a ono "proba" nema.
Znači IZBRIŠI ONO >>PROCEDURE xxxx <<<
clipper.671jolicm,
>> niz
Clipper ne može sam samcat da snimi memorijski niz u fajl, već mora za to da se
piše program, a ima i gotovih funkcija za to .
s
clipper.672jolicm,
>> Trebalo bi da radi.
:) E neće raditi tako .!
Clipper program će uopšte moći da radi samo u dva slučaja.
1. Da se na samom početku programa ne navodi nikakva reč procedure ili function
i da se prevodi sa clipper test
ili
2. Da se sve radi sa procedure ili function i da se prevede sa clipper test
/m/n
( clipper test /m/n)
ALI u nekom od programskih fajlova koji se linkuju mora biti procedura MAIN
Ukoliko se za sve programske redove navede naziv procedure (sve je u
funkcijama)
clipper će na samom startu formirati funkciju MAIN() u kojoj nema nikakvih
poziva drugih funkcija i program nema šta da uradi ! :))
clipper.673zkrstic,
>> Smrdi na nekompatibilnost izmedju verzije Linkera & Clippera.
>> Koje verzije koristis ?
>
> Dobio sam od prijatelja cliper 5.1 instalaciona verzija.kod njega
> sve ok radi,cak je u tom programu napravio aplikaciju za
> knjigovodstvo ..
Stani bre, jel' 5.1 ili 5.01 ? Proveri, lako moguće da je ono o
čemu sam ti govorio.
clipper.674vgenije,
> Stani bre, jel' 5.1 ili 5.01 ? Proveri, lako moguce da je ono o
5.01 pardon.
clipper.675mirche,
Ha, eto jedne korisne stvari u diru.
Sada ću komotno moći da bacim 44 Kb source-a koji sam trošio na zaštitu
programa. Program se zove PcGuard.
Valjda i radi ono što tamo piše ;))
clipper.676saks,
Cini mi se da ovo pitanje ne spada potpuno u ovu temu ali mi je
odgovor hitan i neophodan. Stav je u sledecem: Kakvu odgovornost
snosi programer za dokumente (proizvod njegovog programa) a sa kojih
je skinut potpis ogovornog lica. Da li neko zna koji zakoni se odnose
na to (oblast prava, naziv zakona, gde se moze naci i sl.). Da li na
tko dobijenim dokumentima mopra da stoji neka napomena da je sve u
skladu sa zakonom.
Unapred zahvalan Sasa
clipper.679dr.grba,
>> je skinut potpis ogovornog lica. Da li neko zna koji zakoni se odnose
>> na to (oblast prava, naziv zakona, gde se moze naci i sl.). Da li na
>> tko dobijenim dokumentima mopra da stoji neka napomena da je sve u
>> skladu sa zakonom.
Jedan od zanimljivih dokumenata na tu temu, koji mi je nedavno došao ruku,
jeste zbirka računovodstvenih standarda, objavljena u vidu knjige -
udžbenika za knjigovođe (mislim da je izdavač "Privredni pregled", ali
možda i grešim...).
Jugoslovenski Računovodstveni standard 33 (JRS 33) se odnosi na
računovodstveni softver. Iako je ovo samo segment u paleti poslovnih
aplikacija, vrlo je korisno proučiti ga. Na 24 strane, tačku po tačku je
elaboriran sadržaj i koncept koji ovaj softver mora zadovoljiti.
Samo par tačaka (ipak je ovo tema Clipper...), za reklamu:
====================
33.1
Standardom JRS 33 utvrđena je obaveza proizvođača/isporučioca
računovodstvenog softvera da uz softverski proizvod isporuči i "Opšti
priručnik" u kome su opisane sve značajne Opšte i Posebne (aplikativne)
karakteristike.
...
33.37
Ukoliko se predviđa da krajnji korisnik vrši adaptacije i dorade softverskog
proizvoda, treba navesti uslove, načine i metode za sprovođenje dorade.
...
33.94
Softverski proizvod mora da obezbedi memorisanje sistemskih poruka u posebnu
datoteku (LOG) koje su posledica neregularnih situacija (prekidi, greške i
sl.)
...
33.131
Na proces ulaza u magacin od dobavljača nadovezuje se likvidacija faktura
dobavljača kao preduslov knjiženja analitike dobavljača.
...
====================
...itd.
Ovo je bila samo reklama. Izvinite na dužini poruke. Mslio sam da vredi da
vam skrenem pažnju na ovaj dokument. Potrudite se da nađete ovo, neće vam
biti žao.
clipper.680jolicm,
>> Standard ...
A kad ću ja to dobiti za fotokopi...
???????????????????????????????????????????
:)
Samo nemoj da mi kažeš da prvo vratim sve što sam od tebe uzeo :>
clipper.681snemcev,
>> Stav je u sledecem: Kakvu odgovornost snosi programer za dokumente
>> (proizvod njegovog programa) a sa kojih je skinut potpis ogovornog
>> lica.
Šta je konkretno pisac hteo ovim da kaže? Ko je stavio potpis odgovornog
lica (program?!) ko ga i kako "skida"?
clipper.682jpinta,
Sa zakasnjenjm sam procitao u racunarima tekst 'Kraj detinjstva' o bibilioteci
OBJECTDB 1.1 . Zeleo bih da koristim tu biblioteku K, to jest da je isprobam
pa ako mi odgovara da je trajno koristim. Molim za informaciju gde se moze
nabaviti i pod kojim uslovima.
clipper.683mdrazic,
Pojavila se nova reklama za:
SIx Driver 3.0
Šta ima novog (po njihovom):
- još manji i brži
- nova VariField Memo polja
- koristeći novi Auto-Optimize utility mogu se komprimovati ne
samo indeksi (NSX/CDX) već i 'Data files' (valjda tabele, ne
pitajte mene kako)
- 4 RDD: NSX, CDX, MDX, NTX
- HiPer-SEEK - 'Fast Text Search' (licencirano) za pretraživanje
memo polja
Cena $249. Upgrade sa 2.0 $149.
Milan
clipper.684dzoric,
Za sve ljubitelje SIx-a:
Ovaj primer SIx resava na razlicite nacine (resetovanje masine, unistavanje
tabele, zbunjivanje QEMM-a, 1010 ReadError, 999 Internal Error, itd...)
Napomena: ovaj primer COMIX odradi bez problema.
***************************************
PROC MAIN()
// Struktura tabele SIFROBE.DBF
// SIFRA N 8 0
// NAZIV C 40
// KOL N 14 2
// Ako tabele ima < 500 rekorda verovatno ce proci, al' preko
// vrlo tesko bez obzira na BLINKER PROCEDURE DEPTH ili STACK
USE Sifrobe NEW
INDEX ON Sifrobe -> sif_rob TAG sifrob
INDEX ON Sifrobe -> naziv TAG sifnaz FOR Sifrobe -> kol > 0
INDEX ON SUBSTR(STR(Sifrobe -> sif_rob,8),4,2) + Sifrobe -> naziv ;
TAG sifgru FOR Sifrobe -> kol > 0
INDEX ON SUBSTR(STR(Sifrobe -> sif_rob,8),1,3) + Sifrobe -> naziv ;
TAG sifpro FOR Sifrobe -> kol > 0
SET TAG TO Sifrob
? "Upisujem jedinicu"
GO TOP
WHILE ! EOF()
Sifrobe -> kol := 1
SKIP
END DO
? "Upisujem nulu ako uspem da dodjem dovde"
GO TOP
WHILE ! EOF()
Sifrobe -> kol := 0
SKIP
END DO
RETURN
*****************************************
__Dejan__
clipper.685dvesic,
>> Za sve ljubitelje SIx-a:
>> Ovaj primer SIx resava na razlicite nacine (resetovanje
>> masine, unistavanje tabele, zbunjivanje QEMM-a, 1010
>> ReadError, 999 Internal Error, itd...)
Molim te, proveri to još jednom. O kojoj konfiguraciji (verzijama
programa) se radi ?
Kod mene ( SIX 2.03.01 + Clipper 5.d + (Blinker 3.10 ili Rtlink) )
program radi bez problema. Probaj program - priložen je uz poruku.
Jedina razlika u odnosu na tvoj program je što kreira bazu ako ne
postoji i puni je sa 15,000 slogova.
Pozdrav,
Dejan.
test.prgclipper.686bulaja,
│INDEX ON Sifrobe -> sif_rob TAG sifrob
└───
Nevezano za SIx-ov "bug" (koji se, btw, meni ne javlja:), ali loša je
praksa korisiti aliase prilikom indeksiranja - SIx će (ne znam šta će
drugi RDD-ovi, ali verovatno se i oni ponašaju isto) u informacije o
indkesnom ključu koji se upisuje u .CDX datoteku uključiti kompletan
izraz za indeksiranje, dakle "SIFROBE->SIF_ROB" - ovo em što je nezgodno
(nemožeš u programu menjati alias koji koristiš za bazu), em donosi ne
baš prijatne dodatne probleme - ovako kreirani indeks tag Mach SIx
nemože korisiti za optimizaciju (zato što ga shvata kao indeks po
složenom ključu, identično korisničkoj funkciji za indeksiranje), em
indeks ne može korisiti neki drugi, ne-Clipper, program (npr. CA-VO).
Zato izbaci oznake aliasa iz indeksnog ključa, a da bi izbegao
upozorenja kompajlera sva polja po kojima se indeksira deklariši kao
FIELD.
clipper.687bristic,
Dali postoji neka verzija CLIPPER-a i za neke druge
operativne sisteme osim DOS verzija.
Interesuje me narocito dali postoji CLIPPER za UNIX.
clipper.688dzoric,
> Kod mene ( SIX 2.03.01 + Clipper 5.d + (Blinker 3.10 ili
> Rtlink) ) program radi bez problema. Probaj program - prilozen
> je uz poruku. Jedina razlika u odnosu na tvoj program je sto
> kreira bazu ako ne postoji i puni je sa 15,000 slogova.
Hm, i kod mene tvoj program radi, ali sa originalnom bazom nece.
Gledao sam je par sati i nevidim da joj nesto fali.
Kod mene je ( SIX 2.02.00 + Clipper 5.2e + Blinker 3.10 ). Nisam
probao sa novim verzijama SIx-a posto nemam snage da ga vise
patch-ujem. Prebacio sam sve na Comix i za sada radi.
Evo i originalne baze pa je prodrmusaj ja sam digao ruke.
__Dejan__
sifrobe.zipclipper.689dzoric,
> Zato izbaci oznake aliasa iz indeksnog kljuca, a da bi izbegao
> upozorenja kompajlera sva polja po kojima se indeksira
> deklarisi kao FIELD.
Ostala je navika iz vremena pre RDD-ova. Ispravicemo.
__Dejan__
clipper.690bulaja,
│Dali postoji neka verzija CLIPPER-a i za neke druge operativne sisteme
│osim DOS verzija. Interesuje me narocito dali postoji CLIPPER za UNIX.
└───
Za UNIX postoji nešto što se zove FlagShip - po informacijama koje su
stigle do nas, to čudo zaista radi, jedino ga niko ovde nije video :).
clipper.691bulaja,
Koja je poslednja verzija CLText biblioteke? Ja imam neku dve godine
staru (01.04.93) verziju 3.20, kojoj je glavna mana što ne radi u
protected modu :(. Postoji li neka novija verzija ili patch?
clipper.692bgolusin,
Da li neko moze da mi pomogne.Treba mi ne [ýĹ$-█%Ě┼ ka LIB za slanje faxa iz
clipper programa
clipper.693majtoski,
Imas Silver Clip biblioteku, ona omogucava koricenje modema i fax-a
clipper.694bgolusin,
Gde da nadjem CAS driver ??
clipper.695aseovic,
> Gde da nadjem CAS driver ??
Imaš ga uz Word Perfect za DOS, čini mi se, a imao sam i neki FAX program
za mreže - FileFax, uz koji se dobijao CAS drajver. Nemam ga više, na žalost,
nije dobro radio posao pod Novellom.
Uzgred, zna li neko nešto o Faxual II biblioteci. Koliko sam video u reklami
to je jedina biblioteka za fax koja ne zahteva CAS nego radi lepo sa Class 1
i Class 2 fax/modemima. Osim toga, imala je gomilu lepih opcija.
Pozdrav,
Sele
clipper.696aseovic,
Uz ovu i sledeće poruke šaljem neke stvari sa MUM-a.
Sadržaj:
ARRINF.ARJ - brzina pristupa elementima niza
CASEVS.ARJ - test brzine izvršavanja CASE .vs. IF
SW-ASE.ARJ - TSR Clipper program (DEMO)
RDD.EXE - Uporedni test DBFSix-a i Comix-a
SVPR.ZIP - Sound & Vision biblioteka (opis)
LIGHT_CL.ARJ - LightLib za Clipper (opis)
MEMORY.ZIP - Saveti za korišćenje memorije u Clipper-u
XB2WP.ZIP - Clipper za OS/2 (opis)
Prijatan DL i čitanje :)
Pozdrav,
Sele
arrinf.arjclipper.697aseovic,
CASEVS.ARJ - CASE .vs. IF study
casevs.arjclipper.698aseovic,
Ko kaže da Clipper programi ne mogu da budu rezidentni?
SW_ASE.ARJ - Demo program za Dr.Switch ASE biblioteku
sw_ase.arjclipper.699aseovic,
RDD.EXE - Uporedni test Six-a i Comix-a
rdd.execlipper.700aseovic,
SVPR.ZIP - Opis Sound & Vision biblioteke za Clipper
Interesantno: Kontrola Sound Blastera i CD-ROMa, Windows
look & feel itd.
svpr.zipclipper.701aseovic,
LIGHT_CL.ARJ - Opis LightLib biblioteka za Clipper
light_cl.arjclipper.702aseovic,
Mnoštvo saveta za efikasno korišćenje memorije u Clipper programima.
memory.zipclipper.703aseovic,
XB2WP.ZIP - xBase/2 : Clipper kompajler za OS/2 (opis)
xb2wp.zipclipper.704peacock,
#### Mnoštvo saveta za efikasno korišćenje memorije u Clipper
#### programima.
Ovo je najbolji tekst na ovu temu koji sam imao prilike da
pročitam. I ne samo to, ilustrovan je zanimljivim tehnikama
linkovanja sa sve primerima radi optimizacije količine
raspoložive memorije i brzine.
clipper.705aseovic,
Skinut je sa MUM-a i patch za Telepathy, očekujte ga u dir-u.
Ovih dana ću skinuti i patch za ObjectDB 1.1d
Pozdrav,
Sele
clipper.707bgolusin,
Nisam pratio od pocetka ovu kkonferenciju ali da li neko zna postoji li ,gde,
posto neki kompajler za CLIPPER pod UNIX oper.sist.Unapred HVALA !!
clipper.708d.petrovic,
> Prijatan DL i čitanje :)
Svaka ti se dala ! :)
clipper.709aseovic,
9KDEMO.ARJ - 9k Release Control System za Clipper. Obavezno pogledajte!!!
Skinuo sam i SW verziju LARC-a (Library Administration & Release Control
System). Ima mnogo opcija, dobijaju se verzije za DOS i OS/2 itd.
Arhiva je oko 1Mb pa ako je neko zainteresovan nek se javi na mail da se
dogovorimo oko preuzimanja.
Stvari koje su takođe skinute ali su mi dugačke za UL:
LANLIB - Demo verzija biblioteke za Lantastic
VALKYRIE - Demo verzija Clipper 5 dekompajlera
ODB11d - Patch za ObjectDB 1.1d
Bulaja će ih dobiti ovih dana pa možete da ih očekujete u conf i diru.
Pozdrav,
Sele
9kdemo.arjclipper.710aseovic,
COMET.ARJ - Demo biblioteke za komunikaciju u pozadini (do 5 portova)
Ograničena je na 10 min. od otvaranja prvog porta.
comet.arjclipper.711iknezevic,
Ako neko ima NG za FLIPPER ili dokumentaciju u bilo kojoj drugoj formi bio bih
mu izuzetno zahvalan da mi ostavi mail.
ű˝Wl
clipper.712aseovic,
Evo ga i patch za ObjectDB na verziju 1.1d
clipper.713rmarjan,
Javi se na tel.: 123-146 da se dogovorimo
Pozdrav!
clipper.714nbatocanin,
> Nisam pratio od pocetka ovu kkonferenciju ali da li neko
> zna postoji li ,gde, posto neki kompajler za CLIPPER pod
> UNIX oper.sist.Unapred HVALA !!
Postoje najmanje dva (FlagShip, na primer), ali koliko je meni poznato
nema ih u YU.
clipper.715bgolusin,
Sta je menjano u 5.2e u odnosu na 5.2d.
clipper.716jolicm,
Narode imam predlog:
Šta je sa zaštitom programa ????
Da li je neko radio na tome ?
Da li je neko napravio nešto vredno ?
Da li bi mogli oni koji su napravili tako nešto da dobace ovde sorseve ?!
Moja zapažanja (godinu dana) o ovoj temi u ovoj konferenciji.
Svi kliperaši ćute o tome, i moj je neki zaključak, da je većina koji su
pravili komercijalne programe napravila i dobre (?) zaštite, ali ne žele
to podeliti sa ostalima. Ako nije tako, gde su onda rutine za broj diska,
za proveru verzije biosa, za skriptovanje......, može toga da bude iha...
Zar nije bolje za bilo kog programera da ako ima dobre algoritme (opšte) za
zaštitu programa, da to da i ostalim programerima .?
Razmišljanje:
Ukoliko probiju zaštitu bilo kojem drugom programeru iz oblasti kojima se
ja bavim, tada će kružiti njegovi (ukradeni) programi sve više, i nema leba
ni za koga, osim za lopove !
Šta kažete o tome ?
clipper.717bceklic,
> Moja zapazanja (godinu dana) o ovoj temi u ovoj konferenciji.
>
> Svi kliperasi cute o tome, i moj je neki zakljucak, da je
> vecina koji su pravili komercijalne programe napravila i dobre
> (?) zastite, ali ne zele to podeliti sa ostalima. Ako nije
> tako, gde su onda rutine za broj diska, za proveru verzije
> biosa, za skriptovanje......, moze toga da bude iha...
>
> Zar nije bolje za bilo kog programera da ako ima dobre
> algoritme (opste) za zastitu programa, da to da i ostalim
> programerima .?
Vecina onih koji rade kao slobodni programeri (citaj: ne rade
u nekoj od jacih firmi) ima neke svoje zastite za koje smatraju da
su sasvim dovoljne da zaustave potencijalnog provalnika. Tu spadaju
vecinom clipper programeri koji prodaju aplikacije tipa knjigovodstva
a kojih u ovoj zemlji ima vec na stotine. Najcesce oni ni ne razmisljaju
o tome koliko je ta zastita zaista kvalitetna a o ulaganju u zastitu
svojih programa da i ne govorim.
Druga prica su firme koje prodaju usko specijalizovani softver i koje
jednostavno nemaju pravo na gresku oko zastite softvera. Jednom razbijen
program znaci na hiljade izgubljenih d..
Kako je nase softversko trziste u popunosti dezorjentisano i u ogromnom
delu jedna velika piraterija o zastiti programa ce se tek razmisljati (ako to
vreme ikada dodje..)
Sto se tice algoritama koje si spomenuo mislim da nije nikakav problem
doci do njih.Mnogo puta se ne sezamu raspravljalo o njima a i ja sam nedavno
poslao jedan asm program za citanje broja diska.
Pretpostavljam da niko od mene ne moze ocekivati da izlozim javnosti
nekih 700k asm sorsa PC Guard-a u koji je ulozeno hiljade sati rada i
testiranja...?
Polako ali sigurno vecina ljudi pocinje da shvata da dobru zastitu ne
mogu da sacinjavaju samo kompleksni algoritmi za detekciju ili sifrovanje.
Svi ti algoritmi padaju u vodu ako je dozvoljen pregled i analiza koda
koji izvrsava te algoritme. Vrlo brzo taj isti algoritam ce uz male izmene
raditi sasvim druge stvari...;)
> Razmisljanje:
> Ukoliko probiju zastitu bilo kojem drugom programeru iz oblasti
> kojima se ja bavim, tada ce kruziti njegovi (ukradeni) programi
> sve vise, i nema leba ni za koga, osim za lopove !
>
> Sta kazete o tome ?
Ja kazem PC Guard.... ;)
clipper.718dr.grba,
>> Kako je nase softversko trziste u popunosti dezorjentisano i u ogromnom
>> delu jedna velika piraterija o zastiti programa ce se tek razmisljati (ako
>> to vreme ikada dodje..)
Istinita priča, pre par meseci...
Bio čovek, medicinar, u USA na nekakvom seminaru/gostovanju, šta li. Video
je program za statističku analizu podataka relevantnih u njegovoj oblasti
delovanja, i kako je priučeni kompjuteraš, naivno pitao "da li ćete mi
iskopirati taj program? Evo, imam svoje diskete...".
žovek se kune da je užas na licima prisutnih bio takav da su mu se noge
odsekle kad je shvatio šta je rekao. Kasnije mu je domaćin nasamo rekao
"pre bih ti dozvolio da spavaš sa mojom ženom..." (:
clipper.719jtrifunac,
Prilikom povezivasnja Klipera sa C-om,
prijavljuju se greske jer linker trazi
putanje do odredjenih datoteka,
npr. d:ĐccĐbeep.asm ???, a
te p°─utanje se i ■˛nalaze na pocetku
biblioteka npr u terminal.lib.
O cemu se zapravo radi? Ima li neko ideju.
Hvala.
clipper.720bulaja,
**** new file ****
MSDOS - R:\CLIPPER
----------------------
odb11d zip 305596 ObjectDB v1.1d: patch za verziju 1.1b/1.1c
v5demo zip 376027 Valkyrie for Clipper 5: demo verzija Clip dekompajlera
tppatall zip 164002 Telepathy v2.1 upgrade patch
3 file(s) 826 kb
Sve zahvaljujući aseovic-u, staviću sutra i na "brzi" Sezam :).
clipper.721nbatocanin,
> Sta je menjano u 5.2e u odnosu na 5.2d.
Ima lepih izmena. Ispravljeni su neki bagovi. Ono što je
najinteresantnije, u demo programe su ubačeni neki _izuzetno_
interesantni programi. Jeste li videli Lotus 123 na Clipper-u :)
clipper.722nbatocanin,
>> Svi kliperasi cute o tome, i moj je neki zakljucak, da je
>> vecina koji su pravili komercijalne programe napravila i
>> dobre (?) zastite, ali ne zele to podeliti sa ostalima.
Ima tu istine. Ono što sam ja video (i koristim) nisu nikakva čuda
tehnike i obično se zasnivaju na malim trikovima koji gube smisao ako
se javno objave. Zato mi je razumljivo što ne ide generalna diskusija
o tome.
>> Sta kazete o tome ?
>
> Ja kazem PC Guard.... ;)
Slušaj, želim ti najbolje u prodaji programa, ali mislim da se nećeš
baš ovajditi od njega. Evo zašto: tipičan Clipper program je skoro
totalno neupotrebljiv bez podrške autora. Ko je lud da uzme piratovan
program za koji em nema podršku, em nije siguran da li će uvek da
radi (sam reci koliki je problem otkloniti zaštitu u 1MB EXE-u + 6MB
podaci i pritom biti siguran da si ih _sve_ sklonio). Oću da kažem,
jeftinije je da se kupi original program.
> Polako ali sigurno vecina ljudi pocinje da shvata da dobru
> zastitu ne mogu da sacinjavaju samo kompleksni algoritmi
> za detekciju ili sifrovanje. Svi ti algoritmi padaju u
> vodu ako je dozvoljen pregled i analiza koda koji izvrsava
> te algoritme. Vrlo brzo taj isti algoritam ce uz male
> izmene raditi sasvim druge stvari...;)
Hm, nisam pregledao tvoj PC-Guard, ali nije mi jasno kako izlaziš na
kraj sa internim overlejima? I zar i tvoji algoritmi nisu čitljivi iz
koda? OK, ima više posla ako je sve višestruko šifrovano, ali se može
pročitati.
clipper.723tvucko,
Da li neko ima CAS drajver za SilverClip za korišćenje
fax-a iz Clipper programa
Unapred zahvalan
TVucko
clipper.724dvesic,
>> Prilikom povezivasnja Klipera sa C-om,
>> prijavljuju se greske jer linker trazi
Koje su verzije Clipper-a, C kompajlera i linkera ?
clipper.725jtrifunac,
Clipper=5.2 C=MS C v. 6.0 L=BLINKER 3.0
Ako ne ide nesto od ovoga kazi.
Treba mi sintaksa compajlera i povezivanja...
clipper.726jtrifunac,
Clipper=5.2 C=MS C 6.0 Linker=BLINKER 3.0
Treba mi sintaksa kompajlera i povezivanja ili predlog promene neke verzije.
HH.
clipper.727evlad,
>> Sve zahvaljujući aseovic-u, staviću sutra i na "brzi" Sezam :).
Da li je taj _brzi_ update na novi sezam zato što je _clipper_ u pitanju
ili sam ja nešto propustio ?
Zašto se sve što je novo u sez-diru ne prebaci ? :(
Sad bar tamo ima meeestaaa ;))
clipper.728dvesic,
>> Clipper=5.2 C=MS C v. 6.0 L=BLINKER 3.0
>> Ako ne ide nesto od ovoga kazi.
>> Treba mi sintaksa compajlera i povezivanja...
Treba ti :
Clipper 5.2d ili 5.2e
MS C V6.0
Blinker 3.1
Kompajliranje C programa :
cl/AL /O /G2 /Gs /Zl /FPa /c program.c
Kod linkovanja samo pazi da ti je prvi navedeni OBJ fajl napravljen
od strane Clipper-a a ne C-a.
To bi bilo to :)
clipper.729nbatocanin,
> žovek se kune da je užas na licima prisutnih bio takav da
> su mu se noge odsekle kad je shvatio šta je rekao. Kasnije
> mu je domaćin nasamo rekao "pre bih ti dozvolio da spavaš
> sa mojom ženom..." (:
Pa, jel' pristao ;>
Ma, mnogo mi se ti ameri prave fini ;) Po mojim informacijama nisu
oni baš takve cvećke kakvim se prave. Zašto bi onda državni organi
Kanade povremeno vršili _pretres_ računara svojih zaposlenih: kome
nađu nelicenciran softver, ćao. Tako znam primer da pola zaposlenih u
jednoj takvoj firmi drži BRIEF na disketi da ne bi koristili neku
legalno nabavljenu krdžu od editora. E pa, gde ima batine, ima i
krivice. Naravno, manje se koriste piratovani programi nego kod nas,
ali ne baš tako malo.
clipper.730bceklic,
>>> Sta kazete o tome ?
>>
>> Ja kazem PC Guard.... ;)
>
> Slusaj, zelim ti najbolje u prodaji programa, ali mislim da se
> neces bas ovajditi od njega. Evo zasto: tipican Clipper program
> je skoro totalno neupotrebljiv bez podrske autora. Ko je lud da
> uzme piratovan program za koji em nema podrsku, em nije siguran
> da li ce uvek da radi (sam reci koliki je problem otkloniti
> zastitu u 1MB EXE-u + 6MB podaci i pritom biti siguran da si ih
> _sve_ sklonio). Ocu da kazem, jeftinije je da se kupi original
> program.
Da sam razmisljao samo o komercijalnom uspehu na ovom trazistu
bacio bi se na izradu clipper aplikacija ;) Salu na stranu...
Kliperasa zaista ima najvise. Kad kazem najvise mislim da ih
ima svih vrsta pa je tako trziste klipper programa prezasiceno
raznim verzijama istih programa koje pojedini valjaju za nekih 200
a drugi za 2000 din. O relativnosti kvaliteta da i ne govorim.
Jos kad sam pocinjao sa radom na PC Guardu znao sam da ce biti
malo onih koji 'rade' kliper programe a spremni su da investiraju
u dobru zastitu. Sa te strane si zaista u pravu.
Medjutim, postoji veliki broj onih koji rade (i bice ih sve
vise jer je trziste raznih knjigovodstvenih programa postalo
pretrpano) specijalizovane programe cija je vrednost mnogo veca
od pomenutih i koji se mogu koristiti i bez direktne podrske autora.
PC Guard je program koji nije namenjem sirokom krugu korisnika
pa i ne ocekujem veliki broj prodatih kopija. Ono na cemu cu ja
institirati je kvalitetan proizvod i profesionalna podrska svojim
kupcima a ako se ovo trziste bude pokazalo kao intertno plasiracu
program napolje...
> Hm, nisam pregledao tvoj PC-Guard, ali nije mi jasno kako
> izlazis na kraj sa internim overlejima?
Sve zavisi od overlay managera. Ako je u pitanju Blinker nema
nikakvih problema da se program uspesno zastiti. U toku je rad na
novoj verziji koja ce biti plasirana za nekih 5-6 meseci i koja ce
doneti mnogo novina i omogucice zastitu bilo koje vrste dos programa
bez obzira na vrstu kompajlera (cak i NE programe). U planu je i
vezija za Win programe..
> I zar i tvoji algoritmi
> nisu citljivi iz koda? OK, ima vise posla ako je sve visestruko
> sifrovano, ali se moze procitati.
Ni jedna firma koja radi softver za zastitu nije imala hrabrosti
da siroj javnosti da na testiranje zasticene programe.
Prvi test programi zasticeni PC Guard-om plasirani su jos prosle
godine. Od tada je PC Guard mnogo napredovao. Ni jedan od tih
programa (iako su bili zasticeni sa najslabijim nivoom zastite i sa
malim brojem zastitnih slojeva) nije razbijen. Bio je to veliki
rizik pruziti priliku svima da se okusaju i pokusaju da razbiju
zastitu (ko zna koliko njih je do sada kopalo po kodu koji obavija
zasticene fajlove) ali niko nije uspeo. Mozda je to najbolji
odgovor na tvoje pitanje?
Mnogi i ne mogu da shvate koliko je rada utroseno u taj program,
jer to nije program koji radi po nekim opste poznatim algoritmima vec
nova softverska tehnologija na polju zastite softvera. Bas zbog ove
cinjenice i postoji veliko interesovanje medju ozbiljnim firmama
za ovaj program.
Pozdrav!
clipper.731ikordic,
RE: Zaštita
=> totalno neupotrebljiv bez podrške autora. Ko je lud da uzme piratovan
=> program za koji em nema podršku, em nije siguran da li će uvek da
Hm, "ludi" su ljudi kojima ne možeš objasniti da treba da ti kihnu 500,- DEM
za jednu disketu. Dok se ne opeku, oni tako gledaju na stvari. Za te pare,
on će kupiti brdo disketa i snimiti sebi gigabajte softvera. Da taj softver
ne može da se nosi sa tvojim čudesom, biće shvaćeno prekasno. E, da bi to
bilo sfaćeno, čoveku treba malo pomoći :)
Što se tiče zaštite, mislim da je ipak najbolje rešenje raditi to iz
programa, bez upotrebe eksternih pomagala.
Daklem, postoje slučajevi kada je sasvim ispravo korisiti neki sistem
zaštite, jer poneko nije spreman da se pouzda u njegovo/njeno poštenje u
svakom slučaju. Isto tako postoje i situacije u kojima 'ladno možeš čoveku
dati i nezaštićen program i sors, a ipak biti siguran da prg neće odlutati
negde.
clipper.732jkpbvk,
+| Prvi test programi zasticeni PC Guard-om plasirani su jos prosle
+| godine. Od tada je PC Guard mnogo napredovao. Ni jedan od tih
+| programa (iako su bili zasticeni sa najslabijim nivoom zastite i sa
+| malim brojem zastitnih slojeva) nije razbijen. Bio je to veliki
+| rizik pruziti priliku svima da se okusaju i pokusaju da razbiju
+| zastitu (ko zna koliko njih je do sada kopalo po kodu koji obavija
+| zasticene fajlove) ali niko nije uspeo. Mozda je to najbolji
+| odgovor na tvoje pitanje?
Verovatno nije stiglo do onog tipa sto je pravio UNP ;)
No, i da stigne ti si u dalekoj prednosti jer ces promeniti neku sitnicu u
programu tako da ga taj novi UNP ne prepozna, pa dok opet ta tvoja nova
verzija dodje do njega, pa taj novi UNP dovde..
clipper.733dr.grba,
>>> sa mojom ženom..." (:
>>
>> Pa, jel' pristao ;>
Nismo obavešteni (((:
>> krivice. Naravno, manje se koriste piratovani programi nego kod nas,
>> ali ne baš tako malo.
Nije da nije. Ono je možda i sporadičan slučaj, ali je istina.
BTW piratovanja, sećate li se opaske sa jednog od COMDEX sajmova po
kojoj se procenjuje da se samo u toku održavanja sajma na štandovima
napravi devetocifrena (dolarska) šteta od piratovanja. Zvuči u prvi mah
neverovatno, ali ko zna...
clipper.734bgolusin,
Da li je neko iz NS skinuo PATCH za 5.2e.Ako moze da se javi da ne bih i ja
skidao a dogovoricemo se da ja skinem nesto drugo
clipper.735jtrifunac,
Ucinio sam sve prema datim instrukcijama ali mi i dalje skripi kod
pozivanja iz C-a funkcija FOPEN, FSEEK, FREED, FCLOSE itd.
M Iste funkcije se nalaze i u Clipper-u pa me zanima da li treba nesto
posebno proslediti linkeru obzirom na prozivanje funckija sa anderskorima?
Unapred HVALA.
clipper.736bceklic,
> Verovatno nije stiglo do onog tipa sto je pravio UNP ;)
> No, i da stigne ti si u dalekoj prednosti jer ces promeniti
> neku sitnicu u programu tako da ga taj novi UNP ne prepozna, pa
> dok opet ta tvoja nova verzija dodje do njega, pa taj novi UNP
> dovde..
Sam nacin rada koji koristi unp proucio sam jos prosle godine i vodio
racuna o tome da debelo zagorcam zivot njegovom autoru za koga sam siguran
da bi veoma brzo odustao od pravljenja otpakivaca za PCG. Zbog cega? Zbog
tehnologije koja je ugradjena u PCG i koja je specijalno uradjena da
onemoguci uspesan rad i ovakvih programa. ;)
Unp ne sadrzi ni jednu jedinu rutinu za dekompresiju ali ipak uspeva
da otpakuje razne programe. Kako? Napravi im mesto u memoriji, pusti ih da
rade posao a kada zavrse jednostavno mazne deo memorije i napravi dekompresovan
fajl. Ovo je naravno uprosceno resenje. Da bi ostvario ovo unp mora da
ima potpunu kontrolu nad programom koji se izvrsava sto i nije bas lako
postici ni kod jednostavnih programa...
Pozdrav!
clipper.737jpinta,
Imam sledecu situaciju na mrezi:
Stanice su od 286 - 12 mhz do 486 DX2 - 80 mhz i koriste kodni
raspored YUSCII ili PAGE-852.
Stampaci su matricni 9-pinski, 24-pinski sa YUSCII ili PAGE-852,
i LASERI HP-IIP ili HP-4L.
E sad kombinacije po stanicama su takve da ima vezanih stampaca
sa PAGE-852 na YUSCII stanicu i obrnuto. Takodje i stampanje na udaljeni
stampac dovodi do iste kombinacije kodnoh rasporeda.
Posto tekstove treba stampati na razlicitim mestima imam problem
sa YU slovima. Ako neko ima slicnu situaciju neka izlozi kako je resio taj
problem. Moja ideja je da na svakoj stanici napravim KONFIG datoteku sa
opisom lokalnog stampaca i da izmenim SAY naredbu tako da umetnem medju
program koji ce na osnovu KONFIG-a presretati svaki izlaz na stampac i
konvertovati kodove na lokalno kod. Isto vazi i za stampu na serveru.
Ako neko ima jednostavnije resenje neka ga izlozi.
Unapred se zahvaljujem na trudu.
Pozdrav od JPINTA.
PPPHHP
clipper.738dvesic,
>> problem. Moja ideja je da na svakoj stanici napravim KONFIG
>> datoteku sa opisom lokalnog stampaca i da izmenim SAY naredbu
>> tako da umetnem medju program koji ce na osnovu KONFIG-a
>> presretati svaki izlaz na stampac i konvertovati kodove na
>> lokalno kod. Isto vazi i za stampu na serveru.
Ideja je ok ( tako i ja radim :) Samo bi mogao da proširiš INFO u
konfiguracionom fajlu za svaki štampač, tako da je sa bilo koje
stanice moguće štampati na bilo koji štampač u mreži.
clipper.739jtrifunac,
Imao sam problem veze C-a i Clipper-a.
Probao sam sa Clipper-om 5.2d, MS C 6.0 i Blinkerom 3.10 i sledecom
sintaksom:
- cl /c /AL /G2 /Gs /FPa /Zl Program.C
- BLINKER FI clip.obj, c.obj LIB LLIBCA
I dalje imam problem pri koriscenju iz C-a funkcija FOPEN,FSEEK,FREAD i
FCLOSE, kao i pri registraciji fontova iz grafickog moda sa _registerfonts.
Sa samim C programom je sve u redu obzirom da radi besprekorno kada se EXE
napravi iz C-a.
Unapred HVALA ! P.S. Ako vam je lakse moj telefon je 761-548 polse 18h.
clipper.740d.petrovic,
Mrzi me više da razmišljam O;)
Ovo sa karakterima radi, što zeza sa numericima ???
*************************************************
static a := šć
proc main(d)
Local mm := 0
aadd(a, š1, 11ć)
aadd(a, š3, 13ć)
aadd(a, š5, 15ć)
aadd(a, š7, 17ć)
aadd(a, š9, 19ć)
mm := aScan(a,,, šđaValđ aValŠ1Ć == Val(d)ć)
If mm == 0
? "nema"
Else
? aŠmm, 2Ć
EndIf
Return
*************************************************
clipper.741mdrazic,
> Stampaci su matricni 9-pinski, 24-pinski sa YUSCII ili PAGE-852,
> i LASERI HP-IIP ili HP-4L.
> E sad kombinacije po stanicama su takve da ima vezanih stampaca
> sa PAGE-852 na YUSCII stanicu i obrnuto. Takodje i stampanje na udaljeni
> stampac dovodi do iste kombinacije kodnoh rasporeda.
:) Baš sam ovih dana imao sličnu situaciju, ali zbog organizacije
štampe u našim aplikacijama nije bio nikakav problem. Kako se
štampa kod mene:
- Postoji tabela PRINTERI gde su uneti svi printeri koji se koriste
iz paketa sa bilo koje stanice. U tabeli definišeš i sa koje stanice
može biti dostupan, kako ide inicijalizacija printera (za sada nije
potrebno), tip štampača za povlačenje esc sekvenci (EPSON npr.) itd.
- za svaku vrstu printera (EPSON) takođe imaš tabelu tog imena sa
unetim kontrolama štampača u vidu sekvenci, načinu štampe dokumenata
na njemu, potrebnim download fontovima i slično.
- kada se generiše gokument (tekst) tada se to radi u fajl. Po mogućstvu
bez kontrolnih sekvenci i ostalih detalja koji zavise od modela
štampača. Može se koristiti neki marckup jezik sličan HTML ili SGML.
- na hot-key se može menjati štampač na koji će ići štampa dokumenta.
- kada pošalješ dokument na štampu, sa informacijama iz PRINTERI se
zna kojom komandom še se poslati (copy, nprint, ... može i na modem,
i na disketu i...), i komanda/program/blok/makro kojim eventualno
transformišeš tekst pri slanju. Ovim (kod mene običan DOS filter,
slično SORT, MORE) prevedeš iz tvog standardnog kodnog rasporeda iz
aplikacije u onaj koji je na štampaču. Zatim dokument na osnovu toga
kako treba da se štampa (pica, elite, condensed,...) dobije još neke
esc sekvence u zavisnosti od izabranog tipa printera, dobije još
opciono i download font i sve to kao paket zapišeš i pošalješ na
štampu. Za mrežne printere ne koristim capture, već direktno nprint
u odgovarajući queue (i te komande se nalaze u tabeli).
Ovaj sistem štampe omogućava da se dokument nezavisan od izlaznog uređaja
na koji ide (printer, laser, ekran, modem, disketa) a koji već stoji na
disku generisan, pošalje na dotični uređaj transformisan i složen u paket
sa nekim drugim informacijama zavisnim od tog uređaja.
Ovaj smo sistem projektovali davno, ali tek pre desetak dana je bila
potrebna promena kodne strane (YUSCII->852) za LX300. Sve je izvedeno
sa par unosa u gorepominjane tabele i pravljenjem malog programčeta za
prevodjenje rasporeda.
Milan
clipper.742nbatocanin,
> Ono na cemu cu ja institirati je kvalitetan proizvod i
> profesionalna podrska svojim kupcima a ako se ovo trziste
> bude pokazalo kao intertno plasiracu program napolje...
Bolje da odmah probaš i napolju, škoditi neće.
Nego, znaš li da postoji program po imenu PC-Guard za zaštitu
programa? Nisam ga video, ali sam čitao o njemu u nekoj knjizi o
zaštiti.
clipper.743zkrstic,
>> mm := aScan(a,,, šđaValđ aValŠ1Ć == Val(d)ć)
!!!!
Ovo promeni u čisto =
A ovako kako jeste ga propusti kroz DEBUGER, i stavi watch na
levo == desno, videćeš da je uvek .F. čak i kada bi trebalo
da budu isti. U pitanju su decimalna mesta.
Zkr
clipper.744bulaja,
│Da li je taj _brzi_ update na novi sezam zato što je _clipper_ u
│pitanju ili sam ja nešto propustio ?
└───
Jok, već zato što mi je aseovic tamo i okacio na mail stvari koje sam
prebacio ovde, pa mi je čas posla da ih sa maila otkačim u dir :). Inače
zašto se ne duplira sve sav već objašnjavao nekoliko puta, a takođe su i
drugi nadležni objasnili kakav je trenutni status Sezam PRO-BA :).
clipper.745evlad,
>> prebacio ovde, pa mi je čas posla da ih sa maila otkačim u dir :). Inače
>> zašto se ne duplira sve sav već objašnjavao nekoliko puta, a takođe su i
>> drugi nadležni objasnili kakav je trenutni status Sezam PRO-BA :).
Sve je to OK, ali tamo imaš novijeg softvera po conf-ovima nego u dir-u ;(
Ako već prebaciješ za clipper, prebaci i za Pascal, C ...
Ako si dosledan testa i _zvaničnog stava_, /mada je moje lično mišljenje
da kad bi sve prebacio tamo, bilo bi više _beta testera_ a i sistem
bi se ispitivao pod opterećenjem .../ zato biraj sve ili ništa,
ovako samo možeš stvoriti određene tenzije nepotrebno :((
Svaka čast na funkciji koju obavljaš, verujem da nije ni malo lako sve
pregleadti, proveriti .... (za sve je potrebno vreme)
Izvinjavam se za shum u conf-u.
clipper.746bgolusin,
Kakva su iskustva za ObjectDb.Koliko to "sporo" radi i da li je negde
pristupacna neka DEMO verzija.Unapred HVALA !!!
clipper.747bceklic,
> Nego, znas li da postoji program po imenu PC-Guard za zastitu
> programa? Nisam ga video, ali sam citao o njemu u nekoj knjizi
> o zastiti.
Zanimljivo. Nikad nisam cuo. Mali je svet..:)
Moj je ipak PC Guard (tm).. ;)
Btw, mozda je u pitanju neki slican naziv?
clipper.748dvesic,
>> I dalje imam problem pri koriscenju iz C-a funkcija
>> FOPEN,FSEEK,FREAD i FCLOSE, kao i pri registraciji fontova iz
>> grafickog moda sa _registerfonts.
Budi malo detaljniji - kakvih problema ? Ili najbolje, napiši primer
(PRG i C fajl) za koji si siguran da pravi probleme, pa ga pošalji u
konf. da ga malko seciramo :)
clipper.749d.petrovic,
>>> mm := aScan(a,,, šđaValđ aValŠ1Ć == Val(d)ć)
>
>
> Ovo promeni u čisto =
To sam prvo uradio.
Ne radi !
Ali zato radi (obrati pažnju na poređenje) :
nLen := Len(a)
For i := 1 To nLen
If aŠi, 1Ć == Val(d)
mm := i
Exit
EndIf
Next
SET DECIMALS TO 0 ništa ne menja
SET EXACT (normalno) ništa ne menja
Definitivno bug u aScan ili u meni samom ;)
mm := aScan(a,,, šđaValđ Int(aValŠ1Ć) = Int(Val(d))ć) takođe...
clipper.750franja,
Kako iz Clippera prikazati "slicicu" na Herkulesu (npr. PCX,
BMP) ? Sa Flipper-om 5.01 nisam uspeo.
Pozdrav
clipper.751dzoric,
>> Kakva su iskustva za ObjectDb...
Ja sam ga ucackao u jednu test aplikaciju koja radi sa velikim bazama.
Aplikacija radi na Novelu sa sarenilom od stanica. Za bilo kakav rad
potrebno je 4Mb memorije minimum. Usporenje je prilicno u odnosu na
Novelov TTS. Zaista ima lepih stvari ali opterecuje Clipper do krajnjih
granica. Njegov demo deluje OK ali kad se napadaju velike baze sa vise
mesta pocinje dopisni sah na slabijim masinama. Kombinacija sa kojom sam
radio je ObjectDb + Comix + Funcky + Blinker. Lib ima nekih sitnih bagova
(ver 1.1b), ne znam sta je popravljeno u 1.1d nema dokumentacije.
Mislim ipak da je ObjectDb suvise zahtavan i da treba koristitirucni rad
za provere integriteta i Novelov TTS.
__Dejan__
clipper.752mdrazic,
>>>> mm := aScan(a,,, šđaValđ aValŠ1Ć == Val(d)ć)
>>
>> Ovo promeni u čisto =
nije bitno za numerike
> SET DECIMALS TO 0 ništa ne menja
Pazite dobro: Clipper interno čuva numerike u IEEE floating point formatu
koji zauzima 10 bajtova. SVI brojevi su u tom formatu. SET DECIMALS
samo utiče sa koliko decimala će broj biti prikazan na dotičnom uređaju,
a ne na format u kome se pamti i/ili tačnost računa.
Iz računarstva, a posebno numeričke analize je poznato da je poređenje
realnih (floating point) brojeva vrlo škakljiva stvar zbog neminovnih
grešaka zaokruživanja/konverzije na poslednjim bitovima. Te poslednje
bitove najčešće i ne vidimo, ali se pri poređenju i te kako uzimaju u
obzir.
Zato za poređenje brojeva ne bi bilo loše koristiti recimo funkciju
function Jednaki( nPrvi, nDrugi, nPrec )
return ( abs( nPrvi - nDrugi ) <= nPrec )
gde nje nPrec neka tolerantna preciznost ( 1E-10 recimo ) sa kojom
porediš brojeve. Još bolje je da nPrec bude static u funkciji (sa
mogućnošću eventualne promene) da ga ne bi svaki čas prenosili preko
argument liste.
Ne garantujem da će ovo rešiti ovaj konkretan problem, ali je potrebno
ovo imati na umu pri radu sa floating point brojevima.
Milan
clipper.753cnenad,
=> Kako iz Clippera prikazati "slicicu" na Herkulesu (npr. PCX,
=> BMP) ? Sa Flipper-om 5.01 nisam uspeo.
Kad smo već kod prikaza (BMP/PCX) i ostalo, čini mi se da ovde postoji
problem pouzdane detekcije video karte od strane programa ili možda grešim.
Najsmešnija stvar koju sam video je MONTYPE() funkcija iz Funcky biblioteke
koja navodno uspešno vraća kao rezultat TIP monitora - da li je crno beli
ili kolor ? Kako to, valjda samo dLesko CO zna !
clipper.754d.petrovic,
> Ne garantujem da će ovo rešiti ovaj konkretan problem, ali je
> potrebno ovo imati na umu pri radu sa floating point brojevima.
Red je da objasnim:
Odavno je u programima modifikovana Nenadova funkcija nInkey(). Kad je
Već ona tu došlo je na red puno stvari da prođe kroz nju pa i zamena za
SET KEY n TO <n>
To mi je trebalo da bi funkcija mogla da mi vrati prethodno setovani
taster. Znači :
1. nSetKey(K_F1, šđa, b, c, dđ Help(a, b, c, d)ć)
2. Pera := nSetKey(K_F1, šđa, bđ Test(a, b)ć)
3. nSetKey(K_F1)
4. nSetKey(K_F1, Pera)
U liniji je dodeljena funkcija
U liniji dva je promenjena funkcija
U liniji tri je izbrisano
U liniji četiri je isto kao u liniji jedan
Daaavno sam to uradio, nedavno sam počeo da sređujem stare funkcije i
radim nešto novo (/ES2) i priupitao se, zašto sam to tada uradio sa:
FOR ... NEXT
Funkcija Abs() nije dolazila u obzir zbog tastera koji su < 0
Funkcija Int() me je razočarala :((((
Jasno je meni tvoje objašnejnje, ali kako objašnjavaš da :
aScan() sa "=" ne prolazi, a FOR ... NEXT prolazi i sa apsolutnim poređenjem.
Zona sumraka :((((
clipper.755d.petrovic,
> Ovaj smo sistem projektovali davno, ali tek pre desetak dana je
> bila potrebna promena kodne strane (YUSCII->852) za LX300. Sve
> je izvedeno
Šta radite za 855 ? Mislim na slova: LJ NJ Dč zbog dužine linije ?
clipper.756ndragan,
/ Pretpostavljam da niko od mene ne moze ocekivati da izlozim javnosti
/ nekih 700k asm sorsa PC Guard-a u koji je ulozeno hiljade sati rada i
Jeste li se to vas dvojica dogovorili za šlagvort?
clipper.757bulaja,
**** new file ****
MSDOS - R:\CLIPPER
----------------------
nflib305 zip 162299 NanForum Toolkit v3.05: Clipper biblioteka (lib/ng)
nfsrc305 zip 310769 NanForum Toolkit v3.05: Clipper biblioteka (source)
2 file(s) 462 kb
What's new in release 3.05
===========================================================================
1. All patches from the previous release have been incorporated.
2. The FTTEXT module is now compatible with protected mode and is once
again included in the Toolkit. This is the module with the text file
processing functions like FT_FUse(), FT_FAppend(), and so on.
3. FT_FlopTst() has been rewritten in Clipper and is thus compatible
with protected mode, so it too is once again included.
4. FT_OnTick() and FT_OnIdle() contain bug fixes for problems that
could have or did cause eval stack exhaustion.
5. FT_Descend() is included as a replacement for Clipper's buggy
Descend() function.
6. All C code was compiled with Microsoft C 8.00c instead of 5.10. This
necessitated some minor changes to certain C functions to eliminate
compiler warnings. In addition, the use of version 8.00c allows for
the use of in-line assembly language in C functions.
7. FT_IAmIdle() has been fixed; previously it would return .F. in call
cases instead of returning .T. when the call succeeded.
clipper.758bceklic,
> / Pretpostavljam da niko od mene ne moze ocekivati da izlozim
> javnosti / nekih 700k asm sorsa PC Guard-a u koji je ulozeno
> hiljade sati rada i
>
> Jeste li se to vas dvojica dogovorili za slagvort?
Nisam bas siguran sta si hteo da kazes ali mi se cini da si pogresio.
clipper.759ikordic,
RE: Mono/kolor detekcija
=> koja navodno uspešno vraća kao rezultat TIP monitora - da li je crno beli
=> ili kolor ? Kako to, valjda samo dLesko CO zna !
Teorecki, prosto. Ako preskočimo očigledna rešenja (aktivan video mod) koja
rade za CO80 i MONO, npr., ima i trik kojim se razlikuju mono i kolor VGA
monitori. Radi se o jednom pinu (mislim da je 11.) na VGA konektoru koji je
u slučaju mono-monitora vezan na masu. Petljanjem po portovima je tako
moguće ustanoviti o kakvom se monitoru radi. Trik primenjuje i MSD i još par
diag programa.
clipper.760bulaja,
│Već ona tu došlo je na red puno stvari da prođe kroz nju pa i zamena
│za SET KEY n TO <n> To mi je trebalo da bi funkcija mogla da mi vrati
│prethodno setovani taster.
└───
Samo za tebe, tip of the day: O:)
bSaveKey := SetKey (nKey) // sačuvaš stanje SET KEY
SetKey (nKey, {|| Test() }) // postaviš neki drugi key handler
SetKey (nKey, NIL) // nema vise nikakvog key handlera :)
SetKey (nKey, bSaveKey) // vraćamo sačuvani
Odnosno NoRMaLno da se iz čistog Clipper-a bez dodatnih zezalica
može saznati i sačuvati trenutna vrednost za SET KEY, samo umesto
SET KEY <nKey> TO <xbHandler> treba korititi funkcijski oblik
SetKey(<nKey>, <bHandler>).
clipper.761d.petrovic,
> Odnosno NoRMaLno da se iz čistog Clipper-a bez dodatnih
> zezalica može saznati i sačuvati trenutna vrednost za SET KEY,
> samo umesto SET KEY <nKey> TO <xbHandler> treba korititi
> funkcijski oblik SetKey(<nKey>, <bHandler>).
Jesi primetio da jako liči na nju ? ;))))
Izvodio sam ja tu još neke egzibicije, najzad sam se izlečio od mazohizma,
sada me samo još strašno nervira što me aScan *ara :(((
P.S. Kako da prenesem inače više od tri parametra ?
clipper.762d.petrovic,
Imao sam negde (u nekoj knjizi) i sad ne mogu da nađem :(
Kako se razlikuju (prvi BAJT- (ovi)) DBF fajlovi:
dBase
CLIPPER S87
CLIPPER 5.xx (za ovaj znam da je prvi bajt 03 ili 83 h)
clipper.763goxx,
ASCAN:
pogledaj redosled parametara funkcije ASCAN().
Goran
clipper.764mdrazic,
>> bila potrebna promena kodne strane (YUSCII->852) za LX300. Sve
> Šta radite za 855 ? Mislim na slova: LJ NJ Dč zbog dužine linije ?
Za sada ništa:) Ali baš razmišljamo kako bi se to moglo rešiti.
Problem je jedino sa tim dvoslovnim kombinacijama. Ako zanemarimo
problem smislenosti prevoda (konjunkcija, nadživeti), elegantno
rešenje bi bilo da prilikom svakog takvog skraćenja (prednost u
odnosu na produžavanje!) pamtiš koliko si 'progutao' pa to nadoknadiš
blankovima prilikom prve pojave znaka koji nije slovo (blanko,
grafički karakter, tab,...). Za ovo nije dovoljan glupi bajt-bajt
prevodilac, ali ipak je dovoljno prosto.
Milan
clipper.765anenad,
Kome treba CAS driver??????
clipper.766nbatocanin,
> Moj je ipak PC Guard (tm).. ;)
Nisam ni ja 100% siguran za naziv, opisan je u nekoj knjizi o
zaštitama koju sam jednom čitao.
clipper.767jolicm,
Da li neko ima rutine za rad sa COM portovima, ascii slanje i primanje ?
Ako postoje u nekoj većoj biblioteci, napišite u kojoj, ako su manje pošaljite
ovde ili na mail. Prilično mi je hitno. :)
clipper.768stosic,
> Da li neko ima rutine za rad sa COM portovima, ascii slanje i primanje ?
> Ako postoje u nekoj vecoj biblioteci, napisite u kojoj, ako su manje
Postoje, u mnogim bibliotekama:Telepathy,CA-Clipper Tools,SilverClip,Funcky,...
U krajnjem slucaju moze da posluzi i ovo:
-----------------------------------------
#include "extend.h"
#include <bios.h>
int com_port = 0;
CLIPPER ini_com()
//_parni(1) = Com_port
{
unsigned data;
com_port = _parni(1);
data = (_COM_CHR8|_COM_STOP1|_COM_NOPARITY|_COM_9600);
_bios_serialcom(_COM_INIT, com_port, data);
_ret();
}
CLIPPER out_com()
//_parc(1) = cTxt
{
char *s = _parc(1);
while (*s) send_com(*s++);
_ret();
}
int send_com(int ch)
{
unsigned status;
status = 0x2000 & _bios_serialcom(_COM_STATUS, com_port, 0);
while (status != 0x2000)
{
status = 0x2000 & _bios_serialcom(_COM_STATUS, com_port, 0);
}
_bios_serialcom(_COM_SEND, com_port, ch);
if ((status & 0x8000) == 0x8000)
return (0);
else
return (1);
}
CLIPPER get_com()
{
char rec[1];
rec[1] = '\x0';
rec[0] = receive();
_retc(rec);
}
int receive()
{
int ch;
unsigned status;
status = 0x100 & _bios_serialcom(_COM_STATUS, com_port, 0);
if (status == 0x100)
{
ch = 0xff & _bios_serialcom(_COM_RECEIVE, com_port, 0);
}
return (ch);
}
-----------------------------------------
clipper.769dr.grba,
>> Da li neko ima rutine za rad sa COM portovima, ascii slanje i primanje ?
>> Ako postoje u nekoj većoj biblioteci, napišite u kojoj, ako su manje
>> pošaljite ovde ili na mail. Prilično mi je hitno. :)
Odavno sam ti dao SilverClip...
clipper.770stanic,
Ja nađoh u Booth & Lief-Mrežno programiranje sledeće:
(brojevi su dekadni)
02 - dBase II
03 - dBase III
131 - .DBF + .DBT (83h)
139 - dBase IV + memo
245 - Fox Pro .DBF + memo
žini mi se da Clipper pravi standardni dBase III header tako da se ne može
na osnovu toga zaključiti sa čime je kreirana dotična baza.
CU, Milan.
clipper.771d.petrovic,
Jel neko razmišlja šta ćemo posle 31.12.1999 ?
Kako se Clipper (a i ostalo na ovim makinama) snalazi sa datumima ?
Konkretno mislim na dormate datuma koje masovno koristimo (dd.mm.gg),
a koji i stoje u bazu (mm/dd/gg/), kako će ih Clipper indeksirati,
prikazati potrebnim redosledom, i kako ćemo 18.01.00 godine unositi neki
datum rođenja od "prošle" godine ?
Valjda bi trebalo program koji sada pišem da "ume" da radi i kroz 5 godina.
clipper.772d.petrovic,
> žini mi se da Clipper pravi standardni dBase III header tako da
> se ne može na osnovu toga zaključiti sa čime je kreirana
> dotična baza.
Jock !
Empirijski provereno : dBase III, S87 i 5.2d prave tri različite baze.
clipper.774cnenad,
=> a koji i stoje u bazu (mm/dd/gg/), kako će ih Clipper indeksirati,
=> prikazati potrebnim redosledom, i kako ćemo 18.01.00 godine unositi neki
Šta je sa SET CENTURY ON ?
clipper.775cnenad,
// prethodna poruka je imala probleme na relaciji CP852 <=> CP1250 pa je
// ponavljam O:)
Blinker 3.10 ima jedan mali ali ponekad neprijatni bagić...
Recimo da u nekoj funkciji ili proceduri postoji nešto poput:
REPLACE xPOLJE WITH xVrednost, ;
xPOLJE1 WITH xVrednost1
...
Neka je dotična baza indeksirana (kod mene je SixCDX). Ako promenimo u
sorsu xVrednost(1) i stavimo nešto drugo, nakon kompajliranja dolazi
linkovanje koje je u ovom slučaju inkrementalno. Zanimljivo je da će
xVrednost ostati originalna (kao da u sorsu nije izmenjena), baza će se
indeksirati (čak i da se obriše i baza i indeks) ali sa starim
vrednostima.
Rešenje je kompletan link.
****
Kako saznati da je neki program već pokrenut tj. da se nalazi u memoriji ?
Npr. Clipper program ima DOS SHELL i ako iz dotičnog korisnik pokuša da
pozove ponovo isti program trebao bi dobiti poruku da je program već pokrenut.
Zanimljivo je da ako se nalazi pod Windows-om (ili na mreži) dobiće poruku
ali ne i pod čistim DOS-om. Ovo sam pokušao pravljenjem 'pandur datoteke'
i kontrolisanjem pristupa dotičnoj:
IF( fopen( DATOTEKA, FO_EXCLUSIVE ) == -1, Pr1(), Pr2() )
...
ili
USE BAZA EXCLUSIVE NEW
IF neterr()
...
i sve ovo pod Win-om radi (bilo da je u jednoj sesiji pokrenut program pa
u njemu DOS SHELL, pa iz njega pokušano pokretanje još jedne kopije) ili
da je u dve različite sesije pokušano pokrenuti dve kopije programa.
U čistom DOS-u ako je učitan SHARE nema šanse pokrenuti još jednu kopiju
(SHARING VIOLATION) ali kad SHARE nije učitan... program se aktivira :(.
clipper.776d.petrovic,
> Šta je sa SET CENTURY ON ?
To se i ja pitam ? Ja upišem "12.12.99" i to je 1999, a sledeće godine
će to biti 2099 ?
clipper.777feniks,
│ // prethodna poruka je imala probleme na relaciji CP852 <=> CP1250 pa je
│ // ponavljam O:)
└────────────────────
I ova poruka ti nije uspela. :(
Jel vidiš moje žŠĐĆččšđćž?
clipper.778aseovic,
> Najsmešnija stvar koju sam video je MONTYPE() funkcija iz Funcky biblioteke
> koja navodno uspešno vraća kao rezultat TIP monitora - da li je crno beli
> ili kolor ? Kako to, valjda samo dLesko CO zna !
Zna izgleda i još neko:)
Pre neki dan sam malo temeljnije prelistavao dokumentaciju
za 4DOS i između ostalog pronašao sam promenljivu %_monitor
koja radi baš to što si napisao.
Probao sam na mono VGA monitoru ECHO %_monitor i lepo mi napisa "mono".
clipper.779jolicm,
Pišem on line, pa ne mogu tačno da se setim naredbe, ali ...
Pogledaj spisak naredbi, postoji neka kao"
SET CENTURY TO 1995
Posle takve naredbe, kada se upisuje datum u formatu: "99.99.99"KKKK
ako se upiše 18.01.95, tada je YEAR()KKKK 1995, a ako se upiše
18.01.94, tada je YEAR() 2094.
E sad ne mogu tačno da se setim sintakse, da li je SET CENTURY ili je neki
parametar SET(x,y)MM funkcije.
Ako ne pronađeš, viči pa ću pogledati tačno.
Ja inače ovo koristim u svim mojim programima, i sigurno radi, samo svake
godine promenim u rutini godinu, dodam 1.
Pozdrav.
clipper.780jolicm,
Sad se izlogovah i pogledah:
Sintaksa naredbe je SET EPOCH TO <nYear>
Daklem:
Set Century off
... Get datum
read
HAko je ranije bilo SET EPOCH TO 1995
Upis: 18.01.95 Year(Datum)=1995
Upis: 18.01.00 Year(Datum)=2000
Upis: 18.01.94 Year(Datum)=2094
Meni će je sve jedno što mi programi neće raditi posle 2094 godine.
Ustvari kad napraviš program, može još 99 godina da šljaka bez greške u datumu.
clipper.781jolicm,
>> A sledeće godine će to biti 2099 ?
SET EPOCH TO 1994
95=2095
00=2000
93=2093 :)
clipper.782jolicm,
>> Set Century To 1995
Ispravka: SET EPOCH TO 1995
clipper.783mdrazic,
> Jel neko razmišlja šta ćemo posle 31.12.1999 ?
> i kako ćemo 18.01.00 godine unositi neki
> datum rođenja od "prošle" godine ?
>
> Valjda bi trebalo program koji sada pišem da "ume" da radi i kroz 5
> godina.
SET EPOCH TO 1915 ti daje još 20 godina fore :)
clipper.784anenad,
Moze li neko da mi kaze sta se desava sa CLIPPER 5.3!!!!????
Ima li ga igde bar u tragovima????
clipper.785rccomp,
Da li neko ima ispravnu datoteku SOURCE.EXE iz biblioteke
SUPER35.LIB
Pozdrav RCC
clipper.786cnenad,
=> za 4DOS i između ostalog pronašao sam promenljivu %_monitor
=> koja radi baš to što si napisao.
=>
=> Probao sam na mono VGA monitoru ECHO %_monitor i lepo mi napisa "mono".
Baš je juče dvesic kod njega to probao na mono monitoru i 4DOS 5.5 i dobio
je informaciju da koristi COLOR monitor. Prema tome ovo baš i nije pouzadno.
Po meni se najverovatnije vrši provera količine memorije na video kartici
pa ako je više od 256 Kb pretpostavlja se da je kolor monitor.
Kod mene NDOS na %_monitor i slične varijable izbacuje neke nebulozne poruke
u stilu UNKNOWN COMMAND ili sintaksu za neke komande :(((
clipper.787aseovic,
Ima li neko iskustva sa Multi Editom i Evolve?
Kakav je editor, koliko Evolve ubrzava rad i sl.
Vidim da na MUM-u ima gomila stvari za ME dok se TSE
i ne spominje.
Pozdrav,
Sele
clipper.788bulaja,
│Moze li neko da mi kaze sta se desava sa CLIPPER 5.3!!!!????
│Ima li ga igde bar u tragovima????
└───
Ovde jok (as far as I know, and I know a lot:). Izgleda da je zvanično
zaista izašao napolju, ali pošto nam je promakla zvanična objava :) (a
pravu verziju još nemam:) ne zna da li je još nešto dodatno izmenjeno u
odnosu na onu beta verziju (19.10.94) koja je prilično razočaranje (ima
korisnih novih stvari, ali očekivali sam više posle pauze od dve-tri
godine od verzije 5.2:).
clipper.789mdrazic,
> SET EPOCH TO 1994
> 95=2095
Prema dokumentaciji bi ovde trebalo 1995. Jesi li stvarno dobio 2095?
> 00=2000
> 93=2093 :)
clipper.790vitez.koja,
#=> Probao sam na mono VGA monitoru ECHO %_monitor i lepo mi
#=> napisa "mono".
Meni, takođe lepo, kaže "color". Znači, ima tu nešto...
clipper.791peacock,
#### Moze li neko da mi kaze sta se desava sa CLIPPER 5.3!!!!????
Informacija od pre 10 dana od dobavljača softvera. Vrlo brzo će
biti u prodaji. Kupite još danas 5.2, da biste dobili besplatno
5.3 (korisnicima koji su nabavili preko mene paket je obećano).
Možda će da bude ista fora kao sa CAVO, da oficijelna verzija
bude dosta skuplja od one u pretplati.
clipper.792peacock,
#### Da li neko ima ispravnu datoteku SOURCE.EXE iz biblioteke
#### SUPER35.LIB
Nema, svima je izvor isti. Uostalom, koliko se sećam, ne mogu da
se otpakuju samo zadnja dva fajla.
clipper.793rccomp,
%% Samo zadnja dva
Nazalost, nemoze se otpakovati skoro polovina!!
clipper.794aseovic,
> Baš je juče dvesic kod njega to probao na mono monitoru i 4DOS 5.5 i dobio
> je informaciju da koristi COLOR monitor. Prema tome ovo baš i nije pouzadno.
Ja sam probao na 4DOS 4.01 i radilo je.
> Po meni se najverovatnije vrši provera količine memorije na video kartici
> pa ako je više od 256 Kb pretpostavlja se da je kolor monitor.
Sumnjam, kod mene je Cirrus 5428 (1Mb ).
Pozdrav,
Sele
clipper.795bulaja,
│Informacija od pre 10 dana od dobavljača softvera. Vrlo brzo će
│biti u prodaji. Kupite još danas 5.2, da biste dobili besplatno
│5.3 (korisnicima koji su nabavili preko mene paket je obećano).
└───
Jel ovo nešto zvanično od strane CA i da li se odnosi i na
"starokupljene" (recimo prošlogodišnje, kakav je moj slučaj)
Clipper verzije 5.2, ili...? :)
clipper.796bulaja,
Stigao je DEMO za FiveWin biblioteku koja omogućava pravljanje Windows
programa u standadnom Clipper-u (nema veze sa CA-VO). Evo kratkog opisa:
ĐŠč█ FiveWin - CA-Clipper for Windows █čŠĐ
386 required & Windows 3.1 and above.
Create the most powerfull bussiness apps
using your CA-Clipper compiler and FiveWin.
100% xBase and OOPS. Extremelly easy to use.
Version totally functional.
Pošto je demo poveći (1.9 Mb), ako je neko zainteresovan nek javi,
da ne šaljem džabe :).
clipper.797nbatocanin,
> Ima li neko iskustva sa Multi Editom i Evolve?
Ja sam ga umereno koristio (demo verziju), za potrebe prikaza u
Računarima. Vrhunski editor, sasvim sigurno spada u nekoliko
najboljih.
clipper.798rccomp,
Ja vec godinama, iskljucivo, koristim Multi Edit, pocevsi od neke 2.xx
verzije pa naovamo. Cuvena, i ovde dosta prisutna, verzija 4.0 je bila
, takodje, izvanredna. U verziji 6.0 su neke stvari promenjene, ali i ona
je u rangu Briefa. Ja, nazalost, neznam kako radi 7.0 ali mislim da ni sa
njom nema nikakvih problema.
Jedina mana Multi Edit-a je sto, jos uvek, ne zna da ide u prodavnicu
po pivo :)
clipper.799snemcev,
>> Probao sam na mono VGA monitoru ECHO %_monitor i lepo mi napisa
>> "mono".
Probaj i ja na jednom VGA mono monitoru i on mi lepo ispisao "color".
Izgleda da ipak ne zna.
clipper.800snemcev,
>> Kome treba CAS driver??????
'Ajde da ne ispadne da nikom ne treba, šalji, od viška glava ne boli... :)
clipper.801velicko,
>+ promenjene, ali i ona je u rangu Briefa. Ja, nazalost, neznam
Jel može neko ko je koristio Brief da mi kaže koje su
prednosti Multi edita.
Koristim Brief ver. 3.1, jel izašlo nešto novo?
velicko
clipper.802peacock,
#### Jel ovo nešto zvanično od strane CA i da li se odnosi i na
Verovatno čiste stokove. Ovo se odnosi na one koji se odluče da
kupe Clipper 5.2 sada.
clipper.803nbatocanin,
> Jel može neko ko je koristio Brief da mi kaže koje su
> prednosti Multi edita.
ME je noviji proizvod u odnosu na BRIEF: ima dosta opcija koje ima i
BRIEF, ali su tehnički bolje urađene. Mada, teško je u toj klasi
dodati nešto što već ne postoji: poboljšanja se svode uglavnom na
tehnička doterivanja.
> Koristim Brief ver. 3.1, jel izašlo nešto novo?
Jedino Borlandova revizija, ali i to je BRIEF 3.1.
clipper.804petrovics,
Molio bih nekog da mi pomogne da resim ovaj problem.
Stvar je vrlo HITNA!
Naime problem je u tome sto jedan deo aplikacije na kojoj radim
lepo radi na mreznom disku ali ne i na lokalnom i to sa iste
radne stanice. Problem je u nemogucnosti da se otvori potreban
broj datoteka u slucaju da aplikacija radi na lokalnom disku.
Inace potrebno je da se otvori 19 DBF i 57 NTX fajlova.
Trenutno mi je u CONFIG.SYS stavljeno FILES=110 i u AUTOEXEC.BAT:
clipper=//f:100 //swappath:'c:\tmp' //temppath:'c:\tmp'
Probao sam i jos neke kombinacije ali nije uspelo.
Ako je bitno napominjem i da mi u SHELL.CFG stoji:
FILE HANDLES=110
Unapred hvala!
clipper.805stanic,
Probaj Blinker. Kod njega imaš mogućnost da prilikom linkovanja
navedeš broj hendlova koji ti je potreban. Nešto poput:
BLINKER EXECUTABLE CLIPPER Fxxx
===== ovde navedeš potreban broj
Nisam siguran, ali možda bi to moglo biti rešenje.
CU, Milan.
clipper.806d.petrovic,
> Trenutno mi je u CONFIG.SYS stavljeno FILES=110 i u
> AUTOEXEC.BAT: clipper=//f:100 //swappath:'c:Đtmp'
> //temppath:'c:Đtmp'
Nije mi poznata ova sintaksa, kod mene stoji (iz mlađih dana, RTLINK)
SET CLIPPER= F70;R300
Ali to sad možeš da ubaciš u MyApp.Lnk (za BLINKER)
# Burn in your own Clipper variables here eg: F25;SWAPPATHC:Đ;
#
BLINKER EXECUTABLE CLIPPER F100;SWAPPATHC:ĐTMPĐ;TEMPPATHC:ĐTMPĐ;
clipper.807dvesic,
>> Jel može neko ko je koristio Brief da mi kaže koje su
>> prednosti Multi edita.
Kako MultiEdit stoji sa UNDO operacijama ? Brief je
neprevaziđen po tom pitanju ...
clipper.808jolicm,
>> SET EPOCH TO 1994
>> 95=2095
> Prema dokumentaciji bi ovde trebalo 1995. Jesi li stvarno dobio 2095?
Ma štamparska greška, pošto imam VALIKU manu da još nisam krenuo sa SORom i sve
pišem on line, a na 1 i 2 su blizu na tastaturi.
Daklem:
SET EPOCH TO 1994
95=1995
94=2094
00=2000
96=1996
......... :)
clipper.809jolicm,
>>CLIPPER=//F100
Ako si ovako napisao u autoexec, verovatno je to greška
Probaj SET CLIPPER=F:100
Inače ako ne rešiš problem, proveri TAžNO na kom otvaranju ti je program
pukao, prebroj posle greške, sve što je pootvarao do tada i javi tačan broj DBF
i NTX datoteka.
Problem je sigurno u setovanju, pošto ti na serveru radi.
clipper.810stosic,
> Stigao je DEMO za FiveWin biblioteku koja omogucava pravljanje Windows
> programa u standadnom Clipper-u
Radi se, zapravo, o evaluation copy verziji. Moze da se radi, ako vam
ne smeta cesto pojavljivanje dijaloga za registraciju. Primera ima mnogo,
od trivijalnih do nezavrsenih. Uz paket je dat i kompletan sors. To vam
omogucava da ucestvujete u razvoju IDE-a i tako se vezbate :) - savet
autora FW. Za ozbiljniji rad potreban je dodatni alat za kreiranje i
editovanje windows resursa.
U FiveWin.lib-u se nalazi biblioteka za OOP koja je upotrebljiva i u
DOS-u! OOP biblioteku kreirajte od modula: OPSTPCRE, OPSTPEJE, OPSTPERR,
OPSTPINF i XSEND.
Mail primer:
#include "objects.ch"
PROC main()
LOCAL oTest
oTest := Test():New(5)
oTest:Print()
RETURN
CREATE CLASS Test
HIDDEN:
VAR nValue
EXPORT:
METHOD New( nValue ) CONSTRUCTOR
METHOD Print()
ENDCLASS
METHOD New( nValue ) CLASS Test
::nValue := nValue
RETURN NIL
METHOD Print() CLASS Test
? ::nValue
RETURN NIL
clipper.811petrovics,
>> Probaj Blinker. Kod njega imas mogucnost da prilikom linkovanja
>> navedes broj hendlova koji ti je potreban. Nesto poput:
>> BLINKER EXECUTABLE CLIPPER Fxxx
To sam odmah probao i nije pomoglo. Ipak, hvala na savetu :)!
Problem jos uvek nije resen pa molim za nove savete.
GORI MI POD NOGAMA!
clipper.812petrovics,
>> > Trenutno mi je u CONFIG.SYS stavljeno FILES=110 i u
>> > AUTOEXEC.BAT: clipper=//f:100 //swappath:'c:Dtmp'
>> > //temppath:'c:Dtmp'
>>
>> Nije mi poznata ova sintaksa, kod mene stoji (iz mladih dana, RTLINK)
>> SET CLIPPER= F70;R300
Ovakvu sintaksu sam video u NG-u za Clipper 5.2 i do sada mi je
uvek lepo radilo. Doduse ranije nisam imao potrebe za otvaranjem
ovolikog broja datoteka.
Probao sam i ovo sto si mi ti savetovao i nije pomoglo :(.
clipper.813petrovics,
>> >> CLIPPER=//F100
>> Ako si ovako napisao u autoexec, verovatno je to greska
>> Probaj SET CLIPPER=F:100
Kao sto rekoh, ovo sam video u NG-u i do sada mi je radilo.
Probao sam i ovo sto predlazes i nije uspelo.
>> Inace ako ne resis problem, proveri TACNO na kom otvaranju ti je program
>> pukao, prebroj posle greske, sve sto je pootvarao do tada i javi tacan
>> broj DBF i NTX datoteka.
Problem je jos uvek aktuelan i vec polako padam u frku :(.
Program sam startovao iz CLD-a i kada je "pukao" video sam da je
otvoreno 16 DBF datoteka, sto odgovara situaciji u sorsu.
Koliko znam iz CLD-a ne moze da se dobije podatak o broju
otvorenih NTX-ova. Po sorsu znam da je u pitanju 47 NTX
datoteka. Program je pukao kada je pokusao da otvori 17. DBF
datoteku i njenih 4 NTX-ova. Inace, ova datoteka, posle pucanja,
nije bila otvorena.
Clipper je prijavio sledecu gresku:
Error DMCMD/2001 Workarea not in use: ORDLISTADD
Pojma nemam sta znaci ovo ORDLISTADD.
>> Problem je sigurno u setovanju, posto ti na serveru radi.
I ja pretpostavljam da je problem u setovanju, ali kom !?
Naime, ako isti program radi na mreznom disku a ne i na lokalnom
pretpostavljam da nije problem u SET CLIPPER ili u parametrima
sa kojima je preveden/linkovan (blinkovan !?) ili mozda gresim ?
Braco pomagajte !
clipper.814petrovics,
U pokusaju da resim svoj, ranije opisani, problem pokusao sam da
program kompajliram i linkujem na lokalnom disku.
Startovao sam RMAKE <app>.rmk i dobio poruku:
Fatal RMAKE/R3018 Dependency does not exist: '<obj1>.OBJ,'
Poruka se odnosila na red .RMK datoteke u kome je pisalo nesto poput:
<app>.exe : <obj1>.obj, <obj2>.obj, ...
blinker @<app>.lnk
Ispostavilo se da RMAKE-u na lokalnom disku smetaju zarezi (,) kojima
sam odvajao .OBJ fajlove u uslovu za pravljenje EXE-a.
Na mreznom disku zarezi uopste ne smetaju.
clipper.815petrovics,
>> Naime problem je u tome sto jedan deo aplikacije na kojoj radim
>> lepo radi na mreznom disku ali ne i na lokalnom i to sa iste
>> radne stanice. Problem je u nemogucnosti da se otvori potreban
Stvar je najzad sredjena!
Problem je bio u programu SHARE koji se poziva iz AUTOEXEC.BAT.
Naime, problemi nestaju kada se SHARE zameni sa SHARE /F:3072.
Zahvaljujem se svima koji su mi VEOMA BRZO priskocili u pomoc da
resim ovaj problem.
clipper.816nbatocanin,
> Trenutno mi je u CONFIG.SYS stavljeno FILES=110 i u
> AUTOEXEC.BAT: clipper=//f:100 //swappath:'c:\tmp'
> //temppath:'c:\tmp'
Garant nešto prosto grešiš. Prebroj koliko imaš stvarno hendlova na
_početku_ programa.
clipper.817nbatocanin,
>>> Jel može neko ko je koristio Brief da mi kaže koje su
>>> prednosti Multi edita.
>
> Kako MultiEdit stoji sa UNDO operacijama ? Brief je
> neprevaziđen po tom pitanju ...
Ima isti Undo/Redo sistem. Rekao bih da je svaki profesionalni editor bez
takvog sistema unapred zastareo...
clipper.818mileusna,
>> Error DMCMD/2001 Workarea not in use: ORDLISTADD
>> Pojma nemam sta znaci ovo ORDLISTADD.
ORDLISTADD je funkcija clippera, kao i sve druge. Koristiš je
svakodnevno, mada je ne vidiš. ;) Naime, SET INDEX komanda, kao i
kombinacije USE ... INDEX koriste ORDLISTADD funkciju, tj. Clipper te
komande, već pri prekompajliranju zameni odgovarajućom kombinacijom
funkcija, među kojima je obavezno i ORDLISTADD(). Inače, u NG-u ne nalazi se na
spisku standardnih funkcija (Language/Functions), ali je možeš naći u
Language/Drivers.
P.S. Ovde je sad sledila neka moja filozofija, u čemu je možda tvoj problem,
ali pošto sam video da si rešio problem, izbrisao sam je. :)
clipper.819d.petrovic,
> Na mreznom disku zarezi uopste ne smetaju.
VLM ili NETX ?
clipper.820snemcev,
>> Molio bih nekog da mi pomogne da resim ovaj problem.
>> ...
>> Inace potrebno je da se otvori 19 DBF i 57 NTX fajlova.
Dobronameran savet: pređi na SIx, Comix ili bilo šta drugo, samo ostavi
ntx iza sebe. Gomilu stvari ćeš lakše uraditi, umesto 57 imaćeš max. 19
indexnih datoteka (ježim se od programa koji imaju 5-10 indekasa (koja
množina :) po .dbf datoteci), a da ne pričam o ubrzanjima u radu sa
indeksima.
clipper.821ikordic,
RE: MONO/COLOR VGA
=> Baš je juče dvesic kod njega to probao na mono monitoru i 4DOS 5.5 i
=> dobio je informaciju da koristi COLOR monitor. Prema tome ovo baš i nije
=> pouzadno. Po meni se najverovatnije vrši provera količine memorije na
=> video kartici pa ako je više od 256 Kb pretpostavlja se da je kolor
=> monitor.
Napisah već jednom, možda se poruka zagubila... ako je pin 11 VGA konektora
spojen na masu, što je praksa kod većine mono VGA monitora, onda VGA kartica
"zna" da je u pitanju mono monitor. Očitavanjem nekog porta, ne znam sada
kog, se taj podatak može dobiti. Ako kod monitora nije izveden pomenuti
trik, onda je nemoguće detektovati obojenos' displeja. Trik sa količinom
memorije je bezveze, i 64 K EGA radi na kolor monitorima :)
clipper.822rmarjan,
U konferenciji FOX nasao sam podatak o COMET-MP biblioteci za rad sa modemom
iz Fox, Clipper-a itd.. Posto se pominje i Clipper, da li neko zna nesto o
tome ili nedaj boze ima tako stogod na uvid.
Prema onome sto sam procitao, i ne izgleda lose, mada je demo-verzija. Mozda
se moze nabaviti i registrovati? Poruka u vezi ove biblioteke je u Fox
konferenciji 14.43
Boris
clipper.823vgenije,
HI
Cim sam poceo da se bavim(uslovno receno) clipperom zasmetalo mi je sto
nema integrisano okruzenje.Ja sam sklepao neko programce koje daje
clipperu slicno ID kao i kod pascala.Ima li svrhe da saljem to ovde(dali
je neko pre mene to uradio?
clipper.824jolicm,
Šalji nego šta. Koliko je meni poznato, niko nije to uradio do sada. Clipperaši
DA LI GREŠIM ???
clipper.825vgenije,
> Salji nego sta. Koliko je meni poznato, niko nije to uradio do
Opet napominjem da je to samo probni ID i da ima puno toga jos da se
radi pa ne zamerite..
id.zipclipper.826nbatocanin,
> Cim sam poceo da se bavim(uslovno receno) clipperom
> zasmetalo mi je sto nema integrisano okruzenje.Ja sam
> sklepao neko programce koje daje clipperu slicno ID kao i
> kod pascala.Ima li svrhe da saljem to ovde(dali je neko
> pre mene to uradio?
Svakako je interesantno pogledati. Međutim, postoji dosta
komercijalnih razvojnih okruženja za Clipper: dClip, DBSee, ...
I Clipper 5.3 će imati takvo okruženje.
clipper.827pyramid,
>> SET EPOCH TO 1994
>> 95=2095
Sa malo zakasnjenja:
Ja koristim:
SET EPOCH TO YEAR(DATE())-70
Izgleda mi beskonacno, mada nisam nesto posebno proveravao.
Ono '-70' zavisi od vrste datuma (datum rodjenja, datum fakture, ...)
koje koristi vas projekat.
Pozdrav, PYRAMID.
clipper.828aseovic,
> U konferenciji FOX nasao sam podatak o COMET-MP biblioteci za rad sa modemom
> iz Fox, Clipper-a itd.. Posto se pominje i Clipper, da li neko zna nesto o
> tome ili nedaj boze ima tako stogod na uvid.
Stiže demo na uvid :)
Sve funkcije su podržane, samo se prilikom inicijalizacije porta
pojavljuje poruka, i port se isključuje posle 10 min.
Sele
comet.arjclipper.829cnenad,
=> I Clipper 5.3 će imati takvo okruženje.
Kakvo ? Pseudo ID ? Da kuckam pod Win-om pa da mi skače kroz prozor u
podrum ? :((((
clipper.830gcurcic,
Moj ortak ima neke aplikacije rađene u Summer '87mici. Radile su fino na 4 MB,
ali kada se ponovio za još 4 MB, ni da bekne. Koristi linker Tlink, na koji ja
najviše sumnjam. Ako neko zna o čemu se radi i koristi linker koji ne pravi
probleme, pointer bi dobro došao.
clipper.831jolicm,
>> Tlink ..
>> Summer '87mici
>> +4MB, pa ne radi
>>, pointer bi dobro došao
Evo najjednostavnije rešenje, i najbolje, ako !? ...
Ako moze da dođe do clippera 5.2, nek pređe na njega i njegov rtlink.
Ukoliko misli da će imati nekih problema pri prelasku na novu verziju ...
Ja sam pri prelasku sa Somer 87 na 5.2 samo ponovo iskompajlirao nove module i
linkovao program i sve je radilo. (iskompajlirao sam sve module, ispravka
gornjeg reda, pišem on line).
Kompajliranje nije prolazilo samo kod nekih programa gde su postojale neke
male greške koje somer 87 kompajler nije primetio. Inače je sve vertikalno
kompatabilno.
Ukoliko ipak ne pređe na 5.2, nek linkuje sa plinkom pa nek javi kako je sa
njim prošlo ?
clipper.832nbatocanin,
> => I Clipper 5.3 će imati takvo okruženje.
>
> Kakvo ? Pseudo ID ? Da kuckam pod Win-om pa da mi skače
> kroz prozor u podrum ? :((((
Aha. Bar je takvo imala beta verzija.
clipper.833nbatocanin,
> Moj ortak ima neke aplikacije rađene u Summer '87mici.
> Radile su fino na 4 MB, ali kada se ponovio za još 4 MB,
> ni da bekne. Koristi linker Tlink, na koji ja najviše
> sumnjam. Ako neko zna o čemu se radi i koristi linker koji
> ne pravi probleme, pointer bi dobro došao.
Slušaj, daj malo više detalja: šta koristi od dodataka, koliki je
program, šta se dešava kad ne radi i sl. Ovo što pitaš je ravno sa
"neće Jugo da mi ide, šta mu je" ;)
clipper.834d.petrovic,
> Ukoliko ipak ne pređe na 5.2, nek linkuje sa plinkom pa nek
> javi kako je sa njim prošlo ?
Ukoliko ne pređe neka koristi blinker
clipper.835stosic,
Clipper 5.3 se pojavljuje u prodavnicama za par dana.
... We provide a copy of LightLib Graphics in the package, along with
Comix and FlexFile RDDs and a real-mode version of Blinker, and Exospace
for protected mode. A Windows-based IDE is also included...
clipper.836mdrazic,
>> Moj ortak ima neke aplikacije rađene u Summer '87mici.
>> Radile su fino na 4 MB, ali kada se ponovio za još 4 MB,
>> ni da bekne. Koristi linker Tlink, na koji ja najviše
Možda je problem u nedostatku 'donje' memorije. Naime, kada se
aplikacija diže i ako ima expanded memorije, u donjih 640K se
za pristup istoj odvoji izvesan prostor srazmeran veličini
expanded memorije. Kako si povećao expanded sa 4 na 8MB, to
'dole' više prostora treba. Probaj set clipper=e4096 što bi
trebalo da situaciju vrati na staro, a možeš i e1000 ili čak
e0 kada se dobija najviše donje memorije, pa ako je tesno sa
memorijom (velika aplikacija) ovo može i da ubrza izvršavanje
(paradoksalno, ali je tako).
> "neće Jugo da mi ide, šta mu je" ;)
čena vozila? ;)
Milan
clipper.837nikola.p,
Pozdrav svim CLIPPER-asima
Procitao sam pre neki dan poruku u vezi IDE za clipper i komentar da tako
neceg kod nas nema. Jedan moj prijatelj je napravio po njegovim recima sistem
za
vizuelno programiranje po ugledu na VB. Program za knjigovostvo je sa ranijih
18000 linija sorsa spao na 5800 !!! ( .EXE: 520kb !!!). Vreme izrade programa
je skraceno na 20-25% od inace potrebnog, evo spiska opcija:
Integrisana razvojna okolina, interaktivno kreiranje menija,
dialoga, maski za unos, pregleda baze, izvestaja ..., recnik baze podataka
kraj problema sa indeksima (uvek 100% azurni indeksi), editor izvestaja :
tabelarni i free hand (npr. virmani i slicni obrasci), podrska velikog broja
stampaca, help sistem, instalacioni programi, kreiranje demonstracionih
verzija,
sat i/ili datum na ekranu, rad sa misem, editor boja, administracija korisnika
( za visekorisnicke aplikacije), kompresija podataka, zastita od kopiranja ...
Ako ste zainteresovano javite da posaljem demo knjigovodstvenog programa
kreiranog ovim alatom (cca. 300kb zip)
CU
clipper.838snemcev,
>> Ako ste zainteresovano javite da posaljem demo knjigovodstvenog
>> programa kreiranog ovim alatom (cca. 300kb zip)
Šalji da vidimo.
clipper.839nbatocanin,
> Ako ste zainteresovano javite da posaljem demo
> knjigovodstvenog programa kreiranog ovim alatom (cca.
> 300kb zip)
Pošalji, koga ne interesuje neće ni gledati :)
clipper.840cnenad,
Da li je ovo bag Clipper-a ili ja nešto grešim ???
FIELD polje_u_bazi_1,;
polje_u_bazi_2
STATIC FUNCTION KBP( cA )
LOCAL llV := .F., ;
lcT := 'bla_1', ;
lnC := setcursor(), ;
lcT1 := 'bla_2'
setcursor( 0 )
IF cA == 'I'
? 'ispiši_nešto'
ELSEIF cA == 'S'
IF( ( lcT == polje_u_bazi_1 ) .and. ( lcT1 == polje_u_bazi_2 ), ;
llV := .T., ) // stringovi su tačni, vrati mi .T.
IF llV := .F. // ovo se ne izvršava jer je prethodno vraćeno .T.
? 'ispiši nešto'
ENDIF
ENDIF
setcursor( lnC )
RETURN( llV ) // iako je gore preskočio ono IF llV pošto je bilo
// .T. nakon poređenja stringova sa vrednostima u
// poljima baze podataka ovde mi vraća .F.
Pogledao sam kroz dibager i stvarno, kad natrči na IF llV to ne izvršava
ali na RETURN vraća .F., a u dibageru vidim da nakon poređenja stringova
nije promenjena vrednost llV promenljive.
Zaista čudno.
clipper.841cnenad,
Lepo meni neko reče da će me skupo koštati cut'n'paste.
Provalih u čemu je štos i nije bag do Clipper-a.
Ovakve sitne gluposti prave najveće probleme. Za sada ne otkrivam šta je u
pitanju bilo.
Da vidim kliperaše sa oštrim okom O:)
clipper.842jolicm,
Probaj da u if() funkciji staviš na kraju: llV=.t.,llV=.f.)
U return naredbi probaj umesto:
RETURN(llV)
da staviš
Return llV
Možda je caka što je povratna vrednost stavljena u zagrade pa clipper (možda?)
to dodatno melje (u sebi) ??
Inače imam predlog da se u ovim slučajevima kao sad kod tebe, uz poruku okači i
primer programa koji je spreman za kompajliranje, ostalima je tada lako da ga
testiraju (primer da bude u nezavisnoj .prg datoteci)
clipper.843d.petrovic,
> IF llV := .F. // ovo se ne izvršava jer je prethodno vraćeno
> .T.
Kako je ovo kopajler progutao ? Koristiš trikove ? ;>
clipper.844bulaja,
││ IF llV := .F. // ovo se ne izvršava jer je prethodno vraćeno .T.
│└───
│Kako je ovo kopajler progutao ? Koristiš trikove ? ;>
└───
Prijem prijem....Zašto ne bi progutao? :)
":=" je inline operator dodeljivanja i potpuno je regularno (za razliku
od običnog "=") koristiti ga bilo gde u komandnoj liniji. Ovo gore je
isto kao da si napisao:
llV := .F.
IF llV
...
dakle nema razloga zašto ga kompajler ne bi progutao. Primio? :>
clipper.845cnenad,
=>> IF llV := .F. // ovo se ne izvršava jer je prethodno vraćeno
=>> .T.
=>
=> Kako je ovo kopajler progutao ? Koristiš trikove ? ;>
Pa otkud znam kako je progutao. U svakom slučaju pretohdna IF naredba je
vraćala .T. a ova je poništavala i stavljala .F. i zato sam se zbunio.
Onda odjednom kao grom iz vedra neba ugledah := umesto ==
Tebi svaka čast, oštro oko sokolovo. Dobijaš nazad diskete O:)
clipper.846d.petrovic,
> llV := .F.
> IF llV
> ...
>
> dakle nema razloga zašto ga kompajler ne bi progutao. Primio?
> :>
Kod mene još nikad nije primio ;> Nisam ni pokušao :)
clipper.847nikola.p,
Evo one demonstracije koju sam obecao. Autor (dpesic) je trenutno na
odmoru, bice tu za jedno nedelju dana tako da sve detaljnije informacije
mozete dobiti od njega.
P.S. arhivu raspakujte sa x parametrom !!!
r.arjclipper.848bulaja,
Message #10828 - CLIPPER - Clipper International
Date: 14-Jul-95 22:01
From: Raymond Pesek
To: All
Subject: Blinker 3.20 released
The patch to upgrade Blinker 3.10 to 3.20 was posted on the BlinkInc BBS
today, 804.747.7333 . The archive size is 398K and is named BLI320.ZIP .
Details follow:
BLI320EN.DOC English Blinker 3.2 Update Release Notes 95.07.04
------------ ---------------------------------------- --------
New features in Blinker 3.2
---------------------------
Borland C++
Added full protected mode support for Borland C++ 4.5x
Added full support for libraries created with TLIB 4.x.
Added protected mode support for _heapcheck, _heapfillfree and
_heapwalk.
CA-Clipper
Added full support for the release CA-Clipper 5.3.
Extender
Added source level debugger support for Soft Ice for Windows running
on a single machine using full CodeView information.
Added automatic pass up of real mode IRQs and interrupts to protected
mode under VCPI and XMS. Added /HP- to disable.
Improved protected mode floating point handling for all compilers
to not use a GPF handler.
Added extra VESA BIOS function translation.
Microsoft C/C++/FORTRAN
Added protected mode support for _heapchk, _heapset and _heapwalk.
Added protected mode support for fmalloc 'out of memory' handler.
Symantec C++
Added protected mode support for version 7.0 in BLXSCP70.LIB.
Watcom C++
Added protected mode support for version 10.0 in BLXWCC10.LIB.
General
Added creation of 16 bit OS/2 .EXE and .DLL files.
Module definition file commands can now extend over multiple lines
so to bring us in line with MS Link.
BLINKER.H and BLX286.H are now ANSI C/C++ compatible.
Changed BLINKER environment parameter checking to check for mixed
case settings as well as all lower or all upper.
Added link time check for current version of BLX libraries.
Added /DI3 switch to set an interrupt 3 just before the far jump
to the main program for debugging purposes.
Fatal error 1143 - unable to export symbol name - is now warning
error 1018 to bring us in line with MS Link.
Problems fixed in Blinker 3.2
-----------------------------
Borland C++
Fixed 1180 - Invalid communal number - error on COMDEFs which have
externals declared before them (TASM reassembly of BCC output).
CA-Clipper
Fixed protected mode problem with all undefined TPs causing
debugger to stop on every line of code.
Fixed protected mode problem with BP on non-current source module
being ignored if source module name was entered in lowercase.
Extender
Fixed problem with SPX establish / break connection.
Microsoft C/C++
Fixed problem with CodeView 5 information and CVPACK not being able
to find precompiled headers.
General
Fixed occasional 1106 not enough real memory to link error.
Assorted minor fixes.
Raymond Pesek
* 1st 2.00b #2448 * Author of SCBA Trak - look for SCBATR2?.??? on any good
BBS
--- InterEcho 1.07
* Origin: PC-OHIO Best BBS in America Cleveland OH 216-381-3320 (1:157/200)
clipper.849cnenad,
=> Subject: Blinker 3.20 released
Lepo, kad da ga očekujemo ovde, tj. na brzom SEZAM-u ?
BTW, i nisu baš neke izmene vezane za Clipper.
Drugo, pošto vidim da spominju totalnu podršku za 5.3 jel' se dotični
pojavio konačno u svetu ?
clipper.850bulaja,
│Drugo, pošto vidim da spominju totalnu podršku za 5.3 jel' se
│dotični pojavio konačno u svetu ?
└───
To je velika misterija :) - zavlače se sa konačnim izlaskom verzije 5.3
već 10 meseci, kao da su nešto revolucionarno dodali :). Ipak, ljudi iz
CA su prošle nedelje najavljivali da 5.3 upravo kreće sa isporukom, ali
još nisam video zvanični press release sa spiskom promena. Dakle pitanje
je dana kada će CA-Clipper 5.3 zaista izaći, a glavna promena u odnosu
na 5.2 će biti drastično povećanje zauzatog prostora na disku - sumnjam
da će im instalacija 5.3 stati na manje od 10 disketa :).
clipper.851stosic,
>
> ▀▀▀▀▀▀▀▀▀
> ▀▀▀▀▀▀▀▀▀▀▀▀
> ▀▀▀▀▀▀ Welcome to the
> ▀▀▀▀ Computer Associates BBS
> ▀▀▀▀ ▀▀▀▀▀▀ Software Superior by Design
> ▀▀▀▀ ▀▀▀▀▀▀▀
> ▀▀▀▀ ▀▀▀▀▀▀▀▀
> ▀▀▀▀ ▀▀▀▀ ▀▀▀▀ Copyright (C) 1984-92
> ▀▀▀ ▀▀▀▀ ▀▀▀▀ Computer Associates International, Inc.
> ▀▀▀▀▀▀▀▀▀▀▀▀
> ▀▀▀▀▀▀▀▀▀▀▀▀▀
> ▀▀▀▀ ▀▀▀▀
> ▀▀▀▀ ▀▀▀▀
> ▀▀▀▀ ▀▀▀▀
> ▀▀▀▀ ▀▀▀▀ Online 17-JUL-95 at 07:12:50 -- 7200 baud
>
>This BBS is provided by Computer Associates for the purpose of transferring
>files. No direct technical support (i.e., messages) is provided via this
>system except by prior arrangement. Please send messages to "Sysop" only if
>they relate to the operation of this BBS. Thank you, and welcome aboard!
Za zainteresovane: 516-434-1753 :))
clipper.852bulaja,
**** new file ****
MSDOS - R:\CLIPPER
----------------------
fw17ev_1 zip 551319 FiveWin v1.7d: CA-Clipper za Windows (probna verzija)
fw17ev_2 zip 491975 FiveWin v1.7d: CA-Clipper za Windows (probna verzija)
fw17ev_3 zip 569561 FiveWin v1.7d: CA-Clipper za Windows (probna verzija)
fw17ev_4 zip 287848 FiveWin v1.7d: CA-Clipper za Windows (probna verzija)
4 file(s) 1856 kb
ĐŠč█ FiveWin - CA-Clipper for Windows █čŠĐ
386 required & Windows 3.1 and above.
Create the most powerfull bussiness apps
using your CA-Clipper compiler and FiveWin.
100% xBase and OOPS. Extremelly easy to use.
Version totally functional.
clipper.853nbatocanin,
> To je velika misterija :) - zavlače se sa konačnim
> izlaskom verzije 5.3 već 10 meseci, kao da su nešto
> revolucionarno dodali :).
Ako budu želeli da uklope korisnički interfejs i rečnik kompletan baze
podataka u onu integrisanu okolinu i to u Clipper-u BEZ objekata, ne
čudi me što toliko kasne. Inače, ja sam zadovoljan i sa ovim
dodacima. Microsoft bi za tolike promene nazvao verziju 17.0 ;>
clipper.854peacock,
#### Evo one demonstracije koju sam obecao. Autor (dpesic) je
#### trenutno na
Radi li ovo nekome?
clipper.855kile,
Zna li neko kako da prikazujem monohromatske PCX slike u 640x480?
One biblioteke u r:\clipper podržavaju samo 16 i više boja :(
clipper.856cnenad,
=> fw17ev_4 zip 287848 FiveWin v1.7d: CA-Clipper za Windows (probna verzija)
Deluje veoma zanimljivo, ali šta mu znači ono 'probna verzija'. Voli da se
druži sa nama pa nas pozdravlja porukama ili je možda kao što je nekad bio
Procomm Test Drive ?
BTW, što ne zakači na SEZAM Pro, jel' tvoja centrala ne okreće telefone koji
počinju na trojku ;) ?
clipper.857petrovics,
>> > Na mreznom disku zarezi uopste ne smetaju.
>> VLM ili NETX ?
NETX
clipper.858snemcev,
Subject: Idu dani...
Ovo reče bulaja kad je ndraganu hvalio SIxRDD i MachSIx i predviđao mu
prelazak sa Fox-a na Clipper. Iako i sam radim u Clipper-u i ma koliko
želeo da ovo bude istina, još se nije ostvarilo. Poruka je u
konferencijio PC.PROR.3 tema clipper poruka 782.
Eh, da, datum poruke je 11.01.94 13:20 :)
>> │To je što se tiče .cdx indeksa _pod_kliperom_. Inače bismo mogli
>> │pričati │o totalno novim stvarima koje .cdx omogućava u foksu, gde
>> │stvari rađene │logikom seek/set relation/do while...for itd, koje su
>> │radile koliko su │radile, mogu da se zamene jednim jedinim Select ...
>> │from... into, koji │odzviždi desetak puta brže od prethodnog metoda.
>> │U foksu, naravno.
>> └───
>> E pa moracu da te razocaram :) - isto to moze i Clipper koriscenjem
>> SIxRDD drajvera i MachSIx query optimizera. Blizi se dan kada ces i
>> ti poceti da razmisljas o prelasku sa FoxPro-a na Clipper :).
clipper.859rmarjan,
Da li je neko vec uspeo da uradi nesto sa FiveWin bibliotekom?
Prilikom raspakivanja, BAS kod FiveWin.lib je prijavMjna greska a kao
rezultat ne mogu nista da uradim, mada je sve nazigled OK.
Prijavljuje grasku TWINDOW() ne moze da nadje, a to je klasa u FiveWin.LIB
Da li je samo greska u prenesenom ZIP-u ili je pogresno i lose zipovan
paket?
Pregledom sa library menagerom vidi se da postoji TWINDOW() koja je
deklarisana u FiveWin.ch ali je BLINKER prijavljuje kao "unresolved
external" (radim sa Blinkerom 3.0)
Takodje, nijedan primer se ne moze "bildovati" jer prijavljuje da su SVE
funkcije koje imaju veze sa klasama, "unresolved". PATH-ovi su podeseni OK,
sve po normalnim putanjama i propisima.
Ako neko ima ideju ili iskustva, rado bih isprobao tu "probnu" verziju...
clipper.860nikola.p,
Naravno da radi, a sto pitas ?
clipper.861velicko,
>+ prelazak sa Fox-a na Clipper. Iako i sam radim u Clipper-u i
>+ ma koliko želeo da ovo bude istina, još se nije ostvarilo.
>+ Poruka je u
Kombinacija Clipper 5.2d + Six+match + Blinker lepo radi.
Provereno kroz dva velika projekta.
velicko
clipper.862dpredovic,
Subject: Re: Izem ti kompromis...
> Comix and FlexFile RDDs and a real-mode version of Blinker, and Exospace
> for protected mode. A Windows-based IDE is also included...
Mora da su masno platili taj ehospejs, kad neće da odustanu od njega...
Baš sam merio brzinu scrolla jednog browsa u Comix3+Classy+Objectdb
varijanti: Exo - 12s, bilo koji drugi linker u bilo kojoj varijanti - 6s.
clipper.863snemcev,
Subject: Re: CA BBS
>> 7200 baud
Sve, sve, ali gde nađoše baš ovu brzinu? :)
clipper.864rmarjan,
VEOMA je interesantan FiveWin! Bez problema pravi Windows aplikacije,
mnogo jednostavnije se njime upravlja, pri cemu je sloboda rada bazama
podataka i dalje kao u klasicnom Clipper-u.
FAJLOVI IZ CLIPPER DIREKTORIJA **NISU** DOBRO ZIPOVANI!!!!!!!!!!!
Nakon raspakivanja jedino FiveWin.LIB ima pogresan CRC izracun pa se
ne moze koristiti! Treba to hitno ispraviti da ljudi ne trose novac na
telefon dzabe! Imam verziju koja je ispravna, pa ako nekom treba, neka se
se javi.
Inace, jos nisam sve primere isporbao i nisam stigao da procitam NG fajl u
celini, cini mi se da postoji neka caka za "otkljucavanje" rada biblioteke,
znaci registracija. Nakon izvesnog vremena rada, pokaze se dijalog box u
kome se govori o registraciji.
Pitanje glasi, zna li neko gde, posto i kako se moze ova biblioteka kupiti,
radije bih njome radio, nego da se patim sa za sada rogobatnim CAVO.
clipper.865rmarjan,
Bulaja, NE VALJA prvi ZIP (fw17ev_1.ZIP) !!!!
Pri raspakivanju, CRC check za FiveWin.MMMZIP je neispravan za 2 bajta! Cela
stvar NE RADI zbog toga (Linker ne prepoznaje nijedan nodul u biblioteci).
Kaci ispravnu verziju da ljudi ne trose pare na telefon dzabe!.
Pozdrav!
clipper.866peacock,
#### Naravno da radi, a sto pitas ?
Zato što javi argument error u proceduri check_cbox odmah posle
uvodnog ekrana i izbaci me napolje. I to je sve što mi
demonstrira.
clipper.867nikola.p,
Mirise mi na problem sa misem, probaj bez njega.
clipper.868snemcev,
Subject: Re: Idu dani...
>> Kombinacija Clipper 5.2d + Six+match + Blinker lepo radi.
>> Provereno kroz dva velika projekta.
Znam da radi, to i sam koristim. :)
Citirana poruka se odnosi na Rushmore optimizacije i druge blagodeti
(poput pomenutog select) koje pruža Fox, a Clipper još uvek nema.
clipper.869goranm,
Kako cobol datoteku prevesti u dbf?
clipper.870d.petrovic,
> Kako cobol datoteku prevesti u dbf?
Koliko se ja razumem cobol je tekstualni fajl pa čitaj liniju po liniju.
clipper.871rmarjan,
Da li neko zna na koji se nacin moze nabaviti REGISTROVANA verzija
biblioteke za Clipper FIVEWIN?
RAdi se o biblioteci koja omoguci da se izradi program koji je za rad
pod Windows okruzenjem. Imam verziju koja je porpuno funkcionalna osim
sto u razlicitim razmacima vremenskim u radu, izbaci ekran koji omogucava
da se proizvod registruje. Dijalog box se moze naravno zatvoriti ali to nije
verzija za dalju prodaju programa.
Veoma je dobra biblioteka i mislim da se mnogo jednostavnije moze izraditi
Windows aplikacija nego sto se to radi sa CAVO (osim toga, podrzava OOP u
porpunosti, cak i sa normalnim inheritance i izradom sopstvenih klasa).
Spreman sam da kupim od ovlascenih dilera ili nekoga ko to moze da mi
organizuje.
U NG fajlu pise i neka adresa u Budimpesti, imaju BBS, ali nisam mogao da
stupim u vezu, verovatno je tu sada nakacen fax, modem salje poruku da je
veza uspostavljena ali se nista dalje ne dessava.
Ako neko moze da mi pomogne, bio bih mu veoma zahvalan.
Boris
clipper.872zkrstic,
>> > Kako cobol datoteku prevesti u dbf?
Ostavi mejl na juzer Banex. Povremeno se javlja njegov
kum Zoki Pavlović koji je to uspeo da izvede.
>> Koliko se ja razumem cobol je tekstualni fajl pa čitaj liniju po liniju.
Ovom metodom možeš da analiziraš poeziju Ivana Cankara, al'
Cobol bazicu - malko teže O;)
Zkr
clipper.873goranm,
> ... cobol je tekstualni fajl ...
Svaki fajl se moze smatrati tekstualnim a ne samo cobol datoteka.
> ... pa citaj liniju po liniju.
Linija = ?
Mislis slog po slog ?
Hvala ti na pokusaju, ipak, nisi mi pomogao.
Moje pitanje ostaje i dalje:
Kako PRAKTICNO cobol datoteku prevesti u .dbf format ?
.
clipper.874goranm,
> ... Zoki Pavlovic je to uspeo da izvede.
To moze biti korisna informacija !!!
H Banex, banex, ...
clipper.875goranm,
> ... cobol ---> .dbf format
Reseno ! (jer Banex je verovatno na Cipru)
Cobol datoteka - izbrisati header zakljucno sa CHR(0), brojanjem
utvrditi duzinu L sloga (zakljucno sa CHR(0)).
.dbf - kreirati .dbf sa slogom duzine L tipa Character
Konverzija - otvoriti .dbf
otvoriti Cobol datoteku kao binary fajl (FOPEN)
citati (FREADSTR) slogove duzine L iz Cobol datoteke
i upisivati ih u .dbf
clipper.876mbiresev,
>> Reseno ! (jer Banex je verovatno na Cipru)
Uradi primer pa pošalji.
clipper.877jolicm,
Kako praktično kobol datoteku prevesti u .dbf format
Iskopiraš tu "kobol" datoteku na PC.
Učitaš DBASE 3+
U DBase formiraš DBF datoteku sa poljima koja TAžNO odgovaraju širinama polja u
"KOBOL" datoteci
i zatim kažeš:
APPEND FROM ?????.??? SDF
i to ti je toĆ
(Izvini na đubretu on line)
clipper.878jolicm,
Koliko je to disketa (MB)
Ako bih ja došao do toga, ni po jada, za 3-4 dana eto cake za poništenje poruka
za regidtraciju.
Ako ti neko kreće za Kikindu ...
clipper.879jolicm,
Pošalji "kobol" datoteku (ako nije tajna) ću ti napišem program za to
To ti je najjednostavnije.
Inače ja sam u prethodnoj firmi to radio na kile, ili bolje reći na tone
Sa Hanivel računara su se prenosili podaci na PC
Ako je obična datoteka sa fiksnom dužinom sloga
nema problema, nema problema u stvari nikako.
Inače ja mislim po DBase rečniku da ti je to "SDF" - standard data file.
clipper.880snemcev,
>> Ako bih ja došao do toga, ni po jada, za 3-4 dana eto cake za
>> poništenje poruka za regidtraciju.
MSDOS - R:\CLIPPER
----------------------
fw17ev_1 zip 551319 FiveWin v1.7d: CA-Clipper za Windows (probna verzija)
fw17ev_2 zip 491975 FiveWin v1.7d: CA-Clipper za Windows (probna verzija)
fw17ev_3 zip 569561 FiveWin v1.7d: CA-Clipper za Windows (probna verzija)
fw17ev_4 zip 287848 FiveWin v1.7d: CA-Clipper za Windows (probna verzija)
4 file(s) 1856 kb
Turi modem na 14,400 u machinu, pa skini sa Sezam PRO-BA, valjda ga ima
i tamo. A ako ga nema, skuvaj jednu VEEEEEEEEEEEEEEEEEEEEEEEEEELIKU
kafu, pa skidaj odavde na 2,400. A pozovi i mene (al' posle 31.) da ti
pravim društvo. :)
clipper.881velicko,
>+ Kako PRAKTICNO cobol datoteku prevesti u .dbf format ?
Zavisi koji kobol. Ja sam imao muke sa nekom varijantom
valjda beše RM Cobol-a, zato što je trpao u istu datoteku
i podatke, i indekse, i ko zna šta sve još, a posle to
nekako kompresovao. Neznam dali je to autor tog programa
radio, ili taj kobol ima takav format datoteka.
Uglavnom, talaškaš po datoteci, pa pišeš specifično
programče. Još je lakše ako ti možeš da počneš od
prazne datoteke, pa da dodaš nekoliko "poznatih" slogova.
velicko
clipper.882stosic,
>>> 7200 baud
>
> Sve, sve, ali gde nadose bas ovu brzinu? :)
(lose veze)
Evo i spiska nekih biblioteka (sa opisom):
BPI CA-BPI Accounting II Files
CA-TELON CA-TELON Support Files
CLIPPER CA-Clipper Support Files
DBFAST CA-dBFast support files
EASYTRV CA-EASYTRIEVE Support Files
IDMS24 CA-IDMS/PC V2.4 - Current Modules
IDMSU10 CA-IDMS Unix version 1.0
PANLCM CA-PAN/LCM Support Files
PLUS CA-ACCPAC Plus Accounting
REALIA CA-REALIA Support Files
REALIZER CA-REALIZER Support Files
SCALC CA-SuperCalc and CA-Compete! files
SPJ CA-SuperProject (All Formats)
VO CA-Visual Objects support files
clipper.883mdrazic,
> Moje pitanje ostaje i dalje:
> Kako PRAKTICNO cobol datoteku prevesti u .dbf format ?
Iz COBOLa exportuješ u nekakvom ASCII obliku, pa importiješ u DBF.
Ako nemaš COBOL softver koji bi izvršio takav (primitivan) export
(ili nekakav report) tada mora nekim editorom da se 'pravi' ASCII
od tabele na disku.
Milan
clipper.884stosic,
Za aseovic-a koji ima najbolje veze :) na MUM-u:
Area : CL-TOOL Comment : CLN - ClipperFileNet
-----------------------------------------------------------------------------
FWTIP1.ZIP 53,651 Tricks & Tips for Fivewin. Great info!. It's in
NoteBase format (see NB012.EXE in this same area)
FWTIP2.ZIP 16,154 FiveWin Tips & Tricks, 2nd edition. (Needs a NoteBase
reader)
NB012.EXE 353,685 NoteBase reader
NB013.EXE 355,234 NoteBase Reader, Release 1.3
-----------------------------------------------------------------------------
Area : CL-PATCH Comment : CLN - ClipperFileNet
-----------------------------------------------------------------------------
BLI320.ZIP 403,571 Blinker v3.10 to v3.20 Update Patch for ENGLISH
language versions ONLY !
-----------------------------------------------------------------------------
Area : CL-TOOL Comment : CLN - ClipperFileNet
-----------------------------------------------------------------------------
SV_US.ZIP 262,679 =- Sound & Vision v2.05 EVAL for Clipper -=
fully functional Evalversion of one of the
best add-on Libraries for Clipper, contains
functions for the following purposes:
SAA/CUA (Menus, Push- and Radiobuttons, List-
and Checkboxes, Spinner, ScrollBars etc.),
Mouse, Timer-Events, object oriented pro-
gramming (real Objectengine !), display
.PCX Files, .INI-File management, Window
handling, ScreenSaver, Soundblaster Support:
play and record .VOC and .WAV Files.
Audio CD-ROM Player, lots of samples.
English Documentation (.NG format). German
version available as well.
!!! Please extract with PKUNZIP SV_US -d !!!
-----------------------------------------------------------------------------
clipper.885stosic,
> Da li neko zna na koji se nacin moze nabaviti REGISTROVANA verzija
> biblioteke za Clipper FIVEWIN?
ZAC Catalog
TEL: 617.551.0860, FAX: 617.551.0857
$249
clipper.886snemcev,
Subject: Re: CA BBS
>> Evo i spiska nekih biblioteka (sa opisom):
Jel tamo free download ili...?
clipper.887whitie,
-->> Inace ja mislim po DBase recniku da ti je to "SDF" - standard data file.
Blago tebi. Ovi moji Cobol programeri su iz skole zapantili ono
COMPUTATIONAL - 3 i razbise me ko ...
Za neupucene :
77 PIC 9(3)V9 OCCURS 5 TIMES USAGE IS COMP-3.
smesta vrednost 5 brojnih podataka u 3 registra. Stvarka ti prepolovi datoteku
ali dekompresovati sa strane je _grdna_ stvar ... :-((((
Stvr se lako resi ... Cobol programom prepakujes datoteku na format koji
ti najvise godi ...
Al' sam mu dao korisan savet .... :-)
OUP.Prepoznavanje polja datoteke je zadnji problem. Pre toga treba iz zag-
lavlja procitati kljuceve ideks(ov)a. Takodje treba prepisati samo vazece
slogove a ne sve. Poznavanje DATA DIVISION-a je uslov da se datoteka
prepakuje.
clipper.888stosic,
>>> Evo i spiska nekih biblioteka (sa opisom):
>
> Jel tamo free download ili...?
Jeste, ali neregistrovani korisnici (BBS-a) nemaju pristup svim fajlovima.
clipper.889rmarjan,
Drugari PAZNJA! u vezi FiveWIN.
Arhive su sve OK sem one u kojoj je FIVEWIN.LIB gde na ovoj biblioteci
postoji CRC greska! Samim tim stvar je NEUPOTREBLJIVA. Ja sam mecku
rodio dok nisam ustanovio da je ta biblioteka u ZIP-u za dva bajta veca od
onoga sto se raspakuje kao FiveWin.LIB. Nema sanse da se bilo sta uradi
ovako.
Nabavio sam OK verziju i sada stvar radi bez problema.
Inace stvar je sjajna, ali smeta (i onemogucuje komercijalizaciju) ona
poruka za registraciju. Ako stvarno uspe skidanje, "skidac" ima od mene
VELIKU cast (kafu kuvam u velikim soljama), naravno ako mi dozvoli da to
tako obnazeno koristim.
U tuzi i zalosti, zbog nemogucnosti koristenja FiveWin, koristim Clip4Win
koja takodje pravi efektne WIN programe i sasvim lepo radi ono sto zelim
a zelim poslovne aplikacije za WIN.
Ako neko ima iskustva sa Clip4WIn ili je FiveWin razbijena, voleo bih da
se javi da malo prodiskutujemo.
ELEM - PAZNJA SA fiveWin ARHIVAMA! (osim ako nije na Sezam zakacena nova,
ispravna arhiva)
Pozdrav !
clipper.890snemcev,
Subject: Re: CA BBS
>> Jeste, ali neregistrovani korisnici (BBS-a) nemaju pristup svim
>> fajlovima.
Gde si bre modulatore? Organizuj malo spoj registovanih korisnika
Clipper-a sa ljudima koji imaju pristup CA BBS-u i eto nama veselja...
Plus nam je i to što je i file modulator kliperaš. :)
clipper.891aseovic,
> FWTIP1.ZIP 53,651 Tricks & Tips for Fivewin. Great info!. It's in
> NoteBase format (see NB012.EXE in this same area)
> FWTIP2.ZIP 16,154 FiveWin Tips & Tricks, 2nd edition. (Needs a NoteBase
> reader)
> NB012.EXE 353,685 NoteBase reader
> NB013.EXE 355,234 NoteBase Reader, Release 1.3
Dobro me podseti! Ove sam skinuo još pre nedelju dana ali sam ih potpuno
zaboravio :)
> BLI320.ZIP 403,571 Blinker v3.10 to v3.20 Update Patch for ENGLISH
> language versions ONLY !
> SV_US.ZIP 262,679 =- Sound & Vision v2.05 EVAL for Clipper -=
Skinuću danas pa šaljem
Pozdrav,
Sele
clipper.892nbatocanin,
> Gde si bre modulatore?
U prijateljskoj Grčkoj :)
clipper.894rmarjan,
Posto moderator ne regauje na NEISPRAVNU arhivu za FiveWin biblioteku, saljem
ispravnu .LIB. Drugar Toma koji mi je trazio sadrzaj CURS i jos jednog
direktorija, ne moze to da dobije jer jednostavno NEMAM takav direktorij.
Mozda postoji neka novija verzija, moja je od 13.01.95. U svakom slucaju
evo pa radite.
A ako je kolega koji je najavio razbijanje LIB, da ne prikazuje poruku o
registraciji, jos voljan za rasturanje, evo mu prilike i neka bira gde ce
da mu podignem spomenicic.
Pozdrav Boris
fwlib.zipclipper.895zkrstic,
>> Posto moderator ne regauje na NEISPRAVNU arhivu za FiveWin biblioteku,
>> saljem ispravnu .LIB. Drugar Toma koji mi je trazio sadrzaj CURS i jos
>> jednog
Fajl moderatori Bulaja i CKlap su na odmoru, tako da možemo da kukamo ;)
Elem, ako treba da ovo prebacimo na brzi Sezam vičite, obzirom da meni nije
problem. Da's bre dogovnorimo, pa ćemo lako :)
Pozdrav, Zkr :)
clipper.896cnenad,
=> Elem, ako treba da ovo prebacimo na brzi Sezam vičite, obzirom da meni
=> nije problem. Da's bre dogovnorimo, pa ćemo lako :)
ZKR, zar smeš da postavljaš tako pitanje ? JA sam već mislio kad sam video
ovu poruku da je tamo ?! Naravno, očekujem da bude i zakrpa.
Prosto je neverovatno koliko se ljudi opiru da ne iskoriste ponuđene resurse
na brzom SEZAM-u.
clipper.897mamba,
Da li neko mozda ima sifru za pre-realese clippera 5.3
(neodgovara ona za ca-visual object) moze se verovatno naci
u predhodnoj verziji koju ne posedujem a dobio sam neku novu
pozdrav
clipper.898rmarjan,
Ne znam kakvu ti to sifru trazi, ja imam neku beta verziju, gde i ne
pominje sifru. Da li ima vise tih beta (ili kako vec) verzija?
Boris
clipper.899aseovic,
>> FWTIP1.ZIP 53,651 Tricks & Tips for Fivewin. Great info!. It's in
>> FWTIP2.ZIP 16,154 FiveWin Tips & Tricks, 2nd edition. (Needs a NoteBase
>> NB013.EXE 355,234 NoteBase Reader, Release 1.3
>> BLI320.ZIP 403,571 Blinker v3.10 to v3.20 Update Patch for ENGLISH
>> SV_US.ZIP 262,679 =- Sound & Vision v2.05 EVAL for Clipper -=
>
> Skinuću danas pa šaljem
Samo da javim da je sve ovo skinuto sa MUM-a. Pored toga skinuo sam
i XSETMODE - biblioteku za promenu tekstualnih video modova iz Clippera.
Pošto je sve zajedno prilično dugačko okačiću ovde samo Sound & Vision
i XSetMode. Ostalo će sačekati da Bulaja dođe s mora.
Uz poruku: SV_US.ZIP - Sound & Vision v2.05 (English version)
Pozdrav,
Sele
sv_us.zipclipper.900aseovic,
-----------------------------------------------
XSETMODE.ZIP - Promena text modova iz Clippera
Od 40 x 12 do 132 x 60
-----------------------------------------------
xsetmode.zipclipper.901cnenad,
=>>> BLI320.ZIP 403,571 Blinker v3.10 to v3.20 Update Patch for ENGLISH
?????
A ovo, zar ovo nije najbitnije ?
=> Samo da javim da je sve ovo skinuto sa MUM-a. Pored toga skinuo sam
=> Pošto je sve zajedno prilično dugačko okačiću ovde samo Sound & Vision
Kao da ne znate da resursi brzog SEZAM-a vape da ih neko iskoristi ????
clipper.902godfather,
>> Kao da neznate da resursi brzog sezama vape da ih neko iskoristi?
"Brzi" sezam? Ja sam prinudjen da ga zovem na 1200 bps, mnogo djubreta bre!
clipper.903dpredovic,
Subject: 5.2e bug
Daklem svašta od klipete... Šta će nam virusi kad imamo njega >;)
žukam ja tako neko programče, kad eto ti ga usred kompajliranja qemmov
Protection error ... (T)erminate, (R)eboot !? OK, nema veze zaje*avao
sam se nešto sa drajverima, valjda se nešto sudara... (R)eboot... Opet
isto... Tvrdi reset... Isto... Gašenje računara... Isto... OK, ajde klot
konfiguracija... Compiling... Par znakova đubreta... Gecrkt...
Počinje panika =:( - nešto pojelo clipper.exe? virus? F-prot... Ništa...
Kompajliram neki drugi fajl - sve OK... Dobro, znači nešto je u onom sorsu,
možda je upalo neko đubre... Ali sve izgleda u redu... Šta sam ono zadnje
menjao... Seti se Mujo, seti se... AHA!
SET FILTER TO &("zauzdo>=ctod('"+dtoc(datod)+"') -> (nastavak u istoj liniji)
.AND.zauzod<=ctod('"+dtoc(datdo)+"')"
Stavim pod komentar - radi. Skinem komentar - crk!
Pogledam malo bolje - na kraju fali zagrada. I to je to... Pola sata posla
i godina života manje zbog nezatvorene zagrade...
clipper.904snemcev,
>> U prijateljskoj Grčkoj :)
Onda mu posao oko "spajanja" predstoji kad se vrati sa odmora. :)
clipper.905zkrstic,
Tema PC.PROG na SEZAM-PROBA, poruke od 7.23 na dalje,
imate FW17EV, četiri dela sa Sezama i peti deo ispravan LIB.
Prijatan DL
Zkr
clipper.906aseovic,
> A ovo, zar ovo nije najbitnije ?
Pa nije baš previše bitno :) Šalim se, i ja mislim da je najbitnije
ali ne toliko da ne može da sačeka par dana dok se Bulaja vrati sa
mora.
Što se izmena vezanih za Clipper tiče, omogućen je rad sa Clipper 5.3,
ispravljene su neke greške u debageru, i ono što mi se čini najvažnijim
ispravljena je greška koja je povremeno dovodila do poruke "Not enough
real memory to link"
> Kao da ne znate da resursi brzog SEZAM-a vape da ih neko iskoristi ????
Znam, i jedva čekam da ih iskoristim, ali mi je veza toliko loša
da bi mi bilo brže da okačim sve na 2400, a za to jednostavno nisam
imao vremena.
Pozdrav,
Sele
clipper.907cnenad,
=> ali ne toliko da ne može da sačeka par dana dok se Bulaja vrati sa
=> mora.
Nije stvar u tome, Bulaji će biti lako da ga zakači ovde, preko sistemskog
noda na 14.4 a većina koja ima isto 14.4 će ga 'svlačiti' na 2400 bespotrebno.
Naravno da 'lajem' zbog sebe... jer garantovano taj update neće biti na
novom SEZAM-u...
A i Bulaja, verujem kad je saznao za ovo ovde, nema nameru da se vraća...
clipper.908d.petrovic,
Jel probao neko NWBCAS ? Okačio ga ovde sele (sa MUM-a valjda) i to
mi sad pravi probleme:
Ako ga ubacim u program, to sasvim lepo radi. Šalješ send iz DOS-a i
sve šljaka.
Ako dodaš i FN_SMB() (Netto) i to lepo radi, t.j. šalje poruke u dos,
ali ako hoćeš da šalješ iz programa i primaš u program, e, onda neće.
Da bude još lepše, FN_SMB() vraća rezultat 0 (uspelo slanje), a poruke
nigde nema. Može još lepše, kad izađeš iz programa gomila stvari ne radi
(na primer ne mogu da startujem syscon).
Jel se mučio još neko s tim ?
clipper.909zkrstic,
>> Naravno da 'lajem' zbog sebe... jer garantovano taj update neće biti na
>> novom SEZAM-u...
Oće vala, čisto da tebe zajebem* O;)
Nema greške, kačite samo, ja ću da prebacujem obzirom da mogu i jedan i drugi
Sezam da zovem na 14.400 tako da nema greške.
Pozdrav, Zkr ( txe prenosilac - tkzv kurir Jovica )
clipper.910bulaja,
**** new file ****
MSDOS - R:\CLIPPER
----------------------
sv_us zip 262849 Sound & Vision v2.05 EVAL: Clipper biblioteka
1 file(s) 257 kb
=- Sound & Vision v2.05 EVAL for Clipper -=
fully functional Evalversion of one of the
best add-on Libraries for Clipper, contains
functions for the following purposes:
SAA/CUA (Menus, Push- and Radiobuttons, List-
and Checkboxes, Spinner, ScrollBars etc.),
Mouse, Timer-Events, object oriented pro-
gramming (real Objectengine !), display
.PCX Files, .INI-File management, Window
handling, ScreenSaver, Soundblaster Support:
play and record .VOC and .WAV Files.
Audio CD-ROM Player, lots of samples.
English Documentation (.NG format). German
version available as well.
!!! Please extract with PKUNZIP SV_US -d !!!
<Thanks to aseovic>
clipper.911bulaja,
│FAJLOVI IZ CLIPPER DIREKTORIJA **NISU** DOBRO ZIPOVANI!!!!!!!!!!!
│Nakon raspakivanja jedino FiveWin.LIB ima pogresan CRC izracun
└───
Hm, datoteke koje su kod mene su sasvim Ok, a verovatnoća da mi je
nešto puklo prilikom uploada je mala. Da li se ovo još nekome desilo?
clipper.912rmarjan,
Dobrodosao "kuci"!
Inace, sto se tice fajlova u direktorijima za DL, nije to o cemu sam
pricao jedini slucaj. Generalno bi trebalo ako za to postoje vreme i
mogucnosti (i zelja :) ), da se pregleda pre slanja na DL.
Nije nimalo svejedno mozda i u tri-cetiri seanse "vuci" nesto a onda se
ispostavi da to nije dobro spakovano (ma ko da je to radio).
U danasnjim uslovima, vala mora se stedeti na sve strane...
Pozdrav uz zelju da se dovlaci sto vise je moguce, to je za sada jedini
nacin da se dokopamo vrednijih stvari i novijih naravno.
Boris
clipper.913cnenad,
=> Oće vala, čisto da tebe zajebem* O;)
;)))
Moći ćeš samo ako ga ne bude tamo.
TNX i za FiveWin Lib i za ovo.
clipper.914nameci,
čč Hm, datoteke koje su kod mene su sasvim Ok, a verovatnoća da
čč mi je nešto puklo prilikom uploada je mala. Da li se ovo još
čč nekome desilo?
JOK :)
clipper.915godfather,
Subj: FiveWin
Izgleda da sam nasao legalan nacin kako da se u programima eliminise
pojavljivanje poruke za registraciju.
Samo da proverim pa cu da vam kazem postupak.
A.Cr.
clipper.916whitie,
-->> **** new file ****
-->> sv_us zip 262849 Sound & Vision v2.05 EVAL: Clipper biblioteka
Neznam koliko je potrebno, ali kome treba ovo je super stvar...
Iz ciste dosade sam odsimulirao mnogo hvaljeni Soft SAUND ( upotreba na
radiju, u disko klubu ... bilo u "Racunarima"). Visestrukom pobedniku na
prog. olimpijadi je trebalo 2 meseca sto sam ja odtaljao za 2 dana. Da ne
pricam da je sam program ispao mnogo bolji.
Ako vam nije mrsko da po 10-ti put ucite nove Win/Menu/Get objekte pro-
bajte OBAVEZNO i njih ...
clipper.917cnenad,
Zkr. !
Nisi upload-ovo Blinker update 3.20 na SEZAM PRO-blem ? :(
clipper.918stanic,
Da li Blinker update 3.10 iz Clipper dir-a može da zakrpi Blinker 3.00
bez update-ovanja prvo na 3.01 pa na 3.10. Ako mora gde se nalazi 3.01
update.
clipper.919zeljkoj,
> Da li Blinker update 3.10 iz Clipper dir-a može da zakrpi
> Blinker 3.00 bez update-ovanja prvo na 3.01 pa na 3.10. Ako
Ne može. :(
> mora gde se nalazi 3.01 update.
Zar ga nema na Sezamu?
clipper.920bulaja,
│Da li Blinker update 3.10 iz Clipper dir-a može da zakrpi Blinker 3.00
│bez update-ovanja prvo na 3.01 pa na 3.10. Ako mora gde se nalazi 3.01
│update.
└───
Ne može.
Blinker v3.01 patch je svojevremeno bio na Sezamu, pa je uklonjen pošto
se ispostavilo da je u pratećoj dokumentaciji zabranjeno stavljanje na
bilo koji BBS osim Blink Inc-ovog :). Međutim pošto se taj 3.01 update
može naći na svim Clipper BBS-ovima koje sam video (Hekom, Mum,...),
ponovo ću proučiti dokumentaciju i okačiti patch u public :).
clipper.921banex,
Zainteresovan sam da probam Fivewin ali zbog lose veze ne usudjejem se ni da
pocnem download. Ako je neko voljan da mi da da ga presnimim... (ako je jos u
blizini Juznog bulevara :) tel. 403-430 Zoran
clipper.922sule,
Ok...
Kao prvo, za one koji me ne znaju, ja sam jedan od autora upravo pomenutog
programa. Inače, tačan naziv sistema nije "SOFT SAUND" već "SOFT SOUND".
Na SEZAM ne zalazim previše, tek poneki put radi komunikacije sa
redakcijom PC PRESS-a a pogotovo ne u konferenciju/temu PC.PROG/clipper,
pa je na ovu uvredu bez ikakve pozadine morao da mi skrene pažnju jedan
prijatelj.
SoftSound nije samo jedan program, i nije samo softver. Povrh softvera,
ovaj sistem uključuje i specijalizovani hardver za vezu sa profesionalnom
opremom u radio stanicama, kao i posebnu zvučnu karticu za one koji
zahtevaju najbolje performanse.
Ovo je *PRVI* sistem ove vrste u zemlji, pa je za njegov razvoj utrošeno
pomenuta dva meseca da izradi prototipova i stalnim konsultacijama sa
ton majstorima i disk džokejima iz Radio Pingvina. Nije postojao nikakav
uzor i zbog toga smo morali da analiziramo mnogo varijanti i ispitujemo
efikasnost istih na delu. Ko god sada kreće da piše ovakav softver već
ima ideju kako i šta to treba da radi. Mi smo tu ideju prvi pokazali i
ostvarili još 1993. godine.
U SoftSound ulaze i programi koji nisu opisani u tekstu Zorana Modlija
objavljenom u časopisu "Računari". Takođe, u tekst su nažalost, ušli i
neki tadašnji prototipovi (snimač) umesto završenih verzija softvera. Ceo
SoftSound sistem se sastoji iz:
1. glavni reprodukcioni modul sa mogućnošću editovanja stranica,
opisa snimaka, i nadasve, jednostavnog i *BRZOG* rada, za
razliku od bilo kog programa pisanog u Clipper-u, osim ako
se ne ulinkuju glavni moduli pisani u drugim jezicima.
SoftSound je pisan u kombinaciji Pascala, C-a i asemblera.
2. snimački modul sa svim zvučnim analizama po najprofesionalnijim
standardima potrebnim za podešavanje ulaznih i izlaznih
parametara zvuka koji se snima. To uključuje VU metre,
osciloskope i merače kompresije u prvoj, a sada i spektralne
analizatore (sa kompletnom obradom u realnom vremenu,
isključivo na 16-bita, stereo, 44.1 kHz).
3. modul za rad sa fonotekom radio stanice koji predstavlja bazu
podataka, koja naravno - pogodili ste - nije pisana u clipperu
niti u bilo čemu sličnom već je database engine optimizovan
za ovakvu vrstu podataka.
4. editor dispozicija za unošenje redosleda, broja i vremena za
reprodukciju reklama i ostalog marketinškog materijala.
5. program za inteligentnu normalizaciju snimaka u vidu podešavanja
amplitude, izbacivanja tišine i prostijeg, digitalnog, čišćenja
šumova.
6. hardver potreban za vezu sa miksetom radi remote (fader) starta
i kontrole
7. po potrebi, posebna zvučna kartica (SoftSound) za
najprofesionalniji kvalitet zvuka.
8. podrška za eksterne drajvere i puštače datoteka, kao i pokretače
drugih uređaja u radio stanici.
10. proverene PC platforme. Ne mogu svi PC računari koji se nađu na
tržištu koristiti za upotrebu u ovakve svrhe iz najmanje dva
razloga: 16-bitni DMA kanali (t.j. greške u kontroleru) i
generisanje šumova.
11. celokupna podrška za mreže u slučaju da se stanica umrežava.
SoftSound uvodi i svoju kompresiju podataka, bolju od ADPCM-a, kako po
kvalitetu zvuka (matematičko 1:1 preslikavanje), tako i po kompresiji.
Kao što već rekoh, ovakav softver nikada neće biti napisan ni na clipperu
ni u Microsoft Windows grafičkom okrušenju zbog svojih nestabilnosti,
sporog rada i veličine. SoftSound je neprestano radio više od godinu
dana bez greške - tada se pokvarila zvučna kartica. Po zameni iste,
SoftSound radi više od godinu dana (sve ukupno 2.5 godine), 24 sata dnevno,
bez prestanka!
Ako je autor igračke pisane u sistemu za baze podataka još uvek spreman
na uvrede kakve je naveo, ili ako je stvarno napisao ceo softver
ekvivalentan pomenutom (i bolji) a da zadovoljava sve profesionalne
standarde i potrebe (za dva dana), neka se javi u emisiju "Modulacije 202"
koja se preko leta emituje od 16:00h do 18:15h a od septembra kreće od 15h.
Skrenuo bih pažnju i na to da je poredjenje verovatno vršeno sa ilegalnom
kopijom jednog dela softvera koji je bagovit, nezavršen i predstavlja davni
prototip. Izjave kakvu je autor "boljeg" programa ostavio u ovoj konferenciji
ne treba ostavljati bez izuzetne pozadine, pogotovo ne ako se radi o
komercijalnom programu za koji važi pomenuti ugled. Na tržištu se nalazi još
nekoliko konkurentskih sistema od kojih *JEDINO* "HD PLAYER", inače delo
Milana Ristića, pripada profesionalnoj klasi kakvoj pripada i SoftSound.
Bez ljutnje, bilo je pokušaja da se naprave bolji proizvodi, ali su i pored
ograničenog komercijalnog uspeha ipak samo programi bazirani na pukim
nagadjanjima i bez (dovoljne) profesionalne pozadine. Inače, "HD PLAYER" i
SoftSound su sada objedinjeni projekti i radi se na novoj verziji, ovog
puta zajedničkog sistema koji je namenjen ulasku na listu najboljih sistema
ove vrste u svetu. Za sada, kod nas, postoje samo dva upotrebljiva programa,
SoftSound i "HD PLAYER".
Aleksandar Šušnjar,
jedan od autora SoftSound-a
P. S. Da li imaš autorska prava za ceo razvojni sistem koji si koristio?
clipper.923zkrstic,
>> Kao prvo, za one koji me ne znaju, ja sam jedan od autora upravo pomenutog
>> programa. Inače, tačan naziv sistema nije "SOFT SAUND" već "SOFT SOUND".
>>
>> Na SEZAM ne zalazim previše, tek poneki put radi komunikacije sa
>> redakcijom PC PRESS-a a pogotovo ne u konferenciju/temu PC.PROG/clipper,
Komunikacija sa redakcijom PCPRESA se mnogo bolje/brže
obavlja telefonima redakcije. Baj d vej, šta se nas ( jadnih malih
kliperaša O;> ) uopšte tiče čime se ti ovde baviš.
>> Ako je autor igračke pisane u sistemu za baze podataka još uvek spreman
>> na uvrede kakve je naveo, ili ako je stvarno napisao ceo softver
>> ekvivalentan pomenutom (i bolji) a da zadovoljava sve profesionalne
>> standarde i potrebe (za dva dana), neka se javi u emisiju "Modulacije 202"
>> koja se preko leta emituje od 16:00h do 18:15h a od septembra kreće od 15h.
Da tebe ja kao autora, programera, čoveka pitam,
"Kolika ti je primaća soba", ako nije tajna ? Šta si see bre
primio ko zumbul u 'ladnu vodu ?
Zkr, jedan od autora izuma "Ljuljač vrata - promajodavač".
clipper.924sule,
- ako neko ima smelosti da napadne tudji projekat, mora biti spreman i da se
brani
- ne radi se ni o kakvom 'primanju' vec o tome da onakva izjava moze lose da
utice na uspeh soft sound-a ukoliko ne bude ispravljena/demantovana, a to
*jeste* vazno!
- komunikacija sa PC PRESS jeste bolja glasom/telefonom osim u slucaju da im
je potrebno poslati tekstove.
clipper.925bobland,
>> kao i posebnu zvučnu karticu za one koji
>> zahtevaju najbolje performanse.
Izvinte što se mešam. Radio M je dobio vaš, veoma profesionalno urađen
propagandni materijal sa sve cenovnicima, ali u njemu se ne pominje kartica,
koja po tvom, nadam se objektivnom, članku ima izuzetne karakteristike, mnogo
bolje od SB 16 ASP-a i AWE 32, u odnosu na namenu. Hoće li biti nešto od tog
projekta koji je za svaku pohvalu. Sad kažeš da postoji, ali je u cenovniku od
pre mesec dana nije bilo. Da li si razmišljao da doradiš Soft Sound tako da
koristi do maksimuma AWE 32, sa recimo 28 MB :), tako da se simultano puštaju
semplovi (višekanalna mašina :), pa čak da u izuzetnim prilikama posluži kao
efekt mašina. Znam da šušti, ali i ovako je prodajete uz software, pa bi moglo
da se proba, a ljudi nek je drže dalje od VGA kartice, da se manje čuje:).
BB
clipper.926bulaja,
Ima li neko sreću da prati Clipper/VO konferencije na Internet-u ili
CompuServe-u? Ako ima, ne bi bilo loše da ovde baci malo poruka, da
vidimo šta se sve priča tamo :).
clipper.927stanic,
žini mi se da ga sinoć videh na FON-u. A oće li moći skok sa 3.01 na 3.20
bez međuskoka. Ko će skidati 1,5 Mb krpeža za Blinker na 2400.
clipper.928sule,
>>> izvinjavam se zbog nemanja YU slova (opet) <<<<
Sto se tice SoftSound kartice, ona se proizvodi po porudzbini i cena joj se
odredjuje po dogovoru. AWE 32 je izuzetna kartica (testove ce te moci da
vidite u sledecem broju casopisa PC i emisiji "Modulacije 202") koja,
nazalost nema mogucnost istovremenog snimanja i reprodukcije, pa se kao
takva ne moze koristiti kao efekt masina. 28 Mb na kartici je interesantna
stvar za ljude od MIDI-ja i wave tabela, ali ne i za radio stanice. U svakom
slucaju, uz karticu se dobija software pomocu kojeg se moze iskoristiti sav
RAM na karti. Ukoliko budemo dosli do dokumentacije o svemu tome (na cemu
vrlo predano radimo) mozda se pojavi i SoftSound editor wave tabela...
pozdrav, Sule
clipper.929whitie,
Ok ... neke stvari su mi trebale biti jasne - kad se legalno kupljen
program na njihovoj masini potera pod Win-om, on ti sarkasticno poruci
" he,he... nece moci " :-< . S^am sam ovo trazio ...
Elem, kad neznas da ti kazem. Ovo sto si nabrojao se zove SoftSound System
a SoftSound je samo program za pustanje snimaka ( SOFTSND.EXE). Kako on
poziva tudj program za pustanje ( WPLAY.EXE ), on je manje i od toga. U
R104 g.Modli insistira na nazivu PINGVIN SoftSound ( PSS ), dok u upustvu
EGO Computers insistira na svom prefiksu. Ma kako ga uzeli on ne obuhvata
SoftRecorder, SoftBase, softver dobiven uz SB, javni i SW softver a ni
hardver. Nijedan od "Soft-ova" nema kopirajt, a gledajuci kripticnost ime-
na nece ga ni dobiti.
Bez obzira,
---------------------------------------------------------------------------
IZVINJAVAM se autoru kao i celom kartelu izvestaca, promotera i "spoljnih
saradnika" sto sam pogresno naveo ime njihovog programa !
---------------------------------------------------------------------------
S'obzirom da se radi o ocito nenamernoj gresci mislim da si previse
digao buku. Istovremeno se izvinjavam ostalim korisnicima Sezama sto je
moja nepromisljenost rezultirala onom EPPorukom i izjavljujem da nemam
nikakve materijalne koristi od strane firme Soft SOUND.
Nacin na koji komentarises moj program, a koga nisi ni video, me
spasava potrebe da bilo sta komentarisem ili se izvinjavam. Znas, tesko
je argumentovano diskutovati sa programerom koji u avgustu '95 odbacuje
Wind-e kao nepouzdane, misa kao nezgrapnog i nepotrebnog, fura extender
koji se ne mirise sa Win-om, ignorise graficku sredinu bez objasnjenja...
Treba li reci da na masinama koje ste instalirali, mreza radi pod W4WG i
da se tu moze naci dosta alata (opet pod Win) za pripremu i obradu zvuka.
Prosetaj malo tuda da zadas sebi smernice i referencu za poredjenje.
Verovatno znas da g.Gasic u Pingvinu priprema nadogradnju pod vizual
bejzikom ( radni naziv RadioSet - nema ga na tvom spisku ozbiljnih).
Takodje pogledaj malo datume da shvatis da je svet postojao i pre Hrista.
Moja poruka je bila hvalospev biblioteci i tu sam spreman uvek na
diskusiju. Problem je sto ti na spisku onih 25 programskih jezika nemas
Kliper pa me ne mozes pratiti a ni probati konkretnu LIB. A bas ta lib
je uzrok sto "moj" program radi na 286 i trazi < 350 Kb za startovanje
( "tvoj" trazi 386/40MHz , 4Mb + extender + aplikacija izdeljena u vise
izvrsnih programa). Bas zahvaljujuci njemu u pravu si kad kazes da sam
sklepao programcic (mali,majusni). Zamisli samo:
- Kazes CREATE WINDOW a on -> Win-lajk prozor sa menijem, strelicama,
pistama ...
- kazes CDPlay () a on sliku CD-a sa dugmicima, brojacima .. pa jos i radi!
- slicno rikoder, mixer ... sve stane u jedan red.
- kazes PlayVOC (proba.WAV) a on se raspeva...
- ne kazes nista a ekran graficki, setas prozore, menjas velicinu, postav-
ljas boje ... koristis .INI fajl za izivljavanje ... a sve pod DOS-om.
- treba li reci da je Svaba znao asembler dovoljno dobro da ne postavlja
neke hardverske zahteve ( OK, moras imati SB, bez nje ... )
Elem, biblioteke koristim jer sam uvideo da ima ljudi koji su MNOGO
bolji programeri od mene i MNOGO mi skracuju vreme i trud. Samo zahvalju-
juci tome mogu se pohvaliti sa onih, tako uvredljivih 2 dana. Bez lib-a
ja ovo ne bi napisao ni za 2 decenije. Lib je demo, a ostalo je posteno
placeno - racunajuci i Soft SOUND. Doduse za DOS, W4WG i mnoge programe
koji su od vas dobiveni sa masinama jos nisu stigle registracione kartice,
ali se ocekuju..
... cim se zavrsi genetski inzenjering ukrstanja vrbe i grozdja.
OUP.Obavestavam simpatizere da moj program nije za prodaju. B-)
K'o sto rekoh radi se o simulaciji u experimentalne svhe.
Ljubomorno cuvam svojih 400 linija programa :-)
i ostajem veran bazama podataka ...
OUP.2.Vise mu dodje kao vic - nemo da se neko prepoznao. :-)
Kako mali Perica zamislja bazu podataka.
Zna mali Perica da je u trzisnoj utakmici isplivalo sta je valjalo,
ali vec to je dovoljno da on smisli nesto svoje. Najlakse se radi sa
tekstualnim fajlom. U prvoj liniji ce biti naslov strane. Onda 2 reda
za definiciju boje teksta i pozadine ( Perice, malo je! ). Onda sledeci
red - prvo polje ( ej odvoj zaglavlje od podataka ), pa sledece polje
u sledeci red ( vidi ovo, nema ogranicenja u sirini i sadrzaju polja,
super ). Onda sledeci slog u sledeci red ( odvoj slogove - ispasce
musaka ).
Pajz' sad ! Ispravka i unosenje - tekst editorom !(!! INOVACIJA !!)
Validiranje i kontrola - na dusu operatora. ( zeznuto je kad se datoteka
zavrsi sa < enter > ). Datoteka je ogranicena na 23 sloga - ne moze vise
da stane na ekran !
Perica jos nije stigao do indeksa ( ajd' kad si pametan kreiraj ti
indeks; vidis da svako polje tera svoju politiku), ali se potreba ukazala
pa ce Perica i to resiti ( ne diraj PCX - to mi je drag format ). Do
daljeg otvoricemo 40 fajlova - za svaku stranu po jedan ( kuku Perice,
sta da radim sa 1500 konta + 3500 komitenata u firmi. U koji DIR da grunem
tolike datoteke ??? ).
Cuo je Perica i za relaciono povezivanje...(nemoj Perice dacu ti zvaku)
Treba li reci da se Perica ponosi svojim optimizovanim datotekama i
sa gnusanjem odbacuje svaku vezu sa Clipper-om i DBF-om ...
( za ovo ti hvala - ispao si covek ! ).
OUP.3.Perice, ne zameri - meni i doktor rek'o da sam lud! ;-)
clipper.930sule,
ok... dok ne odgovorim na sve navode/optuzbe/pitanja (off-line) reci cu samo
ovo:
1. To sto ti mislis da je Soft Sound sistem i da je legalno instaliran, malo
si se prevario.
2. Tvrdnja da ne znam sta se nalazi u Soft Sound paketu nikako ne moze biti
tacna jer ga *JEDINO* ja instaliram i projektrujem (do sada).
3. Prefiksi "PINGVIN" i "EGO" oznacavaju firmu koja distribuira sistem i nema
nikakve veze sa imenom samog projekta, osim reklame. Sam sistem je presao
iz Pingvina iz manje-vise poznatih razloga, a jedan je i kradja i ilegalno
kopiranje (cuo sam da naplacuju 200 DEM) prototipske verzije.
4. SoftSound poseduje interne module za reprodukciju VOC, WAV i SSR fajlova,
ali se mogu dodati i eksterni pustaci. U prototipskoj verziji to je bio
jedini nacin jer se nije znalo da li ce se ici sa SoftSound karticom ili
ne.
5. I dalje odbacujem (argumetovano!) sve Microsoft verzije grafickih okruzenja.
Razmisljam se o prelasku na QNX ali to sada nije bitno. Bitno je da je
graficka radna okolina cak samo smetnja, sto bi mogao da saznas da si se
bavio razvojem. Potrebno je malo boraviti u radio stanicama pa da vidis
da su sve vrste glodara i bilo kakvi prozori izuzetno velika smetala!
Microsoft ne ume da napravi dobar, stabilan OS koji bi se dao koristiti
u ovakve svrhe. DOS je lako zaobici, pa je za pocetak, to bio izbor.
6. Ne vidim nikakvu smetnju u koriscenju extendera i ako ga *NEMA* u
dosadasnjim verzijama SoftSound-a. Od sada ce ga, naravno, biti.
7. Na 286 bi program radio i mogao bi da svira, ali brzina takvog sistema ne
daje dovoljne garancije za neometanu reprodukciju. Zbog toga se pominje
minimum masina 386/33. Naravno, i ne nameravam da idem ispod tog standarda
jer je 286 (posteno!) odsluzila svoje.
8. Na masinama koje smo instalirali ne radi mreza pod w4wg - nikako.
Poslednja verzija MS Win koja se da istrpeti je 3.1, najobicniji. Procitaj
dnevnik u PC PRESS #5 (kada izadje) pa ce ti biti jasno o cemu pricam.
9. Ispravka i unosenje se vrsi iz samog programa (moze i drugih modula).
Struktura fajla je ostala takva da se moze editovati i u obicnom tekst
editoru - opet ostaci protipova.
10. Jedna stranica jeste ogranicena na 23 sloga, i to ce i ostati! Razloge za
ovo ocigledno ne mozes da naslutis (ne, nije u pitanju programiranje) pa
cu ti reci da postoji i drugi nacin za startovanje reprodukcije koji ne
zavisi od stranica.
11. Svaka stranica *IMA* svoj fajl sto ima svoje velike prednosti u smislu
lokalnih i globalnih definicija stranica za razne tonce i emisije. Ne
vidim nista lose u tome.
12. Sto se 11. tacke tice, prototipska (ilegalna) verzija nema mogucnost
definisanja imena fajlova za svaku stranicu, kao sadasnja.
13. Odbacujem DBF kao nepotreban u ovoj situaciji i *SPORIJI*. Indeksiranje
postoji, ali je reseno sasvim drugacije, pa ga naravno nisi ni video.
14. Ne moraju svi stranicni fajlovi biti definisani za svakoga ponaosob.
Globalne definicije (opet ne moraju sve!) se nalaze u SOFTSND
direktorijumu, a po potrebi, lokalne se mogu staviti za svakoga posebno
(opet samo ono sto se menja!).
pozdrav, Perica.
clipper.931dr.grba,
>> bavio razvojem. Potrebno je malo boraviti u radio stanicama pa da vidis
>> da su sve vrste glodara i bilo kakvi prozori izuzetno velika smetala!
Kako gde.
clipper.932sule,
Slazem se. Za neke aplikacije su izuzetni, ali ono na sta se ovde cilja,
samo zauzimaju mesto, jer se glavno komandovanje vrsi sa miksete i komandne
table (ima raznih).
Moja greska. Izvini dr.grba.
Inace, smatram da sam dovoljno rekao. Ovo bi na SEZAM-u moglo da se razvlaci
do besvesti. Covek prica o softveru koji predstavlja ilegalno kopirani
PROTOTIP i koji je uradjen, ako cemo tako, za par sati rada. Ona dva meseca
su ukljucivala i ceo idejni razvoj i softvera i hardvera i komunikaciju sa
ljudima koji se profesionalno bave zvukom u radio stanicama.
Ukoliko se radi o neslaganju oko interfejsa i platforme, stojim iza svega sto
sam napravio, pa cak i iza odabranih (namernih) ogranicenja. Ukoliko nekoga
interesuje zasto je to tako, uz eventualne manje rezerve, mogu objasniti sve
stvari, ali na nekom drugom mestu - interaktivno i oci u oci.
Do tada... dovidjenja!
pozdrav, Sule
clipper.933stosic,
> Ima li neko srecu da prati Clipper/VO konferencije na Internet-u ili
> CompuServe-u? Ako ima, ne bi bilo lose da ovde baci malo poruka, da
> vidimo sta se sve prica tamo :).
Da li si ovo probao:
-> Subject: Is there a mailing list for CA-Clipper users on the
-> Internet or Bitnet? Fidonet? Others?
->
-> Yes. You can subscribe by sending the message "SUBSCRIBE CLIPPER
-> Your-Name-Here" to <LISTSERV@BRUFPB.BITNET>. Send administrative
-> requests to <LISTSERV@BRUFPB.BITNET>. When you join the mailing
-> list you will be emailed instructions on how to post contributions
-> to the list.
clipper.934cnenad,
Ovo su poruke koje mi je prijavio Blinker kada sam u LNK skript dodao
da se linkuje i MachSIX.LIB kao i MachSIX.OBJ i CDXMach6.OBJ.
U sors je ubačeno #include 'MachSIX.Ch'
CDXMACH6.OBJ(CDX0) : '_CDXOPTIMIZE4SPEED' is duplicated in SIX2.LIB(CDX0)
CDXMACH6.OBJ(CDX0) : '__CDXWEP' is duplicated in SIX2.LIB(CDX0)
CDXMACH6.OBJ(CDX0) : '__CDXPLACEKEYP' is duplicated in SIX2.LIB(CDX0)
CDXMACH6.OBJ(CDX0) : '__CDXNEW' is duplicated in SIX2.LIB(CDX0)
CDXMACH6.OBJ(CDX0) : '_CDXIDXSDD' is duplicated in SIX2.LIB(CDX0)
CDXMACH6.OBJ(CDX0) : '__CDXFUNCTABLE' is duplicated in SIX2.LIB(CDX0)
CDXMACH6.OBJ(CDX0) : '_CDXINIT' is duplicated in SIX2.LIB(CDX0)
CDXMACH6.OBJ(CDX0) : '__CDXGETFUNCTABLE' is duplicated in SIX2.LIB(CDX0)
Skript za overlej MachSIX.LIB je ispod poziva skriptu SIX2.LNK.
Da li su ovo normalne poruke i javljaju se i kod vas ii nešto grešim.
Izbacio bih iz link skripta poziv za CDXMach6.OBJ ali možda u njemu ima
još nešto što treba MachSIX.LIB-u za optimizaciju.
Ovako su sve duplirane funkcije u SIX2.LIB ignorisane a ulinkovane one
iz CDXMach6.OBJ
clipper.935bulaja,
│Ovo su poruke koje mi je prijavio Blinker kada sam u LNK skript dodao
│da se linkuje i MachSIX.LIB kao i MachSIX.OBJ i CDXMach6.OBJ.
│U sors je ubačeno #include 'MachSIX.Ch'
└───
Probaj da izbaciš #include ili MachSIx.obj :). Ove dve stvari ne bi
trebalo da idu zajedno, pošto MachSIx.obj služi za optimizaciju upita
već kompajliranog koda (recimo kad koristiš neki LIB za koji nemaš
source). Prema tome slobodno izbaci MachSIx.obj iz link datoteke, a
ostavi CDXMach6.obj, SIxUk.obj (ili neki drugi), SIxCDX.obj, SIx2.lnk
i MachSIx.lnk.
clipper.936cnenad,
=> source). Prema tome slobodno izbaci MachSIx.obj iz link datoteke, a
=> ostavi CDXMach6.obj, SIxUk.obj (ili neki drugi), SIxCDX.obj, SIx2.lnk
=> i MachSIx.lnk.
Kao što si video, on se buni za CDXMach6.OBJ i kaže da se u njemu nalaze
iste stvari kao i kod SIX2.LIB-a, a ostalo što je bilo ulinkovano sam naveo
kao eventualno dodatne podatke da se dijagnoza brže ustanovi.
BTW, u NG-u za MachSIX se navodi da je i za drugu varijantu potrebno ubaciti
MachSIX.OBJ kao i u prvoj kad se nema sorsa.
Sad dolazi Zona Sumraka.
Nakon dodavanja MachSIX-a deo programa koji je radio izračunavanje preko
SUM više nije radio nego je ostajao na prvom podatku i računao samo njega.
Celo popodne sam izgubio gledajući da nije greška negde u sors-u, ali po
n-ti put u pomoć dolazi Debuger i naravno ideja da izbacim MachSIX i nakon
toga sve radi, naravno sporije. Vrlo čudno.
clipper.937velicko,
subj:
Sound & Vision
Ne mogu da opišem kako sam srećan bio kad sam vido
opis biblioteke. Međutim biblioteka sa strane podrške
Sound Blasteru predstavlja pravo razočarenje.
F-ja playVoc() možda dobro pušta voc semplove ali
se VEOMA često zbuni kod prepoznavanja WAV-ova.
Ili pogreši frekvenciju, ili dodaje nekakvo lupkanje
na svakih sekundu-dve. :(
Zaključak:
Lepo za kućnu upotrebu, ili "ozvučavanja" vaših
poslovnih aplikacija, ali za prof. upotrebu, za program
za radio stanice npr. - neupotrebljivo. :(
subj:
Program za radio stanice
Autor sam jednog programa za radio stanice. Program
za sada samo eksperimentalno radi u jednoj radio stanici,
ali po svemu sudeći demantuje neupotrebljivost Clippera
u ovakvim aplikacijama.
Aplikacija radi u protected modu, i poziva eksterni
wav player. To unosi određeno usporenje, ali to i ne
smeta toncu u radio stanici. Npr wav od 40 sek. 16 bit.
44 KHz posle pritiska na hot key počinje sa reprodukci-
jom već pose oko 0.4 sek.
Eksterni wav player je play.exe koji se dobija uz
SB. Nisam siguran dali smem da ga koristim iz svoje
aplikacije. Išao sam jednostavnom logikom da ja u stvari
i ne isporučujem play.exe, već ga korisnik aplikacije
već ima (pošto je kupio SB) ;), tako da mislim da pitanje
kopirajta nije sporno.
Zanimljivost u vezi istog PLAY.EXE . Poziva se clipper
- blinker f-jom swpRunCmd(). Ponaša se suludo. Posle
n minuta korišćenja programa ( 1<n<30 ) tj pozivanja iz
clipper-a play.exe počinje da se "guši", tj da svira samo
nekoliko sekundi od sempla, da bi se to završilo sa
sviranjem samo prvih 0.3 sec. !!! Lek je slučajno otkriven
i sastoji se u sledećem:
OBAVEZNO play.exe treba makar jednom pozvati iz dosa
(iz komandne linije) da bi se izbegli ovakvi problemi.
žudno, ali radi. Ako neko zna o čemu se radi neka javi.
Ukoliko neko ima WPLAY.EXE mogao bi da ga pošalje :).
velicko
clipper.938cnenad,
Subj. Moja greška (opet) ili bag ?
Funkcija vraća jedan član niza u kojem je upisano nešto poput '9,999.99'
Niz je u static mem.varijabli.
U drugoj proceduri proveravam sa AT( Vrati_clan_niza(), '.' ) na kojoj je
poziciji tačka. AT vraća 0.
U čemu je problem ?
clipper.939velicko,
>+ U drugoj proceduri proveravam sa AT( Vrati_clan_niza(), '.' )
Okrenuo si parametre, treba:
AT( '.', Vrati_clan_niza() )
velicko
clipper.940cnenad,
=> Okrenuo si parametre, treba:
TNX, stvarno čoveka ovakve sitnice znaju da izlude. A još kao gledam
sintaksu u NG-u i ne vidim grešku.
clipper.941nbatocanin,
> U drugoj proceduri proveravam sa AT( Vrati_clan_niza(),
> '.' ) na kojoj je poziciji tačka. AT vraća 0.
Vidi u dibageru, ovo je mnogo prosto da bi bio neki veći bug.
clipper.942d.petrovic,
> => Okrenuo si parametre, treba:
>
> TNX, stvarno čoveka ovakve sitnice znaju da izlude. A još kao
> gledam sintaksu u NG-u i ne vidim grešku.
Zato lepo iskopiraš iz NG-a pa onda menjaš :)
clipper.943snemcev,
Subject: Timer interrupt
Koristite li FUNky? U stvari, nije bitan FUNky već funkcija koja postoji
u njemu, a koja se kači na timer interrupt i prikazuje sat na zadatoj
lokaciji svake sekunde.
Ako je slučajno Qemm u memoriji, a program je linkovan Blinkerom kao
extend, sat neće raditi?! Sa himem-om je sve OK. Isto tako, ako se
program linkuje bez BLI EXE EXTEND, sve je OK bez obzira na Qemm.
I ko je tu sad kriv? Clipper je 5.2d, Blinker 3.10, FUNky 2.02, Qemm 7.5
clipper.944goranr,
Kako da uradim TBrowse matrice? Nisam programirao u Clipperu bar
godinu dana, a sećam se da sam to nekako izveo. Nažalost, nema
mi tog sorsa :((((
clipper.945aseovic,
> I ko je tu sad kriv? Clipper je 5.2d, Blinker 3.10, FUNky 2.02, Qemm 7.5
Koji monitor imaš? Znam da izgleda šašavo, ali meni se dešavalo
da sat iz FUNCky-ja ne radi na mašini sa Herculesom, a radi na
VGA. Isti program, isti AUTOEXEC i CONFIG.
(Clipper 5.2x, Blinker 3.xx, FUNCky 2.02)
clipper.946zmax,
Imam sledeci problem:
NW Lite + Clipper 5.01 + NetLib == problem
Naime kada dva programa startuju ovu sekvencu, prvi uspe da
otvori a drugi ne.
n_use(ime_dbf shared new)
Standardan klipan radi kako treba
USE ime_dbf SHARED
Unapred hvala
clipper.947rccomp,
>> Kako da uradim TBrowse matrice...
Imas na Sezamu primer u datoteci R083TAB.zip
To je kod iz teksta objavljenog u Racunarima 83 a napisao ga je, mislim,
nbatocanin. Kad raspakujes datoteku vidi PRIMER4.PRG
Pozdrav Bata
clipper.948d.petrovic,
To nema veze ca kliperom. Jel biblioteka šerabilna ?
clipper.949kkrsteski,
>NW Lite + Clipper 5.01 + NetLib == problem
>n_use(ime_dbf shared new)
Zasto onda ne batalis NetLib i napravi svoju N_USE()
od obicnog CLIPPERA 5.01 :).
Evo ti moj N_USE.PRG kod mene radi sa NW_Lite odlicno,
samo treba malo da ga modifikujes prema svojim potrebama.
n_use.prgclipper.950kkrsteski,
>Tema PC.PROG na SEZAM-PROBA, poruke od 7.23 na dalje,
>imate FW17EV, cetiri dela sa Sezama i peti deo ispravan LIB.
>Prijatan DL
>Zkr
Gde je ovo na SEZ-PROBA ??? SEZ_PRO ->PC.PROG -> 7 TEMA JE PASKAL. :(((.
Nisam mogao da izdrzim pa sam ga skinuo na 2400 ....:))
I zamisli ne mogu da iskompajliram nista.:(((
Zaglavi se CLLIPPER 5.01 prilikom kompajliranja,
ne mogu da dobijem .OBJ fajl. cak moram da resetiram masinu.
Ako je ova biblioteka ispravna , u cemu je onda problem.
FIVEWIN LIB 692,038 01-13-95 5:40a <- ispravna biblioteka (TNX Zkr)
Modifikovao sam i fivewin.lnk , podesio PATH-ove i nista ...
STA NIJE U REDU ????
Pozdrav !HHH
clipper.951bulaja,
│Ako je slučajno Qemm u memoriji, a program je linkovan Blinkerom kao
│extend, sat neće raditi?! Sa himem-om je sve OK. Isto tako, ako se
│program linkuje bez BLI EXE EXTEND, sve je OK bez obzira na Qemm.
└───
Probaj recimo da isključiš korišćenje DPMI/VCPI hosta, ubaci ovo u
link fajl:
Blinker Host QDPMI Off
Blinker Host DPMI Off
Blinker Host VCPI Off
Tako će ti ostati korišćenje samo XMS hosta, dakle isti uslovi kao i
kada je instaliran samo Himem.SYS. Ako radi Ok posle ovoga onda je
moguće da je u pitanju bug Blinker-a, mada bi ja pre sumnjao na sam
FUNCky koji ima neke svoje funkcije za DPMI i u nekim stvarima zaobilazi
ExoSpace/Blinker API.
Ako ni posle ovoga ne radi (što je manje verovatno), onda je moguće da
je u pitanju bug ili nekompatibilnost QEMM-a. Tada probaj recimo da li
radi sa EMM386 (koji obezbeđuje VCPI host).
clipper.952bulaja,
│Kako da uradim TBrowse matrice? Nisam programirao u Clipperu bar
│godinu dana, a sećam se da sam to nekako izveo. Nažalost, nema mi
│tog sorsa :((((
└───
Instaliraj 5.2E patch (ako već nisi) i pogledaj primere u source/tbrow.
Ima gomila primera za TBrowse a takođe i za kompleta SpreadSheet, pa
možeš odatle izvaditi šta treba. :)
clipper.953rmarjan,
Ako koristis Clipper 5.2*, nema nikakvihg problema. Naravno linkovanje
mora biti Blinkerom ili Link 5.2 verzija pa dalje. Inace sto se tice 5.1
Clippera, ima negde neka napomena (da li u NG ili tu negde... procitaj).
Svakako nabavi i Resource comopiler ....
Ja sam bez problema preveo i linkovao sve primere i veoma lepo radi
(Clipper 5.2e, Blinker, BRC.EXE...)
Proveri da li ti je FiveWin.LIB duzine tako da na kraju ima 38 bajta (ne
mogu da se setim cele duzine ali 38 bajtova na kraju mora biti)
Nemoj se razocarati, nije upotrebljivo za komercijalnu izradu programaa,
postoji poruka za registraciju, koja se povremeno javlja...
Pozdrav, Boris
clipper.954nbatocanin,
> Kako da uradim TBrowse matrice? Nisam programirao u
> Clipperu bar godinu dana, a sećam se da sam to nekako
> izveo. Nažalost, nema mi tog sorsa :((((
#include "Inkey.ch"
PROC Main
PUBLIC TB, Ch
PUBLIC aData[70,10], i
// Popunjavanje matrice vrednosti
FOR i := 1 TO Len(aData)
FOR j := 1 TO Len(aData[i])
aData[i,j] := Str(i,2,0) + Str(j,2,0)
NEXT
NEXT
CLS
// Kreiranje TBrowse objekta
TB := TBrowseNew (0,0,10,30)
// Definisanje kolona TBrowse objekta
FOR j := 1 TO 10
cBody := "aData[i," + Str(j,2,0) + "]"
TB:addColumn (TBColumnNew ("", { || &cBody }))
NEXT
// Postavljanja raznih parametara
i := 1
TB:headSep := "Đ═"
TB:colSep := "│"
TB:freeze := 1
// Blokovi za pozicioniranje kursora
TB:skipBlock := { |s| MySkip(s) }
TB:goTopBlock := { || i := 1 }
TB:goBottomBlock := { || i := Len(aData) }
// Glavna petlja za kontrolu
WHILE .T.
// Ispisivanje ekrana
WHILE !TB:stabilize() ; END DO
// Status poruka
@ 24,0
IF TB:hitTop
@ 24,0 SAY "** Pocetak niza **"
ELSEIF TB:hitBottom
@ 24,0 SAY "** Kraj niza **"
ELSE
@ 24,0 SAY "Vrsta: " + Str(i,2,0) + " Kol:" + Str(TB:colPos,2,0)
END IF
// Ceka se komanda
Ch := Inkey(0)
// Analiza pritisnutog tastera
DO CASE
// Kraj
CASE Ch == K_ESC ; EXIT
// Pomeranje kursora
CASE Ch == K_UP ; TB:Up ()
CASE Ch == K_DOWN ; TB:Down ()
CASE Ch == K_LEFT ; TB:Left ()
CASE Ch == K_RIGHT ; TB:Right ()
CASE Ch == K_HOME ; TB:Home ()
CASE Ch == K_END ; TB:End ()
CASE Ch == K_PGUP ; TB:PageUp ()
CASE Ch == K_PGDN ; TB:PageDown ()
CASE Ch == K_CTRL_PGDN ; TB:goBottom()
CASE Ch == K_CTRL_PGUP ; TB:goTop()
CASE Ch == K_CTRL_LEFT ; TB:panLeft()
CASE Ch == K_CTRL_RIGHT; TB:panRight()
CASE Ch == K_CTRL_HOME ; TB:panHome()
CASE Ch == K_CTRL_END ; TB:panEnd()
END CASE
END DO
RETURN
// Skip funkcija
//---
FUNC MySkip (n)
//---
LOCAL nSkip
DO CASE
// Ne treba pomerati pokazivac
CASE n == 0 ; nSkip := 0
// Na dole
CASE n > 0
IF i + n <= Len(aData)
i += n
nSkip := n
ELSE
nSkip := Len(aData) - i
i := Len (aData)
END IF
// Na gore
CASE n < 0
IF i + n >= 1
i += n
nSkip := n
ELSE
nSkip := -i + 1
i := 1
END IF
END CASE
RETURN nSkip
clipper.955stosic,
#: 40998 S1/News/General
29-Aug-95 20:14:13
Sb: BBS #s wanted!
Fm: DFL Tech Support 74777,3402
To: All
Hi,
DFL has a free Light Lib BBS Kit available for all Clipper/VO BBS sysops or
representatives. Please call or private email me at 74777,3402 to receive it.
It consists of 7 disks (one pre-zipped file per disk and ready to upload!) with
a TXT file on the first disk describing all files. It couldn't be easier!
Disk 1 Light Lib Eval for CA-Clipper 5.3 Disk 1 of 2
Disk 2 Light Lib Eval for CA-Clipper 5.3 Disk 2 of 2
Disk 3 Light Lib Demo (as included with CA-Clipper 5.3)
Disk 4 Light Lib eval for Windows Disk 1 of 3 (VO, C++, Delphi)
Disk 5 Light Lib eval for Windows Disk 2 of 3 (VO, C++, Delphi)
Disk 6 Light Lib eval for Windows Disk 3 of 3 (VO, C++, Delphi)
So, if you are, or know of, Clipper/VO BBS sysops & reps, we encourage you to
pass this message along to them ASAP.
Thanks for everyone's anticipated cooperation,
Anthony Carrabino
DFL Software Inc.
Voice (416) 789-2223
Fax (416) 789-0204
clipper.956stanic,
Nije u conf-u PC.PROG već u TEST.1:clipper ...
A jel' neko uspeo da "registruje" lib. Bez ovoga je stvar totalno
nezanimljiva.
clipper.957cnenad,
Kako rešavate menjanje podatka koji ulazi u indeks koji je formiran sa
klauzulom UNIQUE ?
Veoma je hitno.
clipper.958snemcev,
>> Koji monitor imaš? Znam da izgleda šašavo, ali meni se dešavalo
>> da sat iz FUNCky-ja ne radi na mašini sa Herculesom, a radi na
>> VGA. Isti program, isti AUTOEXEC i CONFIG.
Probao sam na dva računara, oba VGA, jedan 386/color drugi 486/mono.
Situacija je identična: ima Qemm => nema sat; nema Qemm => ima sat.
clipper.960kanki,
Ima li đe da se nađe NG za Clipper na srpskom???
ps. Potreban je program za video klub. Mail ili 082 61 033/15 do 14.00
ili 082 62.921 posle 15.00 goran
pps. Može li mali hint, kako napraviti meni, sa strelicama, lijevo i
desno, gore i dolje... ali da ne moram esc i enter za prelazak
iz jednog u drugi
meni1 meni2 meni3 meni4 ....
11111 11111 11111 11111
22222 22222 22222 22222
33333 33333 33333 33333
..... ..... ..... .....
clipper.961kanki,
Ima li đe da se nađe NG za Clipper na srpskom???
ps. Potreban je program za video klub. Mail ili 082 61 033/15 do 14.00
ili 082 62.921 posle 15.00 goran
pps. Može li mali hint, kako napraviti meni, sa strelicama, lijevo i
desno, gore i dolje... ali da ne moram esc i enter za prelazak
iz jednog u drugi
meni1 meni2 meni3 meni4 ....
11111 11111 11111 11111
22222 22222 22222 22222
33333 33333 33333 33333
..... ..... ..... .....
clipper.962snemcev,
>> Probaj recimo da isključiš korišćenje DPMI/VCPI hosta, ubaci ovo u
>> link fajl:
Ovako neće ni da radi sa Qemm-om.
>> Ako ni posle ovoga ne radi (što je manje verovatno), onda je moguće
>> da je u pitanju bug ili nekompatibilnost QEMM-a. Tada probaj recimo
>> da li radi sa EMM386 (koji obezbeđuje VCPI host).
Sa EMM386 sve radi OK. Znači, Qemm greši. Buaaaaaaaa :(((((
Probaću da uradim Upgrade (kad ga skinem), pa ću da javim šta je bilo.
Nego, jedna druga stvar mi nije jasna. Taj ispis sata se kači na timer
interrupt, right? Kako onda sat radi (timer interrupt održava real time
clock, ne?) ali unitar iste rutine, ispis sata ne radi?! Jedino ako se
ispis sata uopšte nije ni zakačio za timer interrupt. Ono što sve zabuni
je da u toj situaciji ZTIME radi savršeno.
clipper.963sobrenovic,
Evo jednog malog demo programcica za knjigovodstvo...
Nije kompletan, ali ce biti...
iks.zipclipper.964mileusna,
>> pps. Može li mali hint, kako napraviti meni, sa strelicama, lijevo
>> i desno, gore i dolje... ali da ne moram esc i enter za prelazak
>> iz jednog u drugi
>>
>> meni1 meni2 meni3 meni4 ....
>> 11111 11111 11111 11111
>> 22222 22222 22222 22222
Najprostiji primer:
#include "inkey.ch"
//====================
FUNCTION Meni
//====================
LOCAL nMeni, nPodMeni
DO WHILE .T.
@ 0, 0 PROPMT "Meni1"
@ 0,20 PROMPT "Meni2"
@ 0,30 PROMPT "Meni3"
@ 0,40 PROMPT "Meni4"
MENU TO nMeni
DO CASE
CASE nMeni=0
EXIT
CASE nMeni=1
@ 1,0 PROMPT "PodMeni1"
@ 2,0 PROMPT "PodMeni1"
@ 3,0 PROMPT "PodMeni1"
SetKey(K_LEFT ,{||__keyboard(Chr(K_ESC)+Chr(K_LEFT )+Chr(K_ENTER))})
SetKey(K_RIGHT,{||__keyboard(Chr(K_ESC)+Chr(K_RIGHT)+Chr(K_ENTER))})
MENU TO nPodMeni
SetKey( K_LEFT, NIL )
SetKey( K_RIGHT, NIL )
CASE nMeni=2
// isto
CASE nMeni=3
// isto
ENDCASE
ENDDO
RETURN
Fora je u ovome:
SetKey( K_LEFT , { || __keyboard(Chr(K_ESC)+Chr(K_LEFT)+Chr(K_ENTER))})
Kada sad pritisneš strelicu levo (K_LEFT) izvršava se kodni blok koji
sadrži i funkciju __keyboard. Inače funkcije nema u spisku u NG-u, ali zato
ima komande KEYBOARD koja se pri preprocesiranju prevodi u __keyboard().
Međutim komandu ne možeš da koristiš u kodnom bloku pa ja zato koristim
funkciju. Mada, ako ti je lakše možeš da pišeš i ovako, isto je:
SET KEY K_LEFT TO KLeft() ( može i: SetKey( K_LEFT, KLeft() ) )
// pa negde dole dodaš
//=====================
FUNCTION KLeft()
//=====================
KEYBOARD Chr(K_ESC)+Chr(K_LEFT)+Chr(K_ENTER)
RETURN NIL
Elem, KEYBOARD jednostavno unosi u bafer tastature ono što se zada, a
ti si joj zadao Chr(K_ESC)+Chr(K_LEFT)+Chr(K_ENTER) pa se tako simulira
upravo ono što ti treba (Esc+Levo+Enter). Inače da ne bi stalno pisao ovo
set key, pa menu, pa opet set key, a i zbog urednosti koda, preporučujem da
napraviš neku komandu pomoću preprocesorskih komandi, koja će zamenjivati
MENU TO u ovakvim situacijama. Primer:
#command MENU_TO <nMenu> => ;
SetKey(K_LEFT ,{||__keyboard(Chr(K_ESC)+Chr(K_LEFT )+Chr(K_ENTER))}) ;;
SetKey(K_RIGHT,{||__keyboard(Chr(K_ESC)+Chr(K_RIGHT)+Chr(K_ENTER))}) ;;
MENU TO <nMenu> ;;
SetKey( K_LEFT, NIL ) ;;
SetKey( K_RIGHT, NIL )
Sada jednostavno pišeš, gde to treba (znači u podmenijima):
@ X,Y PROMPT "Trt-Mrt"
@ M,N PROMPT "Mrt-Trt"
MENU_TO nPodMeni
clipper.965d.petrovic,
Retko koristim memo polja, ali ovo baš za'ebava :
----------
Local LocStr := ""
Field Opis
LocStr := MemoEdit(Opis, ....)
If LocStr != Opis
? "Ovo se ne izvršava"
EndIf
If ! LocStr == Opis
? "Ovo se izvršava"
EndIf
? "Haos brate ;>"
----------
clipper.966pstojanovic,
> Retko koristim memo polja, ali ovo baš za'ebava :
U pitanju je ne-egzaktno poredjenje u prvom slučaju i egzaktno poredjenje
u drugom slučaju.
Ako je npr. LocStr:="Primer"; Opis:="Primer teksta"
tada je LocStr=Opis -> .T. ili LocStr!=Opis -> .F. a
LocStr==Opis -> .F. ili !(LocStr==Opis) -> .T.
što nije slučaj recimo sa LocStr:="Primer"; Opis:="Tekstualni Primer", kako
verovatno nisi isprobavao u svom primeru.
Pozdrav.
clipper.967dejanr,
Odvratan stvar u Clipper-u 5.1 (a verovatno i ostalim verzijama,
nisam probao).
Stavio sam u programu 'index on ifirma() to firma' i posle 'set index to
firma' gde je 'ifirma' moja funkcija. Od tog modenta program je divljao,
tako što pri pokušajima upisa u bazu javi 'Internal error' na redu u kome
se radi rlock ili prvi replace. Uzelo mi je dva ipo sata da nađem
u čemu je stvar.
Stvar je u tome da ime funkcije koja će se ovako koristiti ne sme da
počinje na 'if' :(
Druge službene reči (while, do...) izgleda ne smetaju.
clipper.968goranr,
>> Imas na Sezamu primer u datoteci R083TAB.zip
>> To je kod iz teksta objavljenog u Racunarima 83 a napisao ga je, mislim,
>> nbatocanin. Kad raspakujes datoteku vidi PRIMER4.PRG
Thanx!
clipper.969stosic,
Sb:CLIPPER/VO BBS, INTERNET
Fallbrook, California (12/16/94): The File Bank (tm) BBS began a
direct access service through the Internet today. Callers from all
over the world can now connect to The File Bank through a local
Internet provider using any communications software and a shell
account. Unlike the usual Internet session, a caller to The File
Bank receives a standard PCBoard BBS interface.
"There are a few specialty areas to be found on The File Bank. Our
parent company is deeply involved in creating custom CA-Clipper and
CA-Visual Objects applications. Because of their involvement in the
xBase community, The File Bank has become the largest repository of
CA-Clipper and CA-VO files in the world. We host a international
email conference and are home to the San Diego Clipper Users Group."
Connecting to The File Bank BBS:
(619) 728-7307 - direct dial
(619) 540-2409 - toll free for San Diego county (619)
area callers
telnet bbs.tfb.com - internet access
telnet 198.68.171.210 - internet access
Kompletna poruka je u fajlu tfb-pr.zip
Boban
tfb-pr.zipclipper.970markoc,
Ako negde u programu imate:
............
USE Podaci NEW
GO TOP
............
i CLIPPER 5.2x (na ono GO TOP) prijavi:
Error DBCMD/2001 Workarea not in use: DBGOTOP
izbacite SHARE.EXE iz AUTOEXEC.BAT-a ili CONFIG.SYS-a.
(Dok nisam ovo otkrio, izveo sam posebno napajanje za računar na kome
se ovo dešavalo, a zamalo da promenimo disk i disk kontroler...)
Ko izmisli ovaj SHARE.EXE (mora da je MAJKROSOFT)?
Neka vam je CLIP na pomoći, Solajac.
clipper.971kolaps,
Gde moze da se nade funkcija ili biblioteka funkcija za slanje faxa iz
Clippera ?
Pozdrav, Dragan.
clipper.972mileusna,
>> Gde moze da se nade funkcija ili biblioteka funkcija za slanje faxa
>> iz Clippera ?
Kod pirata. ;) Biblioteka SilverClip. Videti Računare 101, ali ako se
dobro sećam, tamo je opisana samo verzija za komunikaciju preko modema, ali
postoji i za Fax. :)
clipper.973kolaps,
Kod pirata sam trazio, medutim imaju SilverClip ali cinim mi se da u njemu ne
postoji nista za slanje faxova, jedino ako bi trebalo da se radi o posebnoj
verziji, medutimi oni o tome nista neznaju, cak su mi u APP-u uvalili potpuno
pogresne stvari.
Mozda ako znate nekog pirata da zna sta sta prodaje, preporucite mi ga.
Pozdrav, Dragan.
clipper.974kile,
>> cak su mi u APP-u uvalili potpuno pogresne stvari.
>> Mozda ako znate nekog pirata da zna sta sta prodaje, preporucite mi ga.
Meni juče dadoše SIX v1.5, i Blinker 3.00 sa UpDate-om za 3.01->3.10.
Nisam ni pitao koju mu verziju daju, računam
valjda ljudi znaju šta rade. ;)
čalosno.
clipper.975nbatocanin,
> Ako negde u programu imate:
> ............
> USE Podaci NEW
> GO TOP
> i CLIPPER 5.2x (na ono GO TOP) prijavi:
> Error DBCMD/2001 Workarea not in use: DBGOTOP
> izbacite SHARE.EXE iz AUTOEXEC.BAT-a ili CONFIG.SYS-a.
Verovatno je štos u tome što otvaranje nije uspelo zbog prisustva
SHARE-a, pa je ova greška logična. Razlog zašto nije uspelo može biti
što je jednom već otvorena ta datoteka, pa se ne može ekskluzivno
otvoriti još jednom. Ukratko, tvoj računar se zbog SHARE-a ponaša kao
da je u mreži.
clipper.976nbatocanin,
> Kod pirata. ;) Biblioteka SilverClip. Videti Računare 101,
> ali ako se dobro sećam, tamo je opisana samo verzija za
> komunikaciju preko modema, ali postoji i za Fax. :)
Ne postoji posebna verzija, nego je za fax potrebno imati CAS drajver
koji ja nisam imao u trenutku testiranja.
clipper.977zkrstic,
>> Ako negde u programu imate:
>>
>> ............
>> USE Podaci NEW
>> GO TOP
>> ............
>>
>> i CLIPPER 5.2x (na ono GO TOP) prijavi:
>>
>> Error DBCMD/2001 Workarea not in use: DBGOTOP
>>
>> izbacite SHARE.EXE iz AUTOEXEC.BAT-a ili CONFIG.SYS-a.
Nemojte ni slučajno da ga poslušate, nego stavite
SHARE /L:255 /F:12500
Ova konjbinacija je nenadjebiva. Ako vam je malo
memorije, izvolte se experimentisati.
Mali hint: NE DIZATI GA ( s'oproštenjem ) u UMB!
Baj'd'vej SHARE vam ne treba ako Clipper aplikacija nije
za mrežu, ali će vam Corel kukati ako ga arčite.
Zkr ;)
clipper.978hercog,
Kako da prosledim Clipper programu parametar tipa:
Tekst,Broj,Datum,Broj,Broj
Cela ova konstrukcija treba da bude jedan parametar, u kome su
pojedine stavke odvojene zarezima ili neüim drugim, npr. @, a
polje Tekst moée da bude do 70 karaktera duéine.
Primer:
Ovo je tekst, 1, 05.02.1995, 1, 1
Sale
clipper.979d.petrovic,
Kod mene je raspaisan konkurs za prijem programera u stalni radni odnos.
Ako nekog interesuje može da me emajluje ili da okrene 322-88-02
clipper.980d.petrovic,
Set Code ....
> Tekst,Broj,Datum,Broj,Broj
Ovo može u svim programskim jezicima
> Ovo je tekst, 1, 05.02.1995, 1, 1
Ovo ne može nigde
Odluči se hoćeš li razmake između ili nećeš. Onda lepo reci programu
koliko parametara mu daješ i komandne linije
-----
Proc Main(a, b, c, d)
-----
i razmišljaj o tome da će sve biti preneto kao karakter
C:Đ>MYAPP Ovo_je_tekst 1 05.02.95 1
a == "Ovo_je_tekst"
b == "1"
c == "05.02.95"
d == "1"
clipper.981mbiresev,
Prilikom startovanja program (koji radi na drugim mašinama) puca uz poruku:
Error DBFNTX/1003 Open error: kom_k1.NTX (DOS Error 4)
šta je uzrok?
clipper.982rccomp,
>> Error DBFNTX/1003 Open error : kom_k1.NTX (Dos Error 4)
Dodaj u Autoexec.bat jednu liniju u kojoj ce pisati :
SET CLIPPER=F70, resetuj racunar pa probaj ponovo.
Problem ce nestati :)
clipper.983stanic,
INDEX ON 1/field_name TO indx_name
field_name je numeric i u bazi su bile upisane vrednosti od
1 do 100. Bilo bi logično(bar meni) da baza bude uređena u
opadajućem redosledu tj. prvo da bude record sa vrednošću 100
99, ..., 1. No dobija se sledeća stvar:
3, 4, ..., 99, 100, 1, 2 (ključevi su poređani ovim redosledom)
Ima li objašnjenja?
clipper.984rccomp,
>> INDEX ON 1/field_name TO indx_name .....
>> 3,4,.... 99, 100,1,2 .....
Verovatno je u pitanju nekakva rucna gimnastika kada je baza "rucno"
izmenjena koristenjem nekakvih, usluznih, DBASE, Fox Base, DBU i slicnih
programa. Licno mislim, da je potrebno ponovno kreiranje ispravnih indexa
i da ce sve leci na svoje mesto.
Koristenje ovih usluznih programa ne azurira automatski, programom predvidjene,
indexe.
clipper.985sobrenovic,
I,
REINDEX ce, kao sto ime i kaze, regenerisati indeksnu datoteku,
ali se moze pod odredjenim uslovima desiti da kljuc (KEY) indeksa
bude izgubljen i onda nastaje sra*e. Zato je bolje koristiti
INDEX ON
clipper.986mbiresev,
>> SET CLIPPER=F70, resetuj racunar pa probaj ponovo.
>> Problem ce nestati :)
Hvala. Tu je bio problem.
A šta se dešava kad ubacim SET CLIPPER=F70 ?
Zašto nije dovoljno FILES=70 ?
clipper.987sobrenovic,
Moze to da se uradi i tako sto se programu prosledjuje 1 string,
a zatim da se uradi procedura unutar pozvanog programa koja sadrzaj
stringa raspodeli po odgovarajucim promenjivim. Mada, nije
najpreciznije objasnjeno:
Dali se program poziva iz dos-a ili se kao procedura poziva iz
druge procedure... Ono gore vazi u drugom slucaju.
clipper.988stanic,
> Mali hint: NE DIZATI GA ( s'oproštenjem ) u UMB!
A koji je razlog za to ?
clipper.989stanic,
> Verovatno je u pitanju nekakva rucna gimnastika kada je baza "rucno"
> izmenjena koristenjem nekakvih, usluznih, DBASE, Fox Base, DBU i slicnih
Naravno da nije. Evo primera pa ga secirajte.
Kreirajte bazu sa numeric poljem sa imenom field
use baza
for i:=1 to 100
append blank
replace field with i
next
index on 1/field to indx
Pregledajte bazu nakon ovoga sa aktiviranim indexom.
clipper.990mileusna,
>> A šta se dešava kad ubacim SET CLIPPER=F70 ?
>> Zašto nije dovoljno FILES=70 ?
Zato. :) Clipper uzima u obzir samo manju vrednost koja je naznačena.
Znači ako napišeš, SET CLIPPER=F70 i FILES=20, maksimalan broj otvorenih
datoteka je 20, a ne 70.
clipper.991d.petrovic,
> šta je uzrok?
Već ti je objašnjeno skoro sve. Linkovan je TLINK-om, PLINK-om ili RTLINK-om.
clipper.992rccomp,
HITNO !!!
- Kako naterati HP laser da iz DOS-a, pod Clipper programom, stampa
YU-slova ?
- Kako ( i sve o tome :) ) naterati HP laser da pod DOS-om iz Clippera, radi
kondenzovanu stampu ?
- Kako ( rok bio JUKuce , provizija -moguca :) ) iz DOS-a, pod Clipperom,
okrenuti stampu na LandScape ?
- Da li neko ima iskustva sa SUPER#%.LIB35.LIB i njenim finkcijama koje bi
trebale da rese gornje probleme. ( Nemam, trenutno, laser kod kuce pa ne mogu
pa probam )
clipper.993bulaja,
> DFL has a free Light Lib BBS Kit available for all Clipper/VO BBS sysops or
> representatives. Please call or private email me at 74777,3402 to receive it.
Brzi su :). Danas su mi stigle ove diskete, videću da ih danas/sutra
okačim na odgovarajuća mesta (r:\clipper, w:\program).
clipper.994nbatocanin,
> A šta se dešava kad ubacim SET CLIPPER=F70 ?
> Zašto nije dovoljno FILES=70 ?
Zato što Clipper-ov run-time sistem koristi po defaultu najviše 20
hendlova, osim ako nije navedeno drugačije sa SET CLIPPER ili iz
komandne linije kad startuješ program:
PROG //F:70
Sve u svemu, ovo je veoma glup parametar. Ako koristiš Blinker stavi
jedno BLINKER EXECUTABLE CLIPPER //F:100 u link skript i zaboravi na to.
clipper.995d.petrovic,
> INDEX ON 1/field_name TO indx_name
INDEX ON Str(1 / Field_Name, najmanje_širina_polja) To Indx_nam
(indx_name ćeš teško kreirati ;>>>>)
Može i StrZero(.....)
clipper.996whitie,
-->> Ako koristis Blinker stavi jedno BLINKER EXECUTABLE CLIPPER //F:100 u
-->> link skript i zaboravi na to.
U mrezi moras da definises posebno, a SUPERVISORi nisu odusevljeni sa
FILE HANDLES=100 i programima koji otvaraju 64 datoteke !
clipper.997jpinta,
oűˇć│rz
B00000000000000
¸ô¸3 šC■*-> - Kako naterati HP laser da iz DOS-a, pod Clipper programom,
stampa
-> YU-slova ?
->
-> - Kako ( i sve o tome :) ) naterati HP laser da pod DOS-om iz Clippera, radi
ţ" ▀ˇĽ┐Ě-> kondenzovanu stampu ?
->
Da bi iz clippera stampali YU slova treba uraditi nekoliko stvari.
1. Treba odrediti koji je raspored na stampacu (PC852, YUSCII ili neki
slican raspored).
2. Treba odrediti kojim rasporedom je unet podatak sa testature u bazu.
3. Na osnovu predhodnih podataka uraditi konverziju iz rasporeda kojim
je podatak unosen na raspored kojim ce se stampati na odredjenom
stampacu.
4. Tako konvertovan tekst slati na stampac.
Predhodno opisan postupak je moguce uraditi 'U LETU' na nacin kako sam
to ja uradio.
1. Napravio sam INCLUDE file SAYT.CH koji sadrzi promenjenu SAY komandu
tako da pre prikaza argumenta pozove TrCode() funkciju koja proveri
da li je argument CHARACTER i ako jeste izvrsi konverziju teksta na
zeljeni raspored.
2. Na C: disku postoji datoteka STAMPAC.DBF koja sadrzi opis lokalnog
stampaca.
datoteka ima sledeca polja:
NAZIVST character
LOKALNI logical
KOMPRES character
NORMAL -//-
PORTRET -//-
LANDSC -//-
KOD -//-
Polja sadze escape sekvence za ralicite tipove stampaca pa i za
šoí│ laserske stampace. PORTRET i LANDo├(ž├ćůü═ůĹ╔Ú╩üM
ü═-Ňven╦e samš° kod laserskih stampaca. Polje KOD sadrzi sifru za raspored
koji je
tekuci na tom stampacu. Na primer 'PC852'.
3. U programu koji treba da stampa postavis sledece:
#include 'SAYT.CH'
KOJIST() // Poziv procedure koja odredjuje stampac na osnovu STAMPAC.DBF
// datoteke.
.....
* Naslov
č 0,0 say NORMAL
.....
č 10,0 say KOMPRES
.....
č 11,0 say NORMAL
itd.
ili
č 0,0 say NORMAL+LANDSC
ili
č 0,0 say KOMPRES+LANDSC
...
č 0,0 say NORMAL+PORTRET
....itd.
Tvoj program ne brine da li je stampa na laseru ili matricnom stampacu
jer to uradi program Kojist().
Dobro je da ti se programi Kojist() i TrCode() nalaze u
biblioteci procedura i funkcija koju povezujes prilikom linkovanja.
Ovo istovremeno resava i tvoj problem kondenzovane i Landscape stampe.
Kod rada u mrezi treba datoteku STAMPAC.DBF staviti i na server i razraditi
proceduru za odredjivanje mreznog stampaca. Pitati korisnika da odredi ili
Š*ˇč#automatizovati preko tabele korisnika i slicno.
Ako si zainteresovan za detalje javi se na MAIL.
clipper.998jpinta,
˙V■ŚšřN-> Naravno da nije. Evo primera pa ga secirajte.
-> Kreirajte bazu sa numeric poljem sa imenom field
Problem u tvom primeru je nastao iz razloga sto se kod indeksiranja numerici
pretvaraju u string. a podrazumeva se bez decimalnih mesta. Kada se broj 1
deli sa brojevima od 1 do 100 dobija se rezultat manji od 0 i zaokruzuje se
na 0. Kljucevi u indeksnoj bazi se pojavljuju u rastucem redoslaedu a adrese
slogova u bazi sa podacima su u opadajucem redosledu. Posto su u ovoj petlji
svi rezultati deljenja od 3 - 100 zaokruzeni na 0 i kljuc je 0. Iz toga sledi
da se svi ti slogovi pojavljuju kao prvi i to po fizickom redosledu iz baze.
Broj 1 podeljen sa 2 daje 0.5 i pojavljuje se kao prvi slog sa vrednoscu
indeksa vecim od 0 (zaokruzen na 1). Broj 1 podeljen sa 1 daje 1 i on se
pojavljuje kao drugi opadajuci slog u datoteci.
Sve je logicno kad se malo razgrne.
Modifikovana verzija programa koji korektno radi indeksiranje u opadajucem
redosledu.
**************************************
use baza new
zap
set decimals to 5
for i:=1 to 100
append blank
replace field with i
next
index on str(1/field,10,4) to indx
**************************************
Ako zelis opadajuci redosled onda ti je jenostavnije da koristis opciju
´o¨_ˇč*ń┴■DESCENDING
...
index on field to indx DESCENDING
...
Pozdrav.
clipper.999d.petrovic,
> - Kako naterati HP laser da iz DOS-a, pod Clipper programom,
> stampa YU-slova ?
Nikako, ako nema CP852, nisu hardverski napravljena yu slova (ko bi
ovo pravio za laser ? ;)) ili ti ne definišeš slova softverski (ni to,
koliko znam, niko nije pravio za laser)
> - Kako ( i sve o tome :) ) naterati HP laser da pod DOS-om iz
> Clippera, radi kondenzovanu stampu ?
Ostavljao je neko ovde fajl za to, pre... 3-4 meseca ?
> - Kako ( rok bio JUKuce , provizija -moguca :) ) iz DOS-a, pod
> Clipperom, okrenuti stampu na LandScape ?
Zavisi na kom laseru ;) Jedino ako to hardverski podržava.
clipper.1000d.petrovic,
Straaaašno :(
Sledeći program ovo izlista na ekranu i lokalnom štampaču korektno.
Ako je kapčer uključn na ekranu izlista kako treba, a na mrežnom štampaču
odštama POSLEDNJI slog pa redom od prvog do pretposlednjeg.
Novel je 3.12
===========================
Proc Main(d)
Field X_DB, X_Alias, X_Path
Use ("AS" + d + "DB") Index ("AS" + d + "DB")
Set Printer On
dbGoTop()
Do While ! Eof()
? " " + X_DB + " " + X_Alias + " " + X_Path
dbSkip()
EndDo
Set Printer Off
===========================
a Capture Sh je...
===========================
LPT1: Capturing data to server TEHNISS queue MATRICNI.
User will not be notified after the files are printed.
Capture Defaults:Disabled Automatic Endcap:Enabled
Banner :(None) Form Feed :No
Copies :1 Tabs :No conversion
Form :0 Timeout Count :15 seconds
LPT2: Capturing data to server TEHNISS queue LQ_SERVER.
User will not be notified after the files are printed.
Capture Defaults:Disabled Automatic Endcap:Enabled
Banner :(None) Form Feed :No
Copies :1 Tabs :No conversion
Form :0 Timeout Count :15 seconds
LPT3: Capturing Is Not Currently Active.
clipper.1001bulaja,
│- Kako naterati HP laser da iz DOS-a, pod Clipper programom, stampa
│YU-slova ?
└───
Ako ima ugrađena naša slova (4* i noviji modeli imaju CP852) samo
aktiviraj tu kodnu stranu - kontrolna sekvenca je Esc (17U za CP852.
Ako nema ugrađena naša slova, mora se downloadovati YU font na štampač i
aktivirati pre štampanja. Font se može napraviti u nekom od soft font
editora (najpoznatiji je valja neki prastari Bitstream, samo ja nisam ni
jednim zadovoljan:) ili koristiti već gotove recimo iz neke Venture za
DOS (.SFP/.LFP) ili ChiWriter-a (konvertovao je one njegove .LFT u .HP
koji se downloaduju na štampač). žini mi se da su neki fontovi koje je
Hermes svojevremeno davao uz stare HP LaserJet slati u PC.HARD:laseri i
to dosta skoro.
Glavni problem kod softverskih fontova je što se ne mogu koristiti
specijalna efekti kao što su promena veličine, bold ili italic (bar ja
do sada nisam pronašao način), već se mora download-ovati svaka
varijanta fonta i onda interno u programu selektovati određeni font.
Ovo komplikuje pravljenje internih drajvera za štampač, pošto program
uvek mora znati u kakvom je stanju štampač (koja veličina i tip slova su
trenutno izabrani) da bio mogao da selektuje ispravni font.
│- Kako ( i sve o tome :) ) naterati HP laser da pod DOS-om iz Clippera,
│radi kondenzovanu stampu ?
└───
Lako - Esc &k2S selektuje kompresovani (16.6 cpi) ispis za interne
fontove, a za softverske samo izabereš onaj koji je mali :).
│- Kako ( rok bio JUKuce , provizija -moguca :) ) iz DOS-a, pod Clipperom,
│okrenuti stampu na LandScape ?
└───
Esc &l1O, vraćanje u portrait Esc &l0O. Proviziju primam :).
clipper.1002jolicm,
rep FW biblioteka
Izvinjavam se svima.
Obećao sam da ću pregledati FW biblioteku (to je ono za Windovse) i pokušati da
zaustavim prikazivanje onog ekrana o registraciji programa.
I tada mi istekla pretplata za SEZAM.
Dobio sam biblioteku.
Izdelio je na objektne module. Utvrdio sam koji .obj fajl ispisuje poruku o
neregistrovanoj verziji. I tada su mi se izlegla za sada 2 nerešiva problema.
Pokušaj disasembliranja tog .obj modula sa OBJ2ASM nije uspeo. Neće pa neće,
zaglavi mašinu. Probao sam i neke moje .ASM (.obj) module da disasembliram sa
njim, i na mojim programima se zaglavio, a ništa nestandardno nisam koristio.
Pošto nemam debuger ili bilo koji drugi alat za dibagerisanje pod windovsima,
za sada se priča završava na tome da nisam uspeo.
Inače ni jedan drugi .obj fajl ne poziva (vidljivo) proceduru za
registraciju.(govorim o .obj iz .lib datoteke)MMMMMM.
I
Biblioteka dosta lepo izgleda u radu. Funkcije u njoj su jako moćne i
prepraviti neki jednostavan clp.prg da radi pod win. izgleda jako jednostavno.
Ali. Da se i razbije zaštita oko registracije biblioteke, ostao bi još VEĆI
PROBLEM. kolio sam razumeo: Da bi se Vaš program izvršavao i na drugom računaru
morate da pokrenete program za registraciju samog tog .EXE programa.
Sumirano: Postoje 3 NIVOA ZAŠTITE same biblioteke.
1. Sama poruka o neregistrovanoj verziji biblioteke NA VAŠEM RAžUNARU.
2. Na korisničkom (ciljnom) računaru verovatno neće ni da radi uopšte.
3. NG fajl sadrži spisak svih funkcija FW biblioteke, ALI za POLOVINU FUNKCIJA
nisu dali ni broj, a kamoli vrstu parametara, a kamoli kamoli šta tačno radi.
Pozdrav.
clipper.1003mdrazic,
> Kreirajte bazu sa numeric poljem sa imenom field
>
> Pregledajte bazu nakon ovoga sa aktiviranim indexom.
A bazu nazovite M.DBF i pokušajte da je pregledate pomoću DBU ;))
Milan
clipper.1004snemcev,
Subject: Protected mode & mouse driver
Jedno pitanje: ako se drajver za miša koristi u protected modu, sve je
OK dok se ne aktivira grafički kursor u tekst modu, a onda sledi GPF.
Why? Samo nebo zna... ili još neko zna?
clipper.1005evlad,
<> Pošto nemam debuger ili bilo koji drugi alat za dibagerisanje pod
<> windovsima, za sada se priča završava na tome da nisam uspeo.
Imaš kod mene TDW, kad me zoveš na pivo,sok,kafu ... O:)
clipper.1006rccomp,
>> ... Esc &l1O, vracanje u portrait Esc &l0O. Proviziju primam :)
Zaista je odgovor bio konkretan, opsiran, vrlo tacan i koristan :)
Ja sam, u medjuvremenu, iskoristio izvanredne funkcije iz SUPER35.LIB
( a, zasto je ovde niko ne koristi ?) i sve radi kako treba. Jedino sto
je ostalo da poslusam tvoj savet oko kodne strane posto je u pitanju
HP 4l.
Provizija, ce biti isplacena u vreme, i na mestu, koje tebi najvise
odgovara.
clipper.1007cnenad,
=> A bazu nazovite M.DBF i pokušajte da je pregledate pomoću DBU ;))
Neverovatno je da datoteka ne može imati ime od samo jednog slova kao i da
ime ne može više počinjati brojevima, valjda od verzije 5.01 ili 5.2 ?
Zbog toga sam u delu programa gde korisnik sam daje imena bazama morao da
uradim ograničenja po ovom pitanju. Nema brojeva uopšte, mada je moglo da
se dotera da ga nema na prvom mestu, a ako unese samo jedno slovo na njega se
dodaje underscore.
Inače, mnogo gora stvar koja me nervira je tretiranje slogova koji su ušli
u indeks sa klauzulom UNIQUE. Ako se promemeni takav slog tj. vrednost koja
je u ključu mora se raditi REINDEX ili nešto slično.
Katastrofa.
clipper.1008jolicm,
Naziv datoteke ne moze biti samo od jednog slova ili broja baš zbog
kompatabilnosti sa somer87. To je zbog Aliasa radnih oblasti, ili nešto tako,
koliko se sećam. Select 1 je prva radna oblast, a ne 1.dbf, a za ovo nisam
siguran paš 100% ali SELECT A isto znači SELECT 1 (prva radna oblast).
Inače sa UNIQUE sam davno pravio neki program i po sećanju) nisam imao problema
sa potrebnom reindeksacijom (da je uopšte potrebna).
I nemoj bre da na clipper vičeš katastrofa. LJudi su uradili kako su najbolje
umeli.
clipper.1009jolicm,
>> INDEX ON STR(1/...)
Zašto ne Index on polje DESCEND ?? za tačnu sintaksu descend ili descended
nisam siguran.
clipper.1010d.petrovic,
> Straaaašno :(
Jeste ;) Nije da volim da sebi repliciram...
...
Do While ! Eof()
? " " + X_DB + " " + X_Alias + " " + X_Path
dbSkip()
EndDo
? <- Ovo rešava problem
Set Printer Off
===========================
Problem je bio u tome što mi FX-1000 na serveru pri ovakvoj štampi
zadržavao u memoriji poslednji red, a zatim je taj red pri sledećoj
štampi izbacivao kao prvi.
clipper.1011rccomp,
>> Problem je bio u tome sto mi FX-1000 na serveru pri ovakvoj stampi
zadrzavao u memoriji poslednji red, a zatim taj red pri sledecoj
stampi izbacivao kaoo prvi
Problem nije ni u tvom FX-1000 ni u tvojoj mrezi. Tako ce ti se ponasati
svaki stampac pa i neki buduci FX-9999 u jednokorisnickom okruzenju, ili
na bilo kom Novellu, zakljucno sa verzijom 999.99. : ((
clipper.1012mdrazic,
> U mrezi moras da definises posebno, a SUPERVISORi nisu odusevljeni sa
> FILE HANDLES=100 i programima koji otvaraju 64 datoteke !
Potvrđujem. Ali, iz iskustva, to je u 99% slučajeva zato što ne znaju
kako da povećaju default 40 hendlova po stanici :)
Milan
clipper.1013nbatocanin,
> - Kako naterati HP laser da iz DOS-a, pod Clipper
> programom, stampa YU-slova ?
Prosto :) Ako podržava CP 852, pošalješ mu <27>(17U i štampaš. Kodove
naših slova ne znam napamet, ali imaš ih u CP852 kodnoj strani. Ako
ne podržava, onda mu pošalješ dowload font pre štampanja i dalje
voziš.
> - Kako ( i sve o tome :) ) naterati HP laser da pod DOS-om
> iz Clippera, radi kondenzovanu stampu ?
Na primer:
CONDENSE ON - <27>(s17H
CONDENSE OFF - <27>&k0S
> - Kako ( rok bio JUKuce , provizija -moguca :) ) iz DOS-a,
> pod Clipperom, okrenuti stampu na LandScape ?
Opet prosto, samo pošalješ pre štampanja kod za landscape (ne znam ga
napamet).
clipper.1015nbatocanin,
> Glavni problem kod softverskih fontova je što se ne mogu
> koristiti specijalna efekti kao što su promena veličine,
> bold ili italic (bar ja do sada nisam pronašao način), već
> se mora download-ovati svaka varijanta fonta i onda
> interno u programu selektovati određeni font.
Imao sam ja neki program koji to omogućuje, sa još mnogo
interesantnih efekata: na osnovu jednog fonta daje italic, razne
veličine, outline, ...
clipper.1016nbatocanin,
> U mrezi moras da definises posebno, a SUPERVISORi nisu
> odusevljeni sa FILE HANDLES=100 i programima koji otvaraju
> 64 datoteke !
Zašto mora posebno? To što je ovaj parametar ugrađen u EXE ne znači
da će stvarno toliko i biti korišćeno - koristiće se onoliko koliko
treba. A programi koji otvaraju 100 datoteka... Šta se tu može.
clipper.1017snemcev,
Subject: memory()
Ajmo još jedno pitanje. :)
Clipper u .ng-u obrašnjava funkciju memory() i kaže da ona za prosleđene
parametre vraća:
0 Estimated total space available for character values
1 Largest contiguous block available for character values
2 Area available for RUN commands
Isti taj Clipper u jednom od demo primera (source\vm\testbed.prg) navodi
u pozivima funkciji memory() i parametre 4, 101 i 104 i ne obraćajući
baš mnogo pažnju na .ng sve parametre vrlo deskriptivno opisuje kao:
0 Swap
1 Lg object
2 Run
4 EMM
101 FM
104 Idle Conven
Ajde, ovo za 0 i 2 je jasno, 4 bi trebala biti EMS memorija u upotrebi
(koj' mu reče da stavi EMM?!), al' šta su mu 2, 101 i 104? Ono 'Lg
object' može da bude 'largest object', a ovo ostalo? Da stvar bude još
interesantnija, Clipper i za parametar 3 vraća neku vrednost, al' šta ta
znači, to se baš nigde u onome što je meni palo pod ruke ne spominje.
clipper.1018stanic,
Thanks, to je to. Trebalo mi je samo objašnjenje cele stvari.
clipper.1019cnenad,
=> nisam siguran paš 100% ali SELECT A isto znači SELECT 1 (prva radna
Tačno.
=> oblast). Inače sa UNIQUE sam davno pravio neki program i po sećanju) nisam
=> imao problema sa potrebnom reindeksacijom (da je uopšte potrebna).
Ok. Napravi neku bazu i napravi TAG sa UNIQUE klauzulom. Aktiviraj taj
indeks. Kad u tbrowse-u ili bilo kom drugom pregledu izabereš neki od
podataka neka ti da drugi Tbrowse-e, gde je aktivan drugi, normalan TAG bez
UNIQUE klauzule, gde će biti prikazani SVI slogovi koji su isti kao i onaj
koji je ušao u TAG sa UNIQUE klauzulom. Zatim, promeni taj slog koji je u
TAG-u UNIQUE i vrati se u prvi Tbrowse pa ćeš videti o čemu pričam.
U principu ovo smatram za vrlo problematičnu stvar. Programe koje sam do
sada video nije ovo pogodilo a znaš zašto ?
Zato što se koristi recimo:
WHILE !eof()
sx_dbskipunique()
? slog
END WHILE
=> I nemoj bre da na clipper vičeš katastrofa. LJudi su uradili kako su
=> najbolje umeli.
Mogu reći sa današenjeg stanovišta, potrudili su se najbolje što su mogli.
Tada kad je napravljen, bio je zver, danas....
clipper.1020snemcev,
>> Problem je bio u tome što mi FX-1000 na serveru pri ovakvoj štampi
>> zadržavao u memoriji poslednji red, a zatim je taj red pri sledećoj
>> štampi izbacivao kao prvi.
Pa sad ti zadržava onaj prazan red. :) Što mu ne pošalješ jedan Chr(12)
na kraju štampe, to bi trebalo da ga opameti.
clipper.1021ndragan,
/ ovo pravio za laser ? ;)) ili ti ne definišeš slova softverski (ni to,
/ koliko znam, niko nije pravio za laser)
Pravio ja, 1989, iz Mfox+ slao DL slova (dva .sfp fonta), i to sam još
uvatio onaj drugi krupan font (beše 24 tačke ili tu negde) pa
poizbacivao sva slova osim potrebnih mi deset edabi arčio manje
memorije. E sad, bem li ga ako to još imam, al' znam gde se nalazi.
Naravno, fontove baš nisam pravio - poslužio sam se gotovim.
clipper.1022d.petrovic,
>>> INDEX ON STR(1/...)
> Zašto ne Index on polje DESCEND ?? za tačnu sintaksu descend
> ili descended nisam siguran.
To je njegova stvar, ali, ako hoćeš složeni ključ gde sortiraš po godinama
starosti pa po opadajućem ... onda moraš da deliš.
clipper.1023d.petrovic,
> je ostalo da poslusam tvoj savet oko kodne strane posto je u
> pitanju HP 4l.
Moj 4L nema CP852
clipper.1024d.petrovic,
> Pa sad ti zadržava onaj prazan red. :) Što mu ne pošalješ jedan
> Chr(12) na kraju štampe, to bi trebalo da ga opameti.
Zato nisam dosad ništa ni primetio. Svi ostali programi to rade, ovaj
sam sklepao na brzinu da mi izlista jednu bazicu...
clipper.1025ikordic,
RE: Programiranje Lasera
=> Imao sam ja neki program koji to omogućuje, sa još mnogo
=> interesantnih efekata: na osnovu jednog fonta daje italic, razne
=> veličine, outline, ...
'Ajde pogledaj dal' ga imaš ako ti nije problem, ovo bi meni dobro došlo...
clipper.1026rccomp,
>> ... Moj 4l nema CP852....
Isti ti k'o moj !
( Isto tako prljav :) )
clipper.1027rccomp,
>> ... ;Ajde'Ajde pogledaj dal' ga imas ako ti nije problem, ovo bi meni dobro
doslo...
Sve moguce probleme sa laserima resava, fenomenalna, Super35.LIBib !!!!
Nju ovde , naza;lostlost, niko ne koristi.
Italic, UnderLine, Bold, razlicite velicine slova i sl. radi bez problema.
Cak se moze odrediti i broj kopija nekog dokumenta, obzirom da laser
ne prima NCR papir. Kondenzovana stampa, LandSpace, Portait i sl. su
takodje podrzane.
Obzirom da sam ja pokrenuo ovu diskusiju sa laserima, red je da na kraju
iznesem i svoja iskustva. Probajte SUPER35.LIB pa ce te videti. :)
Puno su mi, svojim savetima, predlozima, primedbama, pomogli bulaja, jpinta
i nbatocabin. Hvala im !
clipper.1028jolicm,
Rep index on str(1/...)
E ako ne valja desended ima bolje rešenje od onog sa deljenjem, sigurno !
INDEX ON (XXXXX-POLJE)
Gde je ono XXXXX maksimalna vrednost koju polje može da primi !
I to je to.
A ako je u složenom ključu, i tada je valjda brže STR(XXXX-polje) od STR(1/XXX)
(oduzimanje su valjda rešili da bude brže od deljenja)
Pozdrav.
clipper.1029jolicm,
>> pa ćeš videti o čemu pričam.
E sad da ne navodim celu poruku kao reply.
Po tome kako si napisao predlog za primer za proveru unique indeksa ispada:
Kada si u Tbrowseu (prvom) i kada prelaziš na tbrowse (drugi) i tamo nešto
menjaš, MORAŠ da u prvom "zapamtiš" na kom si slogu, jer ako u drugom mrdneš sa
sloga, a i u prvom i u drugom vršiš pregled jedne datoteke, tada si izgubio
mesto na kom se nalaziš (RECNO()) i ode ceo sistem do vraga.
E to važi i za obične indekse, i za "unique" indekse i čak ako radiš bez
indeksa.
E naj za******je je kada radiš sa unique.
Na primer u prvom prgledu gde je unique i slogovi 1,2,3,4,5 su po tom pitanju
isti se nalaziš na recno()=2, a kada uđeš u sledeći browse gde se pregledaju
samo tih 5 slogova, tebi browse ili go top sa filterom ili sa set scope pređe
automatski na recno()=1, i da ne mrdaš ništa sa kurzorima već se odmah vratiš
sa ESC, u prvi browse ti si na prvom slogu, a ne na slogu 2, kako ti tbrowse
očekuje, i tada eto belaja.
Sad kad čitam ovu poruku i meni izgleda malo nejasna, ali probaj da pratiš
smisao. Po onom tvojem objašnjenju sam siguran da Ti grešiš u programu, i da ti
je potrebno da se samo vratiš na prvobitni slog.
I nemoj da vičeš na clipper :)
clipper.1030whitie,
Bojim se da se ne razumemo.
-->> Zasto mora posebno?
Znaci li to da mozes u programu redefinisati konfiguraciju predhodno
vec procitanu iz NET.CFG ( SHELL.CFG )? Ajd' objasni kako; to je vrlo
korisna stvar. Vazi li to i za frejm red iz link protokola ?
-->> To sto je ovaj parametar ugraden u EXE ne znaci da ce stvarno toliko
-->> i biti korisceno - koristice se onoliko koliko treba.
Resursi zauzeti sa CONFIG.SYS ( FILES= ) i NET.CFG ( FILE HANDLES= )
ostaju rezervisani koristio/ne koristio. Ili opet gresim ?
-->> A programi koji otvaraju 100 datoteka...
Traze ekstra memoriju na serveru. I bez toga, Netwer 2.x je ogranicen na
1000 fajlova ( predefinisano 600 ) -> znaci 4-5 korisnika jednovremeno. Bilo
koji server, opet ce zestoko da se uspori ovim poklonom.
-->> Sta se tu moze.
Del. I nista drugo !!
Kolega je otvorio ( i ostavio otvorene ) tolike fajlove samo da bi proverio
da nisu probili demo granicu od 10/100 slogova ...
clipper.1031cnenad,
=> tamo nešto menjaš, MORAŠ da u prvom "zapamtiš" na kom si slogu, jer ako u
To je odavno urađeno.
=> Sad kad čitam ovu poruku i meni izgleda malo nejasna, ali probaj da pratiš
Potpuno je jasna.
=> smisao. Po onom tvojem objašnjenju sam siguran da Ti grešiš u programu, i
=> da ti je potrebno da se samo vratiš na prvobitni slog.
Ne, nažalost kod izmene mora REINDEX.
Samo objašnjenje postoji u NG-u kod naredbe SET UNIQUE.
***
Changing key values in a unique index has important implications.
First, if a unique key is changed to the value of a key already in the
index, the changed record is lost from the index. Second, if there is
more than one instance of a key value in a database file, changing the
visible key value does not bring forward another record with the same
key until the index is rebuilt with REINDEX, PACK, or INDEX...UNIQUE.
***
=> I nemoj da vičeš na clipper :)
Viče on, ponekad ;)
clipper.1032aris,
Verovarno je o ovome bilo dosta reci ovde, ali...
Potrebno je da u clip programu KKKbno je u clip programu editovati ASCII
datoteku od 300-400k. Do sada su fe.obj i fec.obj iz fastedita obavljali
posao ali ovo je izgleda krupan zalogaj. Koristim funcky lib, ali i tu
sam naisao na neocekivane stvari. Ako neko ima resenje neka kaze.
Vlada.
ps. potrebno uputstvo za codebase.
clipper.1033kile,
>> Sve moguce probleme sa laserima resava, fenomenalna, Super35.LIBib !!!!
>> Nju ovde , naza;lostlost, niko ne koristi.
Ne budi tako siguran :)
clipper.1034nbatocanin,
> 'Ajde pogledaj dal' ga imaš ako ti nije problem, ovo bi
> meni dobro došlo...
Važi, pogledaću.
clipper.1035markoc,
>> Nemojte ni slučajno da ga poslušate, nego stavite
>>
>> SHARE /L:255 /F:12500
>>
>> Ova konjbinacija je nenad...iva. Ako vam je malo
>>memorije, izvolte se experimentisati.
>>
>> Mali hint: NE DIZATI GA ( s'oproštenjem ) u UMB!
>>>>>
Nemojte ni slučajno da ga poslušate, jer ako stavite
SHARE /L:255 /F:12500 (nisam ga dizo)
sleduje Vam... SOME where .AND. SOME times u vašem programu:
Error DBCMD/2001 Workarea not in use: DB...
žuj, žITO... PROBO !
Možda sam malu zabunu napravio, jer nisam naveo da se radi o jednoj
staroj 386 (na 20 Mhz) sa 1 MB, u jednoj maloj firmici, na kojoj se
vrti samo nešto malo FINANSIJSKOG KNJIGOVODSTVA i gde o nekim
WINDOWSIMA (tj. MULTI TASKING aplikacijama) nema ni govora, a taj
SHARE neko verovatno tu ubacio jer to vid'o u nekom drugom CONFIG.SYSu.
>> Baj'd'vej SHARE vam ne treba ako Clipper aplikacija nije
>>za mrežu, ali će vam Corel kukati ako ga arčite.
Tj. SHARE.EXE vam treba ako vrtite neku MULTI TASKING aplikaciju
(Windows, DesqView, MultiDos...) na singl user mašini, ili na mreži
za MULTI USER programe.
žinjenica je da se CL52 i SHARE (na SINGL USER mašinama) baš ne mirišu.
Nedavno je ovde bezuspešno pokušavano da se pomogne Kolezi oko otvaranja
većeg broja datoteka, dok on sam nije otkrio da ga muči... čik pogodite ko?
Neka vam je CLIP na pomoći, Solajac.
clipper.1036d.petrovic,
> A ako je u složenom ključu, i tada je valjda brže
> STR(XXXX-polje) od STR(1/XXX) (oduzimanje su valjda rešili da
> bude brže od deljenja)
Pitaj zkr. - a:
"Ustavno pravo svakog građanina je da ima svoju ličnu perverziju." ;)))
clipper.1037d.petrovic,
> Isti ti k'o moj !
Nije kaljav, al' koliki je ? ;)
clipper.1038d.petrovic,
> Potrebno je da u clip programu KKKbno je u clip programu
> editovati ASCII datoteku od 300-400k. Do sada su fe.obj i
> fec.obj iz fastedita obavljali posao ali ovo je izgleda krupan
> zalogaj. Koristim funcky lib, ali i tu
Mislim da bi moglo (nisam probao sa tolikim fajlovima) :
FT_DFCLOSE() Close file displayed by FT_DISPFILE()
FT_DFSETUP() Set up parameters for FT_DISPFILE()
FT_DISPFILE() Browse a text file
NANFOR.LIB
Jel uspeo neko da mu stavi boju koju hoće ?
clipper.1039whitie,
-->> Subject: memory()
Kako to rade drugi ...
/* MEMORY.PRG Tom Groeger 1993
Sound & Vision for Clipper (c) Demonstration Code */
@ 6, 5 SAY 'Conventional Memory KByte' //Mem(0)
@ 7, 5 SAY 'Free Swap-Memory KByte' //Mem(0)+MEM(103)
@ 8, 5 SAY 'Largest StringObject KByte' //Mem(1)
@ 9, 5 SAY 'Free Run-Memory KByte' //Mem(2)
@ 10, 5 SAY 'String/Array Memory KByte' //Mem(3)
@ 11, 5 SAY 'Available EMS-Memory KByte' //Mem(4)+(105)
@ 12, 5 SAY 'Locked Heap-Segments KByte' //Mem(101)
@ 13, 5 SAY 'Segments in Heap' //Mem(102)
@ 14, 5 SAY 'Unused Conv. Memory KByte' //Mem(104)
clipper.1040mdrazic,
> Po tome kako si napisao predlog za primer za proveru unique indeksa
> ispada: Kada si u Tbrowseu (prvom) i kada prelaziš na tbrowse (drugi) i
> tamo nešto menjaš, MORAŠ da u prvom "zapamtiš" na kom si slogu, jer ako u
> drugom mrdneš sa sloga, a i u prvom i u drugom vršiš pregled jedne
> datoteke, tada si izgubio mesto na kom se nalaziš (RECNO()) i ode ceo
A može ista tabela da se otvori i dvaput pod dva aliasa, pa onda imaš i
dva pointera.
> sistem do vraga. E to važi i za obične indekse, i za "unique" indekse i
> čak ako radiš bez indeksa.
> E naj za******je je kada radiš sa unique.
Primetio sam problem sa unique indeksima zbog čega ih ne koristim.
Poznato je da kreiranje indeksa ne uzima u obzir brisane zapise (deleted).
I oni se nađu u običnom (ne unique!) indeksu, ali se prilikom skip-ovanja
preskaču brisani zapisi. Kada obrišeš zapis to nema efekta na indeks.
Unique indeksi ubacuju u index samo različite ključeve, i to prve na koje
naiđu, pogađate, opet ne vodeći računa o deleted flagu :(. Zato će
akcija brisanja zapisa i ponovnog upisivanja sa istim ključem rezultirati
u nemogućnosti pristupa drugom (novom) zapisu pošto je u indeksu prvi
(brisan) zapis koji je označen za brisanje, pa se preskače. Šta sve još
može da se desi zbog ovoga prepuštam vašoj mašti.
> I nemoj da vičeš na clipper :)
Nije Clipper kriv, već filozofija rada indeksa (valjda još od dBase III)
koji mora da omogući stalno menjanje set deleted on/off u programu bez
regenerisanja indeksa (tj. da ovi ne zavise od tih flagova).
Milan
clipper.1041velicko,
>+ A može ista tabela da se otvori i dvaput pod dva aliasa, pa
>+ onda imaš i dva pointera.
Ovo isprobano radi, ali ... negde sam pročitao preporuku
od strane CA, da to NIJE preporučljivo koristiti :((
Kad smo već kod pointera:
Nikako mi nije jasno kako se ne sete da dodaju za svaku
zonu još po jedan pointer na prethodni i sledeći slog.
Može da se simulira f-jom koja "se šeta" ali to je
krpljenje, i unosi puno usporenja. Tako nešto mi je trebalo
u više navrata.
velicko
clipper.1042velicko,
Šta bi sa clipperom 5.3 ?
Utisci?
Mogućnost nabavke?
Nešto se plašim da ovi iz CA ne odustanu od DOS-a :(
velicko
clipper.1043fric,
> žinjenica je da se CL52 i SHARE (na SINGL USER mašinama)
> baš ne mirišu.
Ako je (iz bilo kog razloga) na računaru aktiviran share,
uspešnost otvaranja i zaključavanja fajlova na _lokalnim_
diskovima (bio računar u mreži ili ne) zavisi od toga da
li je share aktiviran sa dovoljno velikim vrednostima.
Ako share mora da postoji, a na lokalnom disku se vrti
aplikacija koja otvara recimo 100 ili više fajlova, parametri
/F i /L moraju imati dovoljno velike vrednosti. Parametrom /F
se alocira prostor za 'file sharing information'(default 2048).
Za svaku otvorenu datoteku se troši prostora za puno ime
datoteke plus 11 bajtova. /L diktira broj istovremenih
zaključavanja (default 20).
Zašto je tebe zezao share ? Tko zna, možda zbog dizanja gore,
ili zbog nekih problema nije uspeo da alocira zadatu
količinu memorije za 'file sharing information', već mnogo
manje pa otvaranje n+1 - og fajla nije uspelo, select (tj.
'area in use') je ostao prazan i javio je što je javio.
clipper.1044mdrazic,
>> + A može ista tabela da se otvori i dvaput pod dva aliasa, pa
>> + onda imaš i dva pointera.
>
> Ovo isprobano radi, ali ... negde sam pročitao preporuku
> od strane CA, da to NIJE preporučljivo koristiti :((
I ja sam to pročitao :)) ali bez problema otvaram istu tabelu dvaput,
doduše ažuriranja radim samo u jednom prostoru, a u drugom samo pregledam
podatke bez promena. Do sada nikakvih problema nije bilo.
> Kad smo već kod pointera:
> Nikako mi nije jasno kako se ne sete da dodaju za svaku
> zonu još po jedan pointer na prethodni i sledeći slog.
Može da bude JAKO sporu u slučaju da je tabela pod filterom ili da oko
sloga ima dosta brisanih zapisa. Svaki seek bi bio bar triput sporiji.
Milan
clipper.1045snemcev,
Subject: Re: memory()
>> /* MEMORY.PRG Tom Groeger 1993
>> Sound & Vision for Clipper (c) Demonstration Code */
Tnx, neäto novo sam nauüio. Svakoga dana u svakom pogledu.... :)
clipper.1046nbatocanin,
> Znaci li to da mozes u programu redefinisati konfiguraciju
> predhodno vec procitanu iz NET.CFG ( SHELL.CFG )?
Ne, definitivno se nismo se razumeli :) Prva stvar je koliko ti
operativni sistem dozvoljava da otvoriš datoteka. U kombinaciji
DOS/Novell to se reguliše sa CONFIG.SYS i NET.CFG. Naravno da ovo
nema nikakve veze sa brojem hendlova koji program ZAISTA koristi, ako
ga ne premašuje. Ovo se može programski promeniti (na primer, QEMM to
radi), ali nisam probao.
Sledeća stvar je koliko program koristi hendlova. Maksimalan broj je
određen sa default vrednošću 20 ili sa SET CLIPPER= ili sa //F: ili
sa BLINKER EXECUTABLE. Po literaturi, za svaki rezervisani handl
odvaja se 2 bajta, što je zanemarljivo. Koliko će program zaista
iskoristiti, nije bitno. Meni u link skriptu uvek stoji //F:70, bez
obzira što mi neki programi koriste tek 10-15. A bogami, ima i onih
što koriste i svih 70.
> Del. I nista drugo !!
Eh, sad. Mogu ti reći da sam neke obrade jedva sveo na 70 hendlova
(koristim NTX indekse), ali sam prestao sa optimizacijom kad sam
video da VO traži da se u CONFIG.SYS ubaci 120 hendlova ;)
clipper.1047nbatocanin,
>> Potrebno je da u clip programu KKKbno je u clip programu
>> editovati ASCII datoteku od 300-400k.
Jesi li probao CLText? Drugo rešenje koje će sigurno upaliti bez
komplikacija je RUN neki_editor.
clipper.1048bulaja,
│Šta bi sa clipperom 5.3 ? Utisci? Mogućnost nabavke?
│Nešto se plašim da ovi iz CA ne odustanu od DOS-a :(
└───
Zvanično je izašao još sredinom jula, samo ga ovde niko još nije video (?).