clipper.1ppekovic,
TBrowse, GET, MemoEdit, DBF, NTX, ... jednom rečju: CLIPPER.
Paya
clipper.2dpaun,
Bilo bi korisno za Clp braću kad bi neko ispisao ovde makar osnovne komande
i opcije programa Lib.exe. Ja sam "nabadajući" uspeo da savladam problem
dodavanja i oduzimanja mog Obj fajla u Extend.lib. Koje su ostale
mogućnosti? Kako, na primer, da "vidim" sadržaj biblioteke?
dPaun
clipper.3banex,
Da prebacim ovo iz starog pc.prog-a, pošto mi niko nije
odgovorio, a siguran sam da ima onih koji znaju odgovor ;)
>> Kad smo već kod 5.01 klipera, da li neko zna u čemu je
>> problem kod sledećeg primera:
>>
>> Source datoteke (.prg) su rađene u starom kliperu (summer 87),
>> i kada ih proteram kroz kliper 5.01 tako da on sam pronalazi
>> odgovarajuće, napravi jedan .obj koji se bez problema linkuje sa
>> Rtlinkom. Exe program dalje radi bez problema.
>>
>> Ako te iste .prg datoteke kroz novi kliper proteram sa /m svičem,
>> da mi napravi za svaku po jedan .obj file, tada pri linkovanju
>> izbaci za svaki po jedan error i prekine rad sa porukom da su to
>> kliper87 funkcije (ili tako nešto ;) ?
>>
>> Da li bih trebao da koristim neki svič za rtlink u tom
>> slučaju, nisam se baš mnogo bavio istim?
>>
CU! -BANE-
clipper.4snemcev,
Da li neko ima problema sa Clipper-ovim funkcijama SAVESCREEN i
RESTSCREEN? Pišem ja danas nešto u poput
x := SAVESCREEN( x1, y1, x2, y2)
i kasnije
RESTSCREEN( x1, y1, x2, y2, x )
i dobijem - brlju! Naime, prvi red je na svom mestu, ali svaki
sledeći je za po jedno mesto pomeren udesno?!? Uz pomoć CLD-a
sam pratio vrednost promenljivih sa kojima radim, ali one (kao
što je i za očekivati) ne menjaju vrednost. Ali, usput sam na ?
LEN( x ) dobio neočekivan odgovor - 2100!?! Po mojoj računici
LEN( x ) bi trebalo biti (y2-y1+1)*(x2-x1+1)*2 što je tačno 272
bajta (4 reda u 34 kolone). A šta je sa ostatkom od 1828
bajtova? E pa posle 4 sata traženja nepostojeće greške, konačno
sam pronašao u čemu je stvar - rezultat funkcije SAVESCREEN sam
koristio kao inicijalizator prilikom dekleracije promenljive x
( LOCAL x := SAVESCREEN(...) ). žim promenljivoj x vrednost
dodelim posle dekleracije, sve je OK, ali to ne mogu da uradim
TOKOM dekleracije. Jel i ovo piše negde u dokumentaciji pod
naslovom 'Napredne tehnike'? Ili bi ipak trebalo biti u delu
nimalo prozaičnog naslova 'Bubice'?
clipper.5bulaja,
│Bilo bi korisno za Clp bracu kad bi neko ispisao ovde makar osnovne
│komande i opcije programa Lib.exe.
└───
Pa i nema mnogo opcija - dodavanje modula u bibiloteku, njegovo uklanjanje
ili izdvajanje i listanje sadrzaja. Spisak opcija dobijas sa lib /? (ili lib
/help) ukoliko koristis Microsoft-a, ili sa tlib bez argumenata za Borlandov
lib manager.
clipper.6ciki,
>**> >> Ako te iste .prg datoteke kroz novi kliper proteram
>**> >> sa /m svičem, da mi napravi za svaku po jedan .obj
>**> >> file, tada pri linkovanju izbaci za svaki po jedan
>**> >> error i prekine rad sa porukom da su to kliper87
>**> >> funkcije (ili tako nešto ;) ?
>**> >>
>**> >> Da li bih trebao da koristim neki svič za rtlink u
>**> >> tom slučaju, nisam se baš mnogo bavio istim?
>**> >>
Ho!
Vidis ovako, i ja sam u pocetku imao problema sa time, ali sada
je sve Ok.Kako sam ja skontao(sto nemore da je tacno ali sljaka),
unutar fajlova koje zelis da prevedes sa /m MORAS imati kod koji
je iskljucivo smesten u PROCEDURE ili FUNKCIJE.
Znaci ako u MENI fajlu imas nesto kao:
MENI.PRG
....
Do case
case nIzbor==1
Do Knjizi()
.....
žžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžž
Ovaj fajl recimo samo poziva proceduru iz fajla SENGI_1.
SEENGI_1.PRG
Procedure Knjizi()
local......
...........
Kada ga vezujes, imas LNK bazu sa
fi MENI
fi SENGI_1
...
Pozdrav Ciki!
clipper.7ciki,
Ho!
Samo preleteh pogledom odgovor, pa rekoh da i ja da probam.
1.) Ako imas masm 6.0 tamo imas nesto sto se zove quickh ili
tako nesto, gde stoje lepo odgovori i kompletan spisak
switch-ova.
2.) Cini mi se da je d.petrovic trazio od mene da mu ti precedem,´k
pa sam mu ja to UL na mail ili je u staroj pc.prog pa pregledaj
ako ti nije tesko.
3.) Nece svaki LIB da da HELP!!!! :((((
U svakom slucaju puno srece!
Pozdrav Ciki!
clipper.8ciki,
Ho!
Ja sam imao problema inicijalizacijom promenljive prilikom
deklaracije, samo ne sa savescreen vec sa necim II.
Izgleda da prilikom local niz... nece da napravi niz
dimenzija koje treba da primi u fori neke private ili slicne
promenljive?
Pozdrav Ciki!
clipper.9d.petrovic,
Ă> Bilo bi korisno za Clp braću kad bi neko ispisao ovde makar
osnovne
Ă> komande i opcije programa Lib.exe. Ja sam "nabadajući" uspeo da
Ă> savladam problem
Pa osnovne su (ne koristim ga 2 meseca i već zaboravio)
+ add
- del
* move
i još po nešto, ovo ti je mislim dovoljno. Možeš
(ubimedasesetimkako) da izvadiš obj fajl iz biblioteke.
clipper.10d.petrovic,
Ă> Da prebacim ovo iz starog pc.prog-a, pošto mi niko nije
Pa u stvari meni nije jasno šta ti radiš :). Jedina
nekompatibilnost koja mi se dešavala je da sva dodeljivanja (=) moraš
da zameniš sa (:=). Što se ostalog tiče nemoj da pozivaš funkcije i
procedure iz viših nivoa pa ih neće sve strpati, onda nemoj ni da
koristiš /m (nikad nisam probao :)) ) i koristi obavezno (mloooogo ti
olakšava) rmake. Ako ovo nije dovoljno pojasni šta te muči.
Pozdrav, Dejan
clipper.11d.petrovic,
Ă> LEN( x ) dobio neočekivan odgovor - 2100!?! Po mojoj računici
Ă> LEN( x ) bi trebalo biti (y2-y1+1)*(x2-x1+1)*2 što je tačno 272
Ă> bajta (4 reda u 34 kolone). A šta je sa ostatkom od 1828
Za ceo ekran ti treba 4000 bajta. Po dva za svaki karakter koji
snimaš.
clipper.12ppekovic,
>> Pa u stvari meni nije jasno šta ti radiš :). Jedina
>> nekompatibilnost koja mi se dešavala je da sva dodeljivanja (=) moraš
>> da zameniš sa (:=). Što se ostalog tiče nemoj da pozivaš funkcije i
Pri prevodjenju Clipper '87 source-ova na Clipper 5.01 NE MORA se umseto =
stavljati :=. Jedina uočljiva nekompatibilnost je, koliko se sećam bila oko
count, sum i sl. komandi gde rečima FOR i TO treba zameniti mesta.
Paya
clipper.13ciki,
>**> Pa u stvari meni nije jasno šta ti radiš :). Jedina
>**> nekompatibilnost koja mi se dešavala je da sva
>**> dodeljivanja (=) moraš da zameniš sa (:=)
Dejo brkaš IN-LINE i jednostavno dodeljivanje.
Pođi od toga što si rekao.Da li to znači da svaki
a=a+b moras da zameniš sa a+=b...
NARAVUžENIJE:
I jedno i drugo su mogući u 5.01.
>**> Što se
>**> ostalog tiče nemoj da pozivaš funkcije i procedure iz
>**> viših nivoa ...
Što bi rekao Mika Šengi Why not?
To će mu u nekim slučajevima samo smetati.
>**> obavezno koristi (mloooogo ti olakšava) rmake...
E ova ti valja.Ako se čovek odluči za rad sa rmake-om,
evo mu značenje predefinisanih makro-a.
$* - Ime rezultujuće datoteke bez putanje ili tipa
$č - Ime rezultujuće datoteke sa putanjom i tipom
$** - Kompletna lista imena zavisnih datoteka
$< - Puno ime zavisne datoteke koja je aktivirala pravilo.
Pozdrav Ciki!
clipper.14iivanisevic,
Odgovor na 5.1045 iz stare konf.
> Da li neko koristi za linkovanje neki drugi linker osim onog
> koji stize uz Clipper 5.0 ('87)? Prednosti/mane?
Ja koristim:
Turbo Link Version 3.01 Copyright (c) 1987, 1990 Borland International
Syntax: TLINK objfiles, exefile, mapfile, libfiles
Malo je starija verzija, verovatno se mogu koristiti i novije, ali
meni radi posao višestruko brže od onog linkera koji dobijaš uz Clipper.
(Inače ja još koristim Clipper ver. summer '87.)
Ivan
clipper.15d.petrovic,
Ă> Pri prevodjenju Clipper '87 source-ova na Clipper 5.01 NE MORA se
Ă> umseto = stavljati :=.
Mora ! Meni je to zaglupljivalo neke funkcije.
Ă> Jedina uočljiva nekompatibilnost je, koliko se sećam bila oko
Ă> count, sum i sl. komandi gde rečima FOR i TO treba zameniti
Ă> mesta.
Pa sad... meni se to nije dešavalo, ali ako ti kažeš...
P R E D L O G !!!
Hajde svi dajte ovamo iskistva sa prelaska sa summera 87 na
5.01. Izgleda da ima tu dosta sitnica koje jednostavno nisu sve
zakačile.
clipper.16goxx,
U clipper-u 5.01 apsolutno ne mora da se koristi inline dodeljivanje
koje inače i ne postoji u s87. znači može da ostane =, a ne mora da
se stavi := .
clipper.17d.petrovic,
Ă> U clipper-u 5.01 apsolutno ne mora da se koristi inline
Ă> dodeljivanje koje inače i ne postoji u s87. znači može da ostane
=,
Ă> a ne mora da se stavi := .
Beeeeep !
Program koji sam pisao za s87 (oko 70 kb .prg) sam preveo na
5.01.
Za mnoge funkcije i procedure korisim dve kratke funkcije (tada
su još bile procedure) od kojih jedna pribeleži sadržaj ekrana, mesto
i izgled kursora... a druga sve to vraća iz istih promenljivih.
P A č NJ A !!!
Dok tu nisam zamnio = sa := isti program preveden sa 5.01 je
brljavio po ekranu :(((. Ko ne veruje... mogu začas replace := u = pa
da vidi...
clipper.18fric,
> P A č NJ A !!!
> Dok tu nisam zamnio = sa := isti program preveden sa 5.01
> je brljavio po ekranu :(((. Ko ne veruje... mogu začas
> replace := u = pa
Najbolje pošalji ovamo jedno parčence koda koji nije hteo
da radi sa = umesto :=. Ja sam prebacio gomilu ( >> 70 kb sorsa)
koda sa S87 na 5.01 bez prepravki =, programi rade bez greške.
clipper.19goxx,
Verujem ja tebi, ali uradi začas replace := u = pa
da vidimo...
goran
clipper.20mmarkovic,
Primetio sam da je clipper postao tema 9 a bio je 5. Kako da pokupim
datoteke uz poruke ( stare ).
Hvala unapred.
Milan Markovic
clipper.21vili,
Da li je neko probao da poveze program u C-u kompajliran nekim
drugim kompajlerom, a ne Microsoft-ovim?
Vili
clipper.22d.petrovic,
Ă> Primetio sam da je clipper postao tema 9 a bio je 5. Kako da
Ă> pokupim datoteke uz poruke ( stare ).
conf
sh
join (broj uz pc.prog)
li 5 011092+/t
=======--
datum datoteke
clipper.23aleksj,
> Da li je neko probao da poveze program u C-u kompajliran
> nekim drugim kompajlerom, a ne Microsoft-ovim?
Probao i razocarao se u C++. :(
Sve lepo radi dok je u jednostavnijoj formi npr. :
? "clipper" .... printf(' ...
Ali kada dodje do grafike, e tu vec nisam znao sta da radim.
Probao sam sve moguce varijante sa podesavanjima, linkerima,
predproc. fajlovima... i nista!
Ili javi da je prekoracio stack ili jednostavno blokira racunar.
Ako je nekom poslo ovo za rukom neka javi. Zaista bih voleo da
vidim resenje.
clipper.24vcalic,
>>> Da li je neko probao da poveze program u C-u kompajliran
>>> nekim drugim kompajlerom, a ne Microsoft-ovim?
>>
>> Probao i razocarao se u C++. :(
Problem je u tome što grafičke rutine iz Borlandovog kompajlera koriste
float point aritmetiku koja se nikako ne slaže sa Microsoftovim rutinama
(Clipper je pisan u MSC-u). Prema tome, ako se koriste te rutine treba se
držati MSC-a, i zaboraviti na Borland.
clipper.25bulaja,
│Primetio sam da je clipper postao tema 9 a bio je 5. Kako da pokupim
│datoteke uz poruke ( stare ).
└───
Prvo udji u staru PC.PROG konferenciju (preko njenog broja), onda daj
jedno list 9 /a /t i dobices spisak svih poruka uz koje su prikacene
datoteke. Onda citaj/prenosi/.. sta ti treba po broju poruke.
clipper.26d.petrovic,
Ă> Verujem ja tebi, ali uradi začas replace := u = pa
Ă> da vidimo...
Ujedno i odgovor na 9.18. Evo dva pakovanja .obj-a i jedan .rmk.
Program još nisam stigao da sklopim (ostale funkcije upravo radim i
testiram posebno, a i zastala je saradnja sa knjigovođom čovek
trenutno nije tu... Mrzelo me da zalazim u problematiku zbog čega to
tako treba, ali mislim da je problem u ovim funkcijama koje su tu.
Sad verujete ? ;>>>>>>
Pozdrav, Dejan
clipper.27ppekovic,
>> Sad verujete ? ;>>>>>>
Ne, dok ne vidim deo source-a koji sa 87-ce koji sa := radi a sa = ne radi.
Ako tako nešto pošalješ, zasigurno ideš u bajtove, a i Straley-a bi to veoma
zanimalo.
Paya
clipper.28zkrstic,
> Ali kada dodje do grafike, e tu vec nisam znao sta da radim.
> Probao sam sve moguce varijante sa podesavanjima, linkerima,
> predproc. fajlovima... i nista!
Z.A.B.O.R.A.V.I. :((((((((((((((((((((
Teoretski neizvodljivo :((((((((((((
Na žalost :(((((((((((((
clipper.29snemcev,
>> Za ceo ekran ti treba 4000 bajta. Po dva za svaki karakter
>> koji snimaš.
?!? Moja računica se ni u čemu ne protivi toj činjenici.
clipper.30d.petrovic,
Ă>>> Sad verujete ? ;>>>>>>
Ă>
Ă> Ne, dok ne vidim deo source-a koji sa 87-ce koji sa := radi a sa =
Ă> ne radi. Ako tako nešto pošalješ, zasigurno ideš u bajtove, a i
Ă> Straley-a bi to veoma zanimalo.
Ma zaboravio sam da je zakačim uz ovu poruku... evo sad :)
Naknadno dopisano :) :(
Kad sam onu prvu poruku napisao planirao sam da to uradim i da
zakačim fajl uz poruku. Na to sam potpuno zaboravio i greškom je
poruka onako otišla. Kad sam SAD pokušao to da uradim... :(. U taj
program sam naknadno ugradio naredbe karakteristične za 5.01 i sada
neće ni da prevede taj program ako stavim =. Samo mi prijavi grešku u
liniji:
local bljak=575 :((
Pozdrav, Dejan
clipper.31d.petrovic,
Ă> Da li je neko probao da poveze program u C-u kompajliran nekim
Ă> drugim kompajlerom, a ne Microsoft-ovim?
Cl 5.01 može da se zakači sa Flipper-om pa imaš neke sitnice
(verovatno sve što ti treba) od grafike. C batali, izgleda da brljavi
baš sa grafikom :((
clipper.32pstojanovic,
Ne mogu nikako sa RTLinkom da napravim eksterni .OVL fajl u
dinamickom nacinu rada. Evo (jednog od mnogih) primera kako
sam radio :
fajl: proba.prg
do proba1
do proba2
do proba3
fajl: prog.prg
procedure proba1
? 'Ovo je proba1'
procedure proba2
? 'Ovo je proba2'
procedure proba3
? 'Ovo je proba3'
postupak :
clipper proba /m
clipper prog /m
rtlink fi proba,prog /DYNAMIC:1.OVL
E sad, on doduse u proba.exe nakaci na kraj 1.OVL, ali to nije ono sto
sam hteo, jer jednostavno hocu imati root fajl proba.exe + zasebni
1.OVL.
Slicno sam pokusavao i sa skript link fajlom sa kreiranjem staticnih
overleja npr.
fajl proba.lnk :
file proba,prog
output proba.exe
verbose 2
beginarea
module prog
section into 1.OVL
endarea
Ali prilikom linkovanja desava se da doduse kreira fajl 1.OVL ali sa
impozantnom duzinom od 0 (nula) bajta :(. U uputstvu pise da se stat-
icni overleji koriste za kodove koji su prevedeni u C-u ili ASM-u i
to postujem (mada je sa PLINK86 bila druga prica), ali sta je sa
dinamickim ? Izvinite na gomilanju pad-ova ali bih zaista voleo da
vidim resenje. Hvala.
Pozdrav pstojanovic.
clipper.33goxx,
■ local bljak=575 :((
Ovo je iz novog clipper-a, a ne iz starog. Dodeljivanje se u
deklaraciji LOCAL vrši sa := (inline dodeljivanje). U novom
clipper-u ne možeš svuda da staviš znak = a, takodje ni := .
Sve ima svoje mesto.
Dakle:
LOCAL Bljak := 575
Probaj da nadješ neki drugi primer gde Ti ne kompajlira znak
jednakosti pa pošalji. Ovo postaje sve interesantnije.
Goran.
clipper.34goxx,
■ >> Za ceo ekran ti treba 4000 bajta. Po dva za svaki karakter
■ >> koji snimaš.
■
■ ?!? Moja računica se ni u čemu ne protivi toj činjenici.
Slučaj beše iz neke druge poruke. Rado bih da vidim taj program
što brlja.
Goran.
clipper.35ndragan,
/ count, sum i sl. komandi gde rečima FOR i TO treba zameniti mesta.
Šta, on vozi računa o redosledu opcija? Nema interni spisak prioriteta?
A danas sam čuo da ima jedno brdo službenih reči koje se ne mogu
skratiti na 4 slova! Je li to moguće?
Da vam bude lakše, Foks nema inlajn dodeljivanje, jer su autori rešili
da nije nužno da im jezik liči na C.
clipper.36d.petrovic,
Ă> ■ local bljak=575 :((
Ă>
Ă> Ovo je iz novog clipper-a, a ne iz starog. Dodeljivanje se u
Ă> deklaraciji LOCAL vrši sa := (inline dodeljivanje). U novom
Aloha ?!! Pa to sam i rekao. Zbog toga što sam taj program već
dorađivao u kliperu 5.01 sada ne mogu, kako sam brzopleto pomislio,
da napravim taj searsh/replace. Inače i dalje tvrdim... probaću čim
skupim malo vremena da odvojim neki takav primer i da ga pošaljem.
Pozdrav, Dejan
clipper.37banex,
>> da napravim taj searsh/replace. Inače i dalje tvrdim... probaću čim
>> skupim malo vremena da odvojim neki takav primer i da ga pošaljem.
Ako sam dobro shvatio, komentar je bio da ti 'stari' clipper
programi ne rade u novom jer pravi problem kod delaracije
promenjljivih sa '='. Nije mi jasno gde si imao deklaraciju LOCAL u
starom clipper-u??? :)))
clipper.38d.petrovic,
Ă> Ako sam dobro shvatio, komentar je bio da ti 'stari' clipper
Ă> programi ne rade u novom jer pravi problem kod delaracije
Ă> promenjljivih sa '='. Nije mi jasno gde si imao deklaraciju LOCAL
u
Ă> starom clipper-u??? :)))
Auf!!! :)))
Počelo je od toga da ne rade pa sam na negodovanja odgovorio da
ću ponovo to vratiti u prvobitno stanje i argumentovano dokazati.
Eeeee, ali kad sam to uradio i nije hteo da prevede setio sam se
da sam ja taj program posle prepravljao, dopravljao dodavao,
oduzimao... :)) i da to sad ne ide.
Ako nađem malkice vremena ovih dana, dok se duhovi ne smire ;),
pokušaću da izvučem šta je tu zezalo stvar pa će pošaljem :)
Pozdrav Dejan
clipper.39andrejl,
>│ Eeeee, ali kad sam to uradio i nije hteo da prevede setio
>│ sam se da sam ja taj program posle prepravljao,
>│ dopravljao dodavao, oduzimao... :)) i da to sad ne ide.
Nestalo dokaza? :) Ne znam šta je tako neobično moglo da
te zakoči, a da to ne bude nešto veliko pa da zapamtiš.
bye, andrejl
clipper.40d.petrovic,
Ă> Nestalo dokaza? :) Ne znam šta je tako neobično moglo da
Ă> te zakoči, a da to ne bude nešto veliko pa da zapamtiš.
Grrrrrr, ja se tačno sećam kad je proradilo neznam u kojoj
funkciji, proceduri, itd... je to sve proradilo i nemam puno vremena
ali... dolaziš u Subotu u klub ? Da se kladimo u nameštaj sa mešanim
mesom pa da dobijem malo motivacije ? O;)))
Pokušaću da odvojim malo vremena ...
clipper.41andrejl,
>│ Grrrrrr, ja se tačno sećam kad je proradilo neznam u
>│ kojoj funkciji, proceduri, itd... je to sve proradilo i
>│ nemam puno vremena ali... dolaziš u Subotu u klub ? Da se
>│ kladimo u nameštaj sa mešanim mesom pa da dobijem malo
>│ motivacije ? O;)))
Ne dolazim u klub, ali možemo da se kladimo u kantu krvi
;)))
bye, andrejl
clipper.42d.petrovic,
Ă> Ne dolazim u klub, ali možemo da se kladimo u kantu krvi
Ă> ;)))
Ako budeš tako uporan možda i dobiješ primer ;)))))
clipper.43ciki,
>**> Bilo bi korisno za Clp braću kad bi neko ispisao ovde
>**> makar osnovne komande i opcije programa Lib.exe. Ja sam
>**> "nabadajući" uspeo da savladam problem dodavanja i
>**> oduzimanja mog Obj fajla u Extend.lib. Koje su ostale
>**> mogućnosti? Kako, na primer, da "vidim" sadržaj
>**> biblioteke?
Sa velikim zakašnjenjem ali:
Sintaksa LIB-a:
LIB stara_b ŠopcijeĆ ŠkomandeĆ Š,ŠfajlĆ Š,nova_bĆĆĆ Š;Ć
stara_b=ime "stare biblioteke"
Naziv postojece datoteke ili biblioteke koju zelis da
kreiras.Podrazumevana ekstenzija je LIB ;>
Ako je kreiras dobices pitanjce u fori kao:
Library file does not exist. create?
E sad nasta da kucnes to je tvoja stvar.
opcije
/HŠELPĆ - vrlo kratka pomoc
/IŠGNORECASEĆ - nalaze LIB-u da ignorise slucajeve
prilikom poredjenja simbola.
/NOEŠXTDICTIONARYĆ- (ili nesto slicno)-Kao NOE od MSLINK-a.
/NOIŠGNORECASEĆ - suprotno od /IŠGNORECASEĆ
/NOLŠOGOĆ - nema copyright porukica
/PŠAGESIZEĆ - zadaje velicinu strane u bajtovima nove
biblioteke ili menja isto kod stare
biblioteke.Zadata vrednost mora biti
izmedju 16-32768.Definisana vrednost
je je je 16.
Sa ovom opcijom mozes ograniciti veli-
cinu LIB na zeljeni broj byte-ova.
Recimo /PAGE:32 - 32*65536=2MB
komande - manipulacija modulima u datoteci.
ime moze biti sa path-om.
+ime - dodaje OBJ fajl u datoteku
-ime - brise fajl iz bibloteke
-+ime - zamenjuje module u biblioteci ?
*ime - kopira modul iz biblioteke u OBJ fajl
-*ime - pomera OBJ fajl iz LIB-a u nezavistan fajl.
Posle ove opcije ime.OBJ se nenalazi u LIB-u.
fajl - ime fajla gde ce biti upisan izvestaj o biblioteci.
sam fajl se sastoji iz 2 dela.
1. Alfabetski listing svih simbola LIB-a.
2. Lista modula LIB-a sa njihovim velicinama i lokacijama.
LIB=ime biblioteke, a ne LIB.EXE.
nova_b
ime biblioteke koju menjas.Predefinisano je ime
stare biblioteke.
P.S. Sto je on spor!!!!!!!!!!!!!!!
Pozdrav Ciki!
clipper.44balinda,
Evo jednog rucnog rada (uz malu pomoć nekih poznatih Kliperasa :))
Poziva se sa:
set date german
CX=1 && Inicijalne koordinate (od vrha)
CY=54 && (od leve strane 80-24=56-2=54
kalend() && Kalendar
QUIT
Sa CTRL + PgUp(PgDn) ide se po godinu unapred i unazad, a sa
PgDn(PgUp) po mesec unapred (unazad)!
Home vraća na tekući datum!
Ako ima primedbi i sugestija ostavite poruku!
kalend.objclipper.45balinda,
>> Evo jednog rucnog rada (uz malu pomoć nekih poznatih Kliperasa :))
Zaboravih da kažem da ovo šalje Nesa! :))
clipper.46andrejl,
>│ Ako budeš tako uporan možda i dobiješ primer ;)))))
Možda ti ispadneš uporiji, pa se povlačim ;) Krv se ceni
ovih dana :)
bye, andrejl
clipper.47vili,
...to whom it may concern...
Uz poruku je PRINT.CH sa nekim, najcesce koriscenim, definicijama
za EPSON kompatibilne stampace!
UPOTREBA:
#include "print.ch"
set printer on
set console off
? LEVAMAR(10),DESNAMAR(73)
? BOLDON,UNDERLON,STILOUTL,CENTARON
? "OVO JE PRIMER 1!"
? BOLDOFF,UNDERLOFF,STILNORM,CENTAROFF
? ITALON,STILSHAD,KONDENZON
? "OVO JE PRIMER 2!"
? ITALOFF,STILNORM,KONDENZOFF
? NOVASTRANA
set console on
set printer off
Vili
PS. Ja imam Seikosha SL-92 Plus pa su definicije fontova prilagodjene
tom stampacu. To treba promeniti za neki drugi stampac.
print.chclipper.48bcetina,
>> kalend() && Kalendar
>> Ako ima primedbi i sugestija ostavite poruku!
Super. Još da ga poveže sa nekakvim Notepadom / Clipboardom i možda
Nbatocaninovim kalkulatorom i eto nama svega u Clipperu. Obožanstveno.
clipper.49raul,
Zdravo !!!!
Da li bi neko bio ljubazan da mi kaze kako mogi ekrane koje snimim u mem
promenljivu da snimim u bazu i kako da ih poslije ucitam ???? Da li bih to
mogao da radim i sa grafickom bibliotekom za Clipper, koju sam dK "skinuo"
odavde !!! Hvala !!!
Raul
clipper.50vili,
Ovo sam procitao u nekoj knjizi o Clipper-u pre nekih dve godine.
Razvijajuci aplikaciju sa bazama podataka svaki programer bi
trebalo da vodi neku vrstu dnevnika gde bi upisivao koliko vremena
mu je bilo potrebno za svaki posebni deo aplikacije koju pravi. Na
taj nacin bi imao uvid u to koliko mu vremena traba za odredjene
delove programa tako da pri planiranju sledece aplikacije moze dobro
da isplanira svoje vreme i da proceni koliko mu vremena ukupno treba
da je napravi. Zatim je data sledeca tablica ili formular gde za
svaku fazu programa treba upisati vreme.
Nikada, naravno, nisam popunio nijednu ovakvu listu, ali mislim
da bi svaki progamer, koji drzi do sebe, trebao da ima ovakvu
evidenciju svog vremena. Sta mislite o ovome ?
Vili
1. System Environment Generation..................
a) Screen Design.............................
1. Help.................................
2. Color................................
3. Menus................................
b) Application Parameters....................
1. Passwords............................
2. Borders..............................
3. Check Numbers........................
4. Miscellaneous........................
2. Creating Databases and Indexes.................
a) Fields....................................
b) Memos (If Applicable).....................
c) Key Fields................................
d) Relations.................................
3. Data Control...................................
a) Entering..................................
b) Editing...................................
c) Viewing...................................
d) Deleting (IF Applicable)..................
4. Calculation....................................
a) Totaling..................................
b) Summing and Averaging.....................
c) Balancing.................................
5. Reporting and Listing..........................
a) Screen....................................
b) Printer...................................
c) File......................................
6. System Maintenance.............................
a) Sorting and Reindexing....................
b) Backing up and Restoring Data.............
c) Data Cleanup..............................
d) Reconfiguring System......................
e) Miscellaneous.............................
7. Data Interface (If Applicable).................
a) Importing.................................
b) Exporting.................................
c) Across Systems............................
8. Multiuser Control (If Applicable)..............
9. Testing........................................
10. Documentation..................................
clipper.51aleksj,
> Da li je neko probao da poveze program u C-u kompajliran
> nekim drugim kompajlerom, a ne Microsoft-ovim?
Probao i razocarao se u C++. :(
Sve lepo radi dok je u jednostavnijoj formi npr. :
? "clipper" .... printf(' ...
Ali kada dodje do grafike, e tu vec nisam znao sta da radim.
Probao sam sve moguce varijante sa podesavanjima, linkerima,
predproc. fajlovima... i nista!
Ili javi da je prekoracio stack ili jednostavno blokira racunar.
Ako je nekom poslo ovo za rukom neka javi. Zaista bih voleo da
vidim resenje.
clipper.52bulaja,
│Da li bi neko bio ljubazan da mi kaze kako mogi ekrane koje snimim
│u mem promenljivu da snimim u bazu i kako da ih poslije ucitam ????
└───
Ako mislis na tekstualne ekrane dobijene sa SaveScreen(), u bazu mozes
da ih trpas u memo polja, mada ne znam gde bi ti trebao SaveScreen()
vezan sa slogovima baze :).
clipper.56ratman,
Kada u user-funkciji za DBEDIT() koristim REPLACE...WITH, vrednost
promenljive nece nikako da se replacuje, ostaje uvek nula. Pgm
izgleda ovako:
use pats
dbedit (1,1,20,78,,'user')
// ******** USER FUNKCIJA ZA KONTROLU DBEDIT-a
function user
parameters mod,kol
if mod=0
return 1
elseif mod=3
return 0
endif
tip=lastkey()
//
//
//
case tip=22 && INS:dodaj blanko zapis
append blank
go bottom
zz=lastinc()
replace nopat with zz && STA JE SA OVIM?
return 1
case tip=7 && del:brisi zadnj zapis
go bottom
delete
pack
return 2
otherwise
return 1
endcase
//
//
//
function lastinc() &&najveci broj+1
linc=-1
go top
do while .t.
if nopat>linc
linc=nopat
endif
skip
if eof(); exit; endif
enddo
@22,1 ;? linc,recno()
return (++linc)
da li je u pitanju vrednost koja se vraca dbedit-u?
clipper.57ratman,
Mogu li se i kako vrednosti polja u bazi uopste menjati pomocu dbedit()
bez pomocne-user funkcije (Clp5.01)? Meni se cini da ne.
clipper.58ssasa,
Ko zna (ili još bolje ima) nešto o Clipperu for Windows. Znam samo da se
pojavio i da obećava ali ništa detaljnije. Naime kako sam nabavio Superbase
oduuševio sam se elegancijom i brzinom pravljenja aplikacija, ali sam se ubrzo
razočarao nefleksibilošću samog paketa. Zbog toga se nadam u Clip. for Win.
clipper.59bulaja,
│Kada u user-funkciji za DBEDIT() koristim REPLACE...WITH, vrednost
│promenljive nece nikako da se replacuje, ostaje uvek nula. ...
│da li je u pitanju vrednost koja se vraca dbedit-u?
└───
Da. Posle replace-a si vracao dbEdit-u vrednost 1 (sto znaci da dbEdit
nastavi kao da se nista nije desilo), a treba da se vrati 2 (osvezi
sadrzaj ekrana).
clipper.60andrejl,
>│ Nikada, naravno, nisam popunio nijednu ovakvu listu, ali
>│ mislim da bi svaki progamer, koji drzi do sebe, trebao da
>│ ima ovakvu evidenciju svog vremena. Sta mislite o ovome ?
Nije loše, mada ne znam kako bih sebe naterao da tako
nešto radim :) Pitanje je i koliko vredi, mislim da nije
moguće uopštiti delove programa u toj meri jer u jednom
slučaju to može biti neki mnogo složeniji postupak, a u
drugom trivijalni te bi neki prosek vremena mogao biti
prilično varljiv podatak.
bye, andrejl
clipper.62ratman,
Sta je pogresno u ovom pgm.u? Jednostavno nece da REPLACE-uje vrednost
polja sa brojrm koji dobija od funkcije lastinc(). Koliko sam ga isprobao,
funkcija radi dobro, ali posle replace ostaje 0 u polju.
Kada u liniji sa REPLACE umesto imana funkcije napisem neki broj, zamislite,
on ga upise!
Stvarno me IZLUDJUJE!
set confirm on
set date british
cls
use pat1
dbedit (1,1,20,78,,'user')
// ******** USER FUNKCIJA ZA KONTROLU DBEDIT-a
function user
paramete╔Śţ mod,kol
// ******** PROVERA PARAM. PRIMLJENIH IZ DBEDIT-a
if mod=0
return 1
elseif mod=3
return 0
endif
// ******** STA JE PRITISNUTO? (user fn dbedit)
tip=lastkey()
do case
case tip=27
return 0
case tip=13 && ENTER: edituj polje...
set cursor on
g=field(kol)
@row(),col() get &g
read
set cursor off
return 1
case tip=22 && INS:dodaj blanko zapis
append blank
replace nopat with lastinc()
return 2
case tip=7 && del:brisi zadnj zapis
delete
pack && treba li pakovanje?
return 2
otherwise
return 1
endcase
// KRAJ USER FUNKCIJE ZA KONTROLU DBEDIT-a
function lastinc()
linc=-1
go top
do while .t.
if nopat>linc
linc=nopat
endif
skip
if eof(); exit; endif
enddo
linc++
return (linc)
Pozdrav,
Dejan
clipper.63nbatocanin,
(ODGOVOR NA 5.1026 PC.PROG, ndragan)
> / Pravim rečnik podataka, pa se trudim da u programu ne
> / koristim trenutna polja, već opise u rečniku. Mada i ovo
> / nije baš potpuno
>
> Zvuči zanimljivo. Kako izgleda primer u sorsu? Mislim samo
> par redova.
Uh, ova poruka mi je nekako promakla, tek sam je juče slučajno
pronašao. Da čovek ne pomisli da neću namerno da mu odgovorim što ne
koristi Clipper ;).
Evo 'vako: ideja mi je bila da se na svako polje referišem samo
nazivom preko specijalne funkcije (na primer, Get ("SUMA")), a ne sa
RACUNI->SUMA ili nešto još komplikovanije. Kada bi se nešto promenilo
(na primer, SUMA se sad racuna kao zbir RACUNI->SUMA + POREZ->DODATAK
ili nešto treće, ali program se ovoj vrednosti obraća preko rečnika,
pa je dovoljno samo tamo promeniti:
RACUNI->SUMA
u:
RACUNI->SUMA + POREZ->DODATAK
Na žalost, performanse ovakvog rešenja su veoma diskutabilne, a i
postojeći programi bi morali da pretrpe veće izmene. Zato čekam novi
Clipper sa objektima, jer će ovo biti daleko lakše tamo ugurati :)
clipper.64vili,
Ň═══════════════════════════════════════Ş
│ELEVEN RULES FOR SUCCESS IN PROGRAMMING│
ď═══════════════════════════════════════ż
┌───────────────────────────────────────────────────────────────────────┐
│1. WRITE FIRST IN EASY-TO-UNDERSTAND PSEUDO-CODE, THEN TRANSLATE INTO │
│ CLIPPER CODE │
└───────────────────────────────────────────────────────────────────────┘
- Do not stop with your first draft.
- Do not patch bad code; rewrite it.
- Do not strain to reuse code; just reorganize it.
- Make sure special cases are really special cases.
- Write and test a big program in small pieces.
- Do not stop at one bug; find others.
- Watch out for off-by-one errors:
- 10.0 times 0.1 is hardly ever 1.0: test to make sure
calculations are correct.
- Do not compare floating point numbers just for equality.
- Be in control. Measure the effect of any change before making
the change for the sake of efficiency.
┌───────────────────────────────────────────────────────────────────────┐
│2. WRITE CLEARLY │
└───────────────────────────────────────────────────────────────────────┘
- Do not be too claver.
- Make your programs read from top to bottom.
- Let the data structure the program.
- Do not diddle with code to make it faster; find a better algorithm.
- Format a program to help the reader understand it.
- Indent code to show the logical structure of a program.
┌───────────────────────────────────────────────────────────────────────┐
│3. SAY WHAT YOU MEAN, SIMPLY AND DIRECTLY │
└───────────────────────────────────────────────────────────────────────┘
- Make sure your code 'does nothing' gracefully. Too often developers,
when asked what their routine does, say 'it does nothing'. If this
is the case, check it again. 'Does nothing' code has a tendency to
do plenty!
- Program defensively.
- Make it right before making it faster.
- Keep it right when making it faster.
- Make it clearer before making it faster.
- Do not sacrifice clarity for small gains in 'efficiency'.
- Keep it simple to make it faster.
┌───────────────────────────────────────────────────────────────────────┐
│4. MODULARIZE │
└───────────────────────────────────────────────────────────────────────┘
- Use subroutines.
- Make the coupling between modules clearly visible.
- Each module should do one thing and do it well.
- Use recursive procedures for recursively defined structures.
┌───────────────────────────────────────────────────────────────────────┐
│5. USE LIBRARY FUNCTIONS │
└───────────────────────────────────────────────────────────────────────┘
- Replace repetitive expressions with calls to a common functions.
┌───────────────────────────────────────────────────────────────────────┐
│6. AVOID TOO MANY TEMPORARY VARIABLES │
└───────────────────────────────────────────────────────────────────────┘
- Choose variable names that cannot be confused.
- Choose procedure names that describe their basic purpose.
- Choose function names that describe their basic puprose.
- Choose field names that make the program simple.
- Use variable names that mean something.
- Create labels that mean something.
┌───────────────────────────────────────────────────────────────────────┐
│7. LET THE MACHINE AND LANGUAGE DO THE DIRTY WORK │
└───────────────────────────────────────────────────────────────────────┘
┌───────────────────────────────────────────────────────────────────────┐
│8. AVOID UNNECESSARY BRANCHES │
└───────────────────────────────────────────────────────────────────────┘
- Do not use conditional branches as a substitute for a logical
expression.
- Use IF..ELSE..ENDIF to emphasize that only one of two actions
is to be performed.
- Use the fundamental control flow constructs.
- Follow each division and its associated action as closely as
possible.
- Aviod multiple exits from loops.
- Use the good features of the language and avoid the bad ones.
- Use data arrays to avoid repetative control sequences.
┌───────────────────────────────────────────────────────────────────────┐
│9. USE 'DO WHILE' AND INDENTING TO DELIMIT GROUPS OF STATEMENTS │
└───────────────────────────────────────────────────────────────────────┘
- Use DO and DO WHILE to emphasize the presence of loops.
- Use DO CASE to implement multiway branches.
┌───────────────────────────────────────────────────────────────────────┐
│10. INITIALIZE ALL VARIABLES BEFORE USE │
└───────────────────────────────────────────────────────────────────────┘
┌───────────────────────────────────────────────────────────────────────┐
│11. MAKE SURE COMMENTS AND CODE AGREE │
└───────────────────────────────────────────────────────────────────────┘
- Do not just echo the code with comments. Make the comments count!
- Do not comment bad code; rewrite it!
- Do not overcomment.
-----------------------------------------------------------------------------
PS. Ovo sam procitao u nekoj knjizi o Clipper-u.
Vili
clipper.65banex,
>> Ako mislis na tekstualne ekrane dobijene sa SaveScreen(), u bazu
>> mozes da ih trpas u memo polja, mada ne znam gde bi ti trebao
Takođe, obrati pažnju na bug za savescreen() i restscreen(), imaš
file negde na sezamovom dir-u.
clipper.66dejanr,
>> 1. WRITE FIRST IN EASY-TO-UNDERSTAND PSEUDO-CODE, THEN TRANSLATE INTO
>> CLIPPER CODE
Da li neko od prisutnih to stvarno radi?
Inače, moj najgori greh je što imam običaj da istu promenljivu koristim
za razne stvari :( Recimo, treba mi negde da nešto sačuvam, i prosto mi
nekako žao da za to otvaram novu promenljivu, nego pogledam malo gore
ima li neka koja je odigrala ulogu pa je onda iskoristim. Kažu da je ovo
mnogo ružno međutim meni nikad nije pravilo smetnje.
clipper.67vili,
> Sta je pogresno u ovom pgm.u?
Nista. Kod mene radi!
Vili
clipper.68zkrstic,
>>> 1. WRITE FIRST IN EASY-TO-UNDERSTAND PSEUDO-CODE, THEN TRANSLATE
>>> INTO CLIPPER CODE
>
> Da li neko od prisutnih to stvarno radi?
Kuku :)))) Nemam bre ja toliko vremena na bacanje ;)))))
Btw, imam istu knjigu, i ima stvarno dobrih ideja oko načina
pisanja programa. Al' ovo... bilo bi malo previše ;))))
Zkr :)
clipper.69jtitov,
> razocarao nefleksibiloscu samog paketa. Zbog toga se nadam
> u Clip. for Win.
Bolje je da se nadas u FoxPro for Windows. NE samo da je bolji program nego
ga jos i MS razvija...
clipper.70jtitov,
> Da li neko od prisutnih to stvarno radi?
Naravno. Mislim da nema goreg programiranja od programiranja "direktno u
ekran". Lepo prvo u nekakvom pseudo-kodu, pa debug, pa trk u source. Inace
sto se tice koriscenje jedne varijable, mislim da je to ostalo iz vremena
"slabih" masina (dzepni Sharp, Spectrum,...) kada je svaki byte bio vazan.
Danas dajem prednost citljivom kodu nego ustedi od par (kilo)bajtova.
clipper.71andrejl,
>│ Inače, moj najgori greh je što imam običaj da istu
>│ promenljivu koristim za razne stvari :( Recimo, treba mi
>│ negde da nešto sačuvam, i prosto mi nekako žao da za to
>│ otvaram novu promenljivu, nego pogledam malo gore ima li
>│ neka koja je odigrala ulogu pa je onda iskoristim. Kažu
>│ da je ovo mnogo ružno međutim meni nikad nije pravilo
>│ smetnje.
Da, i ja koristim takve "slave" :) promenljive koje su tu
uvek da urade neki sitan posao.
Najveći problem mi je kako da razmodulišem program. Pre
sam pisao mnogo kratkih modula, a sada manje dužih,
(prevashodno zbog lepšeg rada sa procedurama u Cl 5), ali
uvek mi se čini da grešim.
bye, andrejl
clipper.72bulaja,
Postoji li neki nacin da se funkciji parametri prenesu po imenu
(reference), a da se ona poziva u "normalnom" obliku f(), a ne sa
DO..WITH..?
clipper.73nbatocanin,
Ali ako ekran nema simbol Chr(26) (EOF)!
clipper.74nbatocanin,
> Mogu li se i kako vrednosti polja u bazi uopste menjati
> pomocu dbedit() bez pomocne-user funkcije (Clp5.01)?
Može, korišćenjem SET KEY K_ENTER TO Change().
clipper.75nbatocanin,
> Ko zna (ili još bolje ima) nešto o Clipperu for Windows.
> Znam samo da se pojavio i da obećava ali ništa detaljnije.
Grafička verzija Clipper-a će se zvati Aspen i koliko znam nije
sigurno da će biti pod Windows-ima, možda će imati svoj sistem za
interakciju. Još uvek je u razvoju.
clipper.76dejanr,
[Odgovor na PC.PROG 5.1013, ndragan]
Malo sam "čačkao" po slovim2.arj ne bi li ih prilagodio za "Bajtove lične
prirode" ali opet ima problema :( Na primer, broj 99 ispiše kao
deveTdeset devet.
clipper.77zkrstic,
>> Ko zna (ili još bolje ima) nešto o Clipperu for Windows.
>> Znam samo da se pojavio i da obećava ali ništa detaljnije.
>
> Grafička verzija Clipper-a će se zvati Aspen i koliko znam nije
> sigurno da će biti pod Windows-ima, možda će imati svoj sistem za
Vidiš, ja, ukoliko nisam totalno odlepio, što i neij daleko
od istine ;) sam sto posto siguran da je u najavi za Aspen, stojalo
da radi pod MS Windows-ima.
Btw. još nije izašao. A u istoj najavi se pominje i Clipper
ver 6.0, potpuni kompajler (mali prg = mali exe) kao i potpuna obje-
ktna orijentacija (DJ, samo mi to treba u životu;) ) i još kojekake'
kerefeke. Izdavač: New_guy_in_charge: Computer Associates
Zkr
clipper.78dejanr,
>> Grafička verzija Clipper-a će se zvati Aspen i koliko znam nije
>> sigurno da će biti pod Windows-ima, možda će imati svoj sistem za
>> interakciju. Još uvek je u razvoju.
==========
clipper/user.forum #764, from nightfly, 571 chars, Thu Dec 3 01:35:02 1992
----------
TITLE: CA-Clipper 5.2
Today I read an article about CA's new Clipper 5.2.
If you use any other xbase product, you get Clipper 5.2
+ dbFast or Clipper Tools or Clipper/Compiler Kit for JUST 199 bucks.
If you are a registered Clipper user you can get the upgrade (only)
for 149 dollars, and they don't mention any bonus package like Clipper Tools..
Is this a joke or what?
It's cheaper for me to buy Clipper 5.2 + Clipper Tools than getting
an upgrade?
If someone has the time, would you please find out at 1-800-225-5224.
I can't call 800 numbers from Argentina.
Thanks.
clipper.79ndragan,
/ Evo 'vako: ideja mi je bila da se na svako polje referišem samo
/ nazivom preko specijalne funkcije (na primer, Get ("SUMA")), a ne sa
Ima gde treba, a ima gde ne. To već ne spada u nekakav rečnik podataka,
ni u to šta treba/može da sadrži, već u onaj drugi deo, lokalizovanje
verzijskih razlika u kritične rutine. Kod nas se, recimo, kod
kalkulacije radi jedno banalno "Repl next 1 velecena with velcena()"; i
to je standardna rutina za upis; rutina velcena.prg se razlikuje od
mušterije do mušterije, i sadrži metod ("šta se koga tiče kako ja
obračunavam").
/ Da čovek ne pomisli da neću namerno da mu odgovorim što ne
/ koristi Clipper ;).
Ma jok, ovo je čista fjordovska obaška :). I ja tako kasnim na neke
stvari, a na neke ne :). NHF, vidim da opet idemo paralelnim ulicama.
clipper.80ndragan,
/ ima li neka koja je odigrala ulogu pa je onda iskoristim. Kažu da je
/ ovo mnogo ružno međutim meni nikad nije pravilo smetnje.
Bitno je da znaš koja je. Kod nas ima jedna, iz istorijskih razloga
nazvana _rc, koja bi mogla da se zove void ili kleenex - ne preporučuje
se da se smatra da je nešto sačuvala duže od tri reda (u svakoj trećoj
rutini se spominje i svuda nešto radi). I to radi.
/>> 1. WRITE FIRST IN EASY-TO-UNDERSTAND PSEUDO-CODE, THEN TRANSLATE
/>> INTO CLIPPER CODE
/ Da li neko od prisutnih to stvarno radi?
Pseudo kod držim u glavi, i to na srpskom (dobro, ajd, foks-lalinski),
a... 'clipper code' nit upražnjavam, nit upunjavam :)
clipper.81bdm.,
## (reference), a da se ona poziva u "normalnom" obliku f(), a ne sa
f(@a, @b)...
BDM.
clipper.82ppekovic,
>> append blank
>> go bottom
>> zz=lastinc()
>> replace nopat with zz && STA JE SA OVIM?
>> return 1
Onako usput, šta će ti go bottom posle append blank. Append
blank doda novi zapis na kraj baze i postavi pokazivač baze na
njega.
Paya
clipper.83ppekovic,
>> Mogu li se i kako vrednosti polja u bazi uopste menjati pomocu dbedit()
>> bez pomocne-user funkcije (Clp5.01)? Meni se cini da ne.
DbEdit služi samo za pregled sadržaja baze. Ako ti treba nešto
da menjaš imaš više načina. 1. koristi user funkciju pa tamo
menjaj. 2. Koristi browse() funkciju, ona sve sama radi. 3.
najbolje rešenje, koristi TBrowse i zaboravi dbedit.
Paya
clipper.84ppekovic,
>> case tip=7 && del:brisi zadnj zapis
>> delete
>> pack && treba li pakovanje?
>> return 2
Zapis nad kojim se izvrši delete nije izbačen iz baze, već je
samo označen kao obrisan. Da bi se izbacio koristi se komanda
pack. Na malim bazama, pack radi skoro trenutno, ali na iole
većim, ovo bi bilo neupotrebljivo sporo. Postoje dva rešenja. 1.
Tek kad izađeš iz dbedit-a (baci dbedit i koristi TBrowse) uradi
pack, dakle, ne posle svakog delete-a, nego posle svih (može i na
izlazu iz programa i sl.). 2. Ja sam uvek koristio onaj mnogo lepi
trik kojim eliminišeš potrebu za pack-om (osim u izuzetnim
slučajevima). Zamisli da imaš bazu sa poljima ime i prezime.
Indeksiraš bazu po imenu, a zatim, kad god obrišeš neki zapis,
umesto da uradiš delete, stavi samo chr(255) umesto prvog znaka u
imenu. Ovaj zapis će logično otići na kraj baze (po indeksu). Kada
hoćeš da ubaciš novi zapis. Prvo kažeš goto bottom, pa proveriš da
li je prvi znak chr(255). Ako jeste, to je obrisani, pa možeš da
prepišeš novi preko njega. Ako nije, dodaš novi. Naravno, prilikom
pregleda baze, obavezno pre stavi filter da je prvo slovo imena
različito od chr(255).
Paya
clipper.85ppekovic,
>> Btw, imam istu knjigu, i ima stvarno dobrih ideja oko načina
>> pisanja programa. Al' ovo... bilo bi malo previše ;))))
Da, mene su čak učili da prvo radim dekompoziciju pa da pišem
proceduralne apstrakcije, pa pseudo kod, a o kresanju grana,
svođenju algoritama na kanonični oblik, apstrakciji podataka,
šiframa, podšiframa, opisima stuktura i ostalim zezalicama da ne
govorim. Pant, pant, umorih se samo dok sam ih nabrojao, šta bi
tek bilo da sam za konkretan problem krenuo sve to i da radim.
:)))
Paya
clipper.86snemcev,
>> Takođe, obrati pažnju na bug za savescreen() i restscreen(),
>> imaš file negde na sezamovom dir-u.
Tražih, al ne nađoh. Help me!
clipper.87ciki,
Ho!
Evo jedno pitanjce oko indeksa i to UNIQUE.
Recimo da imam bazu koja se sastoji od sledecih
polja:
****************
* PPXXXXXX.DBF *
****************
DATUM D 8
SIFRA N 5
S_JEL N 5
KOLICI N 5
Indeksi P1XXXXXX.NTX dtos(datum)+str(sifra,5)
P2XXXXXX.NTX str(sifra,5) ali UNIQUE
XXXXXX - To je nastavak koji dobija svaka datoteka u zavisnosti
o kojoj se RJ radi.(RJ je predstavljena sa 6 cifara,
PP100.DBF , PP923112.NTX ...)
I sada kada vrsim neko "knjizenje", za zadati datum, prvo otvorim
datoteku recimo (Use &dat_ime INDEX &ind_ime2) i to sa indeksom
p2xxxxxx.ntx ne bih li dobio sifre onih ljudi koji su radili toga
dana.Na osnovu toga formiram niz sa AADD ljudi koji su radili.
Zatim sledi zatvaranje svih datoteka, pa ponovo otvaranje sa svim
indeksima.
E sada nastaju problemi.Nekada jednostavno sve radi OK.
Ali nekada prosto prijavi gresku BASE/1132 usled velicine
niza. NE nisam napisao nesto kao declare aniz1Š0Ć, ali
sta je tu je.
P.S. Ako ste razumeli, a vi pokusajte da pomognete, a ako ne
zlo i nije.
Pozdrav Ciki!
clipper.88bulaja,
││Takode, obrati paznju na bug za savescreen() i restscreen(),
││imas file negde na sezamovom dir-u.
│└───
│Trazih, al ne nadoh. Help me!
└───
R:\IBMPC\CLIPPER\
----------------------
cl5103 zip 31385 Spisak bugova u Clipperu 5.01 (Nantucket)
Koliko se secam, za savescreen() i restorescreen() ne pise da imaju
bagova, vec da nije navedeno da su njihovi default parametri (0, 0,
maxrow(), maxcol()).
clipper.89snemcev,
Probao sam Clipper preview iz Računara broj 07? i isti mi se
jako dopao. Pade mi na pamet ideja da se za prikaz na ekranu
iskoriste i extended VGA modovi (132 x nešto).
Koliko se ja razumem u asembler, sve se svodi na to da treba u
programima SAYTXT.ASM i VIEW.ASM konstante 160 zamenuti sa 264
(132*2). E, al sad prikaz neće korektno raditi u 80x25 modu.
Znači, treba ubaciti jedan if koji će ispitati koliki je max
broj kolona na ekranu, i u zavisnosti od toga dodeliti korektnu
vrednost ne-znam-ni-ja-kom-registru (nešto slično kao u
Clipper-u kad napišeš ax := 2 * MAXCOL()).
Sve je to lepo i krasno, al ja nemam apsolutno nikakva iskustva
u praktičnom radu sa bilo kojim asemblerom. Zato je moj predlog
da autor (nbatocanin) ili neko drugi ko ima i volje i vremena (i
dozvolu autora) uradi ovu izmenu u programu.
clipper.90korvin,
> Da, mene su čak učili da prvo radim dekompoziciju pa da pišem
> proceduralne apstrakcije, pa pseudo kod, a o kresanju grana,
Videćete vi, šprotivnici pseudo-koda kada se na divljem zapadu zaposlite
u nekoj programerskoj firmi (ovde treba isključiti Microsoft pošto tamo
samo igraju odbojku u hodnicima, pa se posle žale da im su im WIN puni
bagova :) pa kada vam budu tražili da vaš program treba da radi na pet šest
raznolikih mašina. Ovako mi se iskukao kolega koji se vratio iz
Johanesburga. žovek otišao da programira a nije napisao ni red u C-u,
Clipperu, Pascalu. Sve sam go pseudo-kod. Kad god pomislim na to naježim se
:))
clipper.91snemcev,
>> cl5103 zip 31385 Spisak bugova u Clipperu 5.01 (Nantucket)
To već imam ;) Mislio sam da je nešto drugo u pitanju.
clipper.92snemcev,
Kad već spomenuh perview, dešavalo mi se na jednom 286 računaru
da program izvesno vreme radi OK, ali posle nekog vremena
prilikom izbora opcije koja poziva preview, Clipper javlja
grešku u stilu 'Can't open file'. Kod mene na 386 sve radi ok.
Da, config.sys ima dovoljno files-a (40) a program pozivam bez
onog //f=xx
clipper.93nbatocanin,
> Kažu da je ovo mnogo ružno međutim meni nikad nije pravilo smetnje.
Meni ne samo da nije ružno, nego mislim da je mnogo lepše i bolje kad
se promenljiva deklariše tu gde se koristi. Naravno, ako već postoji
od ranije, što se ne bi koristila :)
clipper.94nbatocanin,
> Postoji li neki nacin da se funkciji parametri prenesu po
> imenu (reference), a da se ona poziva u "normalnom" obliku
> f(), a ne sa DO..WITH..?
Clipper i ne pravi neku naročitu razliku između funkcija i procedura.
Može sa F (@x, @y), ako si na to mislio.
clipper.95petrovics,
>> prepises novi preko njega. Ako nije, dodas novi. Naravno, prilikom
>> pregleda baze, obavezno pre stavi filter da je prvo slovo imena
>> razlicito od chr(255).
Nadam se da nisi mislio na SET FILTER.
Ako si mislio, izem ti ustedu na PACK kad rasipas vreme na SET FILTER ;))
clipper.96zkrstic,
> raznolikih mašina. Ovako mi se iskukao kolega koji se vratio iz
> Johanesburga. žovek otišao da programira a nije napisao ni red u
> C-u, Clipperu, Pascalu. Sve sam go pseudo-kod. Kad god pomislim na
> to naježim se
Iskukao ???? Pa to je bre najdivnija stvar na svetu, pišeš
program otprilike O;) nema grešaka sem semantičKih i kardinalnih,
ali to se već da srediti :) Neću te pitati zašto se vratio, niti
ću komentarisati eni mor' imam nezgodne stavove ;))))
Da se dogovorimo: Ja koristim svoj neki metod (prepametna
glava;) da sve što je tutinski tučem iz malog mozga, da ne kažem,
koristim maximalno cut&paste i sličNo iz nekih drugih svojih so(R)-
seva, ali kad dođe do neke kritične obrade ili tako nekog zameša-
teljstva, onda direktno u prg ubacujem kao komentar nešto tipa pse-
udo kod. Jednostavno, teram po stavkama 1, 2, 3... sa podstavkama,
kad zatreba, šta i kako raditi. Sve to radim veoma opisno, da bih
znao kroz pola sata šta sam hteo :) Na taj način čuvam ideje :)))
A i to je jedini spas, obzirom da 80% programa pišem u saradnji sa
bratom, paralelno na dva računara, često puta, tako da zna da bude
veoma ;) zanimljivo kada jedan ili drugi zaboravimo da napišemo ta-
ko nešto. Zanimljivo do bola ;)))) Ali... prateća pojava je da su
nam sorsevi ogromni... :)))
Zkr :)
clipper.97snemcev,
>> cl5103 zip 31385 Spisak bugova u Clipperu 5.01 (Nantucket)
To već imam ;) Mislio sam da je nešto drugo u pitanju.
clipper.98snemcev,
Kad već spomenuh perview, dešavalo mi se na jednom 286 računaru
da program izvesno vreme radi OK, ali posle nekog vremena
prilikom izbora opcije koja poziva preview, Clipper javlja
grešku u stilu 'Can't open file'. Kod mene na 386 sve radi ok.
Da, config.sys ima dovoljno files-a (40) a program pozivam bez
onog //f=xx
clipper.99snemcev,
Još jedno pitanje u vezi sa preview-om.
Recimo ovako. U programu imam 2 izveštaja i za oba hoću preview.
Izaberem prvi izveštaj, pogledam ga, pritisnem npr. <End> ili
<Tab> da bih video i ostatak izveštaja, odustanem od štampanja,
posle izvesnog vremena izberem taj ili onaj drugi izveštaj, kad
ono, umesto da preview počne od prve kolone, on počinje od one
kolone za koliko sam pomerio prikaz prilikom pregleda prethodnog
izveštaja. Jest' da zvuči zakukuljeno, al ko je probao,
shvatiće.
Dakle, trebalo bi mi da preview uvek počne od prve kolone.
Probao sam sa jednim KEYBOARD CHR( K_HOME ) pre poziva procedure
Prt3(), ali to ne rešava problem. Help me.
clipper.100jtitov,
> Da, mene su cak ucili da prvo radim dekompoziciju pa da
> pisem proceduralne apstrakcije, pa pseudo kod, a o
> kresanju grana,
.....
> tek bilo da sam za konkretan problem krenuo sve to i da
> radim.
Dobro je kolega, sedam.
clipper.101ndragan,
/ da ih trpas u memo polja, mada ne znam gde bi ti trebao SaveScreen()
/ vezan sa slogovima baze :).
Ja sam to radio prošle godine. Tako se pravi demo - slikaš lepo šta ti
aplikacija radi, a snimljene ekrane trpaš u bazu; posle samo vrtiš to
u nekom razumnom tempu, ubaciš u autoegzek da se poziva demo i onda
ostaviš to u izlogu. Superiška - čak su one velike bele ptice (*) u
knjižari uspevale da pokrenu stvar i da se vrti ceo dan.
Bue_ Ndragan, patents pending
(*) nisu labudovi
clipper.102ndragan,
/ Ali ako ekran nema simbol Chr(26) (EOF)!
Prvo sam se zablezeknuo ugledavši ovo, a onda sam se setio da pričamo o
kliperu. Sorry, folks. Rešavajte to na neki drugi način, u foks prou je
normalno da se bilo_kakav_fajl ili bilo_kakav_niz_bajtova
proizvoljne_dužine (ne veći od diska, naravno) može strpati u memo, pa
makar sadržavao ne znam koju količinu nezgodnih znakova.
clipper.103ndragan,
/ Danas dajem prednost citljivom kodu nego ustedi od par (kilo)bajtova.
Kamo lepe sreće. Tih par kilobajta su obično sa rednim brojevima 524.,
525. i onda ti sve pukne jer obično nemaš 526. Zato i mislim da nije
loše imati dve-tri promenljive za višestruku jednokratnu upotrebu.
clipper.104ndragan,
/ uvek mi se čini da grešim.
Možda uvek i grešiš :) ? Drži se nekog načela, recimo "jedan posao,
jedna rutina"; "ako ovo ponavljam već u trećoj rutini, vreme je da ga
izbacim u potprogram", "ove dve rutine se razlikuju samo u tri bajta; da
napravim jednu pa da se samo poziv razlikuje po parametru više".
Dužina rutine mislim da nije kritična, ali bilo šta što je duže od tri
ekrana je zgodno za izbegavanje.
clipper.105ndragan,
/ prirode" ali opet ima problema :( Na primer, broj 99 ispiše kao
/ deveTdeset devet.
Ok, ispraviću i to. Prvobitna verzija (pisana za kliper, negde '88) je
to ispisivala kako valja; bili su konsultovani jedan novinar, jedan tip
iz SDK, jedan jezički picajzl (ne ja, jedan luđi od mene :) i neka
Klajnova knjiga.
Elem, za ovu verziju je osnova neka prethodna verzija od koje se
krenulo u preradu za foks, pa se stari 99 bag vratio. Marfi inače tvrdi
da stare verzije postoje zato da bi isplivavale kad ne treba. Prvo sam
mislio da je jezičar ili onaj iz SDK to tražio, međutim kolege tvrde da
je u upotrebi upravo pogrešna verzija ;(.
BTW, čuvena funkcija Translate() koja se spominje pred kraj u stvari
treba da se piše Transform(); to do sledeće denominacije neće praviti
probleme - pući će tek kad poterate nešto sa decimalama. Greška je u
tome što sam, čitljivosti radi, napisao puno ime funkcije, a ne samo (po
običaju) prva četiri slova, i to uradio odmah pogrešno.
Sou, evo još jedne verzije. Ko je skinuo prethodnu, da se ne bi gnjavio
sa DL, treba ubaciti dva reda:
CASE cd=6
rez=rez+'šez'
************ ova dva reda su dodata zbog deve(T)deset
****************************** odavde
Case cd=9
rez=rez+'deve'
****************************** dovde
CASE cd>1
rez=rez+imebr(cd)
... i još ono na kraju treba da glasi ovako:
cdec=transform(dec,'čL 99')
slov=rez+' '+cdec+'/100'
Koga ne mrzi da skida ispravljenu verziju kompletnu, da podsetim:
- slovima.prg ostaje PD (on the house), MPA Zrenjanin;
- upotreba: ? slovima(<expN>) ili varC=slovima(<expN>)
- spomenite nas negde u dokumentaciji i popijte jednu misleći na nas :)
- ako nađete još neki bag, javite se ovamo da dignem još koju
verziju.
Bue_ Ndragan
slovim3.arjclipper.106dpaun,
>> Probao sam Clipper preview iz Računara broj 07? i isti mi se
I ja sam probao pomenuti program, tražeći rešenje za pregled velikih
tekstova, proizvedenih pomoću MemoEdit(). Na žalost, nije pogodan za
takve namene jer se tekstu vidi "donji veš", tj. znak za tabulator,
meki i tvrdi markeri i sl. Eto, tek da se zna da nisam rešio problem
koji me muči i na koji sam se žalio pre mesec-dva ...
dPaun
clipper.107goxx,
T E S T
=======
Molba:
------
Šaljem demo (neka početna verzija) jedne aplikacije koju razvijam
za Banku Podataka Privrede Srbije.
Program je u vezi nekretnina.
Interesuje me vaše mišljenje o ovom što sam do sada uradio. Biću
zahvalan svima koji istestiraju ovo što šaljem i daju mi sve svoje
komentare, primedbe, pohvale i pokude kao i sve greške koje primete
i pronadju.
Poruke ostavljajte u ovoj konferenciji ili na mail.
Nešto o programu:
-----------------
Program je pisan u Clipper-u 5.01.
Koristi se Nanfor biblioteka koja postoji na Sezamu.
Treba ga linkovati sa RTLINK FI STAN LIB NANFOR;
Uz program idu fajlovi za HELP. Na žalost, nisam imao vremena da
napišem help za ovaj program pa sam iskopirao help fajlove iz
neke aplikacije za knjigovodstvo koju sam ranije radio ( puno
teksta iz helpa može da posluži i za ovaj program sem onih stvari
koje se odnose na knjigovodstvo ).
Na grani Analiza u glavnom meniju se ne nalazi nikakva analiza
već je prikačena funkcija koja se aktivira prilikom pogrešno
unesene šifre tamo gde se ona sa ostalim podacima o nekretnini
unosi (ni taj deo nije uradjen).
Sadržaj:
--------
STAN.OBJ Obj verzija programa
Linkovanje sa RTLINK FI STAN LIB NANFOR
FHLP0001.DBF Help fajl (nije u potpunosti za ovu aplikaciju)
FHLP0001.DBT Help fajl - memo polja
Svima unapred hvala. Goran Zafirović
stan.zipclipper.108dejanr,
Fala puno, a sad znam šta sledi - treba prvo uzeti program pa zameniti
male zagrade uglastim i smuljati ono BETWEEN, posle čega ću program
možda i ovde poslati :)
clipper.109jtitov,
> Treba ga linkovati sa RTLINK FI STAN LIB NANFOR;
Mogao si bas i da ga prevedes, jer nisu svi pratioci ove teme ljubitelji
clipper-a, a prate temu i zele da na neki nacin pomognu drugima.
clipper.110ppekovic,
>> Nadam se da nisi mislio na SET FILTER.
>> Ako si mislio, izem ti ustedu na PACK kad rasipas vreme na SET FILTER ;))
:) Filter radi savršeno lepo ako umeš da ga koristiš a to
podrazumeva da umesto na celo polje staviš filter u zavisnosti
samo od prvog znaka (što je u ideji koju sam izložio slučaj). Ovo
sam koristio u svim mojim programima i čak i na bazama od nekoliko
mega korisnik ni jednog trenutka ne čeka računar, a to je cilj,
zar ne?
Ako baš ne voliš filter, clipper 5.01 ti pruža mogućnosti da
elegantno zaobiđeš filter praveći svoju funkciju, pa kako god ti
volja.
Sve u svemu, sve je bolje od pack-a (koji kako god okreneš
radi sporo).
Paya
clipper.111ppekovic,
>> Mogao si bas i da ga prevedes, jer nisu svi pratioci ove teme ljubitelji
>> clipper-a, a prate temu i zele da na neki nacin pomognu drugima.
Ali onda bi ti trebalo x puta više vremena za dl :)
Paya
clipper.112jtitov,
Za NDragana: ima jos jedna greska u programu SLOVA; u ispisu pe_T_deset.
Cini mi se da se ne govori tako, a mozda gresim... Greska se jednostavno
ispravlja, dodavanjem dva slicna reda kao i za deve_T_deset.
clipper.113nbatocanin,
> New_guy_in_charge: Computer Associates
More, biće tu svašta. Koliko sam shvatio, ovi imaju više para od
konkurencije, pa ima da dobijamo Klipere i Fokseve svaki treći dan :)
clipper.114nbatocanin,
> NHF, vidim da opet idemo paralelnim ulicama.
Pa logično, kad smo matematičari :)
clipper.115nbatocanin,
> Zato je moj predlog da autor (nbatocanin) ili neko drugi ko ima
> i volje i vremena (i dozvolu autora) uradi ovu izmenu u
> programu.
Uh, ja vas prevarih pa pobegoh ;) Ja sam u međuvremenu odustao od ove
rutine iz više razloga, a najviše zbog problema sa skaniranjem
tastature: nema nikakve veze sa Clipper funkcijama, što mi je
zadavalo velike probleme. Sad koristim Clipper program koji samo
ispisivanje radi u asembleru. Sačekaj koji dan da to sredim (nešto
sam u gužvi), pa ću poslati ovde.
clipper.116nbatocanin,
> Rešavajte to na neki drugi način, u foks prou je normalno da se
> bilo_kakav_fajl ili bilo_kakav_niz_bajtova proizvoljne_dužine (ne
> veći od diska, naravno) može strpati u memo, pa makar sadržavao ne
> znam koju količinu nezgodnih znakova.
Da, ovo je velika stvar (minus Clipper-a, plus Fox-a). Najavljuje se
da će nova verzija podržavati BLOB polja (veliki binarni objekti), pa
će to valjda rešiti stvar. Doduše, FlexFile dodatak za Clipper rešava
ovaj problem, ali nisam imao prilike da vidim kako to radi. Koristi
li neko ovo?
clipper.117nbatocanin,
> Dakle, trebalo bi mi da preview uvek počne od prve kolone.
> Probao sam sa jednim KEYBOARD CHR( K_HOME ) pre poziva
> procedure Prt3(), ali to ne rešava problem. Help me.
KEYBOARD ne pali, jer je skaniranje na nivou DOS funkcija. Ubaci na
početak naredbu koja resetuje poziciju prozora:
MOV EkrPos, 0
clipper.118petrovics,
>> :) Filter radi savrseno lepo ako umes da ga koristis a to
>> podrazumeva da umesto na celo polje stavis filter u zavisnosti
>> samo od prvog znaka (sto je u ideji koju sam izlozio slucaj). Ovo
>> sam koristio u svim mojim programima i cak i na bazama od nekoliko
>> mega korisnik ni jednog trenutka ne ceka racunar, a to je cilj,
>> zar ne?
Mislim da te nisam sasvim razumeo pa te molim za objasnjenje. Deluje
mi zanimljivo.
>> Sve u svemu, sve je bolje od pack-a (koji kako god okrenes
>> radi sporo).
Slazem se da je PACK spor ali neznam bas da je SVE BOLJE od njega.
pozdrav, PACA
clipper.119dejanr,
>> Za NDragana: ima jos jedna greska u programu SLOVA; u ispisu pe_T_deset.
>> Cini mi se da se ne govori tako, a mozda gresim...
Sigurno (ovde bi Balinda stavio (?) ali ja neću :) se kaže pedeset, bez T.
Uzgred, ja sam malo eksperimentisao sa programom NtoC koji je ovde (tj.
u PC.PROG) ostavio NBatocanin. Program, reklo bi se, radi savršeno (ajde
tu za volju Balindi da stavim (?) ), a razlog zbog koga neki misle da
ne radi je što se ne može kompajlirati sa CLIPPER (javi čudo Božje raznih
greški) nego CLIPPER /N
clipper.120ciki,
>**> Interesuje me vaše mišljenje o ovom što sam do sada
>**> uradio. Biću zahvalan svima koji istestiraju ovo što
>**> šaljem i daju mi sve svoje komentare, primedbe, pohvale
>**> i pokude kao i sve greške koje primete i pronadju.
Trigeri u glavnom meniju ne ferceraju.
Ostalo - zanimljivo, vec vidjeno mnogo puta ali ipak zanimljivo.
Efektna reklamica na pocetku.
Vecina stvari ne radi pa ne mogu da ti mnogo predlozim ;>>
Pozdrav Ciki!
clipper.122ndragan,
/ smuljati ono BETWEEN, posle čega ću program
"between(a,b,c)" je brža zamena za "a>=b .and. a<=c"
Jes' ti foksovac, kliperaš ili Švajcarac :) ? Ja sam navikao da ne
obraćam pažnju na kompatibilnost sa kliperom, pa čak ni sa prethodnim
verzijama foksa, tako da veoma brzo počnem da koristim nove interne
funkcije - za foks bar znam da su pisane da rade brzo, i da će sigurno
betw() raditi brže nego onaj izraz desno. Uostalom, o ovom je bilo reči
i kod prethodne verzije.
/ male zagrade uglastim i
Misliš da je ŠiĆ čitljivije od (i) :) ?
clipper.123ndragan,
/ Cini mi se da se ne govori tako, a mozda gresim... Greska se
/ jednostavno ispravlja, dodavanjem dva slicna reda kao i za
/ deve_T_deset.
Dejaneeee... nadam se da ovo nije zakasnilo. Ajd' ubaci i ta dva reda
da ne šaljem ponovo, ili nek mi ZZ objasni kako da iz ATSa okačim
datotetku uz poruku - za svaki UL moram da se vraćam u Prokom ;(.
clipper.124snemcev,
>> Sačekaj koji dan da to sredim (nešto sam u gužvi), pa ću
>> poslati ovde.
S nestrpljenjem očekujem da vidim Preview 2.xx
clipper.125bulaja,
**** new file ****
\ibmpc\clipper
c501a.arj .a01
Clipper 5.01a UPDATE (Computer Associates)
Update (upgrade) sa Clipper verzije 5.01 na verziju 5.01a (CA). Nema
previse promena, ali ipak dovoljno da uradite update :). Naravno,
potrebno je da vec imate instaliran "stari" Clipper 5.01. Ovaj update
je znacajan i po tome sto je prva promena od kad je CA kupio Nantucket.
clipper.126nbatocanin,
Clipper na nekim tastaturama/računarima ne prepoznaje sve kombinacije
tastera, na primer <Alt-Left> i sl. Da stvar bude još čudnija, ove
kombinacije normalno rade ako se pre startovanja programa u bafer
tastature upiše nešto. Ovo je otkrio nimi (Milan Nikolić). Ima li
neko neko drugo rešenje?
clipper.127dnikolic,
>> da ne saljem ponovo, ili nek mi ZZ objasni kako da iz ATSa okacim
>> datotetku uz poruku - za svaki UL moram da se vracam u Prokom ;(.
Uh, ja sam to pitao jos proslog leta, ali ostah bez odgovora. :(
dn
clipper.128snemcev,
Šta ima u tom Clipper update-u? Vredi li ga pokupiti? Verujte,
za nekog na bednih 1200 bps sa ovim cenama za impulse, to je
hamletovsko pitanje.
clipper.129neman,
> za nekog na bednih 1200 bps sa ovim cenama za impulse, to
> je hamletovsko pitanje.
Pa čak i na 2400 to je nekih 20-ak minuta, a onda mi je prijavio da CLD.LIB,
CLD.EXE i još poneka datoteka nije odgovarajuća verzija i ništa od UPGRADEa :((
neman
clipper.130pstojanovic,
Jednom mom kolegi se javlja pri startovanju Clipper.exe sledeća poruka :
Rules not found in Clipper.exe
i jednostavno ga izbaci iz programa. Ima li objasnjenja za ovo ?
clipper.131bulaja,
│Sta ima u tom Clipper update-u? Vredi li ga pokupiti? Verujte, za nekog
│na bednih 1200 bps sa ovim cenama za impulse, to je hamletovsko pitanje.
└───
Evo izvukao sam neke stvari iz NG-a za update, nadam se da ce pomocu i
odluci :).
1 Memory Management
Clipper 5.01a improves the handling of expanded memory. A Clipper 5.01
application would hang in certain circumstances on a machine using a LIM
4.0 compatible EMS driver with the page frame disabled. Clipper 5.01a
requires that you enable the EMS page frame . If the EMS page frame is not
detected, EMS will not be used.
2 NEW: ERRORINHANDLER()
ERRORINHANDLER() is a new function that assures a clean and prompt exit from
within an application. It produces an "Error recovery failure" error and
indicates the name of the current module as well as the line number. Use
this function to indicate that an error condition has occurred within an
error handler.
3 CHANGED: COPY FILE
The COPY FILE command now allows control characters to be copied to a device
(printer, serial port, etc.). Clipper 5.01 generated an unrecoverable write
error if there was an embedded Z (CHR(26)) in a file being copied to a
device.
4 NEW: EG_DUPALIAS, EG_BADALIAS
The following new generic error codes have been added:
EG_DUPALIAS - An attempt has been made to open a database with an alias that
is already in use.
EG_BADALIAS - An attempt has been made to open a database with an alias that
is not a valid Clipper identifier.
5 CHANGED: Getsys.prg
Clipper 5.01 did not handle the interaction between SET BELL ON and SET
CONFIRM ON in a manner compatible with Summer '87 and dBASE III. Getsys.prg
now respects SET BELL ON when SET CONFIRM ON is used. The Getsys.prg source
code reflects this change.
6 CHANGED: Aliases
Clipper 5.01 accepted database aliases that were not valid Clipper
identifiers. These aliases were then inaccessible. Clipper 5.01a detects
illegal characters in the alias and produces an EG_BADALIAS error.
A legal identifier can contain alphabetic characters, numbers, or the
underscore symbol (_); but must begin with an alphabetic character.
If you open a database and the file name is not a valid identifier, the
implicit alias will be an invalid identifier and an error will be generated.
7 CHANGED: Database error handling
In Clipper 5.01, using database commands without an open work area would not
cause an error. With the following exceptions, Clipper 5.01a now produces a
"Work area not in use" error.
8 CHANGED: TBrowse error handling
Assigning invalid data to TBrowse and TBColumn instance variables would not
generate an error in Clipper 5.01. Type checking during instance variable
assignment has been added in Clipper 5.01a to trap invalid values and
produce a recoverable runtime error.
9 CHANGED: Miscellaneous error handling
Improved error handling in many Clipper commands and functions traps and
reports missing arguments or invalid arguments passed to them. One notable
example is DBEVAL(), which now produces an argument error if the first
parameter is missing.
10 CHANGED: RL (Report Label) Utility
The Report and Label utility (RL) formatted report headings as fixed-length
strings prior to saving them to the .FRM file. This caused report headings
to be lost when the .FRM file was read by dBASE III+.
11 CHANGED: Miscellaneous Fixes
LABEL FORM - SET DEFAULT
LABEL FORM now uses the SET DEFAULT setting to locate files when the
.LBL file is not in the default directory and an absolute path name is not
specified.
DBEDIT() - Memory variables and expressions as columns
DBEDIT() now accepts memory variables and expressions as arguments in the
<acColumns> array.
DBEDIT() - Field alias in column heading
When specified, DBEDIT() now properly displays field aliases in column
headings. This is consistent with Summer '87.
WAIT
WAIT now accepts characters in the range 32 through 255 (ASCII).
MENU TO
MENU TO no longer repaints the screen with the last prompt when you press
<Esc> to exit the menu.
clipper.132nbatocanin,
> Rules not found in Clipper.exe
Možda je oštećen CLIPPER.EXE?
clipper.133banex,
Meni fali datoteka CLD.LIB da bih mogao da uradim taj update. Ako
je neko ima mogao bi da je zakači...
clipper.134snemcev,
Jel zna neko pošto je Rick Spence 'Clipper 5' u izdanju Mikro
knjige? Ili još bolje, ako neko ima broj telefona, znam da
počinje na 542, a za dalje nisam siguran. I uopšte, kakav utisak
imate o knjizi (oni koji su je kupili)? U principu, očekujem
extra kvalitet, kao i u svim ostalim izdanjima Mikro knjige.
clipper.135balinda,
Telefon je 011/542-516!
Knjiga je inače ODLIžNA!
Nema spisak i opis svih komandi, što je po meni bolja varijanta. Za to služi
fabrički Manual i sl.!
Sursovi iz knjige se (čini mi se - da izvine cenzori :)) mogu nabaviti i sa
Sezama! :)
Pozdrav!
clipper.136ssasa,
Ima li vesti o Clipper-u for Windows ?
clipper.137bulaja,
│Jel zna neko posto je Rick Spence 'Clipper 5' u izdanju Mikro knjige?
│Ili jos bolje, ako neko ima broj telefona, znam da pocinje na 542, a za
│dalje nisam siguran. I uopste, kakav utisak imate o knjizi...
└───
Telefon je 542-516 (shame on u, da si pokupio \ibmpc\misc\tel11.arj imao
bi i ovaj tel :). Knjiga je inace najbolji izbor za Clipper od svega sto
se moze naci kod nas, preporucujem.
clipper.138zorani,
## Sursovi iz knjige se (čini mi se - da izvine cenzori :)) mogu
## nabaviti i sa Sezama! :)
Hm... gde su?
clipper.139dino,
Interesuje me zasto se programi pisani u Clipper-.01 i linkovani
sa Turbo linkom 3.01 ne izvrsavaju korektno´k.
pr. use baza
copy to temp
datoteka TEMP ima strukturu datoteke BAZA ali nema njen sadrzaj.
To sam isto linkovao sa RTLINK-om i sve je radilo OK.
clipper.140ppekovic,
>> Interesuje me zasto se programi pisani u Clipper-.01 i linkovani
>> sa Turbo linkom 3.01 ne izvrsavaju korektno´k.
Pogledaj stare poruke u ovoj conf. bilo je dosta reči o tome. Ukratko,
zaboravi sve druge linkere osim rtlink-a. Jedino je nejasna situacija (čitaj:
premalo je iskustva) sa izvesnim Blinker linker-om, koji navodno radi bez
problema sa clipper-om, a mnogo je brži od rtlink-a.
Voleo bi da čujem iskustva ljudi koji koriste blinker pa da zaključimo
trenutno otvoreno pitanje: koristiti ga ili ne?
Paya
clipper.141zkrstic,
> Voleo bi da čujem iskustva ljudi koji koriste blinker pa da
> zaključimo trenutno otvoreno pitanje: koristiti ga ili ne?
Ovih dana (kao što obično biva, kad dobijem nešto novo, to
prvo mora da "odstoji" ;) ću ga malko pretresti, obzirom da imam
kompletan Blinker 2.0 sa uputstvima i čudima, tako da neće moći da
me zezaju kojekakve "leve" naredbe. Potpom ću vam prezentirati moje
skromno mišljenje :)
Zkr
clipper.142madamov,
******
Telefon je 542-516
******
Takođe može i na broj 542-619.
clipper.143snemcev,
>> (shame on u, da si pokupio \ibmpc\misc\tel11.arj imao bi i
>> ovaj tel :).
Jes, imao sam ga ja. Dosad sam od njih kupio bar 6 knjiga i zvao
ih x puta (seća li se neko problema sa izdavanjem knjige o TP
5?), al' pri poslednjem velikom spremanju nestade mi ona njihova
fina ASCII tablica, a sa njom i broj telefona :((
Anyway, hvala na savetima. Kad se raspitam o ceni, ostaviću je
ovde, čisto radi poređenja.
clipper.144ciki,
Ho!
Pravim neki prg za obracun kamata, pa me intresuje
ima li neko neku proceduru koja za uneti datum daje novi, odgovarajuci
datum, uvecan za 1,3,6 ili 12 meseci...
Sve lepo fercera za 01.02.92. dobija se 01.03.92., ali nesto kao
31.01.92 i 31.02.92 jednostavno ne dela!
P.S. Ako vam nije tesko, a vi pogledajte.
Pozdrav Ciki!
clipper.145melev,
Imam jedno pitanje za sve vas koji koristite CLIPPER:
- Nedavno sam očeo da se zanimam za CLIPPER i nabavio CLIPPER 5.01
pa me interesuje koju knjigu mi preporučujete za CLIPPER, gde bih mogao
da je nadjem i u kojim granicama se kreću cene takvih knjiga?
unapred zahvalan
Melev
clipper.146dejanr,
>> pa me interesuje koju knjigu mi preporučujete za CLIPPER
Dobru knjigu o Clipperu napisao je Rick Spence. Možeš je naći
u originalu (ako se zatekne negde u knjižari) ili u prevodu
Mikro knjige.
Knjiga *nije* zamena za klasično uputstvo (nema detaljan opis
svake komande itd) nego se bavi programiranjem na Clipperu,
tehnikama koje se koriste, daje dosta source koda itd.
clipper.147ratman,
Imam jako dugacak source file, preko 400 linija, i kada ga prevodim
i linkujem, (Cl.5.01), cak i sa PLLinkerom, svaki put traje uzasno
dugo, ludnica kad god nesto menjam, i sve je gore kako je source
duzi. Procitao sam nesto o overlejima i inkrementnom linkovanju,
ali sta tacno treba da radim (podelim u overleje...?) i kako da
sastavim .clp i .lnk fajlove da mogu da kompajliram i linkujem samo
ono sto sam menjao? Verovatno je to jedan od osnovnih problema sa
kojim su se svi sretali.
Pozdrav,
clipper.149bulaja,
│Imam jako dugacak source file, preko 400 linija, i kada ga prevodim i
│linkujem, (Cl.5.01), cak i sa PLLinkerom, svaki put traje uzasno dugo,
└───
Jesi li to zaboravio koju nulu, il' zaista mislis da je 400 linija jako
dugacak source :). Savetujem ti da, pre nego sto krenes da
eksperimentises sa linkerom, razbijes taj jedan source file na module i
koristis make - em sto ce ti tako biti mnogo lakse da pratis source, em
ce se svaki put komajlirati samo izmenjeni modul, sto moze ustedeti
prilicno vremena kod duzih aplikacija.
clipper.150ratman,
Pa, nije dugacak za pisanje, ali je ocajno dugo cekati kompajliranje
na AT/12Mhz/40MbHdisk!
Hvala na savetu! Probacu...
Pozdrav,
Dejan
clipper.151balinda,
Ko je imao neka iskustva sa Flipperom neka ostavi ovde poruku!
Pitanja će slediti preko privatne poste!
Hvala!
clipper.152toma,
Clipperaši pažnja!!!
test(1,2,3)
test_1(1,2,3)
function test // Ovde obratiti
parameters a,b,c // pažnju
for n:=1 to 3
par:=chr(asc("a")+n-1)
? &par
next n
return
function test_1(a,b,c) // Ovde obratiti pažnju
for n:=1 to 3
par:=chr(asc("a")+n-1)
? &par
next n
return
Ovaj program ne radi!!!
Funkcija test fino odradi ali... U funkciji test_1 na komandu
? &par lepo kaže da promenljiva a nije definisana !? Svašta !
Pozdrav from Toma.
clipper.153dejanr,
Zašto ? &par? Koristi ? par
clipper.154jtitov,
> sastavim .clp i .lnk fajlove da mogu da kompajliram i
> linkujem samo ono sto sam menjao? Verovatno je to jedan od
> osnovnih problema sa
Trebao bi da razmislis o Blink-u 2.01. Drugar koji radi sa njim (a nije
Sezamovac) je odusevljen i kaze da mu je Blink skratio vreme razvoja
programa za najmanje 30% ukupnog vremena. Ja sa njim nemam iskustva, posto
sam Fox-ovac, a tu Blink ne pomaze...
clipper.155bulaja,
│Clipperasi paznja!!!
│ (...)
│function test // Ovde obratiti
│ parameters a,b,c // paznju
│ (...)
│function test_1(a,b,c) // Ovde obratiti paznju
│ (...)
│Ovaj program ne radi!!!
└───
Na prvi pogled izgleda da su obe funkcije iste, ali nisu :). Naime,
deklarisanje parametara funkcije preko PARAMETERS iskaza kreira
parametre kao PRIVATE promenljive, dok FUNC naziv (argumenti) kreira
promenljive tipa LOCAL. Posto macro operator ne moze da koristi LOCAL i
STATIC promenljive, to se prilikom njegovog razvijanja javlja greska o
nepostojecoj promenljivoj.
clipper.156petrovics,
>> Knjiga *nije* zamena za klasicno uputstvo (nema detaljan opis
>> svake komande itd) nego se bavi programiranjem na Clipperu,
>> tehnikama koje se koriste, daje dosta source koda itd.
Delimican prevod uputstva la Clipper sa opisom svih funkcija i
naredbi dat je u odlicnoj knjizi Clipper BIBLIJA u izdanju
Nisofta. Ta se knjiga nekad nudila i preko oglasa u racunarima a neznam
dali je jos ima u prodaji. Najbolje je da kontaktirate jednog od
autora, MMARKOVIC ovde, na sezamu.
clipper.157toma,
■■>> Zašto ? &par? Koristi ? par
a:=1
par:="a"
? par => a
? &par => 1 Drastična razlika, OK?
Pozdrav from Toma.
clipper.158ttop,
> Jel zna neko posto je Rick Spence 'Clipper 5' u izdanju Mikro
> knjige? Ili jos bolje, ako neko ima broj telefona, znam da
Ako si zainteresovan imam ja jednu viska.Inace knjiga je SUPER!!!
Cena u knjizari zadnji put kad sam gledao 36.000 din.
clipper.159nbatocanin,
> !? Svašta !
Jok, more! Kad se parametri prihvataju sa (...), onda su klase LOCAL,
a takve promenljive se ne vide u makroima!
clipper.160ndragan,
/ Sve lepo fercera za 01.02.92. dobija se 01.03.92., ali nesto kao
/ 31.01.92 i 31.02.92 jednostavno ne dela!
Zar ne možeš da poslednji dan u mesecu računaš kao prvi u sledećem minus
jedan? U Foksu (znam, znam) postoji funkcija GoMonth(datum, broj_meseci),
koja ti daje datum koji je za toliko meseci pre ili posle zadatog datuma.
Kraj tekućeg meseca dobiješ ovako:
Ktm=GoMonth(š01.12.92ć,1)-1
šć su datumske zagrade (vitičaste). Dakle plus jedan mesec, minus jedan
dan.
P.S. Sad tek vidim da sam prespavao 30.02.92 i 31.02.92.
clipper.161ndragan,
/ function test_1(a,b,c) // Ovde obratiti pažnju
/ for n:=1 to 3
/ par:=chr(asc("a")+n-1)
/ ? &par
/ next n
/ return
A da li bi radilo sa
Function test_1(a,b,c)
? a,b,c
Return
žisto zbog toga što su možda parametri prilikom kompajliranja zamenjeni
ko zna kojim internim imenima (za slučaj kad se f. poziva po adresi
odnosno po vrednosti), pa ih & ne prepoznaje, a ako ih navedeš
eksplicitno, onda i njima da ta ista interna imena?
Moguće je da se linije sa makro zamenama čak i ne prevode. Probao sam
juče da iskompajliram ovu liniju (u foksu):
Idi &begaj
...i uopšte nije javio nikakvu grešku :).
clipper.162snemcev,
>> ima li neko neku proceduru koja za uneti datum daje novi,
>> odgovarajuci datum, uvecan za 1,3,6 ili 12 meseci...
>> P.S. Ako vam nije tesko, a vi pogledajte.
Ako ti nije teško, pogledaj malo po SAMPLE direktorijumu koji je
Clipper napravio pri instalaciji. Tu je i DATE.PRG, a u njemu u
source-u data funkcija AddMonth koja radi baš to što ti treba.
clipper.163broker,
> Pa, nije dugacak za pisanje, ali je ocajno dugo cekati
> kompajliranje na AT/12Mhz/40MbHdisk!
Mislim da i malo zahtevan. Napisao sam nnnnn linija kliper
koda baš takvoj mašini i nije mi se činio spor. Naravno, radio
sam u modulima.
clipper.164snemcev,
Ima li ovde koja dobra duša da mi pošalje datoteku CLRSEL.PRG koja je negde
u arhivi sa izvornim kodom Nanforum-ove biblioteke? Gre'ota mi je da pri
ovim cenama za telefonske impulse skidam 300K zbog par linija koda.
clipper.165snemcev,
Jel probao neko iz Nanforum Toolkit-a onu zamenu za MENU TO sistem?
Kako se meni čini, funkcija FT_MENUTO jednostavno ignoriše bright
atribut za pozadinu, iako je isti omogućen preko SETBLINK( .f. )
Npr. za njega je apsolutno sve jedno dal ću da mu napišem 'W+/N'
ili 'W+/N*', on oba slučaja tretira kao 'W+/N'. Zašto, samo nebo
zna. Ili možda još neko zna? Pretpostavljam da je jedno rešenje u
izmeni izvornog koda funkcije. Ima li neko drugo rešenje?
clipper.166ciki,
>**> Ako ti nije teško, pogledaj malo po SAMPLE
>**> direktorijumu koji je Clipper napravio pri instalaciji.
Ma kakvi tesko. Pogledo sam jos odavno.
>**> Tu je i DATE.PRG, a u njemu u source-u data funkcija
>**> AddMonth koja radi baš to što ti treba.
Pa ne radi bas ono sto mi treba, i to ja zackoljica.Jer ono radi
ono sto radi i moja funkcija, ali za 31.01.93 daje prazan datum:
Kao sto ces videti, i funkcija koja je rasoloziva, ne radi nista oko
dana, vec samo uvecava broj meseci i godina sto je vrlo lako napraviti.
Nevezano za to, sta mislite o semi da se uzme obracun kamate recimo
fiksno za 30 dana, pa na osnovu toga da se radi?
Inace deo listinga izgleda ovako:
..............
č 10,10 say "Datum uloga : " get datum1
č 12,10 say "Datum isteka roka: " get datum2 WHEN car1(datum1)
read
.........
func car1(dDate)
LOCAL nMonth, nDay, nYear, nLimit, nMonthAdd, nYearAdd
// Break date up into its numeric components
nMonth := MONTH( dDate )
nDay := DAY( dDate )
nYear := YEAR( dDate )
*********************************************************************
* Imam 1 private promenljivu kojom zadajem broj meseca, pa treba *
* dodati nesto kao: *
*********************************************************************
do case
case in="A"
nMonth:=1
.......
endcase
nLimit := 12 - nMonth + 1
// Compute number of years to add
nYearAdd := INT( nMonths / 12 )
IF nMonths >= nLimit
nYearAdd++
ENDIF
nYear += nYearAdd
// Compute number of months to add and normalize month
nMonthAdd := nMonths % 12
nMonth := (nMonth + nMonthAdd) % 12
// Convert numeric portions to new date
datum2 = CTOD(STR(nMonth, 2) + "/" + STR(nDay, 2) + "/" + STR(nYear, 4))
RETURN (.t.)
P.S. Ipak hvala na trudu.
Pozdrav Ciki!
clipper.167zkrstic,
Eve ga :)
Zkr
clrsel.arjclipper.168peca.st,
!-> Pa ne radi bas ono sto mi treba, i to ja zackoljica.Jer ono
!-> radi ono sto radi i moja funkcija, ali za 31.01.93 daje
!-> prazan datum:
Mislim da bi ti dejanr mogao pomoći jer je on u onom njegovom SIRODJ morao da
koristi nešto što računa kolko_dana_ima_od_danas ili slično. Dakle, valjda će
ti on pomoći, pošto verovatno zna.
clipper.169dejanr,
>> Mislim da bi ti dejanr mogao pomoći jer je on u onom njegovom SIRODJ
>> morao da koristi nešto što računa kolko_dana_ima_od_danas ili slično.
"Nešto" je u konferenciji ORKA, poruka 14.186. A biće i više o tome u
sledećim "Računarima".
Nadam se da će pomoći, iako nije na clipperu. No dalo bi se prevesti.
clipper.170ciki,
>**> Zar ne možeš da poslednji dan u mesecu računaš kao prvi
>**> u sledećem minus jedan? U Foksu (znam, znam) postoji
>**> funkcija GoMonth(datum, broj_meseci), koja ti daje
Ajde onda lepo ako ti nije tesko, a ti probaj da za one
kriticne datume uradis nesto tako na FOX-u, da samo vidim
sta cu da dobijem.
Pozdrav Ciki!
clipper.171toma,
Ima li neko negde ono programče za ispis(unos) brojeva s desna na
levo iz get-a?
Pozdrav from Toma.
clipper.172ciki,
Ho!
Dobio sam da na masinu (386/40/4/120/SVGAC) na kojoj se nalazi:
WINDOWS 3.1, WORD for WIN 2.0 (ili tako nesto), DOS 5.0, neki
razni UTILITY i cirka 25 igara koje zauzimaju cirka 30MB.
Od rezidentnih stvari je bilo nesto kao:
Podrska za nasa slova iz DOS-a, kesiranje diska mislim da je
SMARTDRIVE, Setver, Himem, DOS=HIGH,..
instaliram neke programe koji su pisani na clipper-u.E sada
pokrenem ja Instal program, i on verovatno radi nesto u fori
RUN COPY to_i_to na_to_i_to, i od 80fajlova, on prekopira
cirka 2-3 i javi gresku da ne moze da izvri kopiranje i izleti
u DOS.
Taj isti paket, ja probam na drugoj 386-ici istih karakteristika,
koja za razliku od I ima disk podeljen na C i D particiju(I ima samo
na C) i radi sve Ok.
Programi su poznate kuce i imaju preko 1000 instalacija, pa nije
greska do programa ni do disketa jer sve lepo radi na II racunaru.
Zna li neko zasto nece da radi???????????????????????????
Da li mu smeta nesto od rezidentnih stvari???????????????
Pozdrav Ciki!
clipper.173petrovics,
>> Pa, nije dugacak za pisanje, ali je ocajno dugo cekati kompajliranje
>> na AT/12Mhz/40MbHdisk!
Bas me zanima koliko dugo cekas na ovo kompajliranje?
clipper.174petrovics,
>> Ko je imao neka iskustva sa Flipperom neka ostavi ovde poruku!
>> Pitanja ce slediti preko privatne poste!
Ako nisu bas tajna ta pitanja a narocito odgovori mislim da bi
bilo bolje da se i o tome pise ovde.
clipper.175ciki,
>**> Ima li neko negde ono programče za ispis(unos) brojeva
>**> s desna na levo iz get-a?
Imam ja za verziju S 87. Ako ti odgovara a ti vici. ;>>
Pozdrav Ciki!
clipper.176ciki,
Ho!
Kako ubaciti 1 txt fajl u memo polje, i kako ga posle procitati, tj.
istampati?
Pozdrav Ciki!
clipper.177ndragan,
/ kriticne datume uradis nesto tako na FOX-u, da samo vidim
Evo:
d gomo(d,-3) -2 -1 +1 +2 +3
31.01.92 31.10.91 30.11.91 31.12.91 29.02.92 31.03.92 30.04.92
31.01.91 31.10.90 30.11.90 31.12.90 28.02.91 31.03.91 30.04.91
30.01.91 30.10.90 30.11.90 30.12.90 28.02.91 30.03.91 30.04.91
Sorsa, naravno, nema, pošto je GoMonth(d,m) interna funkcija FoksProa.
Uoči kako lepo rešava kraj februara :). Ne mo'š ga zajeb*ti, pa to ti
je.
Bue_ Ndragan
clipper.178bulaja,
│Kako ubaciti 1 txt fajl u memo polje
└───
REPLACE memo_polje WITH MemoRead ("FILE.TXT")
clipper.179jtitov,
> Imam ja za verziju S 87. Ako ti odgovara a ti vici. ;>>
Ako te ne mrzi, pljucni je ovamo. Takodje bi lepo bilo da onda dodamo da se
pojavljuju i tacke posle 3. otkucane cifre, a da pazi i na decimalni zarez.
Naravno sve to ako vec nema :)
clipper.180ciki,
>**> Ima li neko negde ono programče za ispis(unos) brojeva
>**> s desna na levo iz get-a?
Imam ja za verziju S 87. Ako ti odgovara a ti vici. ;>>
Pozdrav Ciki!
clipper.181ciki,
Ho!
Kako ubaciti 1 txt fajl u memo polje, i kako ga posle procitati, tj.
istampati?
Pozdrav Ciki!
clipper.182ciki,
>**> Ako nisu bas tajna ta pitanja a narocito odgovori
>**> mislim da bi bilo bolje da se i o tome pise ovde.
Ja ne znam u kakvom ste "stanju" dobili flipper. Ja sam ga dobio
zajedno sa NG i cirka 150 primera, pocevsi od najprostijih, pa do
najslozenijih uz pomoc kojih svako moze da provali foru rada se
flipper-om.
Pozdrav Ciki!
clipper.183ciki,
>**> Ima li neko negde ono programče za ispis(unos) brojeva
>**> s desna na levo iz get-a?
Ocekujem pice!
ciki=space(40)
č 2,5 say "Copaj, copaj bato: " GET ciki PICT ;
zamena("XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", čciki)
read
*
function zamena
param a, kar
b=row()
c=col()
g=LEN(a)
a1=space(g)
č b,c GET a1 PICT "&a"
clear gets
disp=""
a2=c+g-1
č b,a2 +1 SAY ""
h=1
while inkey(0) <> 13
do case
case lastkey()==27
exit
case (lastkey() >= 32 .and. lastkey() <= 126)
disp=disp+chr(lastkey())
h=h+1
č b,a2 GET disp PICT "&a"
if a2 > c
a2 = a2 -1
endif
case lastkey() == 19 .or. lastkey() == 8 .or. lastkey() == 7
disp = Space(g-len(disp)+1)+substr(disp,1,len(disp)-1)
h=h-1
č b,c GET disp PICT "&a"
disp=LTRIM(disp)
if a2 >= c+g-1
a2=c+g-1
else
a2=a2+1
endif
endcase
clear gets
enddo
if lastkey()==27
keyboard chr(27)
else
keyboard chr(13)
endif
fr=space(g-len(disp))
kar=fr+disp
č b,c say ""
return("&a")
P.S. Dobar onaj Stephen J. Straley
Pozdrav Ciki!
clipper.184snemcev,
Thanks a lot!
clipper.185snemcev,
Jel neko uspeo da korisno upotrebi Flipper u svojim programima?
Sudeći prema .ng bazi, njegovih x funkcija rade sve, al' po principu
"što jednostavno, kad može komplikovano". Povrh svega, to čudo je
dugačko 3M - samo malo manje nego Clipper 5.01 sve sa primerima i
svim .ng bazama. Da se razumemo, ideja je OK, al' je realizacija
(da ne kažem implementacija :) užas. Voleo bih da me neko ubedi
da nije tako.
clipper.186ciki,
>**> Sorsa, naravno, nema, pošto je GoMonth(d,m) interna
>**> funkcija FoksProa. Uoči kako lepo rešava kraj februara
>**> :). Ne mo'š ga zajeb*ti, pa to ti je.
Vidis to nije tako tesko uraditi na clipper-u, jer clipper uz
GET klasu ima instancu badDate, pa uz njenu pomoc i jos malo
truda, sve je OK.
P.S. Hvala ti, i izvini ako sam te "namucio" ;>.
Pozdrav Ciki!
clipper.187ciki,
>**> │ Kako ubaciti 1 txt fajl u memo polje
>**> └───
>**> REPLACE memo_polje WITH MemoRead ("FILE.TXT")
Hvala!
Pozdrav Ciki!
clipper.188bdm.,
## Kako ubaciti 1 txt fajl u memo polje, i kako ga posle procitati, tj.
Pogledaj MemoRead(), MemoWrite(), MemoLine(), to ce ti sve obaviti...
Ako nemas NG, ti vici...
BDM.
clipper.189toma,
■■>>>**> Ima li neko negde ono programče za ispis(unos) brojeva
■■>>>**> s desna na levo iz get-a?
■■>>
■■>> Ocekujem pice!
Fala veliko!
Samo nije to to! Radi i ovo, ali... Ali poslužilo je kao ideja
za jednu moju funkciju koja obilazi GET.
---------------------------------------------------------------------------
#include "inkey.ch"
clear screen
a:=0
b:=0
unesi_broj(10,10,"99,999,999.99",@a) && Funkcija vraca .T. ili .F.
unesi_broj(15,10,"99,999,999.99",@b) && if unesi_broj(....) then ..:)
function unesi_broj(xx,yy,pic,a)
local x,y,dec,poz_dec,poz_broj,pic2,p_poz,cifre,cifre_dec,broj,broj_s
x:=xx; y:=yy
pic2:=pic
p_poz:=at(".",pic2)
poz_dec:=0
dec:=.F.
if p_poz <> 0
poz_dec:=len(pic2)-p_poz
pic2:=left(pic2,p_poz-1)
endif
pic2:=strtran(pic2,",","")
poz_broj:=len(pic2)
cifre:=cifre_dec:=""
do while .T.
broj_s:=cifre
if poz_dec<>0
broj_s+="."+cifre_dec
endif
broj:=val(broj_s)
broj:=round(broj,poz_dec)
@x,y say broj picture pic color "I"
if cifre=="-"
@x,y say cifre color "I"
endif
@x,y+p_poz-1 say ""
Ch:=inkey(0)
do case
case Ch == K_ESC .or. Ch==K_PGUP .or. Ch==K_PGDN
@x,y say ""
return(.F.)
case Ch == K_ENTER
a:=broj
@x,y say broj picture pic color "I"
return(.T.)
case chr(Ch) $ "0123456789"
if !dec
cifre:=dodaj_cifru(cifre,chr(Ch),poz_broj)
else
cifre_dec:=dodaj_cifru(cifre_dec,chr(Ch),poz_dec)
endif
case chr(Ch) == "." .and. poz_dec<>0
if !dec
dec:=.T.
endif
case Ch==K_BS
if dec .and. len(cifre_dec)==1
dec:=.F.
cifre_dec:=""
else
if dec
cifre_dec:=brisi_cifru(cifre_dec)
else
cifre:=brisi_cifru(cifre)
endif
endif
case Ch==K_DEL .and. len(cifre_dec)>0
if len(cifre_dec)==1
dec:=.F.
cifre_dec:=""
else
cifre_dec:=brisi_cifru(cifre_dec)
endif
case chr(Ch) == "-"
if len(cifre)==0
cifre:="-"
elseif left(cifre,1)<>"-" .and. len(cifre)<poz_broj
cifre:="-"+cifre
endif
case chr(Ch) == "+" .and. len(cifre) > 0
if left(cifre,1) == "-"
cifre:=right(cifre,len(cifre)-1)
endif
endcase
enddo
return
function dodaj_cifru(a,cif,duz)
local niz
if len(a)<duz
niz:=a+cif
else
tone(1100,0)
niz:=left(a,len(a)-1)+cif
endif
return niz
function brisi_cifru(a)
return(if(len(a)==0,"",left(a,len(a)-1)))
---------------------------------------------------------------------------
To je to!
Pozdrav from Toma.
clipper.190nbatocanin,
>>**> Ima li neko negde ono programče za ispis(unos) brojeva
>>**> s desna na levo iz get-a?
Možda je lakše napisati reader za GET sistem - ne čini mi se previše
teško!
clipper.191melev,
Zdravo svima!
Sto se tice CLIPPER-a ja sam pocetnik, i poceo sam da radim nesto u
CLIPPER-u (Summer 87) i imam jedno pitanje na koje bih vas molio da mi
odgovorite. Radi se o sledecem problemu:
Kako da pretrazujem bazu a da recimo polje u kome pise PESMA
mogu da pronadjem zadajuci mu 'kljuc' po kome ce da trazi samo ESMA
(znaci da ne moram da zadam sve tj. PESMA).
Radio sam sa LOCATE FOR izraz = "PESMA" i sa CONTINUE. Probao sam takodje
i sa SEEK "PESMA" ali mi se SEEK ne svidja zato sto uvek pretrazuje od
pocetka baze, i zato sto radi sa indeksnim bazama koje za LOCATE nisu
potrebne.
Jos jednom bih vas zamolio kad nadjete malo slobodnog vremena da mi
napisete nesto o ovo problemu.
pozdrav........... Melev
clipper.192d.petrovic,
Ă> Jos jednom bih vas zamolio kad nadjete malo slobodnog vremena da
Ă> mi
A to znaž nikad ;)) Zaboravi na sve što nije indeksirano i pogledaj
malo naredbu set softseek, ako i dalje nije jasno pitaj. Ah, da, da
te ubedim... dok imaš 20-30 zapisa u bazi možda ti se locate i ne
učini sporim, ali kad to bude trebalo da radi sa 4-5 000... ;)))
clipper.193ciki,
>**> Sorsa, naravno, nema, pošto je GoMonth(d,m) interna
>**> funkcija FoksProa. Uoči kako lepo rešava kraj februara
>**> :). Ne mo'š ga zajeb*ti, pa to ti je.
Evo saljem nesto na clipeti.Radjeno je na masini sa S'87,
sto bi trebalo da bude ekvivalent FOX-ovoj GoMonth(d,m).
P.S. Izvinite zbog nepreglednog listinga, ali bolje da ga ja
unakazim ;(, nego SEZAM :).Salim se provucite ga posle
kroz SNAP i on ce srediti stvar.
Pozdrav Ciki!
function Dodaj_m ( dDatum, nBroj )
a1=dtos(dDatum)
nDan=val(substr(a1,7,2))
nMes=val(substr(a1,5,2))
nGod=val(substr(a1,1,4))
nPr1=nMes+nBroj
if nBroj=0
return(dDatum)
endif
do case
case nPr1>0
nGf1=int(nPr1/12)
nGod=nGod+nGf1
nMes=nPr1-(nGf1*12)
case nPr1=0
nMes=12
nGod=nGod-1
case nPr1<0
nBroj1=0
do while .t.
nBroj1=nBroj1+1
if ((nBroj1*12)+nPr1)>0
exit
endif
enddo
nGod=nGod-nBroj1
nMes=nPr1+(nBroj1*12)
endcase
do case
case (nDan=31)
do case
case nMes=1 .or. nMes=3 .or. nMes=5 .or. nMes=7 .or. nMes=8 ;
.or. nMes=10 .or. nMes=12
nDan=31
case nMes=4 .or. nMes=6 .or. nMes=9 .or. nMes=11
nDan=30
case nMes=2
if int(nGod/4)=nGod/4 .and. (nGod/100)<>int(nGod/100)
nDan=29
else
nDan=28
endif
endcase
case (nDan=30) .or. (nDan=29)
nBroj=nDan
do case
case nMes=2
if int(nGod/4)=nGod/4 .and. (nGod/100)<>int(nGod/100)
nDan=29
else
nDan=28
endif
otherwise
nDan=nBroj
endcase
endcase
return(ctod(str(nDan,2)+"."+str(nMes,2)+"."+str(nGod,4)))
clipper.195bulaja,
│Kako da pretrazujem bazu a da recimo polje u kome pise PESMA mogu da
│pronadjem zadajuci mu 'kljuc' po kome ce da trazi samo ESMA (znaci da ne
│moram da zadam sve tj. PESMA). Radio sam sa LOCATE FOR izraz = "PESMA" i
│sa CONTINUE. Probao sam takodje i sa SEEK "PESMA"
└───
Jednostavno :), Clipper ima i relacioni operatator $ (sintaksa: string1
$ string2), koji proverava postojanje jednog stringa (prvog) unutar
drugog. Dakle ("ESMA" $ "PESMA") ce vratiti vrednost .T., ili u tvom
slucaju pretrazujes sa
LOCATE FOR ("ESMA" $ izraz)
Locate je inace dosta spora naredba, tako da ako ti je dovoljno samo
exact pretrazivanje (kljuc = izraz) koristi SEEK po indeksnoj datoteci.
clipper.196ciki,
>**> Kako da pretrazujem bazu a da recimo polje u kome pise
>**> PESMA mogu da pronadjem zadajuci mu 'kljuc' po kome ce
>**> da trazi samo ESMA (znaci da ne moram da zadam sve tj.
>**> PESMA).
Jedan od nacina je upotreba filtera (Znam znam ali sam je rekao
da je pocetnik).Znaci imas bazu recimo koja izmedju ostalog ima
polje OPIS C 6.E sada recimo tebi su potrebni svi slogovi koji
imaju u tom polju ono ESMA ( ? ).Ti onda uradi ovako:
...................
cKljuc="ESMA"
Set filter to at(alltrim(cKljuc),opis)>0
go top
P.S. Ajte ljudi da zbudzimo nesto kao sto je SUBNTX sa SEZAMA.
P.P.S. Valjda ce ti biti jasno.Ako ne ti urlaj.
Pozdrav Ciki!
clipper.197ndragan,
/ Kako ubaciti 1 txt fajl u memo polje, i kako ga posle procitati, tj.
/ istampati?
Za foksovce koji to možda ne znaju:
APPEND MEMO <memo field> FROM <file> ŠOVERWRITEĆ
Bez Over će da se (po difoltu) doda na kraj postojećeg memo polja.
COPY MEMO <memo field> TO <file> ŠADDITIVEĆ
<file> može biti i 'lpt1' pa smo ga odštampali, a može da se koristi i
kao string, manipuliše njime i onda štampa; ako se kopira u memorijsku
promenljivu, ne može više od 64K, ali ako ide u drugo memo polje pa se
tamo mulja, on pravi sve nove i nove primerke tog polja (recimo Replace
mpolje with chrtran(mpolje,chr(9),' ') bi napravilo nov primerak koji bi
sadržavao blankove umesto tabova. Suvišni primerci se brišu sa Pack
Memo. Jedino treba voditi računa o prostoru na disku.
clipper.198broker,
> Pa, nije dugacak za pisanje, ali je ocajno dugo cekati
> kompajliranje na AT/12Mhz/40MbHdisk!
Mislim da i malo zahtevan. Napisao sam nnnnn linija kliper
koda baš takvoj mašini i nije mi se činio spor. Naravno, radio
sam u modulima.
clipper.199ndragan,
/ return(ctod(str(nDan,2)+"."+str(nMes,2)+"."+str(nGod,4)))
Au, bre, mnogo dugačko. Kad malo bolje razmislim - neka ga skraćuje neko
drugi. Ima jedna prostija ideja (svojevremeno korišćena u kobolu :), da
se napravi dvanaestočlani niz koji ima broj dana od početka godine do
prvog u mesecu, dakle (0,31,59,90,120,151...,334). Za prestupne godine
samo dodaš 1 za mesece veće od dva. To bi skratilo račun, a?
clipper.200bulaja,
│a1=dtos(dDatum)
│nDan=val(substr(a1,7,2))
│nMes=val(substr(a1,5,2))
│nGod=val(substr(a1,1,4))
└───
Clipper ima svoje funkcije Day(), Month() i Year() :).
clipper.201dusanp,
Da li neko zna za neki stvarno dobar generator ekrana,
nesto upotrebljivo? Da li neko koristi bilo kakav program?
Kako pravite menije, getove i sl? Da li moze nesto da se
ucini iz dBase-a? Kako to radi Fox?
clipper.202bulaja,
│Da li neko zna za neki stvarno dobar generator ekrana, nesto upotrebljivo?
└───
\IBMPC\EDITOR\
tdraw450.arj .a01
TheDraw v4.50, screen generator/editor
TheDraw v4.50, ekranski (screen image) generator/editor. Poseduje razne
mogucnosti kreiranja ekrana za prikazivanje, a uradjeno je moguce snimiti u
mnogobrojnim formatima za kasnije koriscenje ili pozivanje iz svojih programa.
Podrzani formati su: ANSI color, ASCII text, binarni (dump sadrzaja ekrana sa
atributima), BSave (Basic), .COM (pravi izvrsne datoteke), Assembler, Turbo
Pascal, C, Object (.OBJ) i specijalni TDraw (kompresovani). Binarni oblik se
moze koristiti prakticno iz svakog programskog jezika, npr. kompatibilan je sa
Clipper-ovim savescreen().
clipper.203ciki,
>**> / return(ctod(str(nDan,2)+"."+str(nMes,2)+"."+str(nGod,4))
>**>
>**> Au, bre, mnogo dugačko. Kad malo bolje razmislim - neka
>**> ga skraćuje neko drugi. :)))
Ma nije to nista. U stanju sam da u DOS-u pisem da bi iskopirao
nesto iz dir-a u dir jos duze kobasice, a da ne startujem pct :)
Pozdrav Ciki!
clipper.204ciki,
>**> Clipper ima svoje funkcije Day(), Month() i Year() :).
:)))))))
Znam! Pogledaj odgovor ndragan-u i sve ce ti biti jasno!
Pozdrav Ciki!
clipper.205petrovics,
>> i sa SEEK "PESMA" ali mi se SEEK ne svidja zato sto uvek pretrazuje od
>> pocetka baze, i zato sto radi sa indeksnim bazama koje za LOCATE nisu
Sto pre batali sve sto ne radi sa indeksima (set filter to,
locate, ...) jer to po nekad zna da traje satima ...
Iskljucivo koristi indekse za pretrazivanje.
clipper.207toma,
■■>>>>**> Ima li neko negde ono programče za ispis(unos) brojeva
■■>>>>**> s desna na levo iz get-a?
■■>>
■■>> Možda je lakše napisati reader za GET sistem - ne čini mi se previše
■■>> teško!
Evo ga!
Ali... Pošto se bliži vreme godišnjih obračuna, imam vrlo malo
vremena tako da je ovo u stvari samo neka ideja... Ako neko ima
malo više vremena neka pogleda i neka ga "dopravi".
Pozdrav from Toma.
ps. zip je ver1.1 !
getsys.zipclipper.208melev,
║ Locate je inace dosta spora naredba, tako da ako ti je dovoljno samo
║ exact pretrazivanje (kljuc = izraz) koristi SEEK po indeksnoj datoteci.
Ubedili ste me da predjem na SEEK. Polako sam punio bazu i kada se
poprilicno napunila onda više nije tako brzo radilo kao pre.
Da ne bih svima odgovarao pojedinacno, koristim priliku da se svima
zahvalim koji su mi odgovorili (i to svi isto :))).
Imam još jedno pitanje: (al' davim)
Kako rešavate problem sortiranja? Recimo kada mu dam da pronadje neki
string po 'ključu' i on mi nadje više njih, kako da ih sortiram pa tek onda
da min ih ispise? Koristio sam SORT ali je užasno sporo. Da li postoji neka
druga fora?
pozdrav...... Melev
clipper.209gstojkovic,
Zdravo!
Prvo srecna Nova godina, Bozicni praznici i Pravoslavna Nova godina svima koji
se nalaze na ovoj konferenciji.
Imam jedan problem sa programom pa molim sve dobo dusne kliperase da mi po-
mognu.Naime imam jedan program napisan dosta pocetnicki posto sam i sam
pocetnik koji ima oko 4600 linija i pri duzem radu javlja mi sledece gresku za
koju nisam nasao objasnjenje ni u NG ni u nekim knjigama koje imam o
programiranju u Clipperu. Greska je sledeca: (B)__GET(0) UNRECOVERABLE ERROR
650: PROCESSOR STACK FALUT. Predpostavljam da ova greska ima veze sa Get
naredbom i sa nekom nepravilnom upotrebom te naredbe. Dali postoji nacin da je
otkonim i kako.
Molim vas iza blize objasnjenje ove greske.
Unapred zahvalan na odgovoru...
S'postovanjem
Goran Stojkovic
clipper.210ndragan,
/ Ma nije to nista. U stanju sam da u DOS-u pisem da bi iskopirao
Jedan kolega je za života stigao da smisli teoriju o dve vrste lenjih
programera: jedni su lenji da pišu dugačke komandne linije, a sačuvaj
bože da ikad otkucaju istih pet komandi jednu za drugom - oni će radije
da napišu nešto da sledeći put kucaju bilo kakvu nebulozu _ne_dužu_od_
20 znakova; druga vrsta lenjih programera će i jedanaesti put kucati
isti niz kobasica, jer nešto nisu ubeđeni da će morati i dvanaesti
put... (e sad mi se čini da sam ovo već jednom kucao, ali ipak spadam u
onu drugu grupu :) ).
Ono što u tvom primeru odudara od te priče, je da rutine koje treba
često nešto da muljaju (a takve datumske zezalice se kod kamata
ponavljaju kod svakog sloga bar jednom) treba da budu optimizovane (što
kraće a brže); za rutinu za ispis zaglavlja se nikad ne bih pretrgao.
Vredi razmisliti čak i o pravom matematičarskom skraćivanju algoritma
(ako može).
clipper.211ndragan,
/ ucini iz dBase-a? Kako to radi Fox?
Super (mislim na foks pro 2.0). Svrati do Maksa ili Jure pa da vidiš.
(Max, Jura, primate jednog kliperaša da vam zaviri u ekran? :)
clipper.212jtitov,
> (Max, Jura, primate jednog kliperasa da vam zaviri u
> ekran? :)
Naravno, uvek raspolozen za saradnju.
clipper.214ppekovic,
>> Kako rešavate problem sortiranja? Recimo kada mu dam da pronadje neki
>> string po 'ključu' i on mi nadje više njih, kako da ih sortiram pa tek onda
>> da min ih ispise? Koristio sam SORT ali je užasno sporo. Da li postoji neka
>> druga fora?
Ako tražiš sa seek, znači da tražiš po indeksu, a indeks je
sortiran, tako da će ti niz koji pronađeš uvek biti sortiran ;)
Paya
clipper.215dusanp,
=> Super (mislim na foks pro 2.0). Svrati do Maksa ili Jure
=> pa da vidiš.
Videh, shvatih, ostadoh ;))
Ma fox nije normalan kolko je dobar. Sve ono što mi je
trebalo se nalazi na jednom mestu. I ekran i meni i dbf i
još_koječega generator... A druga stvar je nacin rada -
kod clippera me je izluđivala sporost u radu tipa napravim
malu izmenu, kompajliram i popijem kafu, podsetim se sta sam
ono bese menjao, pa opet od početka. A i stomak mi propade
od silnih kafa:)
Dakle od danas narode: u klasi programa koji rade sa dbase
formatima radim u Foxu.
clipper.216pedjolino,
Evo mog resenja tvog problema. Program je kratak i lako
ces razumeti sta radi. Uokviri ga da bude kao funkcija i
eto resenja.
Pozdrav Nenad.
datumi.prgclipper.217d.petrovic,
Ă> 650: PROCESSOR STACK FALUT. Predpostavljam da ova greska ima veze
Miriše na neko pozivanje funkcije ili procedure rekurzivno, ali
da se ne vraćaš odakle si počeo. Valjda ti ispiše odakle je šta i po
koliko puta pozvano.
clipper.218d.petrovic,
Ă> Dakle od danas narode: u klasi programa koji rade sa dbase
Ă> formatima radim u Foxu.
conf ignore dusanp ;) Da ga se odreknemo? ;)
clipper.219ndragan,
/ string po 'ključu' i on mi nadje više njih, kako da ih sortiram pa tek
/ onda da min ih ispise? Koristio sam SORT ali je užasno sporo. Da li
/ postoji neka
seek <traženi string>
sort to radna while <onaj isti uslov>
select 0
use radna
To ako su traženi slogovi zaista jedan do drugoga; ako nisu, onda malo
komplikovanija tehnika: iskopiraš strukturu baze; nađeš prvi slog;
iskopiraš taj slog u onu drugu bazu, ponavljaš 2. i 3. dok nalaziš
slogove; indeksiraš drugu bazu kako hoćeš, radiš s njom šta hoćeš i na
kraju je obrišeš (šta će ti ?).
clipper.220dusanp,
=> conf ignore dusanp ;) Da ga se odreknemo? ;)
Šo? Bojiš se promena?
clipper.221bulaja,
│Kako resavate problem sortiranja? Recimo kada mu dam da pronadje neki
│string po 'kljucu' i on mi nadje vise njih, kako da ih sortiram pa tek
│onda da min ih ispise?
└───
Ako trazis string po kljucu koji je ujedno i index key, onda ces dobiti
sve poredjano. Ako trazis npr. sa LOCATE, onda smesti sve sto nadjes i
niz i sortiraj niz pre prikazivanja funkcijom ASort(). Na SORT naredbu
zaboravi :).
clipper.222d.petrovic,
Ă> => conf ignore dusanp ;) Da ga se odreknemo? ;)
Ă>
Ă> Šo? Bojiš se promena?
Proveravaš? ;) Hajde idi spavaj, kad se probudiš ličiće ti to sve na
ružan san ;)
clipper.223banex,
Posle 2 nedelje mučenja, najzad sam rešio jedan problem koji mi
se pojavljivao u programima, pa da ga podelim sa vama.
Naime, pri izlasku iz programa koji je sve savršeno radio dobijao
sam poruku 'Run-Time error R6001 - null pointer assignment'. Naravno,
broj grešeke ne postoji u ng za clipper (5.01), a krive su dve
funkcije iz Expand v2.0 biblioteke ( PackDate() & PackTime() ). Nisam
imao vremena da eksperimentišem sa njima i vidim da li postoji neki
način da se izbegne taj problem, ako ga pronađem obavestiću vas.
CU! -BANE-
clipper.224ciki,
>**> Evo mog resenja tvog problema. Program je kratak i lako
>**> ces razumeti sta radi. Uokviri ga da bude kao funkcija
>**> i eto resenja.
Nije problem.U stvari pre je bio ali mali, sada ne.Inace i ja sam
uradio onu kratku proc :).
P.S. Hvala ti na trudu.Svaka pomoc je dobrodosla.
Pozdrav Ciki!
clipper.225ciki,
Ho!
Ljudi, moze li, i ako moze da postoji 2 ridera u jednom programu.
1 da bude ono s'leva na desno, a II obratno?
Pozdrav Ciki!
clipper.226ciki,
Ho!
Posle svih poruka slovima, koja funkcija radi tacno, i uz koju je
poruku vezana.
Pozdrav Ciki!
clipper.227nbatocanin,
> Molim vas iza blize objasnjenje ove greske.
Ovo se javlja kada rekurzivno pozivaš "previše" puta neku funkciju -
proveri da li neka rezidentna f-ja poziva sama sebe i sl.
clipper.228gstojkovic,
*** Hvala d.petrovicu i nbatocaninu na odgovorima. Problem odklonjen po
vasim savetima. ;)
Pozdrav Goran
clipper.229ppekovic,
>> Naime, pri izlasku iz programa koji je sve savršeno radio dobijao
>> sam poruku 'Run-Time error R6001 - null pointer assignment'. Naravno,
>> broj grešeke ne postoji u ng za clipper (5.01), a krive su dve
>> funkcije iz Expand v2.0 biblioteke ( PackDate() & PackTime() ).
Iz ove greške se vidi da je ta biblioteka pisana uz
pomoć Microsoft C kompajlera ;)). Pored uopštenog objašnjenja
datog u Microsoft Help-u, konkretno, ta greška se javlja kada
ne alociraš dovoljno memorije za neku promenljivu, ili
jednostavno negde pogrešiš u pointer aritmetici i sl.
>> Nisam
>> imao vremena da eksperimentišem sa njima i vidim da li postoji neki
>> način da se izbegne taj problem, ako ga pronađem obavestiću vas.
Dakle, teško da ćeš uspeti to da "središ".
Paya
clipper.230nbatocanin,
> Ljudi, moze li, i ako moze da postoji 2 ridera u jednom
> programu. 1 da bude ono s'leva na desno, a II obratno?
Može, bilo je u "Računarima". Samo promeniš promenljivu reader u
odgovarajućem objektu. Na primer, imaš proceduru za unos "u levo":
@ 1,0 GET x
@ 2,0 GET y
@ 3,0 GET z
// Izmena readera-a drugog objekta
GetList[2]:reader := { || GetLeft() }
READ
clipper.231nbatocanin,
U vezi za editorom memo polja koji je objavljen u "Računarima":
neke funkcije sam dodelio tasterima koje iz nepoznatog razloga neki
računari ne prepoznaju. Znači, postoje dva leka: ili ubacite
odgovarajući kod tastera u INKEY.CH ili izaberite neki drugi taster.
clipper.232ndragan,
/ conf ignore dusanp ;) Da ga se odreknemo? ;)
Mani čoveka. Trpite i mene, pa jel' vam nešto škodilo? :)
clipper.233bulaja,
│ U vezi za editorom memo polja koji je objavljen u "Racunarima":
│neke funkcije sam dodelio tasterima koje iz nepoznatog razloga neki
│racunari ne prepoznaju.
└───
Morali bi svi sa AT tastaturom da ih prepoznaju, verovatno je problem u
tome sto nisu ubacili kodove za njih u inkey.ch. Ako ne znate koji je
Inkey() kod nekih tastera (a veliki broj Alt-* i Shift* kombinacija nije
opisan ni u Inkey.Ch ni u dokumentaciji), evo vam programcic koji
ispisuje Inkey() kodove za pritisnute tastere (ESC za izlaz). Nije neka
mudrost :) ali radi.
inkey.arjclipper.234ciki,
Ho!
Imam jedan question. U novim racunarima ima sema kako procitati neke
generalije oko diska. Problem je u tome kako to izvesti uz pomoc
nanfor-a i FT_INT86() (e tako bese), ili uz pomoc masm-a, ali da mi
parametre preda clipper programu.
Pozdrav Ciki!
clipper.235d.petrovic,
Ă> Mani čoveka. Trpite i mene, pa jel' vam nešto škodilo? :)
Ti nisi ni bijo naš, protivnika poštujemo, a izdajicu... ;)
clipper.236dusanp,
=> Ti nisi ni bijo naš, protivnika poštujemo, a izdajicu...
Ma pusti ti izdajicu. Posao za koji bi mi u kliperu trebalo
pet dana rada, u foxu sam uradio za dva. A još uvek se navikavam,
verovatno to može i brže.
Niko do sada nije napisao ništa o makroima u foxu. E, pa ja
sam foxov editor prilagodio tako da je CTRL+Y brisanje linije,
F2 snimanje fajla, F9 kompajliranje... bogte ko u BC-u:))
clipper.237bulaja,
│ Niko do sada nije napisao nista o makroima u foxu. E, pa ja
│sam foxov editor prilagodio tako da je CTRL+Y brisanje linije,
│F2 snimanje fajla, F9 kompajliranje... bogte ko u BC-u:))
└───
Ajde da te vidim jos da to cudo od Fox-a povezes sa BC-om. :)
clipper.238ciki,
>**> Ajde da te vidim jos da to cudo od Fox-a povezes sa BC-om. :)
Ako povezes i ja prelazim na FOX!?
P.S. Sala mala.
Pozdrav Ciki!
clipper.239ndragan,
/ Posle svih poruka slovima, koja funkcija radi tacno, i uz koju je
/ poruku vezana.
Da ne šaljem četvrti put, ostalo je da DejanR ubaci poslednje izmene,
jer se poslednja verzija već dovoljno razlikuje od klipera (rutina je za
Foks). Još uvek dobijam poruke gde me ljudi pitaju šta je Between(a,b,c)
i šta je Mod(a,b). Mislim da je vreme da to završimo.
Dejane?
clipper.240dusanp,
=> Ajde da te vidim jos da to cudo od Fox-a povezes sa
=> BC-om. :)
Pokušaću, i čim nešto smislim, odmah javljam. Nevolja
je u tome što za zezanje imam vremena tek za 15 dana...
Naravno da i mene zanima povezivanje - zamisli sa jedne
strane fox a sa druge paradox engine:)))
clipper.241ndragan,
/ Ti nisi ni bijo naš, protivnika poštujemo, a izdajicu... ;)
Prelistaj malo unazad, ono sa kelnerom... (wait to waiter). Imao sam
jednu aplikaciju u kliperu. Nije loše kao iskustvo.
clipper.242garderp,
Zanimaju me sledeći podaci o Clipperu 5.01:
- Kolika je maximalna dužina u MB po jednoj tabeli
- Koliki je maximalni broj otvorenih dbf-ova i ntx-ova
- šta sve od dodatnih modula postoji za clipper
- da li ga je moguće povezati samo sa MS C-om
- ako je odgovor na prethodno pitanje DA, zašto
- da li clipper ima primarne i sekundarne indekse
- da li je podržano struktuirano programiranje, dakle:
- javne i privatne varijable sa mogućnošću maskiranja
- rekurzivni pozivi funkcija
- varijabilan broj parametara pri pozivu funkcije
- vektori proizvoljne dimenzije
- strukture
- da li može da se piše malim slovima
(ovo zadnje nije bitno, samo sam se šalio)
clipper.243nbatocanin,
> Morali bi svi sa AT tastaturom da ih prepoznaju, verovatno
> je problem u tome sto nisu ubacili kodove za njih u
> inkey.ch.
Na žalost, ne. Već sam poslao poruku na tu temu: Clipper na nekim
računarima ne prepoznaje sve kodove sa tastature!
clipper.244ciki,
>**> Da ne šaljem četvrti put, ostalo je da DejanR ubaci
>**> poslednje izmene, jer se poslednja verzija već dovoljno..
Ups. Ima jedna u novim R. Sorry.
Pozdrav Ciki!
clipper.245ciki,
Ho!
Evo pisem ovo i obracam se fox-ovcima (a ruka mi drhti...), da mi pojasne
neke stvari uvezi fox-a.
1.) Ima li fox nesto ekvivalentno clipper naredbama:
a) Valid i When (č say .. get .. pict .. valid ... when)
b) Kako se fox snalazi sa set filter na mnogo slogova
c) Ima li vise dimenzione nizove i naredbe slicne aadd i ascan
( prva dodaje novi element nizu, a druga trazi odredjeni
element u nizu?)
d) Max broj elemenata jedne areje(niza)?
e) max broj slogova u datoteci
f) duzina numerickog polja
g) duzina memo-a
2.) Kako se snalazi sa programima radjenim za color kartu na mono
sistemima?
3.) Ako neko zna mogucnost povezivanja flipper-a sa fox-om.
P.S. Ajde ako nekome nije tesko da mi ovo nazvrlja.
P.P.S Kada budem u Bg iskoristio bih priliku da odem kod nekoga koji
dobro barata fox-om da mi prikaze prave mogucnosti, pa da ne
budem sasvim ne upucen!
P.P.P.S. A kako se snalazi sa pacovom?
Pozdrav Ciki!
clipper.246bulaja,
> Zanimaju me sledeci podaci o Clipperu 5.01:
│ - Kolika je maximalna duzina u MB po jednoj tabeli
└───
Velika :). U prakticnom pogledu neogranicena, ali mislim da je teorijski
limit na nekih 16 Gb. Meni trenutno stoje na disku baze od nekih desetak
Mb i (naravno) rade bez problema.
│ - Koliki je maximalni broj otvorenih dbf-ova i ntx-ova
└───
Za razliku od PXE :), koliko god hoces do 255 (i da bude u config.sys).
│ - sta sve od dodatnih modula postoji za clipper
└───
Svasta :).
│ - da li ga je moguce povezati samo sa MS C-om
│ - ako je odgovor na prethodno pitanje DA, zasto
└───
Moze i sa ostalim C-ovima, jedino sto samo sa MS C-om radi dobro float
emulacija (zato ima problema sa povezivanjem grafike). Inace redovno
korisitm kombinaciju Clipper + BC++ i radi :).
│ - da li clipper ima primarne i sekundarne indekse
└───
Jos uvek mi nije do kraja jasno sta Paradox podrazumeva pod sekundarnim
indeksom, ali u Clipper-u mozes imati do 15 istovremeno otvorenih
indeksa nad jednom bazom, mozes menjati koji ce biti primarni i svi se
automatski osvezavaju prilikom promene vrednosti kljuceva.
│ - da li je podrzano struktuirano programiranje, dakle:
│ - javne i privatne varijable sa mogucnoscu maskiranja
│ - rekurzivni pozivi funkcija
│ - varijabilan broj parametara pri pozivu funkcije
│ - vektori proizvoljne dimenzije
└───
Da.
Da.
Da.
Da.
│ - strukture
└───
Ne poput C-ovskog struct, ali ne fali mnogo jer se sve moze izvuci usled
slabe tipiziranosti (npr. simulacija struktura preko nizova).
│ - da li moze da se pise malim slovima
└───
Da :).
Sve u svemu, mrka kapa za Paradox Engine u poredjenju sa Clipper-om :).
Ako vec hoces da pokusas da pokazes u cemu je PXE (pretpostavljam da te
Clipper interesuje za prezentaciju :) bolji od Clipper-a, onda jedino da
krenes od sporosti Clipper-a i brzine PXE.
clipper.247dejanr,
Ne znam gde bih ovo pitao, pa reko' pošto je program na Clipper-u...
Elem, prilagođavam neki softver za neku firmu, i između ostalog
generišem neke spiskove koji idu za socijalno. Tu ima i odgovarajućih
podataka za druge firme itd, da ne dužim mnogo. Tek, pojavljuje se
jedan broj koji se u zdravstvenoj knjižici zove "registarski broj",
i na neki način opisuje radnu organizaciju. To, međutim, nije matični
broj RO, pre svega zato što matični broj ima 7 cifara a ovaj ima 10,
a osim toga matični brojevi za Srbiju počinju na 7 a ovaj broj, reklo
bi se po par "štih proba" sa naokolo sakupljenim zdravstvenim knjižicama,
počinje sa 6 (ili čak 60).
Zna li neko o kakvom se broju tačno radi i da li u njegovom dodeljivanju
postoji ikakva logika koja bi omogućila da se "izvadi" iz ostalih podataka
o firmi, ili se mora negde (gde?) juriti baza podataka koja sadrži imena
firmi i ove "registarske brojeve"?
clipper.248dnikolic,
>> Za razliku od PXE :), koliko god hoces do 255 (i da bude u config.sys).
Zasto za razliku od PXE? Pa i tamo moze da se otvori do 255 baza!
>> emulacija (zato ima problema sa povezivanjem grafike). Inace redovno
>> korisitm kombinaciju Clipper + BC++ i radi :).
:) Jos bolje saradjuju PXE i BC.
>> Sve u svemu, mrka kapa za Paradox Engine u poredjenju sa Clipper-om :).
Ne vidim u cemu je Clipper bolji. Brzinu necu pominjati. :))
dn
clipper.249zkrstic,
> Ne vidim u cemu je Clipper bolji. Brzinu necu pominjati. :))
Uh! Jel' si bre doručkovao :))) Pa PXE ima samo jednu prednost
nad Clipperom a to je brzina...
Zkr :)
clipper.250garderp,
> Sve u svemu, mrka kapa za Paradox Engine u poredjenju sa
> Clipper-om :). Ako vec hoces da pokusas da pokazes u cemu
> je PXE (pretpostavljam da te
Veruj mi da sam šokiran izjavom da je mrka kapa za PXE i to u odnosu
na clipper.
- sve što sam pitao za clipper to već PXE ima jer to u stvari C ili
Pascal imaju, hteo sam samo da vidim šta clipper nema
- ne verujem (mada trenutno ne mogu do kraja da argumentujem) da
prevodilac clipper -> machine code može da radi bolje od
borland C 3.1 -> machine code.
- Struktura dbf-a je jako anahrona. (čitaj spora)
- Ova prethodna razloga govore o brzinskom preimućstvu PXE-a u odnosu
na clipper. Recimo da clipper ima sve kao i PXE što se tiče mogućnosti
programiranja. Šta je onda sa brzinom? Zašto onda ostati na nečemu
što je očiglednije sporije, samo zbog toga što nas mrzi da učimo još
malo.
Koliko sam obavešten, treba da izadje nova verzija clippera (6.xx) za
Windowse. Dakle, to treba da se kupi. PXE radi za DOS isto tako dobro
kao i za Windows. Ako sad kažeš ko radi baze za Windowse, nećeš me
baš ubediti. To što se kod NAS ne radi ni stoti deo aplikacija za
Windowse kao u svetu, to je druga stvar. Razlog je nedostatak literature
koji je razlog informatičke blokade i siromaštvo, koji sam u nekoj
ranijoj poruci pomenuo.
clipper.251dnikolic,
>> Zasto za razliku od PXE? Pa i tamo moze da se otvori do 255 baza!
Pardon, fajlova.
dn
clipper.252bulaja,
│Zasto za razliku od PXE? Pa i tamo moze da se otvori do 255 baza!
└───
Koliko sam ja cuo, samo 20 (?).
clipper.253ndragan,
/ Na žalost, ne. Već sam poslao poruku na tu temu: Clipper na nekim
/ računarima ne prepoznaje sve kodove sa tastature!
Foks Pro ima sličan problem na nekim kombinacijama ploča/tastatura;
negde ne prepoznaje f11/f12 (što može i da mu se javi u config.fp),
negde se numerička tastatura (navigaciona takođe) ponašaju kao da je
(ponekad) pritisnut šift. Ovo se javlja samo ponegde (jedna tastatura na
Gaminoj mašini, dve-tri IPC 286/16 NEAT sa TipPro tastaturama, uz još
dve identične sa kojima nema problema), i to uglavnom na mašinama iz
'89/91.
Probao sam i int9fix, ali ne pomaže.
clipper.254ndragan,
/ Ups. Ima jedna u novim R. Sorry.
Ono je Batoćaninova verzija, a reklama je išla na mene - verovatno frka
pri slaganju strana. NHF što se mene tiče. Predlažem da se obe(tri?)
rutine zipuju zajedno i ostave u Clipper direktorij. A?
clipper.255ndragan,
/ a) Valid i When
Da; sama Read naredba ima Valid, Activate, Deactivate i još brdo
drugih opcija. Ni meni još nije jasno šta sve može da se radi njim.
/ b) Kako se fox snalazi sa set filter na mnogo slogova
FP2 je strava brz po tom pitanju ako postoji strukturni indeks po
polju koje učestvuje u filterskom izrazu; za bilo kakvo filtriranje je
bolje i brže napraviti SQL kursor. Pretraga se optimizuje, ne znam kako,
ali je jako brz.
/ c) Ima li vise dimenzione nizove i naredbe slicne aadd i ascan
Dvodimenzione, koji se istovremeno koriste i kao jednodimenzioni.
Aadd mi nije trebao, valjda ima, a Ascan se valjda kaže InArray(...). Za
mnoge stvari koje su se trpale u nizove opet je bolje napraviti SQL
kursor. Brže je, ponaša se kao .dbf, sam se briše posle zatvaranja.
/ g) duzina memo-a
Koliko imaš mesta na disku.
/ 2.) Kako se snalazi sa programima radjenim za color kartu na mono
/ sistemima?
Preko kolor šema - ima ih valjda 32, od 1 do 10 su sistemske, i sve su
pod tvojom kontrolom; mogu se podesiti programski ili interaktivno;
pošto se pamte u Foxuser.dbf, možeš imati različite za svaki računar.
/ P.P.P.S. A kako se snalazi sa pacovom?
Ne snalazi se. Jednostavno ga koristi. Prepoznaje da je učitan
drajver. Crtanje ekrana, izveštaja i SQL kursora je drastično brže ko je
vešt sa glodarom.
Evo šta daje na "help system capacities":
FoxPro FoxPro
Standard Extended
───────── ─────────
Database and Index Files
────────────────────────
Max # of records per database*
1 billion 1 billion
Max # of chars per record
4,000 4,000
Max # of fields per record
255 255
Max # of open DBFs
25 25
Max # of chars per field
254 254
Max # of chars per index key (IDX)
100 100
Max # of chars per index key (CDX)
240 240
Max # of open index files per database**
unlimited unlimited
Max # of open index files in all work areas**
unlimited unlimited
Field Characteristics
─────────────────────
Max size of character fields
254 254
Max size of numeric fields
20 20
Max # of chars in field names
10 10
Digits of precision in numeric computations
16 16
Memory Variables and Arrays
───────────────────────────
Default # of memory variables
256 256
Max # of memory variables
3,600 65,000
Max # of arrays
3,600 65,000
Max # of elements per array
3,600 65,000
Program and Procedure Files
───────────────────────────
Max # of lines in source program files
unlimited unlimited
Max size of a single compiled PROCEDURE or FUNCTION
64K 64K
NOTE: A program or application can contain an unlimited number of
program modules.
Max # of procedures per file
unlimited unlimited
Max # of nested DO calls
32 32
Max # of READ nesting levels
5 5
Max # of nested structured programming commands
64 64
Report Writer Capacities
────────────────────────
Max # of objects in a report definition
unlimited unlimited
Max # of lines in a report definition
255 255
Max # of grouping levels
20 20
Window Support
──────────────
Max # of open windows
unlimited unlimited
Max # of open Browse windows
25 25
Miscellaneous Capacities
────────────────────────
Max # of chars per string
64K 2 gigabytes
Max # of chars per command line
2,048 2,048
Max # of chars per macro subst.
255 255
Max # of open files
99 DOS limit
Max # of keystrokes per keyboard macro
1,024 1,024
Max fields that can be selected by a SQL SELECT statement -- in the
projection list (same as the maximum fields per record in a database)
255 255
Color Support
─────────────
Number of color schemes per color set
24 24
Max # of color sets
unlimited unlimited
Number of colors per scheme
10 10
Schemes available for user definition
8 8
* The actual file size (in bytes) cannot exceed 2 gigabytes for
single-user or exclusively opened multi-user .DBF files. Shared
multi-user .DBF files with no indexes or .IDX indexes cannot exceed 1
gigabyte. Shared multi-user .DBF files with structural .CDX indexes
cannot exceed 2 gigabytes.
** Limited by memory and available DOS file handles. Each .CDX file
uses only 1 file handle. The number of DOS file handles is determined
by the CONFIG.SYS parameter 'FILES=xxx'.
Poruka je malo duža, da bih predupredio potpitanja :)
clipper.256dusanp,
=> Uh! Jel' si bre doručkovao :))) Pa PXE ima samo jednu
=> prednost nad Clipperom a to je brzina...
Nisi pomenuo kompaktnost baze, sto ja smatram udarnom
prednoscu paradox formata. Nije zanemarljiva potrosnja
diska kad covek ima 30 mb hard. Iz boljeg formata podataka
proizilaze i druge prednosti - brzina, brzina i brzina...
clipper.257dejanr,
>> Recimo da clipper ima sve kao i PXE što se tiče mogućnosti
>> programiranja. Šta je onda sa brzinom? Zašto onda ostati na nečemu
>> što je očiglednije sporije, samo zbog toga što nas mrzi da učimo još
>> malo.
Eh... to "malo" učenja je ogroman problem i mnogo košta. Uvek je pri
prelasku na "sledeću generaciju softvera" (u bilo kom smislu te reči)
*najveći* problem i trošak obuka korisnika, odnosno u ovom slučaju
programera. Drugo, tu su ogromna ulaganja u do sada razvijeni kod koji
se ugrađuje u buduće aplikacije (imaš nešto, promeniš ime korisnika i
dodaš/oduzmeš par sitnica, i to lepo naplatiš 1000 dem ;) što bi pri
prelasku na "nešto drugo" trebalo pisati od nule. Pa onda uzmi u obzir
ono vreme koje je potrebno da programeri počnu da "proizvode" *pouzdan*
kod na novom jeziku - svaki jezik ima neke "cake" na koje treba paziti,
pa i bugove, a to se samo kroz praksu otkriva... videćeš da je u većini
slučajeva *mnogo* jeftinije (obaška što je i lakše) kupiti brži računar
nego preći na brži jezik! Da nije tako, ne bi se većina poslovnih
aplikacija i dalje razvijala na Cobolu ;)
clipper.258cubro,
> prelasku na "nesto drugo" trebalo pisati od nule. Pa onda uzmi
> u obzir ono vreme koje je potrebno da programeri pocnu da
> "proizvode" *pouzdan* kod na novom jeziku - svaki jezik ima
> neke "cake" na koje treba paziti, pa i bugove, a to se samo
> kroz praksu otkriva... videces da je u vecini slucajeva *mnogo*
> jeftinije (obaska sto je i lakse) kupiti brzi racunar nego
> preci na brzi jezik! Da nije tako, ne bi se vecina poslovnih
> aplikacija i dalje razvijala na Cobolu ;)
So, Dejane, ovo nisam ocekivao od tebe. Ako na svetu izmisljaju
nove programske jezike, ili ih barem poboljsavaju, ne verujem da
je sve to zbog uzimanja profita (u vecem delu, mada ima i toga).
Posto je rasprava PDX vs. Clipper ovde pokrenuta, moracu da se i ja
ubacim posto ja koristim obadva. Moja firma koristi Clipper (novu i
staru istovremeno, zavisno od starosti aplikacije), a ja privatno
PDX i to PXEngine 2.0 (zasada), i PARADOX 4.0 sa Runtime 3.0 biblio-
tekom. PXEngine koristim u sklopu sa TP 6.0. So, posto moja firma
koristi clipper imao sam prilke da postanem po meni, dobar strucnjak
na jednom odlicnom jeziku sirokih mogucnosti, ali jako sporom. Zasto ?
Prvo i prvo : posto u firmi imamo AT racunare (286/16), a puno puno
podataka i slogova, a verujem da i VECINA firmi ima isti takav, obrada
ili interaktivan rad je uzasno spor (npr. set filter ili slicno, mada
ove uopste ne treba koristiti), a nasi direktori, kazu - narocito u
ovakva vremena - e, pa para nemamo, ne moze 486, itd...Masina odlicna
ali ipak ne moze. Plate ili ce biti ili ne al' za masinu nema. Jedino
nam ostaje da idemo na neki brzi jezik, bolju organizovanu bazu.
Samo da napomenem, da li video razlike u duzinama file-ova i
indeksa izmedju DBF i PDX file formata. Ogromna razlika. Npr
kod jedne moje datoteke ogromne velicine (kartice osnovnih sredt.)
indeksna datoteka je za 15 puta manja od NTX ili NDX (svejedno je)
U PDX 4.0 file formatu je jos manja (i datoteka i indeksi). Clipper
ima jednu veliku manu. On ucitava i podatke u memoriju sto je sasvim
nepotrebno. Posto je kod PDX-a indeksi jako mali mogu da se ucitaju
svi pokazatelji u memoriju, tako da prakticno cela datoteka u memoriji
a pristup neverovatan. Testirali smo PDX na 486/50MHz sa 73.000 sloga
kriterijumi po datumu, opisu i iznosu (1700 rekorda), i PDX je to
izvadio za 3 (TRI) sekunde. Nevidjeno ! Istina da je masina brza, ali
moj kolega ciji je racunar gore pomenut (On radi FoxPro 2.0) izjavio da
je FoxPro puz u poredjenju sa PDX. Ja mu poverovao, ali FoxPro jos
nisam video. (mislim radio na njemu).
A tek programiranje u PAL-u. (poseban jezik za programiranje u
Paradoxu). Mozes je savladati za mesec dana, a dobijas izgled i rad
kao u TVISION-u BC++ - a, ili TP 6.0, rad sa misem, event-driven,itd...
(da nismo pogresili temu?...).
Filozofija : ko hoce da radi u Clipperu, neka nastavi taj ne mora
da nauci C, C++, TP 6.0, 7.0. ?.??... i PDX sa njim, ali ako vec, neko
koristi te jezike, zasto ne bi naucio. Meni je trebalo 3 dana muke, 3
dana prakse i 1 dan da napisem program koja lepo radi. To se ne zove
ogromno ulaganje. Pameti jeste, ali ja se time ponosim. Inace jos radim
na HONEYWELL-u Cobol, na PC-u MBPCobol, itd... OK, jeftinije je
kupiti brzi racunar nego uciti (?!). Onda da se vratimo BASICU - u i
da kupimo CRAY-4. Jel' moze tako ?
clipper.259bulaja,
│Predlazem da se obe(tri?) rutine zipuju zajedno i ostave u Clipper direktorij.
│A?
└───
Aha! :)
clipper.260neman,
> Filozofija : ko hoce da radi u Clipperu, neka nastavi taj
> ne mora da nauci C, C++, TP 6.0, 7.0. ?.??... i PDX sa
> njim, ali ako vec, neko koristi te jezike, zasto ne bi
> naucio. Meni je trebalo 3 dana muke, 3 dana prakse i 1 dan
> da napisem program koja lepo radi. To se ne zove ogromno
> ulaganje. Pameti jeste, ali ja se time ponosim. Inace jos
> radim
Sve te jezike si i mogao da naučiš samo tako, analizirajući ih po
desetak dana ;>
Mislim da je važnija podrška koju imaš za programski paket koji koristiš.
Tu ide i raspostranjenost tog programskog paketa. Ja sam imao ATARI 800 XL
i nije mi bilo nimalo prijatno što svi ostali imaju C64 ili ZX SPECTRUM.
Isto važi i za taj PDX, a da ne pominjem ostale kod nas egzotične pakete.
clipper.261dejanr,
>> So, Dejane, ovo nisam ocekivao od tebe.
Nije to toliko "od mene", to ćeš pročitati u svakoj knjizi koja se
bavi software engineering-om. Temeljna promena razvojnih alata je
najskuplja operacija u "životu" jedne softverske firme i primenjuje
se samo u izuzetnim slučajevima kada baš mora da se primeni. Zato
i opstaju neki softverski alati koji su po karakteristikama zastareli,
ali imaju veliku korisničku bazu. Još duže vreme će se, na primer,
prodavati mnogo više Clipper-a i dBASE-a nego Paradox-a ili, šta znam,
Force-a, bez obzira što su ovi, recimo, po performansama znatno bolji.
Ulažući u Paradox Engine Borland u principu ulaže u budućnost, zato oni
i kažu (recimo u Borland forum-u CIS-a) da će Paradox Engine biti
data base alatka 2000-tih :)
>> a nasi direktori, kazu - narocito u ovakva vremena - e, pa
>> para nemamo, ne moze 486, itd...Masina odlicna ali ipak ne
>> moze. Plate ili ce biti ili ne al' za masinu nema.
Znaš i sam da živimo u nenormalnoj situaciji u kojoj je marka
skupa a ljudski rad jako jeftin. No, u svetu je rad programera
jako skup i vladaju drugačiji odnosi.
>> Meni je trebalo 3 dana muke, 3 dana prakse i 1 dan da napisem
>> program koja lepo radi. To se ne zove ogromno ulaganje. Pameti
>> jeste, ali ja se time ponosim.
Eh... ako (da se malo ponavljam :) uzmeš neku knjigu o softverskom
inženjerstvu, videćeš da pri razvoju softvera dobar programer u
proseku napiše 5.5 linija programa dnevno. Naravno, kod nas svi kad
to pročitaju "umru od smeha", mi smo jako pametni pa dnevno napišemo
i stotine, hiljade, milione :) linija programa. Međutim, kad se
posle desi da taj program treba modifikovati, onda je kuku-lele. A
ako ne daj Bože taj ko je pisao program ode u Kanadu pa nekim čudom
ostavi source, onaj do koga taj source dođe može da bira, 'oće li da
se ubije ili da sve piše od nule, jer tu da nešto promeni, teži
slučaj.
Ovo se nije odnosilo na tebe, generalna opservacija. Hoću samo da
kažem da se kod nas (čast izuzecima) softver razvija amaterski, i
da je za takav razvoj karakteristično često menjanje alata, korisničkog
interfejsa, eksperimentisanje sa bibliotekama različitog porekla itd.
Kada se jednom ova situacija sredi i ako počne ozbiljno da se radi,
budi siguran da će iskustva biti sasvim u skladu sa onim što su ozbiljni
ljudi koji su se bavili produktivnošću programerskog rada i organizacijom
timova programera davno utvrdili. To će biti vreme jake standardizovanosti
na nivou softverske firme, unificiranih korisničkih interfejsa, dobro
dokumentovanog deljenog koda i biblioteka i, kao nužna posledica, velike
inercije odnosno teškog odlučivanja na promene.
clipper.262jtitov,
> Koliko sam obavesten, treba da izadje nova verzija
> clippera (6.xx) za Windowse. Dakle, to treba da se kupi.
A zasto, molicu lepo???? Mislim da je mnogo bolja investicija FoxPro for Win.
clipper.263jtitov,
> jedan broj koji se u zdravstvenoj knjizici zove
> "registarski broj", i na neki nacin opisuje radnu
> organizaciju. To, medutim, nije maticni
Ja pitah u firmi i kratak odgovor je bio: to je jedinstveni registarski
broj firme/ustanove. Ako bi postavio konkretna pitanja, mogu jos da se
raspitam (valjda znaju?).
clipper.264garderp,
>│ Zasto za razliku od PXE? Pa i tamo moze da se otvori do
> 255 baza! └───
> Koliko sam ja cuo, samo 20 (?).
Loše si čuo, istina je 255
clipper.265garderp,
> Zato i opstaju neki softverski alati koji su po
> karakteristikama zastareli, ali imaju veliku korisničku
> bazu. Još duže vreme će se, na primer, prodavati mnogo
> više Clipper-a i dBASE-a nego Paradox-a ili, šta znam,
To ne mora da stoji. Istina je da je čovek, pa samim tim
i programer antagonistička (da ne kažem dijalektička) naprava
i da su želje za progresom i regresom dan i noć i da se stalno
smenjuju. Sezam predstavlja neki autoritet u programerskim
krugovima ove zemlje i ako se na njemu priča da trteba raditi
na Clipperu, onda će se na njemu i raditi. Naš zadatak ovde treba
da bude upravo popularizacija novih proizvoda. Priznajem da sa godinama
ljudi se sve više oslanjaju na proverene alate i uopšte proverene metode.
Na mladima je da iznesu progres, a da se stariji ili pridruže tom progresu
ili da se sklone. žesto volim da naglasim da su i stariji ljudi skloni
progresu. U Vinči postoji jedan programer od nekih pedesetak godina
života koji je tek od skoro počeo da se bavi Oracle-om. Pošto je dobro
teorijski obrazovan i pošto je celog života pratio progres, vreme koje
mu je bilo potrebno da savlada mnogo komplikovaniji sistem od jednog
Paradoxa je bilo mnogo manje nego nekom clipperašu koji zna samo to
i ništa drugo.
clipper.266cubro,
>>> So, Dejane, ovo nisam ocekivao od tebe.
Izvini, nisam nista lose mislio o Tebi,
sa Tobom se moze razgovarati, hvala bogu !
> Zato i opstaju neki softverski alati koji su po
> karakteristikama zastareli, ali imaju veliku korisnicku bazu.
> Jos duze vreme ce se, na primer, prodavati mnogo vise Clipper-a
> i dBASE-a nego Paradox-a ili, sta znam,
To je jedna velika istina, nazalost. Da se razumemo, nije Clipper los,
nego njegova baza sa kojom radi (DBF). Sa Clipper-om se moze svasta
uraditi, cak i pisati programe sa objektima (ja radim sa time >>OCLIP<<)
ali je spor. Mogao bih pisati sa low-level datotekama (FREAD,FWRITE, itd)
mada je to glupo, ali je brzi. Brzina. To je najbitnije, ali ne samo
povecanjem hardwerskim performansama sistema. Clipper je odlican za male
firme (privatnici,STR-e..), ali za informacione sisteme je ipak prespor.
> inzenjerstvu, videces da pri razvoju softvera dobar programer u
> proseku napise 5.5 linija programa dnevno. Naravno, kod nas svi
> kad to procitaju "umru od smeha", mi smo jako pametni pa dnevno
> napisemo
Pa,da ! Nisam ja taj koji ce odrediti kad ce program biti gotov. Ako se
kaze da sutra, ima da bude sutra. Pa pisem program koja ce liciti na
sve i svasta. Posle ispravljam (prepisem) to, i time obezbedjujem sebi
stalni posao. Privatno, to je druga stvar. Znas ono: pitao Papa Mikel-
andjela, kad ce biti gotova Sikstuska kapela. Odgovor M.B: Kad budem
zavrsio. I to je moj moto. Za dobar rad treba i dosta vremena.
> kazem da se kod nas (cast izuzecima) softver razvija amaterski,
> i da je za takav razvoj karakteristicno cesto menjanje alata,
Aha, to je to. Tu imas jedno odgromno potvrdno DA ! Amaterizam.
Pa nije ni cudo, kad smo jos uvek amateri u informatici. Dodje mi da
smejem (placem), kad vidim da izdaju knjige a la 'Uvod u racunare' iz
198-5-6-7-8 godine izdate prosle ili ove godine. Pa sta ovi misle, gde smo
mi. Ili i njima neko drugi odredjuje sta ce da rade. Ko je uopste
nadlezan za takva izdanja. Kao da nekome dam 'Elektronika u 12 lekcija'
iz 1945-e. A amaterizam proistice iz entuzijazma da radimo nesto sto
rade i profesionalci,( amatersko: pozoriste, film, sport, programiranje..)
i na kraju ispada, da mi profesionalci drzimo jezik za zube, samo na
toj osnovi , sto su oni (amateri) brojniji.
Pa zasto sam ja ucio, i proucavao knjige, provodeci noci pred ekranom
(propali mi i oci), liseci sebe i nekih uzitaka, zabave. Sve zbog
toga da postanem profi a ne amater - kad mi vec to pise svugde ( zanimanje:
sistem analiticar - programer). Za programiranje nije dovoljno znati samo
sintaksu jezika, nego i filozofiju programiranja (bez obzira o kojem se
programskom jeziku radilo), jer bez toga program ce biti samo gomila
nabacanih karaktera koja lice na doticni programski jezik.
Neki moji poznanici pisu u Clipperu na isti nacin kao u Cobolu,(pazi,
oni su na radnom mestu na neodredjeno vreme) cak prepisuju programe
sa Cobol listinga, bez razmisljanja da Clipper ima drugaciji koncept, i
pri tom ne iskoriste sve funkcije i mogucnosti Clippera, a pri tom
tvrde da Clipper brze radi. Uporedite MBPCobol sa Clipperom. Clipper
gubi sa 50 poena. Cobol je za profesionalce, a Clipper za amatere.
A sto ja pisem u Clipperu, to je plod vizije mog bivseg sefa, koji je ili
procitao ili nacuo negde, da je Clipper puno bolji od Cobola, i MORALI
smo preci na Clipper. A danas covek prodaje svoje proizvode (programe)
bankama i preduzecima, a mene zove kad nesto ne valja. (Svakih 3 dana).
Iznenadio se na funkciji dtos(datum) pre neki dan. Trebao je mu a nije znao
da postoji, pa cova napiso to cobolski.
Sramota BIROSTROJU ciji sad programski paket Finansijskog knjigovodstva
ispravljam. Napisali su ga tako, da mali Misko iz 8.d pise bolji u BASICU.
A gorenavedena firma u Clipperu. Toliko o amaterizmu.
Ne razumem o kakvima alatima govoris. Da li u okviru jednog jezika
ili uopste a raznim alatima. Recimo PXEngine je za TP i BC++, i vazi za
alatku. A PARADOX je kao dBASE za PDX format, a njegov jezik je PAL i
ne vazi za alatku. Idealno bi bilo Clipper+PDX file-format :-). Stvarno.
Masina skupa, rad programera jeftin. Bogami ovo je jadno stanje. Ali
mi smo sami krivi. Ja FINANS ne dajem ispod 1200 DM a za HONEYWELL u
IDS II 5000 DM. Ali je profesionalno napisan. Pad sistema je izuzetno
redak. Ponosim se tim programima, mada kome pokazujem, malo sta se
razume u to. Ali za finans traziti 200-300 DM ??. Nek oni pisu. Za ovoliko
para ne zamaram svoj pamet. Dosta mi je bilo da ucim.
> timova programera davno utvrdili. To ce biti vreme jake
> standardizovanosti na nivou softverske firme, unificiranih
> korisnickih interfejsa, dobro dokumentovanog deljenog koda i
> biblioteka i, kao nuzna posledica, velike inercije odnosno
> teskog odlucivanja na promene.
E, pa to je to ! Pa, pocnimo nesto !!
P.S. Dobro je, slazemo se. Da li postoji Klub programera, ili
(khm), Sindikat programera, ajd' moze i Savez. Ako ima javi mi.
Odlican ti je clanak "Sta smo sve lupali...." :-). Nostalgija...?
PPS. Svima se izvinjavam na tiradi, ali sam svoju gorcinu morao da
iznesem. Necu vise. Samo strogo strucno, u vezi programiranja.
clipper.267cubro,
> Mislim da je vaznija podrska koju imas za programski paket koji
> koristis.
Dobro, i to je istina. To se i uvek naglasava. (This product reguires
xxxx MB RAM, xx MB HD, x86(7)/xxMhz,etc...). Ali to nije progres, ako
se zadovoljimo na starom, prevazidjenom, i cekamo da proizvodjaci
izbace sto silnije i brze masine. Taj program koji je napisan na stari
nacin, nece vise proci. U svetu se tezi ka jednoobraznom korisnickom
interfejsu, ka kompaktoscu podataka, objektnom i event-driven
programiranju, itd... Pre ili kasnije neces vise moci prodati svoj
proizvod (program), jer kupac "pada" na formu, izgled, i integrisanu
radnu okolinu, i sto je najvaznije, na brzinu pristupa podacima i
mogucnost raznih QUERY-ja. A kod nas jos cena masine mnogo skuplja
od cene rada programera. Pogledaj dejanr -ov odgovor na moju poruku.
Ali nije sve u jacini racunara. Sta sa onima koji nemaju tu
mogucnost da nabave jaku masinu. Odg: izabrati odgovarajuci jezik.
Jesi li video kako radi MBPCobol na XT ? Pa, brze nego Clipper na AT !
A jesi li radio na MBPCobolu ? Ako nisi, blago tebi. Ako jesi onda
znas.
Pozdrav,
Robert.
clipper.268zkrstic,
> ako ne daj Bože taj ko je pisao program ode u Kanadu pa nekim čudom
> ostavi source, onaj do koga taj source dođe može da bira, 'oće li da
> se ubije ili da sve piše od nule, jer tu da nešto promeni, teži
> slučaj.
A ako autor ode na Cipar, pa ti ostavi source, jel ima nekih
olakšavajućih okolnosti ? :)))))
Uzgred, u mojim memoarima će biti pomenuto ovih par dana moga
života & programiranja u najcrnjem svetlu ;))) Doradjivati tudji source
u kome ima (slovim i brojevim) 3 i po lineij komentara :)
Zkr :)
clipper.269zkrstic,
>> Koliko sam obavesten, treba da izadje nova verzija
>> clippera (6.xx) za Windowse. Dakle, to treba da se kupi.
>
> A zasto, molicu lepo???? Mislim da je mnogo bolja investicija FoxPro
> for Win.
E sad ćemo da debatujemo :))))
Fox Pro, ovaj do sada doživljeni, sa kojim imamo iskustva je odli-
čan program.
Njegova sjajna osobina je brzina.
Pravljenje .EXE ili nekih RUN-Tajmova sa njim je ... nema potrebe da
se vredjamo ;)
Elem, Clipper je tu da pravi .EXE i samo to. A FOx koristim umesto
Clipperovog DBU-a, odnosno DBASE-a.
Toliko, Zkr :)
clipper.270dejanr,
>> Ja pitah u firmi i kratak odgovor je bio: to je jedinstveni registarski
>> broj firme/ustanove. Ako bi postavio konkretna pitanja, mogu jos da se
>> raspitam (valjda znaju?).
Konkretno pitanje je da li je taj broj u nekoj vezi sa matičnim brojem
RO ili je u pitanju nešto što je potpuno nezavisno od matičnog broja
dodeljeno firmi. Zanima me i ko dodeljuje taj broj, tj. gde bi se mogla
potražiti baza firmi sa tim brojevima.
Hvala unapred :)
clipper.271dejanr,
>> Naš zadatak ovde treba da bude upravo popularizacija novih proizvoda.
>> Priznajem da sa godinama ljudi se sve više oslanjaju na proverene
>> alate i uopšte proverene metode. Na mladima je da iznesu progres,
>> a da se stariji ili pridruže tom progresu ili da se sklone.
Jedan moj prijatelj radi u (uslovno rečeno) manjoj softverskoj firmi
u USA koja je jedna od hiljada IBM-ovih "satelitskih" firmi koje
razvijaju prateći softver za IBM-ove PS/x platforme. Iako kažem da
je firma manja, čini je osamdesetak zaposlenih, od kojih njih 4 rade
u posebnom odeljenju kome je zadatak da proučava nove razvojne alate
i preporučuje njihovu primenu. Onda neko iz menagement-a odlučuje šta
će se koristiti, u kojoj meri itd. Zanimljivo je da su sve alatke na
nivou firme strogo standardizovane i da se za razvoj softvera koristi
Microsoft C 5.1. U međuvremenu je izašao C 6.0 i 7.0, i ta ekipa se
"ubi" dokazujući da je vreme da se preorijentišu na te verzije, ali
"uprava" neće i neće, sračunali su da bi ih prelazak na noviji C
koštao oko $130,000 (naravno, sami kompajleri su tu najjeftiniji) i
ne daju im se te pare ;) Zanimljivo je da je konsultovan IBM i da su
oni rekli da "preferiraju" C 5.1, kao "proveren alat koji je korišćen
za razvoj prethodnih verzija i dobro se pokazao".
Ja se potpuno slažem da zadatak kompjuterskih časopisa treba da bude
predstavljanje (pa i programiranje) svih novih i avangardnih paketa
i alata, kao i njihovo poređenje sa postojećima. To je jako važno.
Ali, treba uvek imati u vidu i to da ulazak tih novih alata u širu
upotrebu ume da bude veoma spor, i da "uspevaju" samo neki od njih.
I to ne uvek najkvalitetniji!
clipper.272dejanr,
>> Ne razumem o kakvima alatima govoris. Da li u okviru jednog jezika
>> ili uopste a raznim alatima. Recimo PXEngine je za TP i BC++, i vazi za
>> alatku. A PARADOX je kao dBASE za PDX format, a njegov jezik je PAL i
>> ne vazi za alatku. Idealno bi bilo Clipper+PDX file-format :-). Stvarno.
Paradox Engine je po meni izuzetno dobra ideja. Naravno, postojale su i
pre "data base" biblioteke za razne jezike, ali PDX je kompletno rešenje
za razne jezike, pa još izuzetnih performansi. Ipak, čini mi se da mu
rad sa "ekranom" nije baš na nivou. Istina, i za to se mogu naći biblioteke,
ali bolje bi bilo da je više integrisano u njega.
Inače, ja mislim da ne bi bilo loše da postoji i PDX Engine koji radi
(makar i sporije) sa .DBF fajlovima. Pomoglo bi bržem usvajanju čitavog
proizvoda jer, ipak, većina datoteka na PC-ju su .DBF datoteke i mnoge
novi format nekako plaši... I Force je zanimljivo rešenje, samo na žalost
nemam mnogo prilike da pratim kako se razvija, onaj koji sam zadnji video
bio je ipak dosta bug-ovit.
>> P.S. Dobro je, slazemo se. Da li postoji Klub programera, ili
>> (khm), Sindikat programera, ajd' moze i Savez. Ako ima javi mi.
Bilo je puno ideja za Udruženje programera. Na žalost, od svega
najzad ne bi ništa. Izgleda da smo mi programeri po tom pitanju
"najgori" - i đubretari napraviše strukovno udruženje a mi ga ni
dan danas nemamo :(
>> Odlican ti je clanak "Sta smo sve lupali...." :-). Nostalgija...?
Eh :) Sve se brzo menja, pa mnoge stvari koje su bile sasvim razumne
danas zvuče smešno. Sa druge strane, ne može se napisati jedan broj
"Računara" mesečno a da se i neka materijalna greška ne pojavi. Najzad,
uvek je nezahvalno prognozirati budućnost. Sve u svemu, ideja tog
teksta je da pokaže kako su sve tvrdnje relativne i da ih treba primati
kritički - nešto se ispuni a nešto baš i ne ;)
clipper.273neman,
> Dobro, i to je istina. To se i uvek naglasava. (This
> product reguires xxxx MB RAM, xx MB HD,
> x86(7)/xxMhz,etc...). Ali to nije progres, ako
Mislio sam na dodatne rutine koje mi baš trebaju a mrzi me da ih
pišem ( izmišljam točak )
> interfejsu, ka kompaktoscu podataka, objektnom i
> event-driven programiranju, itd... Pre ili kasnije neces
> vise moci prodati svoj proizvod (program), jer kupac
> "pada" na formu, izgled, i integrisanu radnu okolinu, i
> sto je najvaznije, na brzinu pristupa podacima i
Kupca interesuje prvnstveno da progam završava posao. Briga njega za
kompaktnost, objekte itd. A računarom se obično ne služe diplomirani inže-
njeri elektronike već srednjoškolski obrazovani radnici operateri kojima
je bitna JEDNOSTAVNOST pristupa podacima a ne izgled
neman
clipper.274neman,
> mada je to glupo, ali je brzi. Brzina. To je najbitnije,
> ali ne samo povecanjem hardwerskim performansama sistema.
> Clipper je odlican za male firme (privatnici,STR-e..), ali
> za informacione sisteme je ipak prespor.
>
Neće biti. CLIPPER aplikacija ( aplikacija, ne aplikacije ) tera knjigovodstvo
sa više stotina hiljada stavki godišnje u firmama sa po 1000 - 1500 radnika,
pod NOVELLom, sa po 10 - 20 radnih stanica i to fercera !
> kaze da sutra, ima da bude sutra. Pa pisem program koja ce
> liciti na sve i svasta. Posle ispravljam (prepisem) to, i
> time obezbedjujem sebi
Pa prekosutra neznaš šta si radio ;) , smejem se i sebi
> zavrsio. I to je moj moto. Za dobar rad treba i dosta
> vremena.
Više od 10 dana, garant !
neman
clipper.275neman,
> A zasto, molicu lepo???? Mislim da je mnogo bolja
> investicija FoxPro for Win.
A jel i to postoji ?
neman
clipper.276jtitov,
> Pravljenje .EXE ili nekih RUN-Tajmova sa njim je ... nema
> potrebe da se vredjamo ;)
Molim??? Sta fali Fox-ovim exeima? Jest, malo su veci (>800k u startu) ali
si oslobodjen razmisljanja o nekakvim overlejima, pa specijalnim opcijama
linkera kada moras da pravis program sa overlejima, itd. A sto se tice
run-time programa, pa zar to nije losa ideja ako korisnik ima instaliran
Fox (ili samo jedan njegov deo potreban za rad) i 10 programa u Fox-u koji
su u obliku run-time i dugacki oko 15k????
Takodje je mnogo bolji (brzi) sistem razvoja programa; cliperas mora posle
svake izmene (manje/vece) da kompajlira i ceka, ceka (naravno ako nema
BLinker) a foxovac i posle najmanje izmene moze odmah da proveri svoje cedo
u praksi i tek kada sve ispegla da pravi exe verziju.
Pricaju da je fox-ov prevodilac plac Majke Bozje koliko je spor;
Pa evo nekih rezultata specijalno za tebe: radi se o programcetu od svega
237 linija. Korisceno je 90% foxovih prednosti, tako da bi to u clipper-u
bilo oko 1000 linija ;) Provodjeno je na 386/25+387+8Mb+disk od 18msec.
Vrsta prevodjenja vreme prev. duzina u byte
run-time 1,92'' 14.400
stand-alone 1' 33,29'' 1.012.076
stand-alone extended 38,16'' 1.052.604
Fajl je veliki, sto jest jest, ali ce se izvrsavati i na XT-u i na 486; i
na 512K i na 32M masini. (Govorim o stand-alone verziji).
Ali da ne diskutujemo bez veze. Ako ti postizes dobre rezultate sa
clipper-om, drzi se clippera. Ja sam vrlo zadovoljan Fox-om (pre toga
clipper-as jedno 4 godine) i ne menjam ga osim za nesto radikalno.
clipper.277jtitov,
Jos jedan dodatak u vezi Fox-a: neko je nekada rekao da sa Fox-om ne mogu da
se povezuju C i assembler-ski programi. To na srecu nije istina, jer
postoji Library Construction Kit koji to omogucuje. Ono sto je
najzanimljivije, ta cudna alatka staje na samo 1x1.2. Izgleda da su
najbolja resenja obicno vrlo jednostavna (kratka).
clipper.278jtitov,
> A jel i to postoji ?
Najavljuje se i navodno vec postoji. Nisam video...
clipper.279dnikolic,
>> Uh! Jel' si bre doruckovao :))) Pa PXE ima samo jednu prednost
>> nad Clipperom a to je brzina...
Baci neki argument.
dn
clipper.280dnikolic,
>> Koliko sam ja cuo, samo 20 (?).
Nisi citao uputstvo! :) To je samo default.
dn
clipper.281petrovics,
Primetio sam da je mebju Borlad C++ programerima, koji se bave
poslovnim aplikacijama i bazama podataka veoma popularan paradox
engine. Zanima me da li postoji nesto slicno, ili makar samo
dobra i proverena biblioteka za Microsoft C 6.0?
clipper.282cubro,
> Kupca interesuje prvnstveno da progam zavrsava posao. Briga
> njega za kompaktnost, objekte itd. A racunarom se obicno ne
> sluze diplomirani inze- njeri elektronike vec srednjoskolski
> obrazovani radnici operateri kojima je bitna JEDNOSTAVNOST
> pristupa podacima a ne izgled
Bas u tome je nevolja. Za jednostavni pristup treba i dosta
da se namucis. Jer, najjednostavnije je dati DBEDIT i neka
operater(ka) unese ono sto treba. Ali da aplikacija bude i
jednostavna i da ima obezbedjen integritet podataka ili
integritet cele baze, bogami tu dolaze neki aspekti pravilnog
programiranja. Npr. objekti su idealni za takve stvari jer
obezbedjuju zasticenost varijabli,procedura i funkcija vezane
za jedan konkretan posao, itd... Slusaj, racunarom se bave i
dipl.ing-ovi, ali se ne razumeju u masinu ;) i ima ih > 50%.
Ti ces jos itekako biti potreban da napises SLOZEN program
da bi pristup podacima bio JEDNOSTAVAN. Ali taj SLOZEN program
moci ces da ispravis za 3 (TRI) minuta i posle 3 godine.
Dzabe ja kazem korisniku : Hej, ovaj ti program pisan sa
objektima, PDX, briga njega za to.
I jos nesto. Posto programe moras da prezentujes onima koji
se razume u racunar < od Miska iz 8d., prvenstveno ce pasti na
izgled i brzinu. Posle ce im operateri reci da taj program nista
ne valja. Ali ja HOCU DA PRODAM moju aplikaciju !!
clipper.283cubro,
> Nece biti. CLIPPER aplikacija ( aplikacija, ne aplikacije )
> tera knjigovodstvo sa vise stotina hiljada stavki godisnje u
> firmama sa po 1000 - 1500 radnika, pod NOVELLom, sa po 10 - 20
> radnih stanica i to fercera !
Zavisi i od slozenosti te aplikacije. Na standalone racunaru te
prednosti koje pruza NOVELL se jako smanjuju.
Inace,to je tako da za razlicite aplikacije odgovaraju razliciti
programski jezici. (Dobro, nisam rekao bogzna nesto veliko), ali za
finans Clipper nece ici. Gore navedena firma jos ce proci sa Clipperom
ali veca nikako. Pa zasto Coca-Cola ne koristi Clipper, nego PARADOX.
Ja sam kupio PARADOX 4.0 i shvatio zasto Coca-Cola koristi PARADOX
a ne Clipper.
clipper.284cubro,
> engine. Zanima me da li postoji nesto slicno, ili makar samo
> dobra i proverena biblioteka za Microsoft C 6.0?
Odmah predji na BC++!!!!
clipper.285ppekovic,
>> Gore navedena firma jos ce proci sa Clipperom
>> ali veca nikako.
Veća firma neće proći sa MS-DOS-om već sa nekim ozbiljnijim
OS-om (čitaj UNIX-om). Vratite se na polje koje pokriva DOS pa na
njemu razgovarajte šta clipper i paradox mogu ili ne mogu.
Paya
clipper.286ppekovic,
>> Primetio sam da je mebju Borlad C++ programerima, koji se bave
>> poslovnim aplikacijama i bazama podataka veoma popularan paradox
>> engine. Zanima me da li postoji nesto slicno, ili makar samo
>> dobra i proverena biblioteka za Microsoft C 6.0?
Pored PE-a postoji čitava gomila sličnih alata i to ne samo
za BC ili MSC nego i za Zortech, Watcom i druge. Pogledaj oglase u
stranim časopisima.
Iako takvi proizvodi postoje, kod nas je najpopularniji
(možda i zato što je jedini dostupan) PE. Ako nemaš mogućnosti da
nabaviš neku biblioteku iz inostranstva a u isto vreme vidiš PE
kao jedini način za rešavanje tvog programerskog problema,
razmisli o BC-u, i u isto vreme pročitaj poruke dejanr-a o
problemima prelaska na novi kompajler.
Paya
clipper.287ppekovic,
>>> engine. Zanima me da li postoji nesto slicno, ili makar samo
>>> dobra i proverena biblioteka za Microsoft C 6.0?
>>
>> Odmah predji na BC++!!!!
;))) Ako mu ti napraviš sve ono što je čovek do sada razvio
na MSC-u, i ako uspeš da mu iskustvo sa MSC-om u trenutku zameniš
sa iskustvom sa BC-om, onda u redu, neka predje ;)
Paya
clipper.288ndragan,
/ Ali, treba uvek imati u vidu i to da ulazak tih novih alata u širu
/ upotrebu ume da bude veoma spor, i da "uspevaju" samo neki od njih.
Kod nas je trajalo godinu dana da pređemo sa MFoxPlus 2.1 na FoxPro
1.02, i to je prešlo otprilike 30% aplikacija za godinu dana, i još 30%
za sledećih godinu dana. FoxPro 2.0 imamo (neku verziju) već 13 meseci,
i tek je oko 1% aplikacija urađeno u njemu. A radi se o alatima iste
firme, koji su veoma kompatibilni uzbrdo; čak 99.5% programskih linija
lepo radi bez izmena. Ipak je prelazak na novu verziju problematičan
(znam, jer sam ja jedan od trojice eksperimentalista u firmi), i izaziva
brdo telefonskih poziva.
clipper.289ndragan,
/ Pravljenje .EXE ili nekih RUN-Tajmova sa njim je ... nema potrebe da
/ se vredjamo ;)
Stand-alone exe, da, to je ogavno sporo, a čim se napravi treba da se
pravi nov - otkrićeš još neki detalj koji treba da se menja.
Kompaktni izvršni program se radi iz cuga. Napravim aplikaciju sa
devedesetak procedura - na 286 mi napravi za desetak sekundi, to mi je
taman vreme da se setim šta ono još treba da menjam.
/ Elem, Clipper je tu da pravi .EXE i samo to. A FOx koristim umesto
/ Clipperovog DBU-a, odnosno DBASE-a.
Elem, svako koristi onoliko koliko ume?
P.S. Šta si očetkivao, da ću da oćutim? :)
clipper.290oki.,
>> clipper-om, drzi se clippera. Ja sam vrlo zadovoljan Fox-om (pre toga
>> clipper-as jedno 4 godine) i ne menjam ga osim za nesto radikalno.
A za FoxPro 2.5 for Windows? ;)
P.S. Juče sam video reklamu u najnovijem PC Magazinu (26.1.93.). U reklami
tvrde da svi programi sa 2.0 verzije, bez problema rade u Windows-u.
clipper.291oki.,
>> Najavljuje se i navodno vec postoji. Nisam video...
Ja video samo reklamu :(((((
clipper.292bulaja,
│Elem, Clipper je tu da pravi .EXE i samo to. A FOx
│koristim umesto Clipperovog DBU-a, odnosno DBASE-a.
└───
Takodje, s tim sto koristim (pra)stari FoxBase+, ali koji je sjajna
stvar za interaktivno petljanje sa DBF-ovima (steta jedino sto nema
Clipper indexe :).
clipper.293bulaja,
│Inace, ja mislim da ne bi bilo lose da postoji i PDX Engine koji radi
│(makar i sporije) sa .DBF fajlovima.
└───
Postoji CodeBase, C biblioteka zamisljena da bude C ekvivalent
Clipper-u. Ja sam se malo petljao sa time (ima i nbatocanin text o
CodeBase u nekim R) i CB zaista ima skoro sve sto i Clipper ali nazalost
nije nesto mnogo brzi od Clipper-a.
│I Force je zanimljivo resenje, samo na zalost nemam mnogo prilike da
│pratim kako se razvija, onaj koji sam zadnji video bio je ipak dosta
│bug-ovit.
└───
Nazalost, izgleda da je firma koja je pravila Force (Sophco) nestala sa
trzista (?). Ako su imali srece neko ih je kupio, pa sad cuti i sprema
boom :). Force je inace bio ludacki brz, po svim testovima koje sam
radio bar 4 puta brzi od Clipper-a (a pravio .EXE od 30 KB!), nazalost i
dosta bugovit i nedoradjen.
clipper.294banex,
Jel bi mogli malo ove rasprave o raznim programima za baze
podataka i pro & contra fazone da prebacite u temu baze.podataka u
ovoj istoj konferenciji?
11 poruka u temi clipper a nijedna nema veze sa njim ;)
clipper.295banex,
[Reply na PC.HARD.2, 5.126]
Uz poruku je zakačena .dbf datoteka sa esc kodovima za 58 štampača.
printer.arjclipper.296bulaja,
│Iako takvi proizvodi postoje, kod nas je najpopularniji
│(mozda i zato sto je jedini dostupan) PE.
└───
Isto tako je PE popularan i napolju. Razlog nije u dostupnosti, vec je
PE jedina biblioteka iza koje stoji neko veliko ime (Borland). Takodje
na Zapadu je Paradox vrlo rasiren (dobijao je i PC Mag Editor's Choice i
slicne stvari), tako da nije ni cudnoa popularnost PXEngine.
clipper.297nbatocanin,
> Na mladima je da iznesu progres, a da se stariji ili pridruže tom
> progresu ili da se sklone.
Moram da kažem da mi se nikako ne sviđa ovakva argumentacija
"unapred": ja još nisam video dokaz da je Clipper zastareo i
prevaziđen proizvod. Prvo, neko pod terminom "Clipper" podrazumeva
Summer'87 verziju, a neko 5.01 (a neko nekog fiktivnog neprijatelja,
koliko vidim) ;) Zatim, treba uzeti u obzir pri poređenju da to nisu
proizvodi baš iste klase (niko ne zamera C-u što nema mogućnost
kreiranja maski za unos u osnovnom jeziku).
Ja tvrdim (a nadam se da sam bar malo to pokazao u proteklim
raspravama) da je Clipper S'87 zastareo proizvod, a da Clipper 5.01
*nikako* nije zastareo proizvod i da njegovo vreme tek predstoji.
Ukoliko neko misli da može dokazati suprotno, samo napred, ali
argumentima.
Što se tiče različitih formata podataka, Clipper ima izvanredan
sistem za pristup podacima i *legalno* je podržan pristup raznim
formatima: postoje drajveri za FoxPro indekse, FlexFile slogove
promenljive dužine, a čini mi se da postoji i drajver za Paradox
datoteke. Uz verziju 5.2 se isporučuju drajveri koji omogućavaju rad
sa nekoliko različitih formata podataka.
Što se tiče brzine, mislim da mnogo zavisi od pametne organizacije
programa: ako znate filozofiju nekog proizvoda, onda ćete mnogo lakše
da "zaobiđete" njegove loše tačke i da iskoristite jake. A da brzina
Clipper-a i nije tako mala svedoče ovi rezultati (BYTE, januar
1992.):
A - BATCH ORDER-PROCESSING
B - IMPORTING AND INDEXING
(sve u sekundama)
A B
-----------------------------------
Alpha Four - 181
Clipper 5.01 127 53
DataEase 290 154
dBase IV 309 198
FoxPro 2.0 73 22
Informix 3904 257
Paradox 3.5 286 131
R:Base 2289 290
Superbase 4 525 178
WindowBase - 1189
-----------------------------------
Evo još nekih rezultata:
DATA BASED ADVISOR, jul 1992., TOP TEN:
Performance of product:
1. VP-info 94.29
2. Q & A 91.25
3. D 90.25
4. dbMaster 90.20
5. FoxPro 83.57
6. Clipper 83.57
7. Multibase 83.27
8. Arago 82.90
9. ZIM 79.17
10. Clarion 78.26
Performance of applications developed:
1. VP-info
2. D the data language
3. DataFlex
4. Emerald Bay
5. dbMaster
6. Q & A
7. FoxPro
8. ZIM
9. Clipper
10. Arago
Power of language:
1. Clipper
2. Multibase
3. Clarion
4. ZIM
5. DataFlex
6. Advanced R.
7. VP-info
8. Arago
9. FoxPro
10.Knowledgeman
clipper.298vasic,
> Primetio sam da je mebju Borlad C++ programerima, koji se bave
> poslovnim aplikacijama i bazama podataka veoma popularan paradox
> engine. Zanima me da li postoji nesto slicno, ili makar samo
> dobra i proverena biblioteka za Microsoft C 6.0?
Evo, baš pred sobom imam Borlandov prospekt o Engine-u u kome na samom
početku piše:
"Paradox Engine provides developers using the Borland programming family
of languages or the Microsoft(R) C programming languages an Application
Programming Interface (API) of more than 70 functions. (...)"
Možda vam konstrukcija gornje rečenice deluje čudno (kao i meni), ali
mislim da je suština jasna.
clipper.299jtitov,
> P.S. Juce sam video reklamu u najnovijem PC Magazinu
> (26.1.93.). U reklami tvrde da svi programi sa 2.0
> verzije, bez problema rade u Windows-u.
TO JE SUPER, ako se pokaze kao istina. BTW, jel moze taj PCM da se pozajmi
na par dana?
clipper.300cubro,
Posto nisam znao gde da stavim ovaj clanak preveden iz PC WORLD -a
odlucih da stavim ovde jer mozda nekim delom i spada ovde.
NA SCENU STUPA MAGIC 5.0
Magic je medju prvima u svetu, koji su odlucili da predju sa program-
skih jezika 4. generacije - omugucava da programer programira sa opisom
problema. Nema low-level kodova, nema kompajliranja, prekodovanja. Umesto
toga postoji izrazito vizuelna, ne-proceduralna, event- i object-orijenti-
sano programiranje pomocu racunara >>CAP<< (Computer Aided Programming).
To omogucava efikasnost razvoja i odrzavanje. Magic je u svakom pogledu
user-friendly sredstvo. Izradjene aplikacije mogu da se startuju pod DOS,
LAN,UNIX, VAX/VMS, OS/2, BTOC/CTOS operativnim sistemima. Magic direktno
podrzava Btrieve,c-tree, C-ISAM(Informix), dBase, Rdb, RMS, Ingres, Oracle,
NetWare, SQL, Paradox, SQL Server(Sybase) baze podataka, cak sa mogucnoscu
mesanja u okviru istog programa. Magic daje mogucnost za share rukovanjem
baze podataka na vise platforma koja se bazira na TCP/IP odnosno DecNet
client/server arhitekturi. Magic omogucava na originalan nacin da dobijete
komfortan i efikasan front-end sredstvo, rukovaoca bazama podataka koja ce
najvise odgovarati ciljevima, i da medju definisanim okolnostima koristite
odgovarajuci hardver.
Pitanje : Da li neko zna nesto o tome ? Inace program se moze nabaviti
u susednoj Republici Madjarskoj. Cenu ne znam (ali mogu saznati, ako ima
interesanata)
clipper.301peacock,
#### NA SCENU STUPA MAGIC 5.0
Elem, pre par dana sam dobio demo verziju Magica od pre par
godina. Samo sam je ovlas pogledao, nisam ceprkao detaljnije,
izgleda interesantno. Proizvodljci su Izraelci, bilo je nesto
malo o njoj prosle godine u PC Magazineu ili Byteu, a
rezvijana je za vojsku zajedno za Amerima. Covek koji mi je
dao demo mi prica o njoj vec par godina, gledao je neku
prezentaciju "napolju", hvali je na sva usta i nije amater.
Uz to, ima i konkretne planove za nase trziste.
Zoran
P.S. Magicom se bavio neko iz Banja Luke vrlo detaljno,
raspitacu se ko, ako ti nesto znaci.
clipper.302aleksj,
> Pitanje : Da li neko zna nesto o tome ? Inace program se
> moze nabaviti u susednoj Republici Madjarskoj. Cenu ne
> znam (ali mogu saznati, ako ima interesanata)
Cuo sam od strica sve najlepse o ovom paketu.
Cak je rekao da je dostojan rivall oracle-u.
Kako sam razumeo njega je koristilla izraelska
vojska, pa je odlucila da ga pusti u opticaj.
Inace izgleda da je paket dosta jeftin ( u odnosu
na oracle npr.) ali ima neku hardversku zastitu.
Bilo bi dobro da saznamo sto vise informacija o njemu :) !
Pozdrav!
clipper.303d.petrovic,
žisto da napomenem, da još neko ne po*izdi...
Ako hoćete prvo da dođete ne neko postojeće / nepostojeće mesto
u bazi pa da onda pozovete tbrowsedb(...) počeće da brljavi:
*************************************************
miloje:=space(10)
č 10,0 get miloje picture "!XXXXXXXXX" && Uneti "Zzzzzzzzzz"
read
use baza index index
set softseek on
seek miloje && Nije našao, otišao je
* && na kraj baze
set softseek off
*************************
if .not. found() && Ovo
skip -1 && vadi
endif && stvar
*************************
tbrowsedb(...)
tbcolumnnew(...)
...
*************************************************
Ako ode na kraj baze, ubaciće u tbrowse objekat na kraj baze prazno
polje (vidi se N polje veličine 0) (eof() ???) koje brljavi. Ako
idete sa vrha baze prema kraju sve je OK. ali ako sidjete na
inkriminisano polje pa krenete prema vrhu baze.... :(. Ne pokazuje na
zapis koji vidite na ekranu.
clipper.304mihajl,
Da li neko zna na koji nacin da urazumim Clipper 5.01 odnosno
RTLINK da mi ulinkuje na pravi nacin modul iz biblioteke. Pravio
sam neke svoje biblioteke od par iljada linija koda , i sve je u
probnim modulima super radilo, e onda ja napravih prvu aplikaciju.
- Prvi problem sa kojim sam se sreo je taj da jednostavno ako iz
modula koji je unutar te biblioteke pozovem neku rutinu iz iste
biblioteke, taj modul vise ne postoji za linker. To sam natezajuci
sredio tako da izvrsni program ponovo linkujem sa objektnim kodom
koji sam izvadio iz biblioteke,ali mi se taj nacin nimalo nesvidja
jer uopste nije lep.
- Drugi problemcic je taj da su GET-ovi prosto podivljali. I to
boje getova.Sto puta sam prosao dibagerom i on kaze da ja lepo se-
lektujem boju, ali get kao da je nevidi.Inace i get sam predefini-
sao sa funkcijom ReadModal, ali ni tamo nista nisam specijalno di-
rao. Sto je najzanimljivije u modulu unutar biblioteke koji isto
tako poziva taj get on lepo radi , a kada ga pozivam iz programa ,
nece ni da oboji lepo.
H E L P ! H E L P ! Sta bi ovo moglo biti ?
clipper.305neman,
> za jedan konkretan posao, itd... Slusaj, racunarom se bave
> i dipl.ing-ovi, ali se ne razumeju u masinu ;) i ima ih >
> 50%.
To stoji :)
clipper.306neman,
> datoteke. Uz verziju 5.2 se isporučuju drajveri koji
> omogućavaju rad sa nekoliko različitih formata podataka.
A gde to ima ????
clipper.307d.petrovic,
Ne znam čime su pravljene te biblioteke, ali... kad sam onih 5
pat-ova menjao u nanfor.lib (LIB.EXE 3.15) sve je prošlo i proradili
osim... ako pravim .PLL program ne prepoznaj NEKE DRUGE funkcije iz
nanfor biblioteke koje ja nikako NISAM DIRAO i još uvek postoje u
biblioteci i rade ako se program normalno prevede i linkuje...
Verovatno je problem u formatu biblioteke, probaj da svoje
funkcije ubaciš u neku postojeću biblioteku umesto da praviš svoju,
možda će to pomoće... pa javi jel uspelo :))
clipper.308zkrstic,
> Baci neki argument.
Nadji mi knjige, libove, jutilitije, poznanike koji će ti dati
savet kada zagusti sa PXe-om...
Vidi: Clipper je očaj... ali ga ima toliko mnogo i svuda. Džaba nekom
što ima neki mrak auto, kada nemože da kupi u Evropi svećice ili šta ti ja
znam koju glupost za njega.
Možda bih drugačije pisao da imam malo više pojma sa TP-om ili C-om,
ali obzirom da mi je znanje ova dva jezik vrlo skromno, ostajem na Clipperu.
Zkr :)
clipper.309zkrstic,
>│ Elem, Clipper je tu da pravi .EXE i samo to. A FOx
>│ koristim umesto Clipperovog DBU-a, odnosno DBASE-a.
> └───
> Takodje, s tim sto koristim (pra)stari FoxBase+, ali koji je sjajna
Namerno koristim onaj zadnji pridošli, FOx Pro bla_bla for Lan
zato što ima sjajne fazone i pušta me da ulićem u baze koje su Shared
pod mrežom.
Zkr
clipper.310dnikolic,
>> engine. Zanima me da li postoji nesto slicno, ili makar samo
>> dobra i proverena biblioteka za Microsoft C 6.0?
U okviru paketa PE se nalaze biblioteke za Borlandove C i Paskal kompajlere i
za Microsoft-ov C. Znaci, nema (prevelike) potrebe da prelazis na Borland.
dn
clipper.311dnikolic,
>> kao jedini nacin za resavanje tvog programerskog problema,
>> razmisli o BC-u, i u isto vreme procitaj poruke dejanr-a o
>> problemima prelaska na novi kompajler.
Kako sto rekoh, nema potrebe da prelazi na BC, jer se u okviru PE nalazi i
biblioteka za MSC.
dn
clipper.312bulaja,
│Da li neko zna na koji nacin da urazumim Clipper 5.01 odnosno
│RTLINK da mi ulinkuje na pravi nacin modul iz biblioteke.
└───
Meni sve lepo radi sa sopstvenim bibliotekama, mozda je problem u tome
kako ih pravis? Ja ih kompajliram sa /a /m /n /v opcijama, mozda bi npr.
nestavljanje /n moglo da pravi zbrku ako se takav file ubaci u lib?
clipper.313nbatocanin,
> NA SCENU STUPA MAGIC 5.0
> Pitanje : Da li neko zna nesto o tome ?
Bio sam na prezentaciji koju je držao g. Milan Kukrika i imam neki
demo (koji nikako da stignem da pregledam). Stvar izgleda
interesantno, mada mi je reklama malo previše udaljena od onoga što
se nudi.
clipper.314nbatocanin,
> Ako ode na kraj baze, ubaciće u tbrowse objekat na kraj
> baze prazno polje (vidi se N polje veličine 0) (eof() ???)
> koje brljavi.
To je legalni mehanizam: kad izvršiš SKIP na kraju datoteke,
pokazivač se pomera na fiktivni "prazan" slog iza kraja i Eof()
postaje .T..
clipper.315nbatocanin,
> - Prvi problem sa kojim sam se sreo je taj da jednostavno
> ako iz modula koji je unutar te biblioteke pozovem neku
> rutinu iz iste biblioteke, taj modul vise ne postoji za
> linker.
???? Ovo koristim iljadu puta i sve štronca bez problema. Mora da si
nešto zeznuo: da nisi stavio da je neka od tih procedura STATIC, možda
u glavnom programu proceduru pozivaš iz makroa (tada moraš koristiti
EXTERNAL da bi linker znao da treba da ulinkuje taj modul), ...
> Inace i get sam predefini- sao sa funkcijom
> ReadModal, ali ni tamo nista nisam specijalno di- rao.
Objasni ovo malo detaljnije. Jer, READ i jeste samo poziv funkcije
ReadModal.
clipper.316petrovics,
>> ;))) Ako mu ti napravis sve ono sto je covek do sada razvio
>> na MSC-u, i ako uspes da mu iskustvo sa MSC-om u trenutku zamenis
>> sa iskustvom sa BC-om, onda u redu, neka predje ;)
Hvala ti sto si umesto mene objasnio neke cvrste razloge sto za
sada ostajem na MSC.
clipper.317petrovics,
>> (mozda i zato sto je jedini dostupan) PE. Ako nemas mogucnosti da
>> nabavis neku biblioteku iz inostranstva a u isto vreme vidis PE
>> kao jedini nacin za resavanje tvog programerskog problema,
>> razmisli o BC-u, i u isto vreme procitaj poruke dejanr-a o
>> problemima prelaska na novi kompajler.
Za sada (a verovatno i za duze) ostajem na MSC 6.0 pa bi mi
trebala neka biblioteka za njega. Posto mi strani casopisi nisu
dostupni zamolio bih te da mi navedes bar neku biblioteku koja
je popularna, ako takve ima.
clipper.318petrovics,
>> "Paradox Engine provides developers using the Borland programming family
>> of languages or the Microsoft(R) C programming languages an Application
>> Programming Interface (API) of more than 70 functions. (...)"
Pa jel probao neko da koristi MSC 6.0 sa Paradox Engine?
Usput da pitam jos nesto. Ovde stoji (R) pa me zanima sta
ustvari tacno znace (C), (R) i ostale slicne oznake. Znam da se
na SEZAMU skoro govorilo o (C) ali mi i dalje nije bas naj
jasnija ta oznaka. Ako je o tome ranije (kad nisam bio na
sezamu) bilo reci uputite me na prave poruke.
clipper.320d.petrovic,
Ă> To je legalni mehanizam: kad izvršiš SKIP na kraju datoteke,
Ă> pokazivač se pomera na fiktivni "prazan" slog iza kraja i Eof()
Ă> postaje .T..
Samo nisam očekivao da se tbrowse zbog toga zbuni...
clipper.321zsiz,
> Za sada (a verovatno i za duze) ostajem na MSC 6.0 pa bi mi
> trebala neka biblioteka za njega. Posto mi strani casopisi nisu
> dostupni zamolio bih te da mi navedes bar neku biblioteku koja
> je popularna, ako takve ima.
Evo šta sam našao:
1)CodeBase 4.5 The C Library for DataBase Management
Use CodeBase 4.5 from Visual Basic
or Turbo Pascal for Windows.
Use the super-fast, super-small FoxPro 2.0
CDX or the Clipper NTX index files.
"Our product was too slow under FoxPro 2.0,
so we rewrote it in C using CodeBase. Now
it is incredibly fast
* Multi user
* Portable (DOS, Unix,...)
* Royalti Free DLL
* C++ interface included
SEQUITER SOFTWARE INC. Tel. 403 437 2410
Fax. 403 436 2999
Europe 33 20 24 20 14
#209,9644-54 AVE., EDMONTOM, AB, CANADA T6E-5V1
Pozdrav.
zsiz
clipper.322nbatocanin,
> A gde to ima ????
Nema, ali biće valjda ;))
clipper.323snemcev,
Jel ima neko neki program za formatiraje programa (nazubljivanje,
kontrola IF-ENDIF i WHILE-ENDDO struktura, cross-reference index...)? Ja
imam neki Source Print koji me oduševljava. Jedina mu je mana što je
pisan '87, pa podržava dBase III+ (a podržava i Pascal, C, text,
Fortran... i nekih 6 osnovnih modela štampača) ali ne i Clipper. Ako
neko ima nešto slično, ili noviju verziju ovog programa, voleo bih da mi
se javi, bilo u mail, bilo ovde...
clipper.325petrovics,
>> Evo sta sam nasao:
>>
>> 1)CodeBase 4.5 The C Library for DataBase Management
Hvala !
clipper.326jtitov,
> Jel ima neko neki program za formatiraje programa
> (nazubljivanje,
Uz FoxPro se dobija FoxDoc. Pravi vrlo lepe listinge za dokumentaciju, sa
nazubljivanjem i crtanjem crtica od if..endif, do..enddo...
Predlazem da posaljes neki source, pa da ga provucem, pa ako ti odgovara da
ga dobijes...
clipper.327melev,
│ Jel ima neko neki program za formatiraje programa (nazubljivanje,
│ kontrola IF-ENDIF i WHILE-ENDDO struktura, cross-reference index...)? Ja
.............
│ neko ima nešto slično, ili noviju verziju ovog programa, voleo bih da mi
│ se javi, bilo u mail, bilo ovde...
└───────
Nemojte u mail pošto ima još zaintesovanih.
clipper.328zkrstic,
> Fortran... i nekih 6 osnovnih modela štampača) ali ne i Clipper. Ako
> neko ima nešto slično, ili noviju verziju ovog programa, voleo bih
> da mi se javi, bilo u mail, bilo ovde...
Imaš to i na Sezamu :))
Program se zove Snap, verzija 5.0. Podržava i Clipper i Fox i Boga
oca i kojekakve "third party" libove. Uzmi, lepo fercera, čak pravi i koje-
kakve fine stvarčice pride kao spisak procedura i funkcija koje ti se nala-
ze u tom .prg-u i slično.
Zkr :)
clipper.329dr.grba,
Hi there!
Majko mila!
Posle dve godine kliperisanja tamo-amo nocas spoznam glupost :
Clipper propusta funkciju po imenu valid(xxx,yyy), sto cete
(kao i ja :) ) utvrditi kada zaboravite ono ; u predugackoj
@ say ... get ... liniji.
Samo da prokomentarisem glupost...
Pozdrav,
dr.grba
clipper.330petrovics,
Imam jedno pitanje u vezi Clipper aplikacija.
Na jednom AT 286 12MHz racunaru sa 1MB memorije se vrti Clipper
aplikacija cija je najveca DBF datoteka oko 11MB. Indeksirana je po dva
kljuca. Problem je u sledecem:
U privremenom direktorijumu, u kome aplikacija snima privremene
datoteke, ostaju, ne obrisane, datoteke sa cudnim nazivima. Nazivi su
po sistemu: "ABHEAB" i slicno. U nekim od tih datoteka postoje losi
sektori pa mora da se startuje neki program (na primer NDD) da bi se
sektori sredili. Inace aplikacija lepo radi i iz nje se nikada ne
izlazi na silu. Znaci ove datoteke se prave i ostaju u toku regularnog
koriscenja aplikacije.
Zna li neko u cemu je problem i kako moze da se otkloni.
clipper.331snemcev,
>> Imaš to i na Sezamu :))
>>
>> Program se zove Snap, verzija 5.0.
Nije to TO, ono se zove Source Print. A da ću da probam Snap, probaću...
clipper.332zkrstic,
> datoteke, ostaju, ne obrisane, datoteke sa cudnim nazivima. Nazivi
> su po sistemu: "ABHEAB" i slicno. U nekim od tih datoteka postoje
> losi
To je ostatak fajlića koje Clipper koristi za svapovanje i pravljenje
virtuelne memorije, koliko me pamćenje služi. Možeš da upotrebiš i onu promen-
ljivu set clipper ... swappath pa da ih teraš u poseban dir.
Zkr
clipper.333bulaja,
**** new file ****
R:\IBMPC\CLIPPER\*.*
----------------------
onotes zip 27897 Primeri koriscenja objekata (TBrowse, GET) u Clipper-u
clipper.334d.petrovic,
Ă> po sistemu: "ABHEAB" i slicno. U nekim od tih datoteka postoje
Ă> losi
Meni se to samo jednom dešavalo i nisam siguran zašto, jerbo je
to bilo u radnoj verziji programa, mada... kad razmislim šta sam tada
menjao...
Nema veze sa pameću i ne mora da znači, ali može da ima veze sa
naredbom "set printer to blabla" pa ako koristiš to negde proveri
dal' se javlja kad to ne koristiš...
clipper.335dejanr,
Prepravljam neki veeeeliki Clipper program koji su drugi pisali
(zabavno je, možete misliti :) i nailazim na nekakav obj fajl koji
se zove SET_FUNC.OBJ. On se lepo linkuje uz program, i pozivaju se
neke funkcije iz njega, npr. dbcheck (proverava strukturu baze
podataka), nešto sa prozorima itd. Dotični .OBJ ima oko 15 k. Izgleda
da se ne da linkovati sa novim Clipper-om, samo sa S87 (ili bar meni
nije uspelo uz par sitnih proba).
Pitanje: da li je možda taj SET_FUNC.OBJ "nešto" u javnom vlasništvu,
za šta je raspoloživ source (SET_FUNC.ASM, .PRG, .C itd)? Da li uopšte
neko zna šta je "to"?
clipper.336jtitov,
> Prepravljam neki veeeeliki Clipper program koji su drugi
> pisali (zabavno je, mozete misliti :) i nailazim na
> nekakav obj fajl koji
Mogao bi malo, u par reci, da nam ispricas svoje avanture sa prepravkom
tudjeg koda. Mogu misliti kako ti je. Jos ako nema komentara...
clipper.337ndragan,
/ imam neki Source Print koji me oduševljava. Jedina mu je mana što je
SP i SNAP! je otkupio Foks, pa se sad isporučuje kao FoxDoc uz FoxPro
(bez doplate). Koliko se sećam, SNAP! je imao i .cfg fajlove sa
kliperovim naredbama, a mogli su se i editovati. Kao dodatak,
prepoznavao je i funkcije od onog tipa kako se ono zvaše, nešto na R.
clipper.338snemcev,
>> Program se zove Snap, verzija 5.0. Podržava i Clipper i Fox i Boga
>> oca i kojekakve "third party" libove.
Što jes', jes', lepo fercera, al' prosvetli me kako da mu objasnim da
moje čedo od programa ima 20 kojekakvih modula i da ja hoću sve njih
uključene u izveštaj? On traži samo 'Main project file'. Za sve f-je
koje nisu u njemu, on jednostavno napiše
BLA_BLA_TRUĆ ( function in ? )
clipper.339d.petrovic,
Ă> Pitanje: da li je možda taj SET_FUNC.OBJ "nešto" u javnom
Ă> vlasništvu,
Na žalost ne znam šta je to, ali da te o'ma opomenem da ne gubiš
vreme. Ne može da se mešaju .obj-ovi iz s87 i 5.01. Zar nije lakše da
sve napišeš ponovo ? ;)))
clipper.340nbatocanin,
> Samo da prokomentarisem glupost...
Zašto funkcija ne bi mogla da se zove Valid?
clipper.341nbatocanin,
> U privremenom direktorijumu, u kome aplikacija snima
> privremene datoteke, ostaju, ne obrisane, datoteke sa
> cudnim nazivima. Nazivi su po sistemu: "ABHEAB" i slicno.
To je swap datoteka: javlja se kad nema dovoljno memorije i trebalo
bi da se briše pri regularnom izlasku.
clipper.342dejanr,
Juče se nakanih da probam Blinker i WOW :) Sad se "nerviram" što sam
ovako dugo koristio RTLINK, izgubio sam sate i sate vremena jer ovaj
stvarno linkuje ko munja. Sve vreme se pitam, postoji li negde neka
loša strana (neko na Klubu reče da "slabije koristi memoriju", šta god
to značilo ;)?
clipper.343dejanr,
>> Mogao bi malo, u par reci, da nam ispricas svoje avanture sa prepravkom
>> tudjeg koda.
Autor programa je Lola (sa Sezama). Program je jako složen ali dosta lepo
napisan, tako da uopšte nije tako teško kao što izgleda. Glavni problem
je kad se recimo pojavi zahtev "u masci A treba dodati i mogućnost
da se sa F7 radi to i to, koja već postoji u masci B". Ja nađem da se
u oba slučaja zove isti potprogram, samo što je kod B poziva jedan flag
.T. a kod A poziva .F. A baš taj flag kontroliše radi li F7 "to i to"
ili ništa. I sad dođe pitanje - ako prepravim u oba slučaja u .T., kakvih
će biti loših posledica? Ako ih nema, zašto je to u startu i bilo
isključeno?
Drugi problem je što su u programu korišćeni i neki uslužni programi
iz časopisa, zatim FUNCKY.LIB i pomenuti SET_FUNC.OBJ. Što se tiče programa
iz časopisa, tu imam source-ve ali opet mi malo prave probleme, svaki
pravio drugi čovek pa je nešto svoje u njemu "terao". Što se tiče FUNCKY.LIB,
to sam mahom "istrebio", jer i nisu bile neke usluge, pa sam nešto izbacio
a nešto zamenio svojim funkcijama. Rado bi se prebacio na Clipper 5.01,
nekako sam počeo da se navikavam na njega, a postao je i brz otkad je
BLINKERA-a... ali SET_FUNC.OBJ me i dalje muči :(
clipper.345ndragan,
/ ljivu set clipper ... swappath pa da ih teraš u poseban dir.
...a u autoegzek ubaciš redovno brisanje tog direktorija.
Za foksovce, u config.fp se ubacuje
sortwork=C:Đlevi_dir
editwork=C:Đlevi_dir
progwork=C:Đlevi_dir
tmpfiles=C:Đlevi_dir
a u autoegzek
del c:Đlevi_dirĐ*.tmp >nul
Da vas ne bi zivkali bez veze kad ponestane mesta na disku. FP2 inače ne
zatura te fajlove tako lako, ali kako je krenulo sa strujom...
clipper.346jtitov,
> Juce se nakanih da probam Blinker i WOW :) Sad se
> "nerviram" sto sam
To bi se reklo: Dobro jutro Kolumbo :))) Odavno sam napisao da je to
trenutno najbolji/najbrzi linker. Pogotovu za Clipper. Drugar koji sa njim
radi (nije Sez.) je nekoliko puta smanjio vreme razvoja programa. Blinkerom
je takodje moguce napraviti 'demo' verziju, tj. program koji ce raditi SVE,
ali samo na pr. 5 minuta. Napominjem da to radi BLinker, a ne Clipper.
Mogao bi o BLinker-u da napises tekstic u Racunarima. Na zalost sa Fox-om
ne radi...
clipper.347bulaja,
Juce se nakanih da probam Blinker i WOW :) Sad se "nerviram" sto sam
ovako dugo koristio RTLINK, izgubio sam sate i sate vremena jer ovaj
stvarno linkuje ko munja.
│Sve vreme se pitam, postoji li negde neka losa strana (neko na Klubu
│rece da "slabije koristi memoriju", sta god to znacilo ;)?
└───
I ja sam se nakanio da probam Blinker bas pre tri dana :) i stvarno je
WOW! Umesto da se patim 20 sekundi da mi RTLink zavrsi posao, Blinker
uradi inkrementalni link za 1 sec! Ne bi trebao da ima mnogo losih
strana :), jedino bi program trebao da ti radi malo sporije, ali kad
uradis final link (sto mozes i RTlink-om) onda dobijes normalnu app.
clipper.348dejanr,
>> Mogao bi o BLinker-u da napises tekstic u Racunarima.
Mislim da je tekst u planu, autor nbatocanin. Tema je zbilja zanimljiva.
Inače, ja od BLinker-a nisam još ništa posebno probao, osim što sam uspeo
da linkujem program, potprograme i neke lib-ove, i sve to da pozovem iz
RMAKE-a - za to, Bogu hvala, nije bilo potrebno da se čita dokumentacija
niti da se gleda onaj Norton Guide ;) Garant ima i drugih lepih mogućnosti.
clipper.349dejanr,
>> Ne bi trebao da ima mnogo losih strana :), jedino bi program trebao
>> da ti radi malo sporije, ali kad uradis final link (sto mozes i
>> RTlink-om) onda dobijes normalnu app.
Pa, BLinker ako sam dobro razumeo radi nekakvo "inkrementalno" linkovanje,
a isto se isključuje dodavanjem reda BLINKER INCREMENTAL OFF u .LNK
fajl. Pretpostavljam da mu mogu i pobrisati .EXE fajl i radne datoteke
(ako ih ima), pa onda neće imati na šta da "inkrementuje", moraće da
odradi od nule a lakše obrisati jedan fajl nego zvati .LNK u editor i
menjati ga, obaška što posle mogu da zaboravim da ponovo uključim.
Najzad, što kažeš, može onaj zadnji put da se linkuje i sa RTLINK-om,
leba ne jede. Mada mislim da nema naročite potrebe.
Blinker je pravo otkrovenje, jedino me nervira što ispisuje onoliku
uvodnu poruku i što bipće na kraju, valjda i to nekako može da se
isključi.
clipper.350ndragan,
/ uključene u izveštaj? On traži samo 'Main project file'. Za sve f-je
Mana mu je što oče(t)kuje da sve bude na istom direktoriju.
clipper.351bulaja,
│Pa, BLinker ako sam dobro razumeo radi nekakvo "inkrementalno" linkovanje,
│a isto se iskljucuje dodavanjem reda BLINKER INCREMENTAL OFF u .LNK fajl.
└───
Da, pa glavno ubrzanje je zbog tog inc linkovanja. Ako radi potpuni link
(tj. sa INC OFF, npr. prvi put, a primetio sam da to radi svaki put
posle izmene bilo cega u .lnk fajlu) i onda je brzi od RTLink-a, ali ne
mnogo (10-20%).
│Blinker je pravo otkrovenje, jedino me nervira sto ispisuje onoliku uvodnu
│poruku i sto bipce na kraju, valjda i to nekako moze da se iskljuci.
└───
Moze, stavi NOBELL na kraj .LNK fajla.
clipper.352nbatocanin,
> Mislim da je tekst u planu, autor nbatocanin. Tema je
> zbilja zanimljiva.
Zadatak je izvršen :))
> Garant ima i drugih lepih mogućnosti.
Pa, nije da nema: ima nekoliko baš lepih stvari. Najbolje je
inkrementalno linkovanje, jer drastićno skraćuje vreme razvoja. Štos
radi tako što u EXE-u iz svake procedure ostavi pomalo prostora
(podešava se!), pa kad se procedura izmeni malo, on samo izmeni taj
deo u EXE-u. Linkovanje tako traje kraće od 1 sec. Međutim, kad se
ovo uključi, Blinker isključuje Clipper dynamic paging system, i
prelazi na svoje dinamičke overleje, što je sporije. Zato finalni
link treba obavezno raditi sa BLINKER INCREMENTAL OFF. Ako imate
skript, ne treba ga menjati. Može i:
BLINK @FILES.LNK BLINKER INCREMENTAL OFF
Kad je uključen INC link, lošije se troši memorija, pa ako imate veći
program može se desiti da nema dovoljno rama pri razvoju.
Rezultujući program je nešto malo duži nego onaj koji daje RTLink
i, mada kao ima neku kompresiju tabela, ja sa RTLinkom dobijam malo
više slobodne memorije. U svaki program se ulinkuje i njegov overlej
menadžer koji radi stvar (dinamičke overleje) i ima masu korisnih
funkcijica. Na primer, postoji mogućnost startovanja eksternih
programa, pri čemu se *kompletan* sadržaj memorije swapuje na disk.
Ima i jednostavan profiler, na osnovu koga procenjujete koje
procedure se često koriste i šta stavljate u root overlej. Može se
praviti i demo verzija programa, tako što se ograniči vreme rada
programa. Može se i upisati serijski broj u EXE.
U suštini je jako koristan - ja pređoh na njega. Jedini nedostaci su
mu što nema PLL biblioteke kao RTLink i što se ona grozna faca :( ne
može skinuti.
clipper.353snemcev,
>> Mana mu je što oče(t)kuje da sve bude na istom direktoriju.
Pa sve i jeste u istom direktorijumu, i opet daje samo main file.
clipper.354snemcev,
>> Pretpostavljam da mu mogu i pobrisati .EXE fajl i radne datoteke (ako
>> ih ima), pa onda neće imati na šta da "inkrementuje", moraće da
>> odradi od nule a lakše obrisati jedan fajl nego zvati .LNK u editor i
>> menjati ga, obaška što posle mogu da zaboravim da ponovo uključim.
Pa možeš, ali nebi trebao da dobiješ isti rezultat kao sa INC OFF. Jeste
da će linker da "odradi od nule", ali će i dalje na kraju svake procedure
ostaviti ono malo slobodnog prostora za naredna inkrementalna linkovanja.
A kao što reče nbatocanin, može i
blinker @prog.lnk bli inc off
PS Sve navedeno u komandnoj linije ima veći prioritet od svega u lnk fajlu!
clipper.355dejanr,
Evo malo da se smejete, pa makar i na moj račun ;)
Elem, odavno nisam imao potrebe da integrišem asemblerske potprograme
koje sam napišem u Clipper programe ali eto, dužnost zove, ispade da
mora i to da se radi da bi se olakšalo i ubrzalo šifrovanje nekih
podataka (nikad neću shvatiti zašto je u Clipper-u svako FOR i=1 TO
LENGTH(sstr) tako sporo).
Pošto je čitav program na Clipper-u 5.01, znao sam da će da bude muke al'
šta je, tu je. Uzmem neki stari program (pisao sam ga još '89) koji je
pozivan iz Clipper-a S87 ne bi li se iz njega podsetio kako to beše,
"skinem" početak i kraj i reko' prvo da probam nešto prosto, da napravim
samo proceduru koja ima dva argumenta pri čemu se jedan prepisuje u drugi
(dakle, kažeš a=crypt(@prvi, @drugi) i postane drugi=prvi. Lepo. Napišem
ja proceduru, asembliram je, linkujem (blinkerom, naravno :) kad ono, čudo
jedno, ne radi ;( Uzmem malo da prepravljam, izmenim nešto, ajmo opet
rmake, kad ono Data error reading drive C: (na C: je softver, a ovo što
radim je na D:) Auuuu... obično mi jednom godišnje crkava disk, ali negde
u aprilu ili maju, ove godine baš nešto poranio :(( Resetujem računar,
pustim NDD, prođe on ceo C: i sve mu u redu. Ok, nešto se cache zaglupeo,
startujem ja ponovo moj slavni program (koji, tako (valjda) treba, i dalje
ne radi,) opet da ga prevedem, opet Data error na C:. To mi već postane
malo sumnjivo, probam par reset-a i stvarno: uvek posle startovanja programa
na C: čudo Božje Data error-a, a inače sve u redu. Najzad sam čak izbacio
instrukciju kojom se PIŠE, dakle program samo protrči kroz polazni string
i nigde ga ne upisuje, ali džabe - posle izvršavanja, ništa od C:
Evo programa koji pravi to čudo uz poruku, ako mi neko objasni kako je
moguće da tih par instrukcija tako temeljno zaglupe drajv C: koji se tu
nikako ne referencira, a ne zaglupe D: na kome se sve to dešava, ima piće
od mene :)
Pošto sam video da nema 'leba od analogije sa S87, 'ajd reko' da pogledam
kako se to propisno radi na novom Clipper-u. Što se toga tiče, moram da
kažem da sam oduševljen - Nantucket je napravio tako lepe makroe da se
parametri prenose maltene k'o da programiraš na nekom pravom jeziku. Tako
je lepo i jednostavno (i čak mi je maltene iz prve proradilo to što sam
hteo) da nemam reče. Međutim, beše i tu jedan problem - krenem ja da
asembliram onaj demo primer što ide uz Clipper 5.01, kad ono ispade jedno
milion grešaka (milion grešaka = krene da piše pa ekran za ekranom samo
leti :) Onda nađem neki program iz "Računara" za backup, ajd' da probam
njega da asembliram, opet milion grešaka. Definitivno su ti kompjuteri
vatikansko-kominternovska zavera da nas totalno izlude ;) Posle popijene
čaše vode shvatim da na mom kompjuteru, kad kažeš ASM DEMO, biva pokrenut
nekakav OptAsm - Bog sveti zna šta mi bi da to stavim i kad sam ga uopšte
stavio, mora da su mi pre neku godinu rekli da je mnooooooogo bolji i brži
od MASM-a a ja bio lud pa poverovao. Tu mi već sine da mora biti da je
taj OptAsm malkice negde nekompatibilan sa MASM-om, ali 'reko, mora da ima
neku opciju za MASM kompatibilnost. Jest opcija, ali kako se zove? Neće
da da help na OPT, OPT ?, OPT /?, OPT -? OPT help, dakle nema druge nego da
se traži uputstvo. Nađem nekako uputstvo (help se dobija na OPT -h, alal im
vera :( ) i tamo kaže da je za MASM kompatibilnost ("even MASM bugs are
supported) switch -M. Lepo, ajmo OPT -M CRYPT; i zaista, nije milion greški
ali ih je otprilike upola manje. Naravno, to povlači i jedno DEL OPTASM.EXE,
da mi ne pravi takva s*anja drugi put, i 'ajmo da tražimo MASM, ništa bez
Microsofta. Ispadne da, na moje veliko iznenađenje, imam original MASM-a
5.1 (nemam ideju otkud mi, sigurno ga nisam kupio, a ni prikaz kol'ko se
sećam nisam pisao, mora da mi je to neko na nekom sajmu uvalio), instaliram
ja to i, o žuda, DEMO primeri prorade. A ubrzo i moj program za kopiranje,
sad mi ostaje samo da pravim program za potrebno šifrovanje :)
Sve u svemu, eto kako čoveku ode 3-4 sata na nešto za šta je planirao
15 minuta :(
bug.asmclipper.356dejanr,
Neko ovde reče da ga nervira što Blinker crta onoliki ekran i još namiguje
i bipće, ali da se biptanje može isključiti. Kad sam počeo da radim nisam
se, naravno, sećao kako se biptanje isključuje, a mrzelo me da zovem Sezam
i tražim poruku, reko' mora da ima ta opcija negde u BLINKER.EXE, da mi
to malo pogledamo sa NU. I stvarno, ima opcija, ali uz nju nađoh i sledeće
naredbe:
NOBELL
NOBLINK
NOFACE
Elem, NOBELL je bez zvona i to lepo radi. Ali, NOFACE bi trebalo valjda
da bude "bez lica", a NOBLINK možda da ne namiguje. Ali te opcije iz nekog
razloga ne rade. Ako neko ima ideju kako da skinemo onu rugobu sa ekrana...
clipper.357bulaja,
│Elem, NOBELL je bez zvona i to lepo radi. Ali, NOFACE bi trebalo valjda
│da bude "bez lica", a NOBLINK mozda da ne namiguje. Ali te opcije iz nekog
│razloga ne rade. Ako neko ima ideju kako da skinemo onu rugobu sa ekrana...
└───
Syntax: Purpose:
────── ───────
BLINKER MESSAGE NOBLINK Disable blinking of eyes during linking
BLINKER MESSAGE WINK [LEFT] Enable single eye winking during linking
Nisi morao da kopas po blinker.exe, sve lepo pise i u blinker.NG :).
Dakle, treptanje rugobe (blink) se moze skinuti bez problema, ali se
sama faca izgleda ne moze tako lako skinuti sa ekrana. NOFACE opcija se
ne spominje u NG, a faca je u .EXE kriptovana tako da ce morati malo da
se protrci kroz debugger ako bas toliko smeta :).
Inace su objasnjenja ovih opcija (purpose) haos, sta li misli onaj ko
nije video Blinker na delu? :). Evo npr. malo detaljnije sta radi
vrlo bitna komanda WINK:
This command is used to enable the winking of only one eye while Blinker
is running. If no parameter is entered, the right eye will wink (from
Blinker's point of view, i.e. from inside the screen looking out). The
parameter LEFT causes the left eye to wink.
clipper.358nbatocanin,
> Nisi morao da kopas po blinker.exe, sve lepo pise i u
> blinker.NG :). Dakle, treptanje rugobe (blink) se moze
> skinuti bez problema, ali se sama faca izgleda ne moze
> tako lako skinuti sa ekrana. NOFACE opcija se ne spominje
> u NG, a faca je u .EXE kriptovana tako da ce morati malo
> da se protrci kroz debugger ako bas toliko smeta :).
Uh, za facu je lako: odgovorna je INT 10 instrukcija u sledećem nizu:
b4 0e cd 10 eb f5
E, ako umesto CD10 stavite 9090, neće se ispisivati faca. Tada OBAVEZNO
treba staviti i MESS NOBLINK, jer će oči namigivati preko prethodnih
naredbi ;). Ali, nisam siguran da se negde u programu ne proverava
kontrolna suma celog programa, pa ovo do daljnjeg ne preporučujem.
clipper.359nbatocanin,
> Pošto sam video da nema 'leba od analogije sa S87, 'ajd
> reko' da pogledam kako se to propisno radi na novom
> Clipper-u. Što se toga tiče, moram da kažem da sam
> oduševljen - Nantucket je napravio tako lepe makroe da se
> parametri prenose maltene k'o da programiraš na nekom
> pravom jeziku.
:)) To je isto i u Summer'87.
clipper.360nbatocanin,
> Evo programa koji pravi to čudo uz poruku, ako mi neko
> objasni kako je moguće da tih par instrukcija tako
> temeljno zaglupe drajv C: koji se tu nikako ne
> referencira, a ne zaglupe D: na kome se sve to dešava, ima
> piće od mene :)
Kuku, gde nađe da koristiš EXTENDA.MAC -- on postoji zbog
kompatibilnosti sa najstarijim verzijama Clippera! Koristi samo
EXTENDA.INC. Što se tiče programa, nisam ga detaljno gledao, ali je
najverovatnije uzrok pada funkcija ret_int: čini mi se da je posle
njenog poziva neophodno ručno ažurirati stek, ali u svakom slučaju
ova funkcija uništava sadržaj svih registara, tako da ti pre izlaska
iz funkcije svi registri imaju slučajnu vrednost. E sad, šta se dalje
dešava, boga pitaj: rezultujući kod može ladno i disk da ti spali ;)
clipper.361dejanr,
>> Kuku, gde nađe da koristiš EXTENDA.MAC -- on postoji zbog
>> kompatibilnosti sa najstarijim verzijama Clippera!
Pa rekoh ja da je to bilo po ugledu na neki stari program, a vi mi
ne verujete da je bio toliko star :) U to vreme nije bilo ovijeh
lepota koje su posle izmislili ;))
U svakom zlu ima i dobra - da me nije zezao program, nikad ne bih
znao kako to novi Clipper lepo radi pa bi se u zbiru (računajući i
godine koje dolaze ;) više mučio :)
clipper.362dejanr,
Da li ste već čuli da... Clipper funkcija LASTREC() vraća 1 ako
u bazi ima nula slogova. Takođe vraća 1 ako u bazi ima jedan
slog.
Postavljaju se dva pitanja:
Q1. Kad vraća 0?
A1. Kad u dotičnoj oblasti nije aktivna ni jedna baza. Ovo piše
u uputstvu.
Q2. Kako razlikovati da li u bazi ima 0 slogova ili 1 slog?
A2. Pomoću LASTREC(), nikako. Ali posle GOTO TOP funkcija EOF()
vraća .T., inače vraća .F.. Što jes jes, i ovo piše u uputstvu.
clipper.363dejanr,
U novom Clipper-u se preporučuje da se baze otvaraju sa
USE ime ALIAS ime_aliasa SHARED NEW (umesto SHARED može i EXCLUSIVE)
Nekad se to radilo otprilike ovako:
SELECT 9
USE ime SHARED
U svakom slučaju, radi i jedno i drugo. Ali ako probate da budete pametni
pa da to iskombinujete, na primer:
USE ime ALIAS 9 SHARED NEW
eeee... onda ste se zeznuli, jer posle toga sa SELECT 9 Bog sveti zna
koju bazu uopšte otvarate, izgleda da baza 'ime' dobije po Clipper-ovoj
nekoj pameti "sledeći" broj, ali vi taj broj uopšte ne znate, pa ne
možete ni da otvorite bazu.
Bar da prijavi grešku kod ove konstrukcije, nego pušta da se sve radi
a onda kad krene da se pristupa bazi, zaređaju greške da "nema promenljive"
clipper.364banex,
>> eeee... onda ste se zeznuli, jer posle toga sa SELECT 9 Bog sveti
>> zna koju bazu uopšte otvarate, izgleda da baza 'ime' dobije po
>> Clipper-ovoj
Negde u onim silnim ng datotekama za novi clipper je navedeno da je
'preferirani' metod pristupa bazi preko aliasa. Ako se ne navede alias
ime tada se kao alias tretira originalni naziv. Imam utisak da
navođenje broja uz select naredbu podrazumeva da je u pitanju 'stari'
pristup (pristup 9-om području) a ne bazi sa alias imenom '9'.
Ko razume, shvatiće ;)
BTW, ne čudi me što je novi vlasnik nantuketa napravio pokolj ;))
clipper.365petrovics,
>> To je swap datoteka: javlja se kad nema dovoljno memorije i trebalo
>> bi da se brise pri regularnom izlasku.
Ma znao sam ja sta je, problem je sto se ne brisu sve (neke se
brisu a neke ne). Najveci problem je sto se javljaju i LOST
klasteri koje moras da sredjujes sa NDD. Inace ovo se desava jos
jednom mom prijatelju, ovde u Nisu.
clipper.366badboy,
Pomozite mi....
Napisao sam program u dbase-u, zelim da kompajliram sa clipperom..
Sto se tice kompajliranja, sve je ok, program radi , samo ne zna
da radi sa dbase indexima (*.ndx).KAko da napravim NTX od NDX - a?
Pozdrav:
---Bady
clipper.367draganf,
> Napisao sam program u dbase-u, zelim da kompajliram sa
> clipperom.. Sto se tice kompajliranja, sve je ok, program
> radi , samo ne zna da radi sa dbase indexima (*.ndx).KAko
> da napravim NTX od NDX - a? Pozdrav:
> ---Bady
Neznam što uopšte koristiš NDX ali postoji NDX.OBJ koji treba
linkovati zajedno sa tvojprogram.obj i to radi.
Dragan
clipper.368toma,
■■>> ... ... ... Najveci problem je sto se javljaju i LOST
■■>> klasteri koje moras da sredjujes sa NDD. Inace ovo se desava jos
■■>> jednom mom prijatelju, ovde u Nisu.
Lost klasteri su se javljali i meni sve dok nisam seo i ceo
program natenane pregledao (540kb) i video da mi kroz program
duva promaja (jedna datoteka ja bila non stop širom otvorena).
Kad sam to sredio sve je bilo OK! Program se naravno regularno
zavrsavao ali na njegovom kraju nije stajalo DbCloseAll().
Pozdrav from Toma.
clipper.369toma,
■■>> Q2. Kako razlikovati da li u bazi ima 0 slogova ili 1 slog?
■■>> A2. Pomoću LASTREC(), nikako. Ali posle GOTO TOP funkcija EOF()
■■>> vraća .T., inače vraća .F.. Što jes jes, i ovo piše u uputstvu.
A2.1 Funkcija RecCount(). Do sada je returnirala tacan broj.
Pozdrav from Toma.
clipper.370dkalaba,
Hi,
Da lKi neko zna nešto o generatoru aplikacija SuidCASE koji je razvila
MIKRONOVA iz N. Sada? Pomoću njega se mogu praviti EXE fajlovi, što mu
daje komercijalnu vrednost, ali kako sam ja pomalo skeptik kad se radi
o takvim alatima, zamolio bih nekog ko malo više zna o tome da napiše
ovde koju rečenicu.
.
clipper.371d.petrovic,
Ă> A2.1 Funkcija RecCount(). Do sada je returnirala tacan broj.
Ako staviš set filter to blabla neće bogme ;)
clipper.372zkrstic,
> Neznam što uopšte koristiš NDX ali postoji NDX.OBJ koji treba
> linkovati zajedno sa tvojprogram.obj i to radi.
Samo momenat!
Ova kompatibilnost je ukinuta u Clipperu 5.01! Postoji samo u S'87.
Sada nek me neko pukne po glavi u stilu: "pa o njemu i pričamo" ;))))
Zkr
clipper.373d.petrovic,
Ă> Sada nek me neko pukne po glavi u stilu: "pa o njemu i pričamo"
Ă> ;))))
Cangereeee. (ala zvoni ;)) )
Jok! O DBase III :))) Ozbiljno!
clipper.374dejanr,
Kako Clipper "pamti" stringove? Mislio sam da se u C-ovskom maniru
završavaju nulom, međutim može da se napiše prom:='abc'+chr(0)+'def'
i to će ok raditi. Sa druge strane, kada iz asemblerskog potprograma
vratim string koji ima nulu u sebi, on ga odseče na toj nuli.
clipper.375bulaja,
│Kako Clipper "pamti" stringove? Mislio sam da se u C-ovskom maniru
│zavrsavaju nulom, medutim moze da se napise prom:='abc'+chr(0)+'def'
│i to ce ok raditi. Sa druge strane, kada iz asemblerskog potprograma
│vratim string koji ima nulu u sebi, on ga odsece na toj nuli.
└───
Bilo je vce ovde price o tome, odduse vezano za povezivanje sa C-om.
Clipper ne koristi null term stringove, zato imas posebnu funkciju
_retclen() koja vraca Clipper stringove (trazi duzinu stringa kao
argument). Pogledaj u NG, a evo ti ovde i primer za C i ASM odatle:
────
C:
char data[5] = {1, 0, 2, 0, 3, 3};
_retclen(data, 5);
────
ASM:
EXTRN __retclen:FAR
mov ax, 5 ; params pushed in reverse
push ax
mov dx, seg MyData ; pass address of data (not shown)
mov ax, offset MyData
push dx
push ax
call __retclen
add sp, 6 ; reset stack pointer
clipper.376nbatocanin,
> Da lKi neko zna nešto o generatoru aplikacija SuidCASE
> koji je razvila MIKRONOVA iz N. Sada?
Trebalo je da radim prikaz ovog programa i bio sam na demonstraciji.
Radi se o programu koji omogućava da zadaš razne stvari za
aplikaciju: kakvi će biti meniji, kakvi pregledi, izveštaji, ...
Takvi programi su već viđeni i nisu ništa teško za uraditi. Ono što
je najvažnije, a to su specifičnosti svake aplikacije, urađeno je po
meni veoma loše: postoji veliki broj ugrađenih funkcija koje se
pozivaju da bi se izvele razne kontrole. Ukratko, interesantno i
nedovoljno razrađeno. Ipak, da se ogradim: ovo je samo na osnovu 2-3
sata rada.
Lično mislim da je oblast izuzetno interesantna i sam planiram odavno
da radim nešto ovako.
clipper.377nbatocanin,
Evo listinga objavljenih u tekstu "Knjiga u kojoj sve piše". Nisam
imao previše vremena da sve detaljno sredim, ali mislim da i ovako
može da se koristi.
dbf.zipclipper.378toma,
■■>> Ă> A2.1 Funkcija RecCount(). Do sada je returnirala tacan broj.
■■>>
■■>> Ako staviš set filter to blabla neće bogme ;)
A da! Ovde ima i ljudi koji još uvek koriste filtere! ;>
Pozdrav from Toma.
clipper.379d.petrovic,
Ă> A da! Ovde ima i ljudi koji još uvek koriste filtere! ;>
Da vidiš ponekad i koristim :). Kad štampam nešto, pa je program ipak
uvek brži od štampača. Uštedim poneki indeks, ali samo ako se to
odnosi na štampanje.
clipper.380dr.grba,
══ Zasto funkcija ne bi mogla da se zove Valid?
Dobro, priznajem. Do mene, do mene u ovoj partiji hrkljusa...
Verovatno si bio u (ne)prilici da u 5.55 ujutru zavrsavas neki kod koji u 9.00
treba da instaliras korisniku (mogao si ti to zavrsiti i oko ponoci, al' si
jahao svoj modem putem SEZAM-a (: )...
Pa bleknes onako peskovitih ociju u monitor kad ti ceo sistem unosa crkne
zbog onog semicolon... Morao sam da budem besan na nekog ili nesto, zasto
to ne bi bio Get koncept ? Mada smatram da je upravo ono sto Clipper cini
NAJBOLJIM (foxovci, paznja!) otvorenost sistema za prepravke svih vrsta i
dorade...
BTW, kakva su iskustva kolega kliperasa na anti-majmunskim kontrolama u
programima? Sta mislite, dokle treba trositi snagu u osmisljavanju konstrukcije
programa da ne bi neka nafrakana lujka srusila ceo sistem? (Pre koji dan sam
na jednoj tastaturi nasao fleke od laka za nokte...)
Ne samo u Clipperu, ne samo na PC-ju, imao sam prilike da vidim svakakve ideje
o zastiti datoteka, kvalitetu unosa, (ne)mogucnosti tumbanja,...
Nenade, mozda neka ideja za Clipper savetnik ?....
Pozdrav, dr.grba
clipper.381snemcev,
>> koju bazu uopšte otvarate, izgleda da baza 'ime' dobije po
>> Clipper-ovoj nekoj pameti "sledeći" broj, ali vi taj broj uopšte ne
>> znate, pa ne možete ni da otvorite bazu.
A zar funkcija SELECT("ime") ne vraća broj zone u kojoj je baza "ime"?
clipper.382dejanr,
>> A zar funkcija SELECT("ime") ne vraća broj zone u kojoj je baza "ime"?
Vraća... ali ako pročitaš još jednom poruku 9.363, videćeš da to za
dati problem nije od naročitog značaja - ne opisuje se neki nerešiv
problem, nego naprosto jedna situacija koja nastaje ako neko pokuša
da kombinuje "stari" i "novi" način rada sa alias-ima.
clipper.383nbatocanin,
> Verovatno si bio u (ne)prilici da u 5.55 ujutru zavrsavas
> neki kod koji u 9.00 treba da instaliras korisniku
Jok ti si :)))
Šalu na stranu, i meni se nimalo ne sviđa Clipper-ov poluslobodan ;)
sistem za pisanje naredbi. Ne vidim pravi razlog da naredbe ne budu
potpuno slobodno raspoređene.
> BTW, kakva su iskustva kolega kliperasa na anti-majmunskim
> kontrolama u programima?
Uh, ja sam tu nepopravljivo lenj. Valjda mi se čini da tako uludo
trošim vreme. U principu, nikad se ne trudim da program bude
pametniji od korisnika i samo sprečavam nenamerne greške. Ako baš hoće
da napravi haos, ja tu ništa ne mogu: ionako može da razbije računar
;) Uzgred, kao definitivan dokaz neuračunljivosti korisnika, čuo sam
ovakvu izjavu:
"Ma, jeste da sam taj program platio debelo, ali ne da je zaštićen:
evo, lupim rukom po tastaturi i ništa mu nije!"
> Nenade, mozda neka ideja za Clipper savetnik ?....
Na žalost (?), savetnik do daljnjeg neće izlaziti.
clipper.384ndragan,
/ BTW, kakva su iskustva kolega kliperasa na anti-majmunskim kontrolama
/ u programima? Sta mislite, dokle treba trositi snagu u osmisljavanju
Iskustvo, opšte pa pojedinačno. Forsiram kontrole šifara (nema duplih,
a moraju da postoje); datume kontrolišem da su u opsegu od danas-100,
danas+5, mada i onda samo izbacim pitalicu "datum 21.04.1957 izgleda
čudno: tako treba / ukucaću ponovo" (ono "tako treba" sam ugradio još
oktobra, tek da se zna). Ako ima smisla, ubacim još poneku kontrolu
(datum isplate ne može biti stariji od datuma ugovora i slično).
Veći je zez sa izdavanjem iz magacina. U materijalnom i u robnom za
trgovinu mora da postoji zaliha kad se izdaje roba/materijal; u robnom
za proizvodne firme baš i ne mora. Zašto? Zato što našim socrealističkim
mastodontima treba još deset godina dok ne opasulje svoje magacionere da
_dnevno_ daju papire o zaprimljenoj robi, i možda još pet godina dok se
sete da ubace makinu u magacin. Tako se prijem robe knjiži krajem meseca
(if ever ;), a faktura (i otpremnica) moraju da idu monumentalno, jer to
pravi pare. Dakle, ako vam zaliha uleti u minus, (valjda) znate šta
radite, ali ja vas neću zadržavati.
Kakve još kontrole? Pa, pojedinačne: na nekim mestima primetiš da
osoblje greši na određenim poljima, primetiš koja je vrsta greške pa
ubaciš specifičnu kontrolu; tu kontrolu ne stavljaš nikom drugom, jer je
iskustveno dokazano (?) da višak kontrola nervira operatere pa počinju
da izmišljaju nove, ingeniozne greške :)
clipper.385vsasa,
>>> A zar funkcija SELECT("ime") ne vraca broj zone u kojoj je baza "ime"?
>
> Vraca... ali ako procitas jos jednom poruku 9.363, videces da to za
> dati problem nije od narocitog znacaja - ne opisuje se neki neresiv
> problem, nego naprosto jedna situacija koja nastaje ako neko pokusa
> da kombinuje "stari" i "novi" nacin rada sa alias-ima.
A zasto uopste voditi racuna o broju oblasti koja je aktivna?
Prilikom otvaranja baze ja koristim DbUseArea(.T.,,"Ime",,), a kasnije
poljima iz baze Ime pristupam sa Ime->ime_polja. Time sam SELECT
potpuno izbacio iz upotrebe! Isto tako i alias-e retko upotrebljavam,
jer jednostavno koristim samo ime baze.
CAO, Vsasa.
clipper.386mbole,
> Na žalost (?), savetnik do daljnjeg neće izlaziti.
Uaaaaaa. Vratite nam savetnik :((((((
A što neće ???????
clipper.387dejanr,
Ima li neki način da se za logičke promenljive u raznim @say...get maskama
pojavljuju i kucaju vrednosti D i N (ili recimo J i N) umesto onoga T i F?
Ideja je, naravno, da se to nekako doda u postojeći program, a da se po
mogućnosti u njemu što manje mora menjati.
U bazama itd može slobodno da ostane .t. i .f., samo da se promeni na ekranu
clipper.388dr.grba,
>> Na zalost (?), savetnik do daljnjeg nece izlaziti.
Ma, daj, sta se to dogadja sa casopisom?
Ako sam ikada imao kljucni argumenat da prebolim cenu "Racunara",
onda su to bili savetnici. Jos mi reci da ce da ce da ukinu Clipper...
Dobro, da ne preteram, dovde...
Bez daljeg, napisao si dosad nekoliko PO MOM MISLJENJU (pozdrav sysop-u)
izuzetnih i, za nase prilike, veoma korisnih clanaka. Bilo bi steta ...
Tvoj kalkulator se vrti u par mojih aplikacija, i bas sam jednom ulazio
kod korisnika(ce) kad je doticna pokazivala koleginici iz druge firme :
"A ti nemas ovo..." ((:
Uskoro cu implementirati i editor...
Drzim ti fige da teras dalje. Uostalom, ako mi sta zatreba, imam SEZAM,
zar ne?
Pozdrav, dr ÔpŰa
(((:]= <- left-handed, printer on head
clipper.391ndragan,
/ potpuno izbacio iz upotrebe! Isto tako i alias-e retko upotrebljavam,
U Foksu je stvar sa aliasima izvedena malo dalje, naime alias je opet
ime, ali ne pravo ime .dbf baze (osim po difoltu), već proizvoljno ime.
To otprilike znači da se umesto baze za koju je rađeno (unos, izveštaj
itd) može da se poturi bilo koja druga baza sa dovoljno istom (!)
strukturom ili SQL kursor, i sve će da radi.
Naprimer, imamo program radi.prg u kojem se spominje baza promet.dbf;
možemo ovako:
use dpromet alias promet
do radi
Onaj radi.prg nema pojma kako mu se zove baza (ajde, može da ima ako
treba), on poziva promet.polje1, promet.polje2 itd.
Aliasi tipa jednog slova ili 'Select 22' i dalje postoje, ali mislim da
je to više radi kompatibilnosti.
clipper.392ppekovic,
U konferenciji Novosti, poruka br, 4.933 možete pročitati o
CASE alatu za Clipper, nazvanom dBsee (database software
engineering environment). Paket sadrži standardne case usluge kao
što su definicije rečnika podataka i aplikacija, generisanje
source koda, izradu dokumentacije, pomoć u održavanju i još mnogo
toga. dBsee podržava i izradu aplikacija za rad u mreži.
Ako želite da sebi priuštite ovo zadovoljstvo, prvo vam
savetujem da se oženite(udate ?) za ćerku nekog bogataša, jer je
cena ovog paketa oko $3549 (tri hiljade pet stotina četrdeset
devet dolara).
Paya
clipper.393ppekovic,
>> Ima li neki način da se za logičke promenljive u raznim @say...get maskama
>> pojavljuju i kucaju vrednosti D i N (ili recimo J i N) umesto onoga T i F?
>> Ideja je, naravno, da se to nekako doda u postojeći program, a da se po
>> mogućnosti u njemu što manje mora menjati.
Ako ništa ne smisliš, uvek imaš ono divno, hakersko rešenje,
... patch :)
Paya
clipper.394majkl,
> Ima li neki način da se za logičke promenljive u raznim
> čsay...get maskama pojavljuju i kucaju vrednosti D i N
> (ili recimo J i N) umesto onoga T i F?
Može li da prodje Y kao picture template symbol koji daje "Y" i
"N" (ubedi korisnike da su svi čuli za YES i NO)?
ps. Jeste topla voda, al' ko još čita sve te sitnice?
clipper.395oki.,
>> Ima li neki način da se za logičke promenljive u raznim @say...get
>> maskama pojavljuju i kucaju vrednosti D i N (ili recimo J i N) umesto
>> onoga T i F? Ideja je, naravno, da se to nekako doda u postojeći program,
>> a da se po mogućnosti u njemu što manje mora menjati.
>>
>> U bazama itd može slobodno da ostane .t. i .f., samo da se promeni na
>> ekranu
Možda nisam najkompetntniji (koristim Fox tek mesec dana), al evo rešenja
za FOX-u 2.0 (pretpostavljam da tako nešto ima i u Clipper-u?):
on key label D keyboard "T" && zamena tastera, unos je
on key label N keyboard "F" && moguć sa T,D,N,F.
@ y,x get prom
read
on key && stare vrednosti
Pozdrav, 3OPAH.
clipper.396nbatocanin,
> A što neće ???????
Trenutno se vrši reorganizacija svih savetnika, ne bi li se dobilo
nešto kvalitetnije.
clipper.397nbatocanin,
> "Racunara", onda su to bili savetnici. Jos mi reci da ce
> da ce da ukinu Clipper...
:)) Neće, zašto bi? Ono što interesuje ljude, po definiciji ulazi u
"Računare".
> Tvoj kalkulator se vrti u par mojih aplikacija, i bas sam jednom
> ulazio kod korisnika(ce) kad je doticna pokazivala koleginici iz
> druge firme : "A ti nemas ovo..." ((:
Iskreno mi je drago da ono što radim ljudima koristi. Što se tiče
kalkulatora, imao sam par puta prilike da mi ljudi dokazuju da je
neki kupljeni program jako dobar i onda kao krunski argument - moj
kalkulator :))
> Uostalom, ako mi sta zatreba, imam SEZAM, zar ne?
Naravno, samo napred.
clipper.398nbatocanin,
> Ima li neki način da se za logičke promenljive u raznim
> @say...get maskama pojavljuju i kucaju vrednosti D i N
> (ili recimo J i N) umesto onoga T i F?
Može, ali ne baš toliko elegantno koliko bi trebalo. Evo ovako:
problem nije u samom unosu, jer unos vrednosti obavlja ReadModal
funkcija i nju lako možeš izmeniti. Pravi problem je u inicijalnom
ispisivanju vrednosti na ekran (znači kad zadaš GET x), a to obavlja
funkcija _GET_ čiji tekst nije dat, što je veoma glupo, jer ova
funkcija obavlja krajnje jednostavan posao. Zašto je to tako, ne znam.
Da budem koristan, za manji problem je najbolje da uradiš sledeće: u
GETSYS.PRG imaš funkciju GetReader i u njoj sledeću naredbu:
while ( get:exitState == GE_NOEXIT )
GetApplyKey( get, Inkey(0) )
end
koja bukvalno učitava vrednost. E, sad ovu petlju stavi u ovakvu konstrukciju:
IF get:type == "L"
UcitajDaNe(get)
ELSE
while ( get:exitState == GE_NOEXIT )
GetApplyKey( get, Inkey(0) )
end
END IF
I samo napravi po volji ucitavanje za D-N u proceduri UcitajDaNe. Na
žalost, problem sa inicijalnim ispisom ostaje: na ekranu stoji Y/N
dok ne dođe do učitavanja :(( Jedino rešenje za ovo koje mi pada na
pamet je izmena definicije SAY..GET, što nije neki problem, ali je
"prljav" posao.
clipper.399dejanr,
>> Na žalost, problem sa inicijalnim ispisom ostaje: na ekranu stoji Y/N
>> dok ne dođe do učitavanja :((
Hmmm... znači treba projektovati sva pitanja tako da inicijalni odgovor
bude Ne :)))
Hvala, probaću :)
clipper.400zkrstic,
> U Foksu je stvar sa aliasima izvedena malo dalje, naime alias je
> opet ime, ali ne pravo ime .dbf baze (osim po difoltu), već
> proizvoljno ime.
žekaj, ja ili nisam razumeo (moguće, kažu da sam nerazuman ;) )
ili ste prevideli da apsolutno isto radi i Clipper.
USE baza ALIAS alias
.
.
.
SELECT alias
gde alias mož da bude šta ti na pamet padne.
Zkr
clipper.401zkrstic,
> Može li da prodje Y kao picture template symbol koji daje "Y" i
> "N" (ubedi korisnike da su svi čuli za YES i NO)?
Može!
clipper.402zkrstic,
> neki kupljeni program jako dobar i onda kao krunski argument - moj
> kalkulator :))
Neverovatno ali istinto :) Ja sam pre terao kroz svoje programe
neki calc.obj vezan, koji je lepo radio ali je imao opcija bože me sa-
čuvaj, samo što nije zavijao sarme i čuvao sitnu decu. E onda, pokupih
onaj tvoj pa njega okačih koji je zaista lepo radio, pa sada na kraju
teram sličan koji je bratić nadžvrljao (teorija: ovaj je malo kraći i
brže radi) ;))))) mala dijabola.
Ali ono najlepše: Kome god smo prezentovali program, koji jede
živu decu kako lepo vodi proadaju u svakom obliku, posebno ga impresio-
nira - kalkulator :)))
Zkr :)
PS. Koliko me pamćenje služi, u onom tvom je bio bugčić, da prvi poziv
kalkulatora otera decimale na deset, pa ih ne vrati, ili ih po de-
faultu vrati na dve ?
clipper.404nbatocanin,
> U Foksu je stvar sa aliasima izvedena malo dalje, naime
> alias je opet ime, ali ne pravo ime .dbf baze (osim po
> difoltu), već proizvoljno ime.
Potpuno isto je i u Clipper-u.
Nego, čini mi se da Fox ima neke druge zgodne štosove za rad sa
aliasima?
clipper.405ndragan,
/ ili ste prevideli da apsolutno isto radi i Clipper.
Gle, uvedena je i jedna međusobno kompatibilna novost. Neverovatno.
clipper.406ndragan,
/ on key label D keyboard "T" && zamena tastera, unos je
Da, ali pošto ti ova dva tastera trebaju i pre i kasnije u toj istoj
masci, lepo ove OKL naredbe staviš u When funkciju za to polje, a Pop
key u Valid (u grani koja vraća .t., naravno).
Može, ali ipak nije jasno, jer na ekranu ostaje T - eventualno da ga
sakriješ, a pored da ispišeš DA ili NE. Može se doterati, što da ne.
clipper.407dr.grba,
>> Trenutno se vrsi reorganizacija svih savetnika, ne bi li se dobilo
>> nesto kvalitetnije.
TUP !
...
Pade mi kamen sa srca ((((:
I nemo' vise da me strecas, strefice me srcko (((:
Pozdrav, dr ÔpŰa
clipper.408zkrstic,
> / ili ste prevideli da apsolutno isto radi i Clipper.
>
> Gle, uvedena je i jedna međusobno kompatibilna novost. Neverovatno.
Ma garant su se negde zeznuli :) Izbaciće oni to već u narednoj
verziji, da ne bude zabune ;))))
clipper.409zkrstic,
Dosada sam pored tople vode, rupe u saksiji otkrio mnoge stvari.
Ali ovo je svetski biser ;(
"Stari" Clipper 5.01, Nantucketov, trpeo je bez problema nešto tipa
USE &baza EXCLUSIVE gde je baza = "01rac01". Nakon Upgradea (Computer Asso-
ciates) koji postoji na Sezamu, na ovako nešto popićete sledeću grešku:
-> "DBCMD/1010 Illegal characters in alias (USE command)". ;(((
Rešenje se samo nameće u norton gajderu koji ide uz Upgrade:
-> Note: A legal identifier can contain alphabetic
-> characters, numbers, or the underscore symbol (_);
-> but must begin with an alphabetic character.
!!!!!!!!!!
Koja budalaština ;(((((
Jel' u sledećoj verziji treba očekivati da indexi moraju da počinju
na slovo LJ ? ;(
Zkr
PS. Da predupredim odgovor na pitanje "a koji ti lurac naziv baze počinje
na broj?"
- Jednostavno, program radi u mreži, i prva dva broja označavaju opera-
tera, a zadnja dva broj računa, obzirom da operater može od jednom da
otvori 99 računa.
clipper.410d.petrovic,
Ă> Dosada sam pored tople vode, rupe u saksiji otkrio mnoge stvari.
=====
Kad pre? Znao sam da si stigao do mlake ;)
žemu u stvari služi taj upgrade, upravo si mi dao na znanje da tako
nešto postoji t.j. vredi li utrošiti vreme za DL-ovanje gorepomenutog
:)
clipper.411oki.,
>> Može, ali ipak nije jasno, jer na ekranu ostaje T - eventualno da ga
>> sakriješ, a pored da ispišeš DA ili NE. Može se doterati, što da ne.
Domaći urađen :) :
clear
@ 10,2 say "Unos:"
@ 10,10 get p ;
color ,x/x ; && ili COLOR SCHEME - podesiti po potrebi
default .T. ; && važno je da se ništa ne vidi
when priprema();
valid pisi(p)
read
on key
procedure priprema
on key label D keyboard "T"
on key label N keyboard "F"
return
function pisi
parameter pp
if pp
@ 10,8 say "DA"
else
@ 10,8 say "NE"
endif
return
Pozdrav, 3OPAH.
clipper.412snemcev,
>>>> Na žalost, problem sa inicijalnim ispisom ostaje: na ekranu stoji
>>>> Y/N dok ne dođe do učitavanja :((
>>
>> Hmmm... znači treba projektovati sva pitanja tako da inicijalni
>> odgovor bude Ne :)))
Pa i ne mora (ili mora?). Možda bi rešenje bilo u zadavanju problematičnog
GET-a kao
oGet := GetNew()
...
AADD( GetList, oGet )
Tako GET neće biti ispisan na ekranu sve dok se ne pozove metoda display()
(valjda je ReadModal poziva). Klasični način zadavanja GET-a kao
č x, y SAY "Bla-bla: " GET p PICTURE ... WHEN ... VALID ...
ispiše GET odmah posle zadavanja zbog kompatibilnosti sa S'87.
Možda ovo pomogne.
Izvor: ONOTES.ZIP
clipper.413nbatocanin,
> PS. Koliko me pamćenje služi, u onom tvom je bio bugčić,
> da prvi poziv kalkulatora otera decimale na deset, pa ih
> ne vrati, ili ih po de- faultu vrati na dve ?
Uh, u pravu si, ali toliko nemam vremena da nisam još uvek ispravio
taj bug ;)
clipper.414ppekovic,
Pojavio se novi clipper 5.2. Više o tome pročitajte u
konferenciji novosti, poruka 4.951. Ukratko:
Novi CA-Clipper 5.2 (Computer Assosiates Clipper) donosi:
nove izmenjive database driver-e, uključujući i NTX driver koji
omogućuje uslovno indeksiranje kao i bolje performanse; MDX driver
za dBase IV koji podržava multi-tag (?) i uslovne indekse;
driver-e za Paradox i FoxPro koji omogućuju CA-Clipper-u da čita i
menja podatke u takvim bazama.
CA je izdala i API za izmenjive database driver-e i rad sa
virtuelnom memoriom, uključujući i pristup internim
specifikacijama, koje ranije nisu bile dostupne.
CA tvrdi da je poboljšana i dokumentacija, kao i podrška za
expanded memoriju.
CA je izbacila na tržište i novu verziju CA-Clipper Tools-a
sa kompletnim interface-om za Novell. Nova verzija obuhvata preko
250 novih funkcija uglavnom za podršku višekoriničkim aplikacijama
pod Novell-om. Tu su i funkcije za podršku više server-a i
volume-a (ko se beše trudio da ovo prevede?), kao i alatke za
povećanje sigurnosti podataka i pristupa.
Cene:
CA-Clipper - za ograničeno vreme $149, posle $795.
CA-Clipper Tools, Nantucket tools upgrade $129,
inače $695
Da li je mogućnost izmene database driver-a kraj mukama sa
dbf formatom, ili najava talasa drajvera nezavisnih proizvodjača
uz novi problem kompatibilnosti među njima?
Paya
clipper.415ndragan,
/ Nego, čini mi se da Fox ima neke druge zgodne štosove za rad sa
/ aliasima?
Ne znam na šta misliš, možda na sintaksu baza.polje umesto baza->polje;
ili na SQL kursor, koji je nekakva virtuelna baza (ne postoji, ali radi)
ili... može da ispadne da si mislio na nešto što je uvedeno još u mfox+?
Ima i onu funkciju alias() pa posle možeš da uradiš
_alija=alias()
select nešto_drugo
....radiš...
sele (_alija)
Ovo je dušu dalo za rutine koje treba da skoknu u drugu bazu da nešto
urade, pa da se vrate u prvu - rutina uopšte ne mora da zna koja baza je
bila selektovana na početku.
Gimme a hint, na šta si mislio.
clipper.416dusanp,
=> driver-e za Paradox i FoxPro koji omogućuju CA-Clipper-u
=> da čita i
Doslo im u glavu...
clipper.417nbatocanin,
> Pa i ne mora (ili mora?). Možda bi rešenje bilo u
> zadavanju problematičnog GET-a kao
>
> oGet := GetNew()
Naravno, ali koliko sam shvatio Dejana, njemu treba nešto da ne menja
postojeće programe. Inače, ja koristim sledeću definiciju:
#command @ <row>, <col> GETD <var> ;
OPTIONS <arr> ;
[VALID <valid>] ;
[WHEN <when>] ;
;
=> SetPos( <row>, <col> ) ;
; AAdd( ;
GetList, ;
_GET_( <var>, <(var)>, , <{valid}>, <{when}> ) ;
) ;
; ATail(GetList):cargo := <arr> ;
; ATail(GetList):reader := { |o| xRead(o) }
#command @ <row>, <col> SAY <sayxpr> ;
[<sayClauses,...>] ;
GETD <var> ;
[<getClauses,...>] ;
;
=> @ <row>, <col> SAY <sayxpr> [<sayClauses>] ;
; @ Row(), Col()+1 GETD <var> [<getClauses>]
i tako dobijam mogućnost za unos vrednosti koje uzimaju vrednost iz
nekog skupa. Na primer, ovako:
@ 0,0 SAY "DATUM..." GET m_dat
@ 1,0 SAY "PREGLED." GETD m_preg OPTIONS {"Ekran","Stampac","Datoteka"}
@ 3,0 SAY "DATUM..." GET m_dat
READ
Funkcija xRead učitava ovakvu vrednost.
clipper.418bulaja,
│Cene:
│CA-Clipper - za ograniceno vreme $149, posle $795.
└─── ^^^
Nazalost :( nije bas tako (a taman sam resio da ga kupim :) -
cena od 149 USD vazi samo za upgrade registrovanih korisnika.
> List priced at $795, CA-Clipper 5.2 is available to registered
> CA-Clipper developers for a limited time at $149.
clipper.419toma,
■■>> Ma znao sam ja sta je, problem je sto se ne brisu sve (neke se
■■>> brisu a neke ne).
Ukoliko se program startuje iz jednog, a završava se u drugom
direktorijumu na disku, i uz to sve nije rečeno clipper-u
koji mu je SWAPPATH, mođe da dodje do pomenute situacie.
■■>> ... Najveci problem je sto se javljaju i LOST
■■>> klasteri koje moras da sredjujes sa NDD. Inace ovo se desava jos
■■>> jednom mom prijatelju, ovde u Nisu.
U jednom delu programa je pisalo:
use gl_knj
index on DATUM to gl_knj
reindex
use
u slucaju da .NTX ne postoji, indexiranje se radi dva puta, i ako
je pri tome .DBF malo veći, clipper pravi neku svoju privremenu
datoteku i posle toga se javljaju LOST klasteri. Nije pomoglo ni
postavljanje environment promenljive TEMPPATH ali je zato
pomoglo:
ferase("gl_knj.ntx")
use gl_knj
index on DATUM to gl_knj
use
Probaj pa javi.
clipper.420dejanr,
Imao sam jedan problemčić sa Clipper-om, pa reko' možda još nekoga muči...
a možda i otkrivam toplu vodu :) Naime, ja nekako ne volim da se izlaskom iz
poslednjeg GET-a sa Enter READ završi, imam utisak da se to prečesto dešava
slučajno, i zato volim da READ stavim u petlju, a da se izlazi nekim
funkcijskim tasterom ili sa Esc. U tom slučaju Enter u poslednjem polju
naprosto "baca" u prvo polje i tako u krug.
Problem je nastao kada se dogodilo da, zbog raznih READ ... WHEN uslova,
program dođe u situaciju da ne treba da izvrši ni jedan GET (recimo, slog
je "storniran" i nisu moguće izmene). Po mojoj logici, trebalo bi da tada
ispiše masku i da čeka, da korisnik lupi svoje F10 ili Esc ili ne znam šta.
Zaista program ispiše masku, ali nema izlaska (osim sa Alt C ;) nego sve
ostaje u mrtvoj petlji.
Pitah na BIX-u i evo (efektnog!) rešenja koje nudi moderator konferencije
Clipper:
==========
clipper/tech.questions #2708, from irae, 198 chars, Wed Mar 3 01:23:07 1993
Comment to 2707.
----------
I'd make the do while loop dependent on the when conditions or possiblt
exit on lastkey() = 0
do while .t.
keyboard chr(0)
inkey()
read save
if lastkey() = 0
exit
endif
enddo
clipper.422ndragan,
/ Domaći urađen :) :
Odličan, 5 za tromesečje, sedi :)
clipper.423bulaja,
**** new file ****
R:\IBMPC\CLIPPER\*.*
----------------------
nflib21 arj 171327* Clipper NanForum Toolkit biblioteka ver 2.1
Nisam jos gledao :) sta je promenjeno u odnosu na verziju 2.0.
Nazalost, jos nismo nabavili i source za ovu verziju, tako da
se do daljeg ostati u dir-u kompletna verzija 2.0 (lib, source,
ostalo).
clipper.424mandrejevic,
Radim izvesno vreme sa Clipper 5.01a Update (Computer Associates)
i danas me je iznenadila po prvi put poruka :
MS Run-Time Library - Copyright (:
^^ i ovo je deo poruke !
uz zaglavljenje...
Da li da brisem ovaj Update ??
clipper.425zkrstic,
>>Radim izvesno vreme sa Clipper 5.01a Update (Computer Associates)
>>i danas me je iznenadila po prvi put poruka :
>>MS Run-Time Library - Copyright (:
>> žž i ovo je deo poruke !
>>uz zaglavljenje...
>>Da li da brisem ovaj Update ??
čekaj, morao je još neki broj da ti da ili nešto slično ? U svakom slu-
čaju, pokušaj da se setiš ili da ga nateraš ponovo na isto, da bar znamo šta
piše tačno, a u pitanju je očito nešto interno do samog Clippera, pošto je
on pisan u MSC-u (nisu imali 16-a posla;) )
Ne brini i ne briši ga, zakucavam ga ja svaki bogovetni dan, pa ga još
uvek nisam kazniJo sa nedim del. /s/z ;)
Zkr
clipper.426mjevta,
Voleo bih da ovo prokomentarisu iskusniji Sezamovi
Clipperasi:
Nedavno sam napisao komandu koja je trebalo da predstavlja
jednostavnu implementaciju Check - boxa a la FOX u Clipperu
a izgledala je otprilike ovako:
#command @ <row>, <col> CHECKGET <var> ;
[TEXT <text>] ;
[VALID <valid>] ;
[WHEN <when>] ;
[COLOR <color>] ;
=> AAdd( GetList, ;
GetNew( <row>, <col>, ;
{|| IF( <var> ,"[X] ", "[ ] " ) + #<text> }, , , ;
IIF( #<color> == "", "W/N,N/W", <(color)> ) ) ) ;
; ATail(GetList):reader := { |o| chkRead( o, @<var> ) } ;
; ATail(GetList):preBlock := <{when}> ;
; ATail(GetList):PostBlock := <{valid}>
Medjutim, kompajler mi je uporno prijavljivao gresku
"Incomplete statement or ... " iako je bilo ocigledno da u kodu
nema niceg sintaksno neispravnog. Na kraju se, posle DOSTA
peripetija, ispostavilo da je problem u direktnom
"dodeljivanju" markera pretvaranja u blok (naknadno sam utvrdio
da je isti slucaj i sa ostalim result markerima IZUZEV glupog
- #<...> )
Naime, kada sam, probajuci razne varijante, zadnje dve linije
naredbe zamenio sa:
; ATail(GetList):preBlock := IF(LEN(#<when>) != 0,<{when}>,) ;
; ATail(GetList):PostBlock:= IF(LEN(#<valid>)!= 0,<{valid}>,)
sve je radilo kako treba. Dugo resenje bilo je:
; ATail(GetList):preBlock := TransMark( <{when}> ) ;
; ATail(GetList):PostBlock := TransMark( <{valid}> )
gde je:
FUNC TransMark( block )
RETURN block
Pa, posto u NG - u nisam primetio nikakvo upozorenje
oko dodeljivanja r. markera odn. rezultujuceg teksta koji mu
odgovara a od literature za Clipper imam samo Strejlijevu
"bibliju" za S87 voleo bih da mi neko pojasni da li su za
ovako neobicno ponasanje Clipperovog pretprocesora krivi
gremlini ili sam ja nesto zabrljao u postavci komande.
Pozdrav, Jevta.
clipper.427d.petrovic,
Može li nekako da se izbriše, poništi, MENU TO naredba ?
Ako imam negde set key pa i pritisnem inkriminisani key treba da se
poništi ta menu to naredba. Evo osakaćenog primera, valjda će biti
jasno ...
č 24,30 say "Press Esc to exit..."
do while .t.
do while .t.
setcursor(0)
mm:=2
bek()
č red,21 prompt " In "
č red,29 prompt " Out "
menu to mm && Šta ako ovde pritisne F-10 ???
do case
case mm==0
close databases
return
case mm==1
vrsta_t:=.t.
case mm==2
vrsta_t:=.f.
endcase
setcursor(1)
if vrsta_t
č red,42 clear to red,48
č red,21 get qty_t picture "9999999" valid ravno(qty_t)
č red,38 get dest_t picture "!XX" valid uscrec(6,dest_t)
else
č red,29 get qty_t picture "9999999" valid ravno(qty_t)
č red,38 get dest_t picture "!XX" valid uscrec(6,dest_t)
č red,42 get uc_t picture "!XX" valid uscrec(1,uc_t)
č red,46 get rc_t picture "!XX" valid uscrec(2,rc_t)
endif
č red,54 get wc_t picture "!XX" valid uscrec(4,wc_t)
read
if lastkey()==27
close databases
return
endif
č 24,27 say "Press F-10 to save / Esc to exit..."
setcursor(0)
tt:=inkey(0)
do case
case tt==27
close databases
return
case tt==-9
do magunossn
exit
otherwise
set key -9 to MagunosSn
endcase
enddo
enddo
close databases
return
*******************
proc magunossn
set key -9 to
clear gets
* ovde dodati nešto što će sa menu to da uradi isto što i clear gets
* sa naređanim get-ovima ??? ima li nešto takvo ?
append blank
replace...
replace...
return
clipper.428mandrejevic,
>│ cekaj, morao je jos neki broj da ti da ili nesto slicno ? U
>│ svakom slu- caju, pokusaj da se setis ili da ga nateras ponovo
>│ na isto, da bar znamo sta pise tacno, a u pitanju je ocito
>│ nesto interno do samog Clippera, posto je
Pise tacno kako sam prepisao...
; odnosno,
Prepisao sam tacno kako je pisalo...
; a i obrisao sam ga ...
clipper.429mjevta,
>ĆĆ Medjutim, kompajler mi je uporno prijavljivao gresku
>ĆĆ "Incomplete statement or ... " iako je bilo ocigledno da u
Uh, zatrcao sam se sa pitanjem. U stvari nema tu niceg
spornog. U NG-u lepo pise da ukoliko nema ulaznog teksta result
markeri nece sadrzati nista ( izuzimajuci dumb r.m. koji ce u tom
slucaju biti zamenjen praznim stringom - ""). Tako da ako u
gorepomenutoj naredbi klauzule WHEN i/ili VALID nisu upotrebljene
rezultat njenog pretprocesiranja bice:
Varijabla:= //(nista!=(NIL==sto_sam_ja_ko_zna_zasto_ocekivao))
Nije ni cudo sto se prevodilac bunio.
Pardonirajte na neopravdanom opterecivanju PAD - a.
Jevta.
clipper.430mbulat,
Ako neko moze ,bio bi mu veoma zahvalan, da mi napishe kako bi
otprilike trebalo da izgleda koriscenje funkcije MEMOEDIT i naravno
mogucnost da se podaci osim da se gledaju mogu i da unesu u memo polja
ja sam pokusavao ali nesupevam da ih unesem Ě...
Unapred hvala ..
mb :)
clipper.431ppekovic,
>> menu to mm && Šta ako ovde pritisne F-10 ???
Ništa. Ako hoćeš da F10 ima nekog efekta onda definiši
set key K_F10 to proc_f10
a u proceduri postavi neko fleg kako bi kasnije mogao da
ispitaš da li si izašao sa f10 i udari jedno keyboard(27).
Paya
clipper.432pjankovic,
> otprilike trebalo da izgleda koriscenje funkcije MEMOEDIT
> i naravno
Za pocetak probaj jednostavno:
replace memofield with memoedit(memofield)
Memofield je naziv memo polja u bazi. Unos zavrsavas sa <Ctrl>+<W>.
clipper.433nbatocanin,
> Ne znam na šta misliš, možda na sintaksu baza.polje umesto
> baza->polje; ili na SQL kursor, koji je nekakva virtuelna
> baza (ne postoji, ali radi)
Ako te ne mrzi, kaži po nekoliko reči o svemo nabrojanom.
> ili... može da ispadne da si mislio na nešto što je uvedeno još u mfox+?
Ne preteruj ;)
clipper.434nbatocanin,
Beše neko pitao šta znači poruka "Rules not found in EXE"? E, to se
dobije kada se CLIPPER.EXE obradi sa SCAN /AV.
clipper.435d.petrovic,
Ă> Ako neko moze ,bio bi mu veoma zahvalan, da mi napishe kako bi
Ă> otprilike trebalo da izgleda koriscenje funkcije MEMOEDIT i
Ă> naravno
memoedit(ime_baze,2,2,23,77,.t.)
========= =
prozor .t. <= čitanje i pisanje
.f. <= samo čitanje
clipper.436d.petrovic,
Ă> Ništa. Ako hoćeš da F10 ima nekog efekta onda definiši
Ă>
Ă> set key K_F10 to proc_f10
Khm, sad će me teraš da pogledam šta sam poslao ;). Pa to treba
da radi tek kad prođe jednom kroz petlju i onda se vrti ponovo, tj.
neko vrši ispravku onog što je uneo greškom.
Ă> a u proceduri postavi neko fleg kako bi kasnije mogao da
Ă> ispitaš da li si izašao sa f10 i udari jedno keyboard(27).
E, to mi je trebalo, samo mi nije palo na pamet, mada..., već
ispitujem:
if lastkey==27 && Odustaje od unosa
close databases
return
endif
Hvala za ideju, iskombinovaću nešto takvo samo... kako da znam dali
sam u proceduru koja snima otišao iz te linije gde je MENU TO ili gde
je bio inkey(0) ? Nije mi baš praktično da prenosim broj linije, ne
smem da menjam ništa ispred te linije.
clipper.437dejanr,
"Zanimljiv" problem koji mi večeras uze dva sata vremena :(((
Imam program koji radi u mreži, pri čemu su u principu sve datoteke
otvorene sa USE ... SHARED, po potrebi se posle zaključavaju slogovi
kad se koji menja. Međutim, u jednoj grani programa mora da se obezbedi
da korisnik bude sam na mreži, kako bi se izvršilo reindeksiranje i
neko regenerisanje podataka (operacija "daBogda_nikad_ne_zatrebala").
žinilo mi se najjednostavnijim da to obezbedim ovako:
SELECT(aUsers)
USE users EXCLUSIVE
IF NetErr()
tralala, ne moz to tako
RETURN(.f.)
END IF
indeksiraj šta treba itd
SELECT(aUsers)
USE users SHARED
RETURN(.t.)
USERS je fajl koji inače sve kopije programa neprekidno drže otvoren
jer im stalno treba. Ideja je bila da, ako ima bar jedan korisnik, neće
uspeti USE users EXCLUSIVE i rešena stvar.
Dok je bilo na jednom računaru, lepo je radilo ali kad ga stavih na Novell,
pustim jednog korisnika, pustim drugog, uđem u ovu opciju kad ono TRAS,
kaže Open Error na onoj USE liniji, do IF NetErr() ni ne dođe. MajkuMu.
Probam samo program od opisanih 10 linija, radi lepo. U mom "velikom"
programu, ne radi. Šetao sam to po raznim modulima, i ispadne da radi
samo ako je pri početku, a nigde u radnom delu neće :(
Posle silnog lupanja glave, setim se da sam u program instalirao svoj
error handler, kao da sve izgleda ozbiljnije i da posle greške ispiše
poruku i ostane u programu, a ne da izleti u DOS. Isključim error handler,
kad ono radi :) Tu mi već sine da malo pročešljam uputstvo za Clipper, kad
ono baš negde na strani 6-3 a oni opisuju moj slučaj, kaže error handler
treba da izgleda otprilike ovako:
FUNCTION MyError(e)
IF e:genCode== EG_OPEN .AND. e:canDefault .AND. NetErr()
RETURN(.f.)
END IF
... ostalo tretiranje greške
RETURN NIL
Sreći nigde kraja, stavim ja ovo u program kad ono... ista meta, isto
odstojanje :(((( Pogledam debagerom, kad dođe u MyError a ono jeste
e:genCode == EG_OPEN i jeste čak i e:canDefault ali NetErr je .F.
MajkuMu^2 :( Ništa, 'ajmo da probamo da ga vratimo iz error procedure
ako je greška nastupila na liniji broj XXXX a na toj liniji je rečeno
USE users EXCLUSIVE (ovo bi bilo mnogo ružno rešenje jer bih posle svake
dodate linije morao da menjam i ovu proceduru, ali programirao sam ja
na TI-59 sa apsolutnim adresiranjem pa sam i to preživeo ;)) Đavola,
zaista se vrati u red iza USE ali je i tamo NetErr()=.f. pa se ne može
uočiti greška.
Tu sam već u totalnoj komi počeo da pregledam one primere koji idu uz
Clipper, reko' možda odnekud nešto iskoči. I voila, u nekakvom
direktorijumu .SYS (koji je, naravno, na samom dnu stabla e da bi ga
čovek poslednjeg pregledao ;) nađem nešto što se zove ERRORSYS.PRG
a ono tamo... kako se tretiraju greške ;) Magija je u tome da se na
početak error procedure stavi:
if e:genCode == EG_OPEN .and. e:osCode == 32 .and. e:canDefault
NetErr(.t.)
return (.f.)
end if
Kad već stavljate to, ćušnite i sledeće, tamo takođe stoji pa je
valjda potrebno za sličan fenomen kod append blank:
if e:genCode == EG_APPENDLOCK .and. e:canDefault
NetErr(.t.)
return (.f.) // NOTE
end if
Posle te "sitne" izmene, program radi baš kao što sam želeo. Sreća
što je onaj što je pisao uputstvo negde u Americi, inače bi mu...
da ne kažem šta ;>
clipper.438dr.grba,
>> [WHEN <when>] ;
>> [COLOR <color>] ;
>> => AAdd( GetList, ;
>> GetNew( <row>, <col>, ;
>> {|| IF( <var> ,"[X] ", "[ ] " ) + #<text> }, , , ;
>> IIF( #<color> == "", "W/N,N/W", <(color)> ) ) ) ;
Namerno sam ovako isekao quote.
U knjizi Rick-a Spence-a (topla preporuka!) se puno govori o ovakvim
i slicnim konstrukcijama. Nisam posebno verziran, ali mi se cini da ti
u desnoj strani opisa komande nedostaje promenljiva <when>. Mislim da
postojanje promenljivih komande mora biti tacno upareno na obe strane,
a da redosled nije bitan (mozda se jave bolji poznavaoci oblasti, izvinjavam
se ako gresim). Cinjenica je da opis komande prestaje onim IIF za boju...
Nadam se da ces namirisati pravi trag.
Pozdrav, dr ÔpŰa
clipper.439ppekovic,
>> Hvala za ideju, iskombinovaću nešto takvo samo... kako da znam dali
>> sam u proceduru koja snima otišao iz te linije gde je MENU TO ili gde
>> je bio inkey(0) ? Nije mi baš praktično da prenosim broj linije, ne
>> smem da menjam ništa ispred te linije.
Uvedi neki flag kojem ćeš da postavljaš različite vrednosti
ispred MENU TO i ispred inkey(0).
Paya
clipper.440mbulat,
probacu on-line
mrzi me da pishem reply na one poruke u Ęvezi memoedit aliÝ
hvala u svakom slucaju :)
Problem je u sledecem
Kad ocu da zapishem znaci nesto u taj memo koristim se sa CRTL-W
ali problem je u tome sto bar meni to nepolazi sa rukom bilo da
je oblik Ć-î
memoedita
memoedit(polje,x1,y1,x2,y2)
ili
memoedit(polje,x1,y1,x2,y2,.t.)
Plasim se da sve to ima veze sa ĐWeonim objektima za tbrowse
jerbo mi se i ti unosi nalaze u takvoj jendoj proceduri
jerbo kad je u nekom posebnom programu bez toga pokrenem radi
a ovako nece :((
Nadam se da sam bio bar malko jasÂAšan
mb.
clipper.441petrovics,
>> u slucaju da .NTX ne postoji, indexiranje se radi dva puta, i ako
>> je pri tome .DBF malo veci, clipper pravi neku svoju privremenu
>> datoteku i posle toga se javljaju LOST klasteri. Nije pomoglo ni
>> postavljanje environment promenljive TEMPPATH ali je zato
>> pomoglo:
>>
>> ferase("gl_knj.ntx")
>> use gl_knj
>> index on DATUM to gl_knj
>> use
>>
>> Probaj pa javi.
Mora da je to. Do duse nisam stigao da probam ali mislim da se i
meni problem javlja u istoj situaciji.
Hvala na objasnjenju.
clipper.442d.petrovic,
Ă> Uvedi neki flag kojem ćeš da postavljaš različite vrednosti
Ă> ispred MENU TO i ispred inkey(0).
Dogovoreno! :)
clipper.443bulaja,
Evo jedne biblioteke za malo lepse menije u Clipper-u.
Pravljena je da bude funkcionalni ekvivalent PROMPT...MENU TO sistemu,
ali uz poboljsanje da se moze definisati proizvoljan hot-key unutar
prompta (a ne samo da to moze biti prvo slovo) i da se on lepse
(istaknuto) prikazuje.
Btw ima u NanForLIB slicnih funkcija, ali ove moje su bolje :) (pise u
dokumentaciji i zasto). Ovo je tek prva verzija, treba da dodam jos neke
stvari, ali ko hoce nek uzme i pogleda.
Probajte, besplatno je :), a prilozen je i izvorni kod (source).
bumenu10.arjclipper.444bulaja,
**** new file ****
R:\IBMPC\CLIPPER\*.*
----------------------
num2str zip 3290 Konverzija brojeva u slovni oblik (Clipper 5 & FoxPro)
Num2Str - Numeric To String
U arhivi se nalaze dve funkcije za konverziju brojeva u slovni oblik.
Funkcije su namenjene programskim jezicima Clipper 5 i FoxPro. Za
eventualne komentare se obratite autorima ili u odgovarajucu temu
Sezamove konferencije PC.PROG. Evo nekih informacija o funkcijama:
Datoteka Jezik Autor Sezam
──────────── ───────── ─────────────── ──────────
NTOC.PRG Clipper 5 Nenad Batocanin nbatocanin
SLOVIMA.PRG FoxPro MPA Zrenjanin ndragan
SEZAM, 03/93
clipper.445bulaja,
│num2str zip 3290 Konverzija brojeva u slovni oblik (Clipper 5 & FoxPro)
└───
Zaboravih da kazem da su u arhivi i NTOC i SLOVIMA najnovije verzije
(novije od onih koje su bile okacen ovde) sa ispravljenim bugovima.
clipper.446nbatocanin,
SET KEY K_F10 TO Break()
BEGIN SEQUENCE
...
MENU TO
...
END SEQUENCE
clipper.447nbatocanin,
Uočio sam neke loše strane Blinkera:
Prvo, desilo mi se na jednom 286 računaru da program linkovan
Blinkerom jednostavno zaglavljuje računar. Stvar je sigurno u
linkeru, jer isti program linkovan RTLinkom radi bez komplikacija.
Drugo, inkrementalno linkovanje rezultuje kodom koji nemilosrdno
troši memoriju: znači >>obavezno<< finalnu verziju prevodite sa
INCREMENTAL OFF.
clipper.448dusanp,
=> Probajte, besplatno je :), a prilozen je i izvorni kod
=> (source).
Lepo.
Nego... jel si namerno na 2 mesta napisao "kopjuteri"???
Doradi jos onih par stvari pa salji.
clipper.449dusanp,
=> Drugo, inkrementalno linkovanje rezultuje kodom koji
=> nemilosrdno troši memoriju: znači >>obavezno<< finalnu
=> verziju prevodite sa INCREMENTAL OFF.
Ili sto je jos bolje, finalnu verziju prevodite RTLinkom.
clipper.450zkrstic,
> => Drugo, inkrementalno linkovanje rezultuje kodom koji
> => nemilosrdno troši memoriju: znači >>obavezno<< finalnu
> => verziju prevodite sa INCREMENTAL OFF.
>
> Ili sto je jos bolje, finalnu verziju prevodite RTLinkom.
Ni slučajno! Pa glavna dobit kod Blinkera je u Swapovanjima i upra-
vljanju OVL-ova.
Nego, daj *.lnk fajl tog programa koji ti pravi haos, tačnije, re-
ci mi šta koristiš od "tuđih" .OBJ i .LIB ? Ima nekih libova i čuda koji su
u dokumentaciji obeleženi kao ne-overlejabilni (jebote*_koja_reč) ;)
Zkr
clipper.451ndragan,
/ Ako te ne mrzi, kaži po nekoliko reči o svemo nabrojanom.
Hm. Duga priča. Svodi se na to da mi se sad bilo kakav izveštaj (tj. prg
koji ga pravi) skrati na dva ekrana:
pootvaraj - desetak redi
pitaj korisnika odakle dokle, kojim redosledom, u kom formatu hoće -
još desetak redi
Select to_i_to (polja, izrazi tipa sum(), iif(), avg(), max(), cnt()
itd) from... baza1, baza2... where uslov1 and uslov2 itd...
... order by polje1, polje2...
(ili) ... group by baza1.polje1, baza1.polje2... (grupisanje za sum() itd)
into cursor / table (dbf) / šta_ono_beše
(Ako postoje strukturni indeksi za (neka) polja koja se spominju u Where
opciji, radi stravično brzo. Imao sam 15MHz 286 server u RPTI mreži (486
je bio u kvaru ;( ), i izvadio je bruto bilans iz 80000 stavki za minut
ipo, a za to vreme je sa sprata niže knjižilo još dvoje.)
Repo form taj_i_taj
Pozatvaraj, pozdravi se i javi da si gotov.
Programi koji su ranije bili duuugački (čak do 5-8K) sad su se sveli
na 1-3K, a i to zato što više volim jedan program koji radi tri srodna
izveštaja (uz par parametara radi ovako ili onako), nego tri programa sa
po jednim - kad treba nešto čačkati, čačka se samo jednom.
Evo jednog primera za Select:
select Prom.VD, Prom.KUPAC, Prom.KONTO,;
Prom.DATDOK, Prom.DUG, Prom.veza,;
sum(IZNOS*IIF(DUG,1,0)) as izndug, sum(IIF(DUG,0,IZNOS)) as iznpot;
FROM Prom;
WHERE Prom.KONTO = _konto;
AND Prom.datdok <= _dn2 ;
and Prom.kupac betw _k1 and _k2 ;
GROUP BY Prom.KUPAC, Prom.KONTO, Prom.datdok ;
into curs pku
Ovo je priprema za izveštaj o prometu kupaca i/ili dobavljača od
šifre do šifre (_k1 do _k2), na dan _dn2 (posle se razdvaja na pre _dn1
i od _dn1 do _dn2 i to u samom riportu - ima lokalne promenljive), za
zadati konto (može i prazan - trimuje se, pa se dobija više konta).
Ako je neko raspoložen da pogleda na šta je isti program ličio
ranije, pa da se zajedno zgražavamo. Radilo je i ono, ali ovo RADI.
/> ili... može da ispadne da si mislio na nešto što je uvedeno još u
/> mfox+?
/ Ne preteruj ;)
Svaki Ciga svoga konja... a ove priče o kobolu i foksu (vidi neku od
prethodnih tema) me podsećaju na mog drugara iz firme, kad je prešao sa
kobola na foks. Kaže 'osećam se kao klinac u poslastičarnici, lepo ne
znam šta prvo da probam. I onda ne znam sintaksu, znam neke moguće
varijante, probam intuitivno, kako bi bilo kad bih ja pisao sebi
interpreter, ... kad ono radi baš to što sam ja smislio'.
clipper.452dusanp,
=> Ni slučajno! Pa glavna dobit kod Blinkera je u
=> Swapovanjima i upravljanju OVL-ova.
Da li si 100% siguran da je tako? Koliko sam ja
nacuo, blinker dosta trapavo pravi overleje, a RTL
to radi kako treba.
Mislio sam da je glavna prednost blinkera brzina,
a kad ono...
clipper.453zokidr,
Juce sam podigao Nanforum 2.1 i malo ga testirao. Ispostavilo se
da neke funkcije ne rade! FT_XBOX(), na primer, nisam mogao da
nateram da napravi ram i sl. Dok je u prethodnoj verziji sve bilo o.k.
Da li jos neko ima slicna iskustva?
Zoran
clipper.454bulaja,
│Nego... jel si namerno na 2 mesta napisao "kopjuteri"???
└───
Jok :), imam obicaj da pri veoma brzom kucanju (a uputstva kucam vrlo
brzo jer me mrzi da ih mnogo smisljam i trosim vreme :) ispustam ili
permutujem slova :). Doradicu BuMenu ovih dana (nije neki vremenski
zahtevan posao), poslacu kad zavrsim.
clipper.455nbatocanin,
> Plasim se da sve to ima veze sa ĐWeonim objektima za
> tbrowse
Nije 100%. Mora da je stvar u nečem drugom.
clipper.456nbatocanin,
> Nego, daj *.lnk fajl tog programa koji ti pravi haos,
> tačnije, re- ci mi šta koristiš od "tuđih" .OBJ i .LIB ?
> Ima nekih libova i čuda koji su u dokumentaciji obeleženi
> kao ne-overlejabilni (jebote*_koja_reč) ;)
Nema ništa tuđe sve sam go Clipper ;) i moj ASM koji radi u svim
programima. Zašto bi isti program linkovan RTLinkom radio besprekorno
već 2 godine?
clipper.457zkrstic,
> => Ni slučajno! Pa glavna dobit kod Blinkera je u
> => Swapovanjima i upravljanju OVL-ova.
>
> Da li si 100% siguran da je tako? Koliko sam ja
> nacuo, blinker dosta trapavo pravi overleje, a RTL
> to radi kako treba.
Veruj mi na reč :) žak je najveći deo prateće knjige posvećen OVLovima
i radu sa njima. Ja sam prezadovoljan kako mi to sve radi. Uzgred, ni one opci-
je tima "DEMO CALLS" ili "DEMO DATE" ili čak "DEMO MINUTES" nisu na bacanje.
Zkr
clipper.458zkrstic,
> Nema ništa tuđe sve sam go Clipper ;) i moj ASM koji radi u svim
> programima. Zašto bi isti program linkovan RTLinkom radio
> besprekorno već 2 godine?
Kratko i jasno: Inat & maler & baksuzluk (čitaj:Marfi) :)
Ne, zaista neznam u čemu je onda štos? Na žalost, nisam imao pri-
like da probam na 286-ici. Mogu ti reći da si me sada malko poplašio.
Zkr
clipper.459bulaja,
**** new file ****
R:\IBMPC\CLIPPER\*.*
----------------------
pkv4 zip 14841 Clipper source za pregled i raspakivanje ZIP 2.0 arhiva
This utility is for:
~~~~~~~~~~~~~~~~~~~~
1. Searching a ".ZIP" file to see whats inside of it.
2. Viewing files within a PKzip file
3. Extracting files from a PKzip file
The utility has been only tested with PKZIP version 2.nn and should
work on prior version.
clipper.460dejanr,
>> The utility has been only tested with PKZIP version 2.nn and should
>> work on prior version
Ala to brzo ide... još da nabavimo PKZIP za Clipper i rešen problem
backup-a.
Ja sam sad za jedan program eksperimentalno napravio BACKUP kao
SwpRunCmd("PKZIP -Pr&f A:BACKUP "+AllTrim(cdir)+"\*.DBF", 300, "", "")
i za sada lepo radi, jedino moram da pozatvaram sve fajlove u cdir-u jer
ih ZIP izgleda otvara ekskluzivno (nemam ideju šta mu to treba) pa pod
Novellom puca ako neku i Clipper drži.
clipper.461dejanr,
==========
clipper/tech.questions #2709, from akarna, 371 chars, Sat Mar 13 11:31:48 1993
----------
I'm thinking about picking up a copy of Clipper 5.2, esp. with the good
"competetive upgrade" price. I was just wondering, however:
I know that I can call a C fcn from within Clipper, but can I go in the
other direction? For example, if I write a Clipper fcn, can I call it
from within a C fcn?
Also, does the C linking capability support Borland's compilers?
Thanks!
==========
clipper/tech.questions #2710, from irae, 165 chars, Sat Mar 13 23:52:23 1993
Comment to 2709.
----------
C from Clipper is easy, Clipper from C is possible. The Borland
compilers will work within some limits, one of which is no floating
point stuff can be used.
==========
clipper/tech.questions #2711, from scousins, 622 chars, Wed Mar 17 17:49:20
1993
Comment(s).
----------
TITLE: clipper52 problms
I just got the 5.2 upgrade and am having problems with some functions (like
indexord() and dbskip() when using an alias in fromt of it.
for instance filename->(indexord())
alos when macro evaluating in thi s same way:
nTenp := &cFilename->(indexord())
Do you have any clues?
Also, in general is there a way to get out of using macros in this way, using
code blocks for instance? We use a datadictionary to allow us to make new
databases within the program so this is useful but slow (and now with 5.2 it
is giving us problems).
Any help would be greatly appreaciated.
==========
clipper/tech.questions #2712, from irae, 232 chars, Wed Mar 17 23:55:29 1993
Comment to 2711.
----------
Since you don't tell us what the problems I can't help. I will point
out that you don't need the macro in one of those spots.
nTemp := (cFilename)->(indexord())
ought to work just as well if I remember correctly.
==========
clipper/tech.questions #2713, from scousins, 658 chars, Fri Mar 19 18:13:52
1993
Comment(s).
----------
TITLE: Params and locals
Thanks for answering my last question , the parenthises worked.
Now I am haveing a problem with parameters. When I define the params fo a
function as in: FUNCTION MYFUNC(var1, var2) instead of using a PARAMETERS
call, var1, and var2 should be LOCAL variables. If I then declare LOCAL var3,
sometimes var3 will have the value that var1 should have, and var1 will be NIL
Does this make any sense? If I use the PARAMETERS clall, (making var1 and var2
private) this does not happen. I don't recall this happening with 5.01a. Do
you think it is a 5.2 bug or am I doing something wrong?
Thanks for your help.
==========
clipper/tech.questions #2714, from irae, 80 chars, Sat Mar 20 02:30:51 1993
Comment to 2713.
----------
I'm clueless. Can you put up a short example demonstrating the problem?
clipper.462dr.grba,
Prvi put srecem problem potrebe ispitivanja postojanja poddirektorijuma.
Mislio sam da se moze resiti preko file handle funkcija, ali kraci eksperiment
je urodio neuspehom. Dakle, treba mi funkcija koja ispituje postojanje
direktorijuma ispod tekuceg, pa ako ga nema - da ga kreira.
Da sam verziran u asembleru, (kao sto nisam ): ) valjda bih umeo da resim...
Mozete li mi pomoci?
Pozdrav, dr ÔpŰa
clipper.463mandrejevic,
Hocu da ugradim sat u jednu aplikaciju, pa mi trebe neka dobra
dusa da mi izkompajlira prilozeni .asm kod, koga sam iskopao kod
Tangram BBS-a. Nebi bilo na odmet da se izvuku ofseti za red,
kolonu i boju sata.
sat_asm.arjclipper.464d.petrovic,
Ă> Prvi put srecem problem potrebe ispitivanja postojanja
Ă> poddirektorijuma.
Pogledaj funkciju ft_tree() iz nanfor biblioteke. Vraća u niz SVE
direktorijume i subdirektorijume.
clipper.465bulaja,
**** new file ****
R:\IBMPC\CLIPPER\*.*
----------------------
objectcl arj 175383 Objektno orijentisana biblioteka za Clipper 5.01 (#1/4)
objectcl a01 175175 Objektno orijentisana biblioteka za Clipper 5.01 (#2/4)
objectcl a02 175321 Objektno orijentisana biblioteka za Clipper 5.01 (#3/4)
objectcl a03 173080 Objektno orijentisana biblioteka za Clipper 5.01 (#4/4)
OBJECT.LIB
high level object oriented library for Clipper v5.01
Basic features:
~~~~~~~~~~~~~~~
- object oriented (classes,heredity,...)
- user task swapping
- "Windows - like" user interface
- multithreading is enabled
- event driven programming support through the philosophy of the library
- data driven programming capability and design
- generated code is true network capable
- user defined reports
- user defined filters
- user defined indexes
- unlimited paswords, user privileges individual to every menu item,
every database field
- automatic generated help system with context help
- user defined help system
- all graphical cards text mode support
(CGA,EGA,VGA,HGC,laptops,monochromVGA,...)
- clipper language enhancements
- dramatical shortening of a aplication developement time, aplication
length in 200 to 2000 (for very large apps.) source code lines
- basic functions of a program can be presented to the user in the very
first time consulting his problem
- simple program maintenance
- documentation in a form of "norton guide" in a file OBJECT.NG
The library is 420kB of source code with 330kB of documentation,
consists of 450 functions, methods or procedures and many new commands.
clipper.466dr.grba,
Hvala ti na odgovoru. Pomogao je posredno.
Naime, dok sam (najzad pazljivo!) prelistao NANFOR.NG, trazeci FT_TREE(),
ugledah na istom ekranu i FT_EXIST(), koji radi upravo ono sto trazim.
Marfi : Ako ne uspe drugacije, procitaj uputstvo... (:
Pozdrav, dr ÔpŰa
clipper.467dr.grba,
ASM programom CLOCK sam uspeo da resim sat na interfejsu, koji vrlo
uspesno resava sva pitanja koja si postavio.
PAZNJA : program je malo agresivan, jer zahteva da otkacis interapt
pre napustanja glavnog programa. U protivnom - sistem se zakucava...
Pozdrav, dr ÔpŰa
P.S. E, jos da uspem da zakacim fajl uz poruku, nemam neko iskustvo...
clock.arjclipper.468dr.grba,
Meni za vezbu attach, a svima koje interesuje, kacim profiler za ugradnju u
programe koje prepustate na milost i nemilost korisnicima. Shareware koji
sam davno skinuo sa RHINOCEROS BBS-a...
HINT : Ako vec budete ugradjivali izlaz u neku datoteku PROFIL.DAT ili slicno,
setite se, pa ispitujte duzinu datoteke. Ako prelazi neku unapred odredjenu
velicinu, rename u PROFIL.OLD, pa kreirajte novu. Ovo je samo prenosenje
iskustva programera koga je Marfi dosada prebio na mrtvo ime ):
Nije mi bilo svejedno kad sam obisao prvu aplikaciju kod korisnika koji
je imao profiler - PROFIL.DAT 2543098 .... ili tu negde, debelo preko 2 MB
): (((:
Press <CTRL>-<ALT>-<DEL> to continue ...
profiler.arjclipper.469mandrejevic,
>│ ASM programom CLOCK sam uspeo da resim sat na interfejsu, koji
>│ vrlo uspesno resava sva pitanja koja si postavio.
Resio sve probleme. Mnogo ti hvala !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
clipper.470dr.grba,
Molim, i drugi put.
Pozdrav, dr ÔpŰa
clipper.471ndragan,
/ direktorijuma ispod tekuceg, pa ako ga nema - da ga kreira.
Da znaš. Snalazio sam se tako što sam pokušavao da napravim .tmp fajl u
njemu, pa ako ne ide, to je zato što nema ni direktorija.
clipper.472enter,
Imam´ko problema sa APPEND FROM komandom. Program je koristi za spajanje ┼vise
datoteka ist╗┼čvUeí$6Ţ>Ń strukture u jednu zajednicku. ║BeÚĆz ikakvog pravila
nekad ih spoji nekad ne. Postoji mogucnost da clipper kada pravi
swţbapQ'Ż╔╦1ďžmp╣╔I7Ä.H"š#fajloćŇ>Ç>/m$ĽDNďÝíĆX╗XĐůC ôčŠ4úGÚ ¤ve izgubi
informacije o strukturi datoteka i ne prebacuje sva polja ???Đ
clipper.473nbatocanin,
> PAZNJA : program je malo agresivan, jer zahteva da otkacis
> interapt pre napustanja glavnog programa. U protivnom -
> sistem se zakucava...
Nisam baš siguran da je ovo pravo rešenje - sam si rekao zašto. Ja već
dugo koristim čist Clipper sistem koji sam opisao u jednom broju
"Računara": jednostavno se napravi nova procedura za skaniranje
tastature i eto sata, gašenja ekrana posle N sekundi i sl. Sve u
Clipper-u i potpuno bezbedno!
clipper.474dejanr,
Poruka je dosta uništena đubretom, pa nisam najbolje razumeo pitanje.
Za početak, da nije datoteka iz koje radiš APPEND FROM otvorena?
Obavezno je zatvori sa CLOSE
clipper.475snemcev,
>> Ovo je dušu dalo za rutine koje treba da skoknu u drugu bazu da nešto
>> urade, pa da se vrate u prvu - rutina uopšte ne mora da zna koja baza
>> je bila selektovana na početku.
A šta bi sa onim drugi_alias->(radi())?
clipper.476mbulat,
Zanima me al bilo ovde reci o indexiranju baze kada su u upotrebi i nasa
slova tacnije YASCII set i zamena za komande isalpha() valjda │:) i slicne cake
kada su u pitanju i nasa slova i + da li su slati ovde neke datoteke
sa konkretnim primerima
online
mb
clipper.477dejanr,
Danas sam imao problema sa Blinker-om, otprilike problema onog tipa
koje pominje nbatocanin. Imam neko čudo od programa koje nisam ja
pisao, i koje radi pod Clipper S'87. Imalo je nekih .OBJ fajlova
kojih nisam imao source, a pošto danas i to pitanje reših (da ne
pričam kako ;) reko' da probam da to sve prebacim na 5.x. Napravim
.LNK, make itd, prevedem, malo problema ovde-onde, i najzad sredim
da radi. Lepo sve, ali čim uđe u dbedit pukne, ponekad QEMM javi
da je izvršena nepostojeća instrukcija pa se zaglupi, a ponekad se
zaglupi i bez pomoći QEMM-a.
Kada se linkuje sa BLINKER INCREMENTAL OFF, sve u redu. Probao sam
da smanjujem ono INCREMENTAL PAD sa 128 na 60, 40, 10, i pojavljuju
se izvesne razlike - dbedit ispiše deo ekrana (što manje broj stavim
u INCREMENTAL PAD, to više ispiše) ali nikako ne može da stigne do
dna ekrana, i uvek se zaglupi :(
Ne znam može li tu išta da se pokuša osim da se uvek linkuje sa
incremental off?
clipper.478nbatocanin,
Ja mislim da sam poslao sve što treba za to. Ako nisam, kažite da
šaljem :)
clipper.479nbatocanin,
> Ne znam može li tu išta da se pokuša osim da se uvek
> linkuje sa incremental off?
Problem je u korišćenju memorije: treba probati da mu se isključi EMS
i XMS memorija. Imaju direktive za to.
clipper.480dejanr,
>> Problem je u korišćenju memorije: treba probati da mu se isključi EMS
>> i XMS memorija. Imaju direktive za to.
Kome, BLINKER-u ili prevedenom programu?
clipper.481ndragan,
/ Hocu da ugradim sat u jednu aplikaciju, pa mi trebe neka dobra
Za foksovce koji to još nisu probali:
SET CLOCK ON
SET HOURS TO 24
SET CLOCK TO 24,69 (ili neke druge koordinate)
clipper.482ndragan,
/ Za početak, da nije datoteka iz koje radiš APPEND FROM otvorena?
/ Obavezno je zatvori sa CLOSE
U FoksPro 2.0 ovo više nije obavezno.
clipper.483ndragan,
/ A šta bi sa onim drugi_alias->(radi())?
Nije mi jasno šta u stvari pitaš. Konstrukcija kakvu navodiš nije baš
ona na koju sam navikao; štos je da FP2 obožava imenske izraze (name
expression) tako da možeš uvek da strpaš naziv bilo čega (polja, baze,
aliasa, prozora, rutine, proceduralnog fajla) u promenljivu, i onda ga
navedeš u zagradi. Recimo, za indeks za jednokratnu upotrebu koristim
obično ovaj postupak:
tmp=sys(3)+'.idx' && ovo .idx je bitno samo za kraj
index on &dex to (tmp) for &uslov
* indeksni pojam i filter nemaju imena, ide čista makro zamena; da je
* indeksni pojam jedno polje, mogao bih da stavim
* index on (dex) to (tmp) for &uslov
.....
* pozatvaram i brišem indeks
if file(tmp)
erase (tmp)
endif
Na sličan način mogu da negde iskonstruišem ovako nešto
polje='baza.polje1'
....
č red,kolona get (polje)
Za konstrukciju tipa baza.(izraz) nisam siguran da će da radi, treba
probati.
clipper.484mbulat,
č> Ja mislim da sam poslao sve što treba za to. Ako nisam,
č> kažite da šaljem :)
Ma dobro to je ok :) Nego posto nepratim bas redovno ovu temu
interesuje me gde si to slao i koje su to otprilike poruke ili datoteke :)
clipper.485dejanr,
>> Zanima me al bilo ovde reci o indexiranju baze kada su u upotrebi i nasa
>> slova tacnije YASCII set i zamena za komande isalpha() valjda :) i
>> slicne cake kada su u pitanju i nasa slova
Pogledaj "Računare 74", strana 59 - tekst se zove Clipper sa kvačicama i
rešava (bar meni ;) sve probleme tog tipa. Autor je NBatocanin.
clipper.486dejanr,
>> Hocu da ugradim sat u jednu aplikaciju, pa mi trebe neka dobra
Ubedljivo najlakši način (nisam znao za njega, ali ga juče nađoh u nekom
programu koji prepravljam) je linkovati FUNCKY.LIB (postoji i FUNCKY87
i FUNCKY 50) i onda samo koristiti CLOCK24(y_koordinata, x_koordinata).
Jedini problem je što ga ispisuje crno-belo (možda ima i neki način da
se setuju boje?)
Uzgred, taj FUNCKY.LIB ima lepih stvari, što više na njih nailazim u tom
programu to mi se više sviđaju. Šteta jedino što uz taj source i sam
FUNCKY.LIB nisam "nasledio" i dokumentaciju, a navodno je kupljena :((
FoxPro to ima "u samom sebi", samo kažeš set clock to y,x (sorry ako
sam pogrešio sintaksu, ali u svakom slučaju nešto jako slično tome)
clipper.487draganf,
> Zanima me al bilo ovde reci o indexiranju baze kada su u
> upotrebi i nasa slova tacnije YASCII set i zamena za
> komande isalpha() valjda │:) i slicne cake kada su u
> pitanju i nasa slova i + da li su slati ovde neke datoteke
> sa konkretnim primerima
Bilo je toga, a ako ne nađeš , javi se pa ću nešto od toga da ti
spakujem. Samo treba da znaš da funkcije koje to rade su dosta spore
ako su rađene u clipperu.
Dragan
clipper.488rboskovic,
Da li je neko imao ovakav problem: na tri mesta imam instaliranu mrezicu
NovellLite 1.1. Svi programi uglavnom lepo rade, osim programa pisanih u
Clipperu i to prilikom stampanja. Unos podataka tece normalno, a kada se predje
na stampu obavezno dolazi do brljanja podataka u datoteci koja se stampa. Preko
slogova se upisuje neki budibogsnama kakav sadrzaj. Pri tome sam radio probe:
kada je stampac ukljucen pojava je slucajna, ali kada je iskljucen (a print job
treba da ode u buffer) onda je to pravilo. Nije mi jasno da stampa iz Winworda,
Corela i slicnih grafickih programa ide normalno, da isto tako ide normalno i
DOS, a da pukne na programima za knjigovodstvo ili bibliotecku evidenciju.
Svaka pomoc koja bi mi omogucila da ovo resim je dobrodosla.
Pozdrav, Rade
clipper.489zkrstic,
> Svaka pomoc koja bi mi omogucila da ovo resim je dobrodosla.
Novell ne preporučUje upotrebu naredbi PRINT (DOS) ili nekih sličnih
za ovo: (u to spada i SET DEVICE TO PRINTER / č SAY ... )
Rešenje:
- sva štampa treba prvo da ide u fajl
- u prg (Clipper) se samo štampanje izvoditi sa
"NET PRINT <ime_fajla> <ime_mrežnog_printera>"
To mora da radi :)
Zkr
clipper.490bulaja,
│Pogledaj "Racunare 74", strana 59 - tekst se zove Clipper sa kvacicama
│i resava (bar meni ;) sve probleme tog tipa. Autor je NBatocanin.
└───
Pogledah i nema toga u RSOFT dir-u. Nenade, moze li upload? :)
clipper.491dusanp,
Posto snap gresi kada se radi sa vise modula, a i nije
mi bila potrebna ona gomila informacija, napisao sam svoju
verziju doc programa, koja samo lepo odvoji funkcije i
procedure - vecini korisnika je i to dovoljno.
Isprobajte programce koje ide uz poruku - extra sto dajem
i sors pa kome se ne svidja moze da se igra dalje.
doc.arjclipper.492rboskovic,
>>NWLITE...
Hvala na proptnoj informaciji. Probacu danas-sutra da to napravim, pa ako
prodje imas pice. (piche). More i jos ponesto, jer ce to da me spase
reinstalacije nekih 550 Mb podataka i programa!
Pozdrav, Rade
clipper.493mpeti,
E narode !!!!!
Evo još jednog BUG-a u Clipperu 5.01.
Radi se o sledećem:
Imam .FRM datoteku u kojoj je opcija PAGE EJECT AFTER GROUP postavljena
na yes. U starom (Summer '87) Clipperu i Dbase III+ ovo jako lepo radi.
Odštampa subtotal za grupu, predje na novu stranu, odštampa zaglavlje
strane, i tabele, pa štampa sledeću grupu.
ALI - i tu počinju moji problemi - novi Clipper radi sve samo što ovaj
flag ignoriše pa mi štampa ceo izveštaj tako, da ne počinje novu grupu
na novoj strani nego jednostavno nastavlja na tekućoj.
Da li je neko već primetio ovo, ili još bolje da pitam, da li je neko
već ISPRAVIO ovo. Pretpostavljam da je greška u FRMRUN.PRG, i da bi on
trebao malo da se pročačka, ali još nisam stigao da ga pogledam. Pa
narode ako neko ima neku ideju, javite se.
clipper.494zkrstic,
>>Imam .FRM datoteku u kojoj je opcija PAGE EJECT AFTER GROUP postavljena
>>na yes. U starom (Summer '87) Clipperu i Dbase III+ ovo jako lepo radi.
>>Pa narode ako neko ima neku ideju, javite se.
Ideja & savet:
Batali bre FRM fajlove, koji će ti to andrak' u životu. To je pra-
vljeno za tupe Amere koji ne umeju sami da naprave izveštaj za štampu. Pra-
vi lepo svoju rutinicu koja će ti raditi štampu i nema greške.
Da su oni u Nantucketu normalni, davno bi to izbacili kao što su NDX
izbacili, premda, videh sinoć da ga ima na nekom stranjskom BBS-u.
Zkr
clipper.495nbatocanin,
YUpper, YLower, YtoABC i YtoAZB za indeksiranje po azbuci i abecedi.
yucl.zipclipper.496nbatocanin,
>>> Problem je u korišćenju memorije: treba probati da mu se
>>> isključi EMS i XMS memorija. Imaju direktive za to.
>
> Kome, BLINKER-u ili prevedenom programu?
Prevedenom programu (BLINKER CACHE). Mislim da je tu problem, ali
nije sigurno. U svakom slučaju, mislim da stvar nije za uzbunu pošto
se pri korišćenju EMS-a redovno pojavljuje problem kompatibilnosti.
Na primer, ni WP ne radi OK na svim pločama.
clipper.497d.petrovic,
Odgovor na 10.96 valeksa
------------------------
Ă># Pitanje: Kako bez:
Ă># if file("pkzip.exe")
...
Ă> evo ti jedan moj batch file, mada je za DR.DOS 6.
Sada radim:
If .not. file("pkzip.exe") .and. .not. file("ĐutilĐpkzip.exe")
DevOut("nece moci, blabla")
else
*pozovem ga odande gde se nalazi sa parametrima...
endif
Mene interesuje može li da se jednostavno pozove iz clipper programa
pa, ako je završio posao sve je u redu, ako nije bio na stazi
(svejedno gde se nalazio, šta me pa to briga ko će gde da drži
pomoćne programe i šta će mu biti na stazi) da znam da nije završio
posao i da ispišem na ekranu šta_mi_se_ćefne.
Za proveru flopija imaš u nanfor.lib funkciju ft_floptst (valjda se
tako zove) pomoću koje možeš da napraviš lepe svoje funkcije. Obrati
pažnju, povezi računa, za tu funkciju postoji ispravka, funkcija koja
se nalazi u biblioteci se uvek obraća flopiju "A", kad je zameniš
može da ispituje i "B".
clipper.498ndragan,
/ Batali bre FRM fajlove, koji će ti to andrak' u životu.
FRM su ogavno loši izveštaji. Tek je FRX ono pravo.
clipper.499tarva,
Í─────────────────
║> SwpRunCmd("PKZIP -Pr&f A:BACKUP "+AllTrim(cdir)+"Đ*.DBF", 300, "",
║> "")
║>
║> i za sada lepo radi, jedino moram da pozatvaram sve fajlove u
║> cdir-u jer ih ZIP izgleda otvara ekskluzivno (nemam ideju šta mu
║> to treba) pa pod Novellom puca ako neku i Clipper drži.
Ë─────────────────────────────────────
Probao sam ovo sa SwpRunCmd(...etc...) i ne radi. Mogući uzrok.
1. Nabavljen na probu samo BLINKER.EXE
2. Možda treba setovati neku opciju dodatno?
U vezi s tim tri pitanja:
1. Gde sa može kupiti orginal "BLINKER".
2. Da li treba dodati još neki parametar
3. Ili nešto treće?
Pozdrav, Tibor.
clipper.500gari,
Odgovor na 5.223 i 5.226 iz conf. PC.PROG
Problem je u tome sto mi ColorRect oboji samo deo linije
na kome su ispisana polja, a ostanu crne rupe izmedju dva
polja.
Sto ne probas sa sledecim MARK-om:
SetColor (Invert)
@ Row(), Col() SAY Polje1 + " " + Polje1 + ...
ili nesto slicno.
Evo, ja sam relativno nov na Sezamu, pa dok nisam procitao sve
diskusije
sada sam tek stigao da malo prilagodim svoju funckiju T_Edit. :)
Inace ova funkcija ima tridesetak parametara, ovo je kraci izvod, ;)
pa
ako ima zainteresovanih, ja cu je poslati celu (oko 1200 linija).
...
tbMark(TB,.T.,Polja) && Polja == Niz sa poljima iz datoteka ili
f-cijama
nKey := INKEY(0)
tbMark(TB,.F.,Polja)
...
FUNCTION tbMark( TB , Osvetli , KojaPolja )
LOCAL broj_kolona:=0, brojac:=0, efektivna_sirina:=0, sadrzaj:=""
LOCAL uk_prazno:=0, levo_prazno:=0, temp2:={}
PRIVATE temp, bojica:=setColor()
if Osvetli
set color to i
broj_kolona := TB:rightVisible - TB:leftVisible + 1
efektivna_sirina := broj_kolona - 1 && Broj separatora
for brojac := 1 to TB:freeze
efektivna_sirina += TB:ColWidth(brojac)
temp := KojaPolja[brojac]
aadd(temp2,{len(sadrzaj),&temp})
sadrzaj += space( TB:ColWidth(brojac) ) + TB:colSep
next
for brojac := TB:leftVisible to TB:rightVisible
efektivna_sirina += TB:ColWidth(brojac)
temp := KojaPolja[brojac]
aadd(temp2,{len(sadrzaj),&temp})
sadrzaj += space( TB:ColWidth(brojac) ) + TB:colSep
next
sadrzaj := left( sadrzaj , len(sadrzaj) - 1 )
uk_prazno := TB:nRight - TB:nLeft + 1 - efektivna_sirina
levo_prazno := int( uk_prazno / 2 )
@ TB:nBottom - TB:rowCount + TB:rowPos - 1, TB:nLeft ;
say space(levo_prazno) + ;
sadrzaj + ;
space(uk_prazno-levo_prazno)
for brojac := 1 to len(temp2)
@ TB:nBottom - TB:rowCount + TB:rowPos - 1, ;
TB:nLeft + levo_prazno + temp2[brojac,1] say ;
temp2[brojac,2]
next
set color to &bojica
else
TB:RefreshCurrent()
endif
RETURN NIL
**********************************************************************
*****
Imam sledeci problem kod iste, a to je kako da sledece redove
ubacim u bilo kakvu petlju (sve sam pokusavao, ali nista).
Usput dajem i parametre za tu moju funkciju pa ocenite... :)
**********************************************************************
*****
* FUNKCIJA T_EDIT
*
* KojaDatoteka ............. Naz. datoteke (C) difolt=trenutno
aktivna
* KojaPolja ................ Nazivi Polja (A) difolt=Sva polja
* Zaglavlja ................ Naz. zagl. za svako polje (A) dif=Prazno
* Koordinate ............... (A) G.red (3), L.kol(10), D.red(18),
D.kol(70)
* Friziranje ............... Koliko se kolona 'zamrzne' na ekranu (N)
dif=0
* Okvir .................... Kakav je okvir (1-single , 2-double) (N)
dif=2
* Senka .................... Da li ima senke ( .T. / .F. )
difolt=.T.
* Zagl ..................... Sadrzaj zaglavlja T_Edita (C) difolt=""
* Futer .................... Niz naz. za sadrz. futera T_Edita (A)
dif={""}
* MojeFunkcije ............. Niz Funk. koje sam definisao (A)
difolt={""}
* MojiTasteri .............. Niz defin. tast. za moje funkcije (A)
dif={""}
* Uslov .................... Uslov prema kome se vrsi preg (C)
dif="!EOF()"
* Trazi .................... Pozicionir. po ind na slog u bazi (C)
dif=""
* Dobar .................... Koristi SET FILTER (SPORO !!!) (C)
difolt=""
* Odakle ................... Skok po ind na prvi zeljeni slog (C)
difolt=""
* Dokle .................... Skok po ind na zadnji zelj. slog (C)
dif=""
* Pikture .................. Vrednosti za PICTURE (A) difolt=@X
* Validi ................... Vrednosti za VALID (A) difolt=.T.
* Venovi ................... Vrednosti za WHEN (A) difolt=.T.
* Riplejs .................. 2D niz sa vred. za naknadni REPLACE (A)
dif={}
* NPR. Riplejs[1] :=
{"VRED","IZNOS*KOLICINA"}
* Zastita .................. Dozvole za rad (C)
* E - izmena podataka (K_ENTER),
* kada ga nema onda izlazi i vraca
rekord
* A - dodavanje slogova (K_INS)
* AA - automatsko dodavanje slogova
(K_INS)
* D - brisanje slogova (K_DEL)
* N - vraca se na slog gde je i bio kada
izlazi
* MaleProc ................. Korisnicke funkcije (A=4)
* 1 - Prilikom kretanja kroz datoteku
* 2 - Posle unosa, menjanja i brisanja
* 3 - Pre unosa, menjanja i brisanja
* 4 - Na taster ESC
* 5 - Posle unosa
* 6 - Posle menjanja
* 7 - Posle brisanja
**********************************************************************
*****
........
FUNCTION NapuniObjekte(Temp_Browse,KojaPolja,Zaglavlja)
LOCAL BrojPolja:=len(KojaPolja)
temp_browse:addColumn(TBColumnNew(Zaglavlja[1],{|| &(KojaPolja[1])
}))
IF BrojPolja == 1
RETURN NIL
ENDIF
temp_browse:addColumn(TBColumnNew(Zaglavlja[2],{|| &(KojaPolja[2])
}))
IF BrojPolja == 2
RETURN NIL
ENDIF
temp_browse:addColumn(TBColumnNew(Zaglavlja[3],{|| &(KojaPolja[3])
}))
IF BrojPolja == 3
RETURN NIL
ENDIF
........
temp_browse:addColumn(TBColumnNew(Zaglavlja[30],{|| &(KojaPolja[30])
}))
IF BrojPolja == 30
RETURN NIL
ENDIF
RETURN NIL
***************************************** The_End()
Sorry na zamaranju vaseg PAD-a (142 linije), ali valjda ce vredeti...
Pozdrav, gari.
clipper.501bstevan,
I' ja zahvaljujem na CLOCK.ASM - ali si me malo,
namucio sa onim public casovnik.
---POZDRAV---
---BSTEVAN---
clipper.502bstevan,
Pa' ako se pravilno upotrebi CLOCK.ASM,
nevidim da nije bezbedan.I ja sam imao resenje iz CLP,
ali sam se u ovom slucaju opredelio za CLOCK.ASM .
I veruj mi u aplikaciji je to jedina procedura,
koja nije u CLP.Rekoh aj da probam da je povezem jer do sad to nisam
probao, kad ono radi i nije agresivno ako se pravilno postupi.
Da se ispravi- pravilno UPOTREBI.
---POZDRAV---
---BSTEVAN---
clipper.503d.petrovic,
Ă>│ ako stampam na stampac, a stampac ne koristi beskonacni papir i
Ă>│ ne promenim papir za 3-4 sekunde izbaci ono crveno na sred
Ă>│ ekrana. Ja normalno strelicu na desno pa kazem da nastavi i
Ă>│ nastavi normalno. Gde sam zabrljao ???
Ă> └───
Ă> IsPrinter()
Ma to proveravam pre nego što počnem da štampam, neću valjda posle
svake strane? To se nije dešavalo na TOM štampaču ranije. Ne znam šta
se u međuvremenu promenilo, jedino što su sada baze otvorene shared,
ali ne verujem da to može da ima neke veze.
clipper.504bulaja,
││IsPrinter()
│└───
│Ma to proveravam pre nego sto pocnem da stampam, necu valjda posle
│svake strane?
└───
Posle svake strane? :) Pa treba da proveravas IsPrinter() skoro *posle
svakog slova* :), tj. zavisno od toga koliki je bafer stampaca. Nikad se
ne zna na kakvim ce krsh stampacima da radi program, meni se desilo da
ni kontrola posle svakog reda nije pomogla kad je trebalo da se stampa
na nekoj glupoj pisacoj masini sa Centronics interfejsom i baferom od
pola reda.
clipper.505dr.grba,
>> I' ja zahvaljujem na CLOCK.ASM - ali si me malo,
>> namucio sa onim public casovnik.
UFFFFFFFFFFFF! IZVINI!
Izvinjenje dugujem i tebi i svima ostalima koji su probali, pa morali
da traze - nisam napomenuo ):
Nadam se da vise necu ponoviti slicnu omasku. Najvaznije je da je modul
zavrsio posao! Drago mi je ako je pomoglo.
Pozdrav, dr ÔpŰa
--> Let's leave my employer out of this, OK?
clipper.506dr.grba,
>> koja nije u CLP.Rekoh aj da probam da je povezem jer do sad to nisam
>> probao, kad ono radi i nije agresivno ako se pravilno postupi.
E, sad...
Nenad ima cvrste argumente za ono sto tvrdi. Ne pada mi na pamet da mu
protivurecim (:, a jedan od (po meni) kljucnih argumenata je konzistentnost,
zapravo stabilnost aplikacije. Ukoliko postoji razradjena baterija alata
uradjenih u Clipper-u i ukoliko ta baterija operise nad osnovnim operacijama
u programu, tada postoji verovatnoca da ce program raditi stabilno. Da ne
kazem ovako : dok se razvije paket veznih modula, testiranjem u hodu se
mogu uciniti brojna poboljsanja i ubrzanja...
Na primeru inkriminisanog ASM modula za implementaciju casovnika...I must
confess...i ja sam ga izbacio. Najpre sam halapljivo ubacio sat na interfejs.
Pa, dok sam razvijao nove module u aplikaciji, najpre sistematski resetovao
masinu dvadeset puta dnevno... ja sam sampion promasivanja sintakse, u 90%
slucajeva napisem pcount umesto pcount(), pa program zvizne (Nenade, secas
li se one rasprave o "valid"?)... Program izleti, interapt i dalje vezan, ako
ne uradim soft reset odmah, sledi hard reset posle...
Pa sam, radi testa, na vrhu svakog modula u testiranju iskljucivao sat, pa
na izlazu ga opet iskljucivao... ovo je bilo vec sumnjivo, da ne kazem da je
polako prestalo da lici na strukturno programiranje... al ajd' i to, trpeo
sam neko vreme tihi teror sopstvene megalomanije...
Pa sam onda morao da iskljucim svaku teoretsku mogucnost bilo kakvog
nekontrolisanog izlaska iz programa, tipa Alt-C, Ctrl-Break, da bih prisilio
korisnika da prodje kroz regularni izlazni modul da bi se, je li, sat
iskljucio. Tu je vec poceo jedan Grrrrrrr@#$##$%@#erinu, sa lakom tendencijom
da se prekvalifikujem u postara ili odzacara.
Pa sam tek onda dosao na to da mi u par navrata treba ceo cist ekran za
tabelu. Sat je tamo stajao kao piletu sise. Uopste mi nije bila globalna
ideja da sat iskljucujem u finalnoj varijanti. Tad je doslo do pucanja filma.
Zasukao sam rukave, sistematski unistio svaki trag tom satu u razvojnoj semi,
i napisao Clipper modul koji na Alt-T izbaci dan, datum i sat u prozoru, pa
eto korisniku, i neka gleda koliko mu volja. (Kalkulator Alt-K, screen saver
Alt-S i dosta im je.) U nastavku rada, sat nestaje i bonus penis pax in domus.
Eto, kad je Nenad napao ovaj modul, upravo je mislio na to kako bi bilo lepo
izbeci slicna s**nja. Namera mu je sigurno bila najbolja, posto je on dobro
ispekao zanat i zna za ovakve zamke. Vidis, ja sam se naucio na sopstvenom
iskustvu, i samo ja znam koliko mi je problema donelo bazanje po mraku...
Ala se raspisah, eto to je u znak izvinjenja zbog clock <-> casovnik (;
Pozdrav, dr ÔpŰa
clipper.507dr.grba,
>> Ma to proveravam pre nego sto pocnem da stampam, necu valjda posle
>> svake strane? ...
Boga mi, hoces! Brini se o integritetu programa, nemoj da se o tome brinu
namazane lujke po preduzecima... Bilo je vec negde u "Racunarima", ali ajd'...
Primeni stos duple petlje, dozvoli neko vreme oporavka stampacu :
...
if !isprinter()
inkey(10) // ovo je vreme koje dajes stampacu da se oporavi
if !isprinter() // HINT - ponovna provera
vristi()
spasavaj_stampu()
ostale_akcije()
... // i ostale akcije za plasenje guski
endif
endif
...
Sad variraj ovu mustru kako te volja, ne moze da skodi...
Pozdrav, dr ÔpŰa
clipper.508dejanr,
>> Pa treba da proveravas IsPrinter() skoro *posle
>> svakog slova* :)
Nešto sam zaboravio, jel beše IsPrinter() testira samo LPT1 štampač?
Vidim da u programima koristim isključivo neku asemblersku proceduru
koja zivka BIOS, mora da sam imao neki razlog za to.
clipper.509dejanr,
>> ja sam sampion promasivanja sintakse, u 90%
>> slucajeva napisem pcount umesto pcount(), pa program zvizne
Predlog: prevodi programe sa CLIPPER /W. Jeste da "boli" što moraju
da se deklarišu sve promenljive, a naročito "boli" deklarisanje polja
iz baze, ali u suštini spase jako mnogo problema - još u fazi prevođenja
ukaže na većinu pogrešno otkucanih promenljivih (ja, recimo, ne grešim
sa pcount() ali imam običaj da napišem lastkey i recno bez zagrada).
Na žalost, izgleda da ni CLIPPER /W ne primećuje sve probleme sa nizovima,
recimo desi se da neki niz koristiš kao skalar i to primeti tek tokom
izvršavanja programa :( A još kada bi mogla da se kontroliše ispravnost
*dodeljivanja* pa da ne dolaze posle one type mismatch greške... eh...
pusti snovi.
clipper.510dusanp,
=> Posto snap gresi kada se radi sa vise modula, a i nije
=> mi bila potrebna ona gomila informacija, napisao sam
=> svoju verziju doc programa, koja samo lepo odvoji
=> funkcije i procedure - vecini korisnika je i to dovoljno.
Ovo je verzija 1.2 istog programa. Ubijena je jedna buba,
dodat spisak funkcija pri dokumentovanju - isprobajte, mozda
je ovaj program bas ono sto vam treba. Opet ide i sors...
doc12.arjclipper.511d.petrovic,
Ă> Nešto sam zaboravio, jel beše IsPrinter() testira samo LPT1
Ă> štampač?
Zaboravio i ja, ali znam da je samo paraleni.
clipper.512d.petrovic,
Ă> Boga mi, hoces! Brini se o integritetu programa, nemoj da se o
Ă> tome brinu
Hvala lepo svima, naročito bulaji za krševe od štampača ;)). Izgleda
da sam do sada imao sreće sa ukupno 10ak program koji su radili na
15-ak štampača max. pa ni jedan nije bio krš. Ni ovaj mali nije krš,
samo zajebava sa zamenom papira.
clipper.513bulaja,
│Nesto sam zaboravio, jel bese IsPrinter() testira samo LPT1 stampac?
└───
Da. Ima u NFLIB funkcija ft_isprinter() (pisana u asembleru) evo sta
pise NG za nju:
Syntax
FT_ISPRINT( [ <cDevice> ] ) -> lResult
Arguments
<cDevice> is optional and is the device to test (LPT2, COM1, etc.).
If omitted, the function will default to the PRN device.
The Clipper IsPrinter() function is somewhat limited because it only
works with LPT1. Furthermore, it talks directly to the hardware, so
if you have redirected LPT1 via the DOS MODE command, the IsPrinter()
function will return erroneous results.
This function offers a better alternative. Instead of talking to the
hardware, it issues a DOS call that checks to see if the device is
ready or not. That gives DOS an opportunity to deal with any
redirections, and since you pass the device name as a parameter, you
can test any device, not just LPT1 (note that the function defaults
to PRN if you fail to pass a valid parameter).
clipper.514bulaja,
**** new file ****
R:ĐIBMPCĐCLIPPERĐ*.*
----------------------
bumenu11 arj 8009 BuMenu 1.1, poboljšani sistem menija za Clipper (bulaja)
BuMenu je zamena standardni Clipper-ov PROMPT .. MENU TO sistem. Potpuno
je kompatibilan sa njim, a sadrzi korisna poboljsanja:
- moze se definisati proizvoljni hot-key za aktiviranje svake od opcija
u meniju - Clipper prepoznaje samo prvo slovo opcije
- moze se definisati i boja hot tastera, tako da on bude prikazan
istaknuto - ovo izuzetno poboljsava preglednost menija i daje
profesionalni look
- nije neophodno "trositi" promenljivu za smestanje rezultata izbora -
ovo je zgodno za neke kratke menije tipa Da-Ne
Promene u odnosu na prethodnu verziju:
- podrska MESSAGE opcije
- uzima se u obzir trenutno stanje Clipper promenljivih SET WRAP i
SET MESSAGE TO <x> ŠCENTERĆ
- poziv funkcije bu_MenuColor() bez argumenata vraca trenutno aktivne boje
- poboljsana kontrola ispravnosti parametara prenetih funkcijama
clipper.515ppekovic,
[reply na baze.podataka/10.125 pjankovic]
>> Evo, bas sam sad probao i naravno da sam uspio. Naime,
>> zadnji put sam to probao prije godinu dana, ustanovio da radi, ali
>> nikada nisam ugradio u svoje programe. Napisao sam C funkciju:
Ovih dana sam po ko zna koji put probao clipper + C i evo do
čega sam došao:
Prvi deo priče, tj. kompajliranje, nikada nije bilo sporno,
dakle C program se iskompajlira u large modelu, s tim što ja za
svaki slučaj isključim i optimizacije.
Drugi deo, linkovanje je uvek bilo problematično i to zbog
čuvenih poruka "symbol defined more than once" ili tako nešto. Ovo
su javljali i MS Linker i RTLink kad god bi se koristile neke
funkcije iz graph.h, stdio.h i još neke. Dakle, najvažnije stvari.
Juče sam probao da linkujem sa blinker-om i sve je prošlo bez
ikakvih upozorenja, grešaka. Probao sam sve i svašta i sve je
radilo osim funkcija iz pgchart lib-a iz msc-a 6.0.
Da ne bih izbaksuzirao, neću reći živeo Blinker. Pravi test
će biti kada napravim ono što sam počeo, a to je backup sistem.
Naime, uzeo sam onaj zip source i pokušavam da ga prepravim da
radi iz clipper-a. Treba mu dodati multi-volume opciju i
eventualno još par sitnih i eto savršenog sistema za backup. Ako
to proradi, ...
Paya
clipper.516nbatocanin,
Tako si lepo obrazložio argumente, da samo mogu da se složim :))
Inače, čisto subjektivno, ne volim strane predmete u programima - zato
izbegavam sve biblioteke i sl. Mislim da je čista struktura programa
veoma važna (a i lepa). Uvek me je posebno nerviralo kad u nekom
jeziku nešto ne može da se izvede, pa onda moraš da ga povezuješ sa
nekim drugim. Sećam se FORTRAN programa gde je glavni program u C-u,
centralni deo FORTRAN, a koriste se C i ASM potprogrami ;( Kao
kalabalak ;)
E sad: kad već ponegde mora da se pribegne nečem drugom, neka to bude
što čistije. Zato i ne koristim C za Clipper: te fali mu LLIBC, te
dupli simboli, te neće Turbo nego MSC i šta ti ja znam. ASM uradiš i
zaboraviš. Ali, sat, screen saver i sl. (po meni) nije potrebno raditi u
asembleru: ja sve to imam urađeno vrlo jednostavno u Clipper-u. Štos
je preusmeriti sva skaniranja tastature na jednu funkcije i onda imaš
šta oćeš! U suštini, daleko više od sata!
Koga interesuje, evo nove funkcije Inkey:
FUNC nInkey (N)
LOCAL Start := Seconds (), Ch := 0, lFTast
REPEAT
lFTast := .F.
IF N == NIL
Ch := Inkey()
ELSEIF N > 0
WHILE Abs (Start - Seconds()) < N .AND. (Ch := Inkey()) == 0
IF TimeStr <> Time()
TimeStr := Time()
IF TimeVis
SayScreen (TimeStr, 0, 0)
END IF
END IF
END DO
ELSE
WHILE (Ch := Inkey()) == 0
IF TimeStr <> Time()
TimeStr := Time()
IF TimeVis
SayScreen (TimeStr, 0, 0)
END IF
END IF
END DO
END IF
// Ako je pritisnut F-taster, izvrsi ga
IF (bKey := SetKey(Ch)) <> NIL
Eval (bKey, "", 0, ReadVar())
Start := Seconds ()
lFTast := .T.
END IF
UNTIL !lFTast
RETURN Ch
Nije nešto, zar ne?
clipper.517d.petrovic,
Ă> Naime, uzeo sam onaj zip source i pokušavam da ga prepravim
Ă> da
Deder okači onaj *.asm, ja utamanio sve takve stvari sa diska, a sad
ne prikačinjem flopi. Ooops, šta sam napisao :)). Prikači preveden.
clipper.518dr.grba,
>> ukaze na vecinu pogresno otkucanih promenljivih (ja, recimo, ne gresim
>> sa pcount() ali imam obicaj da napisem lastkey i recno bez zagrada).
Hvala na savetu, vec usvojeno (((:
Nisam ni mislio samo na pcount(), vec i sve ostalo ( inkey(), lastrec(),... )
jedino pravilo je da ga zeznem bas tamo gde najbolje treba da odigra svoju
ulogu - bilo zbog kontrole u pitalici ili ne znam ni ja cega ...
Bese ono jedan od postulata prvog Marfijevog zakona "...posto ce stvari
ionako poci kako ne treba, one ce teziti da pritom naprave najvecu mogucu
stetu..." ))):
clipper.519dr.grba,
>> Ă> Nesto sam zaboravio, jel bese IsPrinter() testira samo LPT1 stampac?
>>
>> Zaboravio i ja, ali znam da je samo paraleni.
ISPRINTER() is a printer function used to determine if the parallel
port (LPT1) is on-line and ready to print. ISPRINTER() is hardware
dependent and, therefore, only works on IBM-BIOS compatible systems.
You can check ISPRINTER() to make sure the printer is ready before you
begin a print operation; however, if an error occurs during the print
operation, a runtime error is generated.
Izvor, naravno, NG fajl...
I opet marfologija : "Ako nece da radi, procitaj uputstvo."
Pozdrav, dr ÔpŰa
clipper.520tarva,
Í─────────────────Ě
║ <F1> (HELP) ║
Ë─────────────────Ż
Nisam verovao da se ovo može desiti: Postavio sam pitanje i ostao
na SEZAMU bez odgovora! Stoga:
Sorry što opterećujem konferenciju još jednom ovom porukom, ali
ne radi :((((, a niko mi nije odovorio :(((. ZATO -> HELP.
>Í─────────────────
>║> SwpRunCmd("PKZIP -Pr&f A:BACKUP "+AllTrim(cdir)+"Đ*.DBF",300,"","")
>Ë─────────────────────────────────────
>
>Probao sam ovo sa SwpRunCmd(...etc...) i ne radi. Mogući uzrok.
>
>1. Nabavljen na probu samo BLINKER.EXE
>2. Možda treba setovati neku opciju dodatno?
>
>U vezi s tim tri pitanja:
>
>1. Gde sa može kupiti orginal "BLINKER".
>2. Da li treba dodati još neki parametar
>3. Ili nešto treće?
Probao sam ovo i na proba.prg koji je imao samo 3 reda 2 x SAY i
gore pomenutu komandu. Možda je onome ko zna ovo pitanje ispod
časti da na njega odgovori, ali meni je to problem. A svaki
problem je prilično veliki, naročito ako ne umeš da ga rešiš.
clipper.521svemic,
Moj mali prilog clipperasima - 132 karaktera u VGA u modu u CLipperu
preuzeto sa InterNeta - USA.
132vgacl.arjclipper.522zkrstic,
>>>Í─────────────────
>>>║> SwpRunCmd("PKZIP -Pr&f A:BACKUP "+AllTrim(cdir)+"Đ*.DBF",300,"","")
>>>Ë─────────────────────────────────────
>>>
>>>Probao sam ovo sa SwpRunCmd(...etc...) i ne radi. Mogući uzrok.
>>>
>>>1. Nabavljen na probu samo BLINKER.EXE
>>>2. Možda treba setovati neku opciju dodatno?
Uzmi lepo instaliraj kompletan Blinker. Moguće da Blinker koji kori-
stiš je DEMO verzija u kojoj to možda ne radi.
>>>U vezi s tim tri pitanja:
>>>
>>>1. Gde sa može kupiti orginal "BLINKER".
Kod nas - nigde.
>>>2. Da li treba dodati još neki parametar
>>>3. Ili nešto treće?
Ma to mora da radi u kombinaciji (0,"<naziv_programa>","",""). Meni
je ekstrem kada svapujem iz Clippera u Clipper i to fercera bez ikakvih pro-
blema.
>>Probao sam ovo i na proba.prg koji je imao samo 3 reda 2 x SAY i
>>gore pomenutu komandu. Možda je onome ko zna ovo pitanje ispod
>>časti da na njega odgovori, ali meni je to problem. A svaki
>>problem je prilično veliki, naročito ako ne umeš da ga rešiš.
Uh, al ga zabiberi na kraju! Ja sam jedva malopre ukapirao da imaš
samo Blinker.Exe, a ne ceo blinker. A i cela poruka je vrlo konfuzna. Ništa
zato, evo ja ti odgovaram, iako mi nije jasno kako ti ne radi. :(
clipper.523dejanr,
Nisi baš opisao šta to znači "ne radi" tj. šta se tačno desi.
Komanda izgleda ok, jedino možda ako koristiš neki stari
Blinker koji to još nije ni imao (?). Komanda na Blinker-u
2.0 radi lepo.
PS Pretpostavljam da je PKZIP.EXE pri ruci programu, stavi ga
u njegov dir mada bi trebalo da radi i bilo gde iz PATH-a.
clipper.524bstevan,
Imam sledeci problem:
Imam datoteku RADNIK.DBF i oko 400 radnika u njoj.
Neki od njih su više puta menjali mat.br., tako da sam kod
onih koji su dobili novi MB, na stari stavljao oznaku 'D'
u polju VRO(Vrsta rad. odnosa), onima koima je isteko rad.
odnos oznaku 'I' i onima koji su otišli u penziju 'P'.
Sad tu datoteku iskopiram u privremenu RADNIK.IZV,
i izbrišem slogove sa DELETE ALL FOR VRO == "D" .OR. VRO == "P";
.OR. VRO == "I"
treba da mi ostane aktivan broj radnika u RADNIK.IZV, ali mi
neke podatke za neke radnike (U NEKA POLJA) loše dodeli, pa na taj
nacin promeni podatak u privremenu bazu.
Konkretno primer:
Radnik XXXXXXX YYYYYY imao je šifru radnog mesta 14022, posle
kopiranja i brisanja kako je gore pomenuto pojavi se neka druga
šifra.
Šta može biti problem ?
NAPOMENA: Indeksiranje izvorne baze nisam vršio !
---BSTEVAN---
---POZDRAV---
clipper.525gari,
BBS: RHINOCEROS
Conference: CLIPPER...
From: ARPAD SEGI
To: MARKO LUCIC [PUBLIC]
Subject: memoedit()
Date: 04-05-93 10:48
Biblioteke od raznih nezavisnih proizvodjaca mogu se kupiti u
Londonu
1) CLText Linkable Word procesor for Summer '87 and 5.01
- Word 5.0 emulatons
- Word 5.5 emulatons
- WordPerfect emulatons
- Brief emulatons
- 350 popular printers ..................... 250 funti
2) WPLib() WordPerfect Library ................ 245 funti
3) dBxStore II More than just a .DBT replacer ... ? funti
!!!! Ima li neko sa sezama nesto odavde ?
clipper.526tarva,
Í───────────────────────Ě
║ HVALA i čIVEO SEZAM! ║
Ë───────────────────────Ż
Da ne bih odgovarao obojici odjednom:
Za zkrstic-a
Í──────────────────
║> Uh, al ga zabiberi na kraju! Ja sam jedva malopre ukapirao da imaš
║> samo Blinker.Exe, a ne ceo blinker. A i cela poruka je vrlo
║> konfuzna. Ništa zato, evo ja ti odgovaram, iako mi nije jasno kako
║> ti ne radi. :(
Ë───────────────────────────────────────
Ali vidiš, meni je sada jasno zašto mi ne radi. A tome odgovori i
služe, zar ne? Sada sam pogledao verziju BLINKER.EXE :)))), kada
ga pozovem prijavi da je verzija 1.50 :(((((. Nisam ni gledao
broj verzije jer sam ga dobio onako kao "Evo ti, prikazan je u
"Računarima", probaj"
U svakom slučaju,hvala na trudu, ja sam znao da na SEZAMU neću
ostati bez odgovora, jedino sam se malo uplašio da vas mrzi da
odgovarate na glupa pitanja.
Pozdrav, dok ne nabavim novi blinker.
Za dejanr-a
Í─────────────────
║> Nisi baš opisao šta to znači "ne radi" tj. šta se tačno desi.
║> Komanda izgleda ok, jedino možda ako koristiš neki stari
║> Blinker koji to još nije ni imao (?). Komanda na Blinker-u
║> 2.0 radi lepo.
║ ═════════════
Ë──────────────────────────────────────
Ključni deo je podvučen, a moja glupost obrazložena u delu poruke
koja se odnosi na zkrstica. BTW, "ne radi" znači da nije hteo ni
da mi linkuje tu funkciju. Prijavi da je nema. Sad znam i zašto.
Í──────────────────
║> PS Pretpostavljam da je PKZIP.EXE pri ruci programu, stavi ga
║> u njegov dir mada bi trebalo da radi i bilo gde iz PATH-a.
Ë──────────────────────────────────────
Na to sam i ja pomislio. Nije.
Hvala obojici na trudu. A meni ostaje da probam da nabavim i 2.0
verziju i da vam se izvinim na gnjavaži.
Pozdrav, Tibor.
clipper.527dr.grba,
>> Nije nesto, zar ne?
Cuj, valjano je. Verziranom coveku pet minuta, pretpostavljam.
Cisto radi reference, mogao si da spomenes da imas .ch za REPEAT-UNTIL
strukturu.
BTW, hajde da vidimo tvoj screen saver. Jel' to ono sto jako lici na
Vasin SKY?
Vec sam navikao da od tebe stalno skinem neki fazon, pa bih zbilja voleo
da vidim sto pre tu tvoju knjigu. (((:
Pozdrav, dr ÔpŰa
clipper.528bcetina,
>> Nije nešto, zar ne?
E, baš jeste.
clipper.529nbatocanin,
> BTW, hajde da vidimo tvoj screen saver. Jel' to ono sto
> jako lici na Vasin SKY?
Nisam video Vasin Sky, ali moj Sky je objavljen u "Računarima" u
tekstu o demo programima. Ima ga i negde u \RSOFT.
> Vec sam navikao da od tebe stalno skinem neki fazon, pa
> bih zbilja voleo da vidim sto pre tu tvoju knjigu. (((:
Još malo, još malo... :))
clipper.530svemic,
> Imam sledeci problem:
> Imam datoteku RADNIK.DBF i oko 400 radnika u njoj.
> Neki od njih su vise puta menjali mat.br., tako da sam kod
> onih koji su dobili novi MB, na stari stavljao oznaku 'D'
> u polju VRO(Vrsta rad. odnosa), onima koima je isteko rad.
> odnos oznaku 'I' i onima koji su otisli u penziju 'P'.
> . . .
Probaj da izvornu bazu, tj. radnik.dbf prvo indeksiras,
( po svim indeksima koje imas ) a zatim je prekopiras u
bazu za obradu sa filterom koji ti filtrira samo radnike
koji su u aktivnom radnom odnosu ( ili tako nesto, mislim
ono sto ti treba ) !! Ne zaboravi posle SET FILTER TO ...
obavezno ide GO TOP !!.
I ja sam imao neke slicne probleme, pa mislim da ce i kod
tebe ovo da upali.
Pozdrav,
(SV) mr xByTe
clipper.531bulaja,
**** new file ****
R:\IBMPC\CLIPPER\*.*
----------------------
nflib_ch arj 3754 Dodatni header (.CH) fajlovi za NFLib 2.1
Ovo je dopuna za NFLib21.Arj arhivu koja se nalazi na Sezamu, a sadrzi
tri header fajla - ft_ach2t.ch, ftint86.ch, ftmenuto.ch. Hvala Payi i
FFS-u odakle je stigao kompletan nflib.
clipper.532bulaja,
**** new file ****
R:\IBMPC\CLIPPER\*.*
----------------------
rshpcx10 zip 5624 Prikaz PCX slika iz Clipper-a 5.01 (EGA/VGA)
Preuzeto sa FFS-a (FON File Server).
clipper.533zkrstic,
>>rshpcx10 zip 5624 Prikaz PCX slika iz Clipper-a 5.01 (EGA/VGA)
Ovo radi, vrrrrrlo kilavo, ajd, da čujem i tuđa iskustva. Ja ga davno
skinuh sa FFS-a i bacih
Zkr
clipper.534nbatocanin,
Vidim da sam zainteresovao narod ;) za ovo pa da kažem još par
reči. O svemu je dataljnije bilo u "Računarima" u tekstu o demo
programima.
Prva faza je centralizacija svih procedura za skaniranje tastature.
Problem je trivijalan za TBrowse, GET sistem, dok se za AChoice, MENU
TO i sl. za nijansu teže rešava (napišu se nove funkcije). Problem
je MemoEdit i za sada nemam dobro rešenje za tu funkciju.
Elem, kada sve te funkcije skaniraju tastaturu preko funkcije
Inkey(), onda se napiše funkcija koja zamenjuje Inkey. Osnova te nove
funkcije je dosta jednostavna: umesto da program čeka na akciju
korisnika u naredbi Inkey(0), program u stanju čekanja stalno
izvršava jedan ciklus u kome jednostavno ispisuje vreme - i to je sva
mudrost što se tiče sata.
E sad, ovakva funkcija pruža još more dodatnih mogućnosti. Na primer,
mogu se uvesti tri moda rada: NORMAL, LEARN i DEMO. U normalnom modu
bi se funkcija xKey ponašala baš kao Inkey. U LEARN modu bi se isto
ponašala, samo što bi svaku akciju korisnika beležila u LOG datoteku.
U DEMO modu se tasteri čitaju iz tako kreirane datoteke.
Koristan dodatak je i gašenje ekrana posle određenog vremena, a to se
trivijalno pravi.
clipper.535nbatocanin,
>> Imam sledeci problem:
Ne verujem da je neki bug: situacija ja isuviše čista. Pošalji deo
koda koji brlja pa da vidimo.
clipper.536dr.grba,
>> Ovo radi, vrrrrrlo kilavo, ajd, da cujem i tuda iskustva. Ja ga davno
>> skinuh sa FFS-a i bacih
Kod mene - zali boze 20 minuta igranja... Nije vise na disku.
Pozdrav, dr ÔpŰa
clipper.537bstevan,
>>I ja sam imao neke slicne probleme, pa mislim da ce i kod tebe
>>ovo upaliti.
Ovo je kod tebe OK' ako hoceš prikaz podataka sa SET FILTR-om.
Posto ja izbegavam SET FILTER, zato pravim pomocnu datoteku
sa COPY TO Radnik.izv
PRIMER:
USE Radnik.dat
COPY TO Radnik.izv
USE Radnik.izv
DELETE ALL FOR VRO == "D" .OR. VRO == "P" .OR. VRO == "I"
PACK
Radnici oznaceni sa D,P, i I u polju VRO se obrišu i treba da
ostanu samo aktivni u pomocnoj datoteci.
Sad takvu datoteku mogu normalno da koristim, s tim sto sam
izbegao SET FILTER.
E' a u poruci 9.524 sam naveo sta se desava i sta brlja.
Odnosno kad jednog do tri radnika obicno zezne neki podatak
(kod ove pomocne datoteke).
To se dogadja tek posle komande DELETE u sprezi
sa PACK.
Znaci tu me interesuje gde je problem ?
---POZDRAV---
---BSTEVAN---
PS:Radi se o Clipper S87'
clipper.538bstevan,
>>Ne verujem da je neki bug, situacija je isuviše čista.
>>Pošalji deo koda koji brlja pa da vidimo.
Nenade nije problem kod njega vec kod mene, a on je odgovorio
na moju poruku 9.524 .
Parce koda imas u odgovoru na poruku 9.530 (to je 9.537), a vidi
i poruku 9.524, pa povezi i videces o cemu se radi.
NAPOMENA: Radi se o Clipper - u S87'
---POZDRAV---
---BSTEVAN---
clipper.539dejanr,
Poslastica za one koji koriste Clipper i Blinker - update za Blinker 2.01.
Dodato par funkcija, ispravljeni bug-ovi i tako to.
Oba fajla (BLINK201.ZIP je update za Blinker a BLI201NG.ZIP za prateći
Norton Guide) su PD, i za njihovo korišćenje je neophodno da imate
Blinker 2.0 (ne dolaze u obzir ranije verzije!). Otpakujete, pokrenete
i samo se sredi :)
Otkrili smo jedan lep BBS sa PD programima za Clipper i raznim drugim
"zvaničnim zakrpama", očekujte još priloga na ovu temu :)
clipper.540enter,
Problem sa APPEND FROM se pojavio nakon sto je taj program radio skoro godinu
dana. Sve je po propisu, i greske se javljaju slucajno. Jednom dobro uradi,
drugi put ne. Problem se javio, kada su baze i sam program postali veliki, pa
dolazi do prebacivanja memorije na disk itd.... Ponovo i ukratko : U otvorenu
datoteku appendujem drugu koja je fala bogu CLOSE. Obe imaju istu strukturu i
recimo 30 - tak polja. Nakon sto izvrsi APPEND, ne prijavljuje nikakvu gresku,
a rezultat je recimo da je on prebacio celu bazu, ali ne '
SVA POJçhPOLJA !!!!
ţb
clipper.541ndragan,
/ COPY TO Radnik.izv
Ovo bi trebalo da brlja ako original datoteka ima memo polja. Bolja
tehnika je da se za ime fajla uzme slučajno ime (postoje funkcije koje
to rade, u foksu je to sys(3), dobiješ nekakav 77895471.dbf), ili da se
kopija pravi u poddirektoriju. Takođe bi bilo bolje kopirati nekom
funkcijom koja bi to radila u dužim blokovima (možda čak Run Xcopy), da
se izbegne muvanje slog po slog.
Vidim ja da kliperu i dalje nedostaje Index For.
/ DELETE ALL FOR VRO == "D" .OR. VRO == "P" .OR. VRO == "I"
Uostalom, i ovo mi liči na zaobilazni posao; kopiraš sve, pa onda brišeš
ono što ti je višak, pa iz toga prepisuješ ono što nisi obrisao. Zašto
ne iskopiraš samo ono što ti treba:
Copy to <ime> for <uslov>
Jedno trčanje kroz bazu ti ne gine, a ovako bar nemaš tri (kopiranje,
brisanje, pakovanje).
clipper.542nbatocanin,
> Parce koda imas u odgovoru na poruku 9.530 (to je 9.537),
> a vidi i poruku 9.524, pa povezi i videces o cemu se radi.
Prosto ne mogu da verujem da se dešava tako očigledna greška. Što se
tiče izbegavanja naredbe SET FILTER za prikaz, verovatno će biti
nešto u sledećim Računarima.
clipper.543dr.grba,
Svima vama koji niste nacisto da li da preduzmete onaj silni download
celog paketa NANFORUM TOOLKIT 2.1., upucujem ovu poruku. Ovde se nalazi
spisak novih funkcija u verziji 2.1, podeljen tematski kao u NG fajlu.
Pritom mislim ISKLJUCIVO NA REFERENTNE NOVINE, dok bih za ispitivanje
razlika u kodu morao da potrosim vreme koje nemam...
Kako god, ovde nema nikakvog mudrovanja; isekao sam slajfne iz NG fajla,
a vama bi trebalo da bude dovoljno za odluku...
Noviteti u NANFORUM TOOLKIT 2.1 :
* Database
----------
FT_DBFHAND() Obtain the handle associated with an open .DBF file.
FT_DBTHAND() Obtain the handle associated with an open .DBT file.
FT_NTXHAND() Obtain the handle associated with an open .NTX file.
* File I/O
----------
FT_FAPPEND() Appends a line to the currently selected text file
FT_FDELETE() Deletes a line from the currently selected text file
FT_FINSERT() Inserts a line in the currently selected text file
FT_FWRITELN() Write a line to the currently selected text file
* Keyboard/Menus
----------------
FT_LASTKEY() Force LastKey() to return a programmer-defined value.
FT_MCONOFF() Turn mouse cursur off if in specified region
FT_MGETCOORD() Get mouse cursor position (text coord.) and button status
FT_MGETPAGE() Get the display page for the mouse pointer
FT_MGETPOS() Get mouse cursor position and button status
FT_MGETSENS() Get the mouse sensitivity parameters
FT_MINIT() Initialize the mouse driver, vars and return status of mouse
FT_MSETCOORD() Position the mouse cursor using text screen coordinates
FT_MSETPAGE() Set the display page for the mouse pointer
FT_MSETSENS() Set the mouse sensitivity parameters
FT_MVERSION() Get the mouse driver version
FT_SETKEYS() Get array of keys redirected via the SetKey() or SET KEY
* Menus/Prompts
---------------
FT_SLEEP Wait for a specified amount of time
* Netware
---------
FT_NWSEMUNLOCK() "Unlock" a semaphore locked by FT_NWSEMLOCK()
* Video
-------
FT_DISPCNT() Return the number of outstanding calls to DispBegin()
FT_POPVID() Restore previously saved video states.
FT_PUSHVID() Save current video states on internal stack.
I na kraju jos napomena da u NG fajlu za Nanforum Toolkit 2.1 ne vidimo
vise reference za @...PROMPT i MENU TO u Nanforum interpretaciji...
Neki korisnici verzije 2.1 su prijavljivali izvesne nezgode u radu, koje
nisu primecene u verziji 2.0, pa bi bilo lepo da ih podele sa ostalima
na SEZAM-u, opisujuci sta se dogadjalo.
Pozdrav, dr ÔpŰa
clipper.544kanda,
> Prva faza je centralizacija svih procedura za skaniranje
> tastature. Problem je trivijalan za TBrowse, GET sistem, dok se
> za AChoice, MENU TO i sl. za nijansu teže rešava (napišu se
> nove funkcije). Problem je MemoEdit i za sada nemam dobro
> rešenje za tu funkciju.
Evo da opisem tehniku kojom se xKey() moze uterati u MemoEdit. Dakle,
rec je o specificnoj korisnickoj funkciji za ME - u okviru nje se skanira
tastatura, a primljeni tasteri se po potrebi prosledjuju ME-u na obradu.
Pritom se u tastaturni bafer 'podvali' i jedan kod koji ME SIGURNO ne
razume - kada dodje do njega, vratice kontrolu korisnickoj funkciji. Onda
Jovo nanovo...
#include "inkey.ch"
#include "memoedit.ch"
#define K_UN 12 // bilo koji taster koji memoedit ne poznaje
/////////////////////////////////////////////////////////////////////////
FUNCTION Main
/////////////////////////////////////////////////////////////////////////
LOCAL c := "Kanda majstov"
SET CURSOR OFF ; ReadInsert(.T.) ; SET SCOREBOARD OFF
c := MemoEdit(c, 5, 5, 15, 65, .T., "MemoFunc")
RETURN NIL
// korisnicka f-ja za memoedit
/////////////////////////////////////////////////////////////////////////
FUNCTION MemoFunc(nMode, nLine, nCol)
/////////////////////////////////////////////////////////////////////////
// Ovde navesti sve kontrolne tastere koje memoedit poznaje...
// (ima ih jos, al me mrzi da kucam ;)
STATIC aKeys := {K_UP, K_DOWN, K_PGUP, K_PGDN, K_CTRL_PGUP, K_CTRL_PGDN, ;
K_HOME, K_END, K_CTRL_Y, K_DEL, K_BS, K_ENTER, K_LEFT, K_RIGHT}
LOCAL nKey
IF nMode == ME_INIT
// Smesti taster, koji ME ne poznaje, u tastaturni bafer.
// Po inicijalizaciji, ME ce odmah vratiti kontrolu korisnickoj f-ji
KEYBOARD Chr(K_UN)
ELSE
DO WHILE .T.
// Cekaj na taster. (po potrebi, moglo bi se dodati i npr. cekanje
// na klik misa. Recimo, oko memoedita se nacrtaju 'scroll-bars',
// pa ako se klikne na njih, npr. na strelicu dole, to se tretira
// kao da je pritisnuto K_DOWN.)
nKey := zKey(0)
// Valja analizirati taster.
IF nKey == K_ESC .OR. nKey == K_CTRL_W
// Napusti memoedit !
RETURN nKey
ELSEIF (nKey >= 32 .AND. nKey <= 254) .OR. aScan(aKeys, nKey) > 0
// Ovo je taster koji memoedit razume.
// Ubaci ga u tastaturni bafer, zajedno sa jos jednim tasterom,
// koji memoedit NE razume. ME ce obraditi prvi taster, a kada
// procita drugi, vratice kontrolu korisnickoj funkciji, jer mu
// je taj drugi taster nepoznat
KEYBOARD Chr(nKey) + Chr(K_UN)
EXIT
ELSE
// Taster koji memoedit ne poznaje - necemo mu ga ni prosledjivati.
Tone(1100, 0)
ENDIF
ENDDO
ENDIF
RETURN ME_DEFAULT
// Minimalna verzija cuvene nbatocaninove funkcije xKey.
/////////////////////////////////////////////////////////////////////////
FUNCTION zKey(nWait)
/////////////////////////////////////////////////////////////////////////
STATIC cTimer := ""
LOCAL n := nWait, nKey, nR, nC
SET CURSOR ON
DO WHILE .T.
IF !(Time() == cTimer)
cTimer := Time()
nR := Row() ; nC := Col()
@ 0, 0 SAY Time()
SetPos(nR, nC)
ENDIF
IF nWait == NIL ; nKey := InKey() ; EXIT ; ENDIF
nKey := InKey(0.5)
IF nWait > 0 .AND. (n -= 0.5) <= 0 ; EXIT ; ENDIF
IF nKey != 0 ; EXIT ; ENDIF
ENDDO
SET CURSOR OFF
RETURN nKey
clipper.545kanda,
> USE Radnik.dat
> COPY TO Radnik.izv
> USE Radnik.izv
> DELETE ALL FOR VRO == "D" .OR. VRO == "P" .OR. VRO == "I"
> PACK
Dobro, a sto ne bi npr. :
USE Radnik.dat
COPY TO Radnik.izv FOR VRO == "D" .OR. VRO == "P" .OR. VRO == "I"
USE Radnik.izv
clipper.546snemcev,
>> Noviteti u NANFORUM TOOLKIT 2.1 :
E pa ovde neko stvarno ume da čita misli. Baš to sam hteo da pitam,
download or not, that is the question!
clipper.547nbatocanin,
U nedostatku boljega, što ne iskoristiš nešto poput:
USE To NEW
USE From NEW
DBeval ( {|| To->DBAppend(), MyCopyRecord(From,To) } )
clipper.548bcetina,
Jedan stari clipper 87 program, pri pokušaju da u jednom trenutku
otvori puno indexnih fajlova (12), pukne negde kod 4. (open error).
To se dešava na 386sx sa 1Mb. Napominjem postoji SET CLIPPER=F55 u
Autoexec.bat i FILES=55 i BUFFERS=25 u Config.sys.
To sve inače lepo radi na raznim 286 sa 1Mb. Zna li tko?
clipper.549dejanr,
Ako izuzmemo razne trivijalne mogućnosti tipa da u autoexec-u ne piše
SET CLIPPER nego SET CLIPER ili tome podobno, činjenica da nešto lepo
radi na 286 a ne radi na 386 obično implicira nešto vezano za QEMM ili
drugi EMM manager. Za početak, jesi li probao da pokreneš program sa
"čistim" DOS-om, eventualno uz HIMEM.SYS?
clipper.550dr.grba,
>> To se desava na 386sx sa 1Mb. Napominjem postoji SET CLIPPER=F55 u
>> Autoexec.bat i FILES=55 i BUFFERS=25 u Config.sys.
Izvini, ne umem direktno da ti pomognem da resis svoj problem, ali sam
primetio jednu stvar koju bi bilo uputno ispraviti :
FILES=55
...
SET CLIPPER=F55
...
Vidis, bilo bi uputno da za bilo koji broj u SET CLIPPER, u FILES klauzuli
u CONFIG.SYS datoteci taj broj bude (barem) za 5 veci. Tih 5 razlike
rezervise DOS za standardne I/O datoteke sistema. Ovo nije "o glavu", ali
predstavlja neki bon-ton i preventivu od glavobolje...
Pozdrav, dr ÔpŰa
clipper.551nbatocanin,
> Evo da opisem tehniku kojom se xKey() moze uterati u
> MemoEdit.
Super je. Ja sam hteo nešto slično, ali sam odustao u pola posla zato
što mislim da je MemoEdit budževina, a i ovo je (na žalost)
budževina, pa budža na budžu... I dalje čekamo oMemoEdit ;) U svakom
slučaju, ovo je lepa ideja: ako Dejan ne ubaci u Bajtove, ide u
Savetnik.
clipper.552smarco,
Molim Vas da mi predlozite dobar source- generator za menije,maske, za Clipper
5.0
clipper.553umajstorovic,
Da li neko moze da mi kaze kako da stampam PCX sliku iz CLIPPER-a. Nesto kao
LOGO u zaglavlju izvestaja.
clipper.554pstojanovic,
>> Da li neko moze da mi kaze kako da stampam PCX sliku iz
>> CLIPPER-a. Nesto kao LOGO u zaglavlju izvestaja.
Udješ u Corel, uvezeš sa Import iz fajl menija, pa na print-to-file.
Ili sa GWS-Win uvezeš, središ ditering, pa na print-to-file. Obično,
zamenim posle toga iz print fajla sa NU zadnji ASCII-12 () sa " ",da
ne bi došlo do premotavanja na novu stranicu. Jeste malo zaj..ancije,
ali radi.
clipper.555snemcev,
>> Jedan stari clipper 87 program, pri pokušaju da u jednom trenutku
>> otvori puno indexnih fajlova (12), pukne negde kod 4. (open error).
Jesi li siguran da ti taj index koji pokušavaš da otvoriš i imaš na disku?
Ova greška mi ponajviše na to ukazuje.
clipper.556vpetrovic,
>> Da li neko moze da mi kaze kako da stampam PCX sliku iz CLIPPER-a. Nesto
>> kao LOGO u zaglavlju izvestaja.
Imam ja to urađeno u mašincu i povezano sa Clipperom. Javi mi se mail-om da
se dogovorimo.
vpetrovic
clipper.557dr.grba,
>> Molim Vas da mi predlozite dobar source- generator za menije,
>> maske, za Clipper 5.0
Evo ja, nisam skup, placanje avansom na ziro racun.
Za solarno placanje 20 % popusta (((:
Pozdrav, dr ÔpŰa
clipper.558jpavlov,
Da li bi neko bio voljan da napiše kako se prosleđuju
DOS parametri programu napisanom u Clipper-u S-87, tj.
kako da iz komandbe linije dobijem podatke koji se nalaze
u bazi?
clipper.559dejanr,
>> Da li bi neko bio voljan da napiše kako se prosleđuju
>> DOS parametri programu napisanom u Clipper-u S-87, tj.
>> kako da iz komandbe linije dobijem podatke koji se nalaze
>> u bazi?
Ako sam dobro razumeo šta ti treba, ovako:
PARAMETER a,b
IF PCOUNT()<>2
? "Upotreba: CITAJ baza slog"
?
QUIT
END IF
USE a
GOTO val(b)
? polje
?
QUIT
Program pozivas sa CITAJ PERA 123 i on ti ispiše vrednost polja u
123-ćem slogu datoteke PERA.DBF.
clipper.560bstevan,
> Copy to <ime> for <uslov>
Ovo je OK'-j, ali me interesuje zašto se u onakvoj mojoj postavci
dešava što sam isao u ranijim porukama.
---POZDRAV---
---BSTEVAN---
clipper.561cnenad,
MOLIM ZA POMOC ! KAKO DA NA S'87 KADA GET NAREDBOM UBACIM U POLJE DATUM
I PROCITAM SA READ IZVRSIM ZAMENU U BAZI SVIH POLJA KOJA NEMAJU UBACENI
DATUM. SA NAREDBOM REPLACE TO NISAM USPEO DA URADIM, INACE NAREDBA
REPLACE DATUM WITH CTOD(DATUM) FOR DTOC(DATUM)=" . . " U DBASE4
RADI BEZ PROBLEMA I VRSI ZAMENU ALI U CLIPPER-u NECE !HH KORISTIM I SET DATE
GERMAN
HVALA I POZDRAV !
CNENAD
clipper.562dejanr,
>> MOLIM ZA POMOC ! KAKO DA NA S'87 KADA GET NAREDBOM UBACIM U POLJE DATUM
>> I PROCITAM SA READ IZVRSIM ZAMENU U BAZI SVIH POLJA KOJA NEMAJU UBACENI
>> DATUM.
Ne znam da li sam baš dobro razumeo pitanje, ali ja bih to oprilike ovako
uradio:
set order to 0
goto top
do while .not. eof()
if .not. deleted()
if .not. empty(xdat)
replace xdat with datum
end if
end if
skip 1
end do
Verovatno može i sa globalnim replace, ali ja ga izbegavam zbog rada
u mreži, ovako lakše rešavam zaključavanje slogova.
clipper.563bstevan,
> Prosto ne mogu da verujem da se dešava tako očigledna greška.
Ma greška je naprotiv podmukla, jer se dogodi a neocekuješ je.
Doduše može se izbeči, nekim drugim fintama, ali mene muci zašto
se dogadja jer je sve čisto, kako si i sam primetio.
> Što se tiče izbegavanja SET FILTER za prikaz, verovatno će biti
> nešto u sledećim Računarima.
Nenade, ćekamo te RAžUNARE.
---POZDRAV---
---BSTEVAN---
clipper.564bstevan,
> Dobro, a što ne bi npr. :
> USE Radnik.dat
> COPY TO Radnik.izv FOR VRO == "D" .OR. VRO == "P" .OR. VRO ==
> "I"
> USE Radnik.izv
Ne može jer sad imaš u datoteci Radnik.izv samo pasivne radnike
a ja hoću aktivne.
Može ta ista tehnika, ali ovako :
USE Radnik.dat
COPY TO Radnik.izv FOR VRO <> "D" .AND. VRO <> "P" .AND. VRO <> "I"
E' vidiš sad bi imao sve aktivne radnike u datoteci Radnik.izv.
Ipak ideja je dobra, jer se izbegava brisanja
DELETE ALL FOR VRO == ........ itd.
i ono PACK, to je isto predložio i ndragan u poruci 9.541.
---POZDRAV---
---BSTEVAN---
clipper.565bstevan,
Znaš, javio sam se samo zato što red stvari koje su ti se
dogadjale kako si opisao sa CLOCK.ASM, isto je i mene snašlo
pa zato definitivno ispada iz mojih aplikacija.
---POZDRAV---
---BSTEVAN---
clipper.566jpavlov,
... Ako sam dobro razumeo šta ti treba, ovako:
...
... PARAMETER a,b
... IF PCOUNT()<>2
itd.
Zaista TAKO TREBA. Radi, 'fala.
clipper.567vpekovic,
Imam problema sa drugim delom NanForum biblioteke (NFSRC21.A01).
Prilikom testiranja integriteta javlja mi Bad Huffman code (0) a kod
opcije l ili v, Bad header. Moze li moderator da mi odgovori da li
je greska u datoteci na SEZAM-u ili je nastala prilikom prenosa pa
da pokusam ponovo. Koristim ARJ 2.22.
Unapred hvala.
V. Pekovic
clipper.568dejanr,
Ja sam sticajem okolnosti baš pre sedam dana skinuo to sa Sezama
(nisam imao pri ruci, a doneo mi čovek program koji koristi usluge
te biblioteke) i uspešno sam je raspakovao, dakle ako u međuvremenu
nije neki gremlin prošetao diskom, sve je u redu.
Skini oba dela (arj i a01), stavi ih u isti dir i kaži ARJ e -v nfsrc21.
Verujem da će uspeti.
clipper.569bulaja,
│Da li bi neko bio voljan da napise kako se prosleduju
│DOS parametri programu napisanom u Clipper-u S-87,
└───
Back to the Past :). Cini mi se da je ovo bili prvo pitanje u prvoj
Clipper temi (naravno u prvoj PC.SOFT konferenciji) na prvom Sezamu :).
Parametri iz DOS-a se prenose preko PARAMETERS opcije (na pocetku
osnovnog modula navedes PARA a,b,c,..), a broj prenetih parametara
mozes ispitati funkcijom PCOUNT(). Svi parametri iz komande linije
se prenose kao stringovi, ako ti treba broj uradis VAL().
clipper.570lkudlik,
Da li mi neko moze pomoci ??
Program koji je kompajiran(5.01) i linkovan sa PLL
prolikom starta javi gresku ???
error est0001: Illegal format in loadable file
Sta da radim ???
Lkudlik :(
clipper.571dejanr,
Jesi li probao da ponovo instaliraš Clipper? Meni su se poruke poput te
javljale kad je CPAV jednom greškom "imunizovao" clipper.
clipper.572dcolak,
│ error est0001: Illegal format in loadable file
Da ne koristiš opciju /pll ?
Isključi je pri kompajliranju...
Ako je to to.. :)
Sledge DAMMIR!
clipper.573dr.grba,
>> Znas, javio sam se samo zato sto red stvari koje su ti se
>> dogadjale kako si opisao sa CLOCK.ASM, isto je i mene snaslo
>> pa zato definitivno ispada iz mojih aplikacija.
Eto, sad ispade da sam nesto kriv <;< Mozda na grub nacin, ipak si
naucio nesto, bas kao i ja...
No, ostaje sada da napravis sopstveni sat u Clipper-u. Samo napred!
Pozdrav, dr ÔpŰa
clipper.574bulaja,
│Imam problema sa drugim delom NanForum biblioteke (NFSRC21.A01).
│Prilikom testiranja integriteta javlja mi Bad Huffman code (0) a kod
│opcije l ili v, Bad header. Moze li moderator da mi odgovori da li je
│greska u datoteci na SEZAM-u ili je nastala prilikom prenosa pa da
│pokusam ponovo. Koristim ARJ 2.22.
└───
Datoteka na Sezamu bi trebala da bude Ok :), znaci ili se datoteka
ostetila prilikom prenosa, a mozda je i stvar u verziji ARJ-a, posto
se datoteke na Sezamu pakuju sa ARJ v2.30.
clipper.575mandrejevic,
I meni se isto javljalo kada radim sa /pll i imam mnogo memorije
na raspolaganju. Onda moram da lupim LOADFIX prg da bi radilo.
Inace kada imam i NG u memoriji i /ili imam duzi progam sve
sljaka kako treba.
P.S. LOADFIX iz DOS-a 5
clipper.576petrovics,
>> Program koji je kompajiran(5.01) i linkovan sa PLL
>> prolikom starta javi gresku ???
>>
>> error est0001: Illegal format in loadable file
Ova greska kod PLL linkovanja je odavno primecena. Vecina ljudi
koje znam, pa i ja, je resavaju tako sto startuju NG (Norton
Guide) i pll linkovani programi se posle bez problema
izvrsavaju. Zasto ovo ovako radi neznam, vazno je da radi.
pozdrav, Sasa
clipper.577jpiri,
Imam problem sa Clipperom 5.2 (mislim da se isto desava i sa 5.01)
S vremena na vreme program pukne 'iz cista mira' uz poruku: 'Argument
error: Method exported'.
'Iz cista mira' znaci da npr. u jednom modulu unosim podatke, 5-10
minuta bez problema i onda 'pukne'. Sa Summer 87 radi ok.
Radim sa PLL. Mozda je u tome problem?
clipper.578ficus,
:) Imam problem sa Clipperom 5.2 (mislim da se isto desava i sa 5.01)
Kakav je cliper 5.2 (ima li drasticnih promena u odnosu na 5.01) ?
clipper.579pavbok,
B> Datoteka na Sezamu bi trebala da bude Ok :), znaci ili se datoteka
B> ostetila prilikom prenosa, a mozda je i stvar u verziji ARJ-a,
posto
B> se datoteke na Sezamu pakuju sa ARJ v2.30.
Kad smo već kod toga, kojim se ZIP-om pakuje na SEZAMU.
Bojan
clipper.580dejanr,
>> Kad smo već kod toga, kojim se ZIP-om pakuje na SEZAMU.
Sezam pakuje PAD-ove PKZIP-om 1.1. Što se tiče programa u direktorijumu,
pakovani su onim čime su ih spakovali autori, mi samo stavimo zaglavlje.
Dakle, stari programi su PKZIP-om 1.1, a novi kako koji, sve više ih
je pakovanih PKZIP-om 2.04.
clipper.581lkudlik,
U vezi na odgovore na gresku(PLL):
error est0001: Illegal format in loadable file
Primetio sam i ja da ima neke veze sa memorijom
ali nije mi jasno kako je pre radilo,bez
obzira da li je neki program ucitan u memoriju.
Probao sam program(kompajliran i linkovan sa PLL)
na drugoj masini i sve radi savrseno.
Misleci da sam zeznuo clipper,instalirao sam
ponovo,medjutim sve po starom.
SVARNO SAM ZABRINUT !!!
HVALA NA SAVETIMA (nisam jedini koji ima taj problem )
Lkudlik :(
clipper.582pavbok,
B> Sezam pakuje PAD-ove PKZIP-om 1.1. Što se tiče programa u
B> direktorijumu, pakovani su onim čime su ih spakovali autori,
B> mi samo stavimo zaglavlje. Dakle, stari programi su PKZIP-om
B> 1.1, a novi kako koji, sve više ih je pakovanih PKZIP-om 2.04.
Dobro za programe je razumljivo, jer razni korisnci pakuju
razne programe raznim archiverima. Mada bih ja savetovao ili
preporučio ako je to prava reč, upravi SEZAM-a da se preorjen-
tiše makar na PKZIP 2.0 zbog bolje i brže kompresije, da bi
nam padovi bili nešto kraći itd. Ja lično smatram da PKZIP 1.1
više niko ne koristi, a i ako koristi treba ga naterati da
skine PKZIP 2.04g pa da radi kao čovek.
Bojan
clipper.583dejanr,
>> Mada bih ja savetovao ili preporučio ako je to prava reč,
>> upravi SEZAM-a da se preorjentiše makar na PKZIP 2.0 zbog
>> bolje i brže kompresije, da bi nam padovi bili nešto kraći itd.
Biće. Možda čak novi softver omogući da se pokrene ARJ, za one koji
ga preferiraju.
clipper.584spantic,
> Biće. Možda čak novi softver omogući da se pokrene ARJ, za
> one koji ga preferiraju.
Lepo neko reče treba biti uporan :) ZZ svaka čast!
clipper.585snemcev,
Štampate li virmane iz programa? Pa naravno! A na čemu? Na matričnom štampaču,
of course. E, tu sam vas čekao! Evo parče koda:
...
@ 5, 30 SAY 'trt-mrt'
@ 5, 10 SAY 'bla-bla'
...
Kao što je za očekivati, ispis bi trebao biti:
bla-bla trt-mrt
E, pa ako imate Epson LX-400, onda to nećete dobiti! On iz samo njemu znanih
razloga posle onog trt-mrt pređe u nov red?!? Sva sreća pa imam i jedan
Fujitsu, a na njemu je sve OK. Ako mi ovo neko objasni, svaka mu čast!
PS Ne, nije uključen AUTO LF!
clipper.586bulaja,
│Kad smo vec kod toga, kojim se ZIP-om pakuje na SEZAMU.
└───
Sto se tice datoteka po direktorijumima, kako kojim :). U poslednje
vreme se vecina ZIP datoteka pakuje novim ZIP-om (2.04), a u nekim
slucajevima (npr. ako ima -AV) ostane i u ZIP 1.1 formatu.
clipper.587bulaja,
│@ 5, 30 SAY 'trt-mrt'
│@ 5, 10 SAY 'bla-bla'
│...
│E, pa ako imate Epson LX-400, onda to necete dobiti! On iz samo
│njemu znanih razloga posle onog trt-mrt prede u nov red?!?
└───
Pa naravno da ce da ubaci LF kada su koordinate za bla-bla (nCol=10)
manje nego za trt-mrt (30), sto znaci da se prelazi na sledecu stranu.
To sto ipak prolazi kod Fujitsu moze da znaci da on ima dvostrano
stampanje, pa drugi prolaz uradi sa desna na levo u istom redu.
clipper.588dejanr,
>> @ 5, 30 SAY 'trt-mrt'
>> @ 5, 10 SAY 'bla-bla'
>>
>> Kao što je za očekivati, ispis bi trebao biti:
>>
>> bla-bla trt-mrt
>>
>> E, pa ako imate Epson LX-400, onda to nećete dobiti! On iz samo njemu
>> znanih razloga posle onog trt-mrt pređe u nov red?!?
Prema uputstvu za Clipper, Epson radi baš kako treba - ako je Y koordinata
novog ispisa manja od Y koordinate prethodnog prelazi se na sledeću stranu,
a ako je X manja, u sledeći red. Moraćeš da preokreneš redosled naradbi.
U čitavoj stvari me čudi zašto se Fujitsu ponaša drugačije.
clipper.589pjankovic,
> @ 5, 30 SAY 'trt-mrt'
> @ 5, 10 SAY 'bla-bla'
Jos nesto u vezi sa ovim:
Dok sam radio sa 9-pinskim stampacima (EPSON FX 1000, FX 1050,
Panasonic KX-P1180, ...) navikao sam se da se red odstampa tek kad stampac
primi znak za novi red. Tako se desavalo da se posljednji red nekog izvjestaja
odstampa tek posto "krene" novi izvjestaj, ili tek kada korisnik pritisne
LF na stampacu. Radeci sa stampacem EPSON LQ1070 bio sam iznenadjen
videvsi da on stampa karaktere onako kako mu pristizu od racunara.
Mozda je neko u stanju da pruzi strucno objasnjenje zasto su
neki stampaci "pametniji" od drugih.
clipper.590nbatocanin,
> error est0001: Illegal format in loadable file
Ja sam problem rešio tako što sam izbacio DOS=HIGH.
clipper.592vpekovic,
█´k│
║ Skini oba dela (arj i a01), stavi ih u isti dir i kazi ARJ e -v nfsrc21.
║ Verujem da ce uspeti.
Ę
Nije uspelo. Instalirao sam i ARJ 2.30 i opet isto. Na kraju mi
preostalo da ponovo download-ujem drugi deo arhive sto sam i uradio.
Sada je sve bilo OK sa bilo kojom verzijom ARJ. Ipak su gremlini ali
tokom prenosa.
Thanks!
V. Pekovic
clipper.593vpekovic,
║ Datoteka na Sezamu bi trebala da bude Ok :), znaci ili se datoteka
║ ostetila prilikom prenosa, a mozda je i stvar u verziji ARJ-a, posto
║ se datoteke na Sezamu pakuju sa ARJ v2.30.
Datoteka je bila ostecena prilikom prenosa. Provereno i sa ARJ 2.30.
Thanks!
V. Pekovic
clipper.594dr.grba,
>> Mozda je neko u stanju da pruzi strucno objasnjenje zasto su
>> neki stampaci "pametniji" od drugih.
Evo ja. Koliko para toliko muzike. Moje je dobro, a tvoje nije. Neka
komsiji crkne krava. Kupite nase stampace, sporo rade al' su mnogo lepi.
Ima jos, ali da ne preteram.
clipper.595milanv,
Narode, spašavajte, hitno je!
Program koji radi duže od godinu dana na jednoj mašini, od
danas počinje da zafrkava. Iz čista mira počinje da prijavljuje
grešku o ne mogućnosti da otvori indeksni FILE. Ništa u programu
nije menjano, ind. FILE je ispravan (ponovo reindeksiran),
CONFIG.SYS nije menjan (FILES=24, BUFFERS=24, a FILE je tek
deveti otvoreni po redu).
Po izletanju iz programa u DOS (4.01 - ako se dobro sećam),
ovaj prijavljuje SYSTEM ALOCATION ERROR.
Da li je moguća greška u programu, ili je vrisnuo neki
memorijski čip, ili... ?
Milan.
clipper.596dejanr,
>> Da li je moguća greška u programu, ili je vrisnuo neki
>> memorijski čip, ili... ?
... ili treba SCAN
clipper.597jpavlov,
Pitaću možda nešto, što svi znaju, ali ne i ja, budući da
u Kliperu nisam do nedavno ništa radio, ali sam zato radio
u Foxbase i tu ima mnogo sličnosti. E sad, u fox-u je
daleko jednostavnije kontrolisati ERROR-e nego u kliperu
jer tamo ON ERROR DO procedura_za_greske rešava sve probleme.
Pitanje glasi:
- Kako da kontrolišem grešku prilikom štampanja
izveštaja, ako neko ** u toku ** štampanja isključi
štampač?
U fox-u se isti program vrati u glavni meni.
PS Pitanje se odnosi na verziju S87.
clipper.598dr.grba,
>> - Kako da kontrolisem gresku prilikom stampanja
>> izvestaja, ako neko ** u toku ** stampanja iskljuci stampac?
Zar opet?...
Bila je rasprava bas ovde, negde u aprilu. Ima jedna mustra koju sam
prepisao u 9.507, procitaj tu poruku.
.to nbatocanin
Ej, Neso, 'ajde se malo pozabavi baterijama za ispitivanje gresaka u radu
programa, ali na nivou projekta aplikacije. Ona prica u Clipper biltenu
u "Racunarima" koja je opisala klasu za greske je bila "s neba pa u rebra".
Uostalom, bilo bi umesno da se malo vise prica o PROJEKTOVANJU i KONCEPCIJI
kao bitnim elementima u fazi radjanja programa. Kakve ideje se tu daju
sresti, mogu misliti, tim pre sto poznajem programere koji ne razlikuju
selekciju od iteracije...
Pozdrav, dr Grba
clipper.599dejanr,
==========
clipper/clipper.code #224, from sentex, 654 chars, Thu Apr 29 14:48:00 1993
Comment(s).
----------
TITLE: Dos 6.0 Not enough memory error message
Has anyone run into a problem with an application written in
S'87 that fails to run under Dos 6.0 ? This particular application
has always been a memory hog but if 550k of conventional memory is
available the application runs. Now, under Dos 6.0 with conventional
available memory of over 600k the application fails with the error
message Not Enough Memory. My first step in trying to determine the
problem was to call Nantucket. What a surprise! The
supplied telephone number is no longer valid. Has
Nantucket gone out of business and has someone else
bought Clipper? Any help would be appreciated.
W.D.
==========
clipper/clipper.code #225, from alexw, 612 chars, Thu Apr 29 20:23:03 1993
Comment to 224.
----------
Mark, I hate to be the one to tell you that you have slept for the
last 4 years...
nantucket dissappeared long time ago... an arab terrorist put a bomb
in the building and all that was left of clipper was a hard disk with
fragments of the original code here and there...
Somebody picked it up and started a new company with its remnants
(a la terminator) and now the families of the deseased are suing them
because they say that 5.0 and 5.2 belong to them and the disk was taken
illegally from the debris...
Anyway, the new company's name is Computer Associates and their phone
number is (408) 432-1764
Alex
clipper.600jpiri,
E, pa posto me vise ljudi pitalo kakvi su noviteti Clippera 5.2 evo ih:
- Sredjen je bag koji se javljao kod koriscenja PLL-a. (To je onaj
problem koji se javljao kod DOS-a 5.0, kada je Clipper javljao poruku
'Illegal format in loadable file' i nije hteo da radi dok se npr.
ne ucita ng -> bilo je ovde takvih poruka)
- DBU je promenjen tako da radi u mrezi i to potpuno transparentno.
To znaci da kada se menja neki podatak u bazi, Clipper sam radi
lock/unlock. Takodje, DBU sada dinamicki osvezava ekran tako da se
u browse modu sada vidi svaka promena u bazi u onom momentu kada
korisnik sa druge radne stanice izvrsi promenu podataka.
Ovo je lepa stvar za one koji rade pod Novellom, a cena je nesto
usporen rad.
Mali problem je sto se shared pristup podrazumeva, pa ako se radi
na single masini, i ako se zada npr. replace all, javi se greska
da se to naravno ne moze raditi, vec DBU treba pozvati sa DBU /e
(exclusive) kada radi kao i stari.
- Ima tu jos gomila sitnica od kojih mi je najdraza to sto se
najzad vise ne mora pisati ono grozno i glomazno set softseek on/off
vec se samo kaze 'seek izraz softseek'. Svako ko je sa ovim radio
zna kakvi se lepi bagovi desavaju ako se u brzini slucajno izostavi
set softseek off.
Stvar jeste sitna ali lepa.
U istu kategoriju spadaju i uslovni indeksi. Sada se sa 'index .. for..'
moze kreirati index u kome ce se nalaziti samo kljucevi koji zadovoljavaju
zadati uslov. Korisna stvar preuzeta od Fox-a.
- U stvari najveci novitet Clippera 5.2 su izmenljivi database driveri
(RDD). Sta to znaci? To znaci da vise nismo ograniceni na DBF/NTX
kombinaciju o kojoj se i ovde puno pricalo kao o prilicno neefikasnoj.
Upotrebom odgovarajuceg RDD mozete npr. zameniti glomazne NTX indekse
sa Foxovim CDX indeksima, ili sa MDX indeksima iz DBASE IV.
Takodje mozete i DBF strukturu da zamenite sa Paradox-ovim formatom
datoteka i indeksa.
Treba ocekivati da ce uskoro trziste biti krcato ovim drajverima od
kojih ce svaki da tvrdi da je bolji od DBF/NTX para, a i od ostalih,
naravno. Da li je ovo dobro, ili ce doci do nepotrebne eksplozije
najegzoticnijih formata, videcemo.
I na kraju, radi li to, i vredi li menjati toliko nam srcu prirasli
DBF/NTX format?
Skeptican sam u principu prema novitetima ali mi djavo nije dao mira
pa sam se malo poigrao sa prilozenim RDD-om za CDX indekse (Foxov format).
Odmah da kazem da postojece programe ne treba menjati vec se samo na
pocetak prvog modula stavi par naredbi koji Clipper-u kazu koji drajver
da koristi.
Stvar je sljakala bez problema, a za 'test' sam koristio knjigovodstvene
podatke jedne firme srednje velicine tj. baze su bile od vise MB.
Kada sam indeksirao baze da dobijem nove CDX indekse, prilicno sam se
iznenadio. CDX indeksi su bili skoro 4 puta manji od istih NTX datoteka!
Sta ovo znaci za velike aplikacije kod kojih (obicno) ukupna duzina
svih NTX datoteka biva i veca od samih DBF, ne treba posebno naglasavati.
Ovolika razlika potice od cinjenice da su CDX indeksi komprimovani, tako
da se najbolji rezultati postizu kod indeksa gde ima puno blankova (npr.
indeks po prezimenu, po gradu i sl.) a osobito kod indeksa gde se susedni
kljucevi razlikuju za po jedno mesto -> dakle svi indeksi tipa 'sifra'
(0001, 0002, 0003 itd.).
Za prostor na disku dakle cista 10.
A performanse?
Sto kazu stonsi 'mixed emotions'.
Pravo testiranje ostavljam strucnjacima ali evo 2 real-life situacije.
a) Prvo sam pustio jedan modul koji kontrolise ispravnost sintetike i
analitike kupaca i dobavljaca. Modul sam izabrao zato sto radi na velikim
bazama i zato sto ih zestoko 'trese'. Cisto da vidim kako se ponasa pod
najvecim 'opterecenjem'.
Rezultat = 10% slabije vreme. ('muljanje' inace traje oko 6-7 minuta na
486 masini sa 1MB Hyper kesa.)
b) Zatim sam pustio tzv. bruto stanje gl. knjige. Ovo je potpuno razlicita
situacija u odnosu na prethodnu, jer dok sam tamo imao 10+ baza ovde ih
ima samo 2, a cela 'obrada' se svodi na to da se samo protrci kroz bazu
uz usputno sumiranje nekih polja -> duguje, potrazuje stuff.
Rezultat = 10% BOLJE vreme. (baza je imala preko 10000 stavki ne secam
se vise tacno koliko)
Ovde je izgleda do izrazaja dosla kompaktnost CDX indeksa, jer je
Clipper zahvaljujuci njihovoj velicini trebao 4 puta manje vremena za
pristup disku prilikom njihovog citanja. Laicko objasnjenje ali cini mi se
da je to to.
Namerno sam ovo 'testiranje' radio sa Hyperom jer ipak on manje vise
postaje sveprisutan, da ne kazem obavezan deo DOS-a. Za pravi test bi
naravno trebalo pustati programe na 'goloj' masini ali mi se cini da je
upotrebna vrednost takvih testova znatno manja od njihove informativne
vrednosti.
Trebalo bi naravno testirati i ostale drajvere, recimo MDX format
indeksa kod koga se svi indeksi za jednu bazu trpaju u 1 MDX fajl, pa
nestaje problem sa 'neazuriranim' indeksom jer je negde zaboravljen
prilikom otvaranja baze, no to se ionako desava samo pocetnicima.
Licno bi me zanimalo da neko testira Paradox RDD, jer su neki ljudi
ovde to prilicno hvalili (mislim na PARADOX). Licno mi se on ne dopada jer
mu je rad sa indeksima po nekom budibogsnama principu za koga mi se cini
da bi bilo potrebno menjati postojece Clipper programe, sto mi se
uopste ne radi. Tu je i grupa novih naredbi koje bi to trebalo da olaksaju
ali ako su dobici u performansama zanemarljivi, onda bi to definitivno
bilo 'ubijanje vola radi kile mesa'.
- Ima i nekih sitnih noviteta u vezi objekata. Novih objekata nema, vec
su samo postojeci nesto poboljsani (error handling u Tbrowse, neke fn
u Get i sl.) Znaci pravi Clipper sa objektima ce biti tek u nekoj sledecoj
verziji.
Ima tu jos naravno i drugih stvari, ali su ovo nekako najbitnije.
clipper.601bingo,
Da li neko zna kako iz Nbatocanin programa za pregled pre stampe
R 75 da prikacim grficki amblem i da se prikaze na stampacu
(navodno je bilo u ranijim brojevima, ali nisam nasao)
Unapred zahvalan Bingo
clipper.602ratman,
Sta je pogresno u sledecem programu:
USE enzy NEW
USE enz1pat NEW
SELECT 1
LIST ck FOR nopat=1010
COPY STRUCTURE TO enz1pat
COPY TO enz1pat FOR nopat=1010
SELECT 2
LIST nopat, ck, ldh
Naime, program daje izvestaj "Corruption detected: file enz1pat"
Zasto je fajl (zaista, proverio sam iz dbu i dbase III) necitljiv!
Ub'cu se, nece da radi! :)
Pozdrav,
Dejan.
clipper.603dejanr,
>> Sta je pogresno u sledecem programu:
Mislim da bi trebalo prvo da uradiš COPY STRUCTURE TO enz1pat pa
tek onda da otvaraš enz1pat sa USE.
clipper.604bulaja,
│Namerno sam ovo 'testiranje' radio sa Hyperom jer ipak on manje vise
│postaje sveprisutan, da ne kazem obavezan deo DOS-a. Za pravi test bi
│naravno trebalo pustati programe na 'goloj' masini ali mi se cini da je
│upotrebna vrednost takvih testova znatno manja od njihove informativne
│vrednosti.
└───
Thanks na opisu, a ja se bas spremao da pitam za iskustva sa 5.2 :).
Ali, da li si ispraznio Huper-ov bafer pre svakog testiranja? Jer ako
nisi, onda dobijeni rezultati i nisu previse relevantni :). Ipak ne bi
bilo lose da se pusti neki test na goloj masini, pa da vidimo da li je
tu ista ubrzano. Takodje ne bi bilo lose ni poredjenje brzine naredbi
koje ne koriste indekse (npr. skip, locate, set filter i sl.).
clipper.605bulaja,
Q: Kako povezati C (MSC 6) sa Clipper-om 5.01 a da sve radi?
Naleteo sam na problem kada sam pokusao da povezem C funkcije koje
koriste low-level funkcije za rad sa binarnim datotekama (fopen(),
fread(), fwrite(),..). Kod linkovanja (i sa RTLink-om i Blinkerom)
bez standardne C biblioteke javljaju se poruke o nedefinisanim simbolima
za pozvane file i/o funkcije. Kada se poveze sa standarnim C lib-om,
onda se javi nekoliko duplih simbola i neki nedefinisani (__abrktb, i to
u CLIPPER.LIB), a program se zaglupi. Mozda je problem u tome sto se u
uputstvu za Clipper pise da treba linkovati sa Microsoft bibliotekom
llibca.lib, a meni je MSC nije instalirao vec samo neki llibcr.lib.
Malo mi je glupo to sto se uopste mora povezivati MS C lib, posto bi
vecina funkcija vec trebala da bude i u standarnim Clipper bibliotekama
(clipper.lib i extend.lib).
clipper.606milanv,
║║ ... ili treba SCAN
Ne bi trebalo da je to - bar korisnik tako kaže.
Nemam pristup dotičnom kompjuteru (50 km), osim telefonskim
razgovorom sa korisnikom (kompjuterski apsolutno nepismenim)!
Važno mi je da mi neko prenese iskustvo: da li je moguće da
do navedenog proglema dodje (iznenadna ne mogućnost odvaranja
indeksnog fajla) usled greške u programu, a nakon duuugog
normalnog korišćenja programa (inkriminisane baze sada imaju par
hiljada slogova, a mesta na disku još oho-ho).
Voleo bih da mogu, sa sigurnošću, da mu kažem: druškane
tvoja mašina je ispustila dušu, program je O.K.
clipper.607lkudlik,
U vezi na gresku(PLL):
error est0001: Illegal format in loadable file
Problem sam resio tako sto sam iz NC-a
pokrenuo kompajliranje i sve radi kako treba(bar za sada??).
HVALA NA SAVETIMA
Lkudlik ;)
clipper.608dejanr,
>> Važno mi je da mi neko prenese iskustvo: da li je moguće da
>> do navedenog proglema dodje (iznenadna ne mogućnost odvaranja
>> indeksnog fajla) usled greške u programu, a nakon duuugog
>> normalnog korišćenja programa (inkriminisane baze sada imaju par
>> hiljada slogova, a mesta na disku još oho-ho).
>>
>> Voleo bih da mogu, sa sigurnošću, da mu kažem: druškane
>> tvoja mašina je ispustila dušu, program je O.K.
Meni je prilično neverovatno da program koji je do skora normalno
radio, i to više meseci, odjednom počne totalno da brlja, i to pogotovu
tako sistemski, sa indeksima. Ja tipujem da je korisnik nešto menjao
na računaru, ili DOS, ili neke QEMM-ove ili tako nešto.
Ali teško je reći "sa sigurnošću", video sam toliko neverovatnih stvari
sa kompjuterima (većina se objasni, a neke ostanu "zauvek" nejasne) da
sam vrlo oprezan sa "sigurnim" procenama.
clipper.609snemcev,
>> U čitavoj stvari me čudi zašto se Fujitsu ponaša drugačije.
Iskreno rečeno, očekivao pre od Epsona da odradi onako kako ja to hoću.
Al' sad, šta je - tu je. Virmani od sad idu na Fujitsu, a Epson čeka
neke bolje dane. Mislio sam da će ovakav ispis teksta na štampaču proći
jer tako sam uradio pre par godina, al' sad kad malo bolje razmislim,
nisam više siguran da li je taj štampač bio Epson.
clipper.610vcalic,
>> Mozda je problem u tome sto se u uputstvu za Clipper pise da treba
>> linkovati sa Microsoft bibliotekom llibca.lib, a meni je MSC nije
>> instalirao vec samo neki llibcr.lib.
Ne radim sa MSC-om, ali ako se dobro sećam do zadnje slovo u nazivu
biblioteke se odnosi na to da li biblioteka podržava koprocesor ili njegovu
emulaciju. To "a" dolazi od advanced pa treba prilikom instalacije MSC-a
staviti i ovu opciju.
clipper.611ratman,
Hm, i tada se javlja ista greska, ustvari i kada ne uradim
COPY STRUCTURE TO nego samo dopisujem i brisem recorde u
enz1pat fajlu.
Interesantno, problem nestaje kada ne radim sa SELECT, nego
svaki put otvaram i zatvaram fajlove, sto jem naravno, neprakticno.
Uopste mi nije jasno o cemu se radi....?
clipper.612d.petrovic,
Ă> CONFIG.SYS nije menjan (FILES=24, BUFFERS=24, a FILE je tek
set clipper=f20 ?
clipper.613ppekovic,
Kako da u toku rada memoedit-a saznam koliko ukupno ima
linija ukucani tekst. Znam za mlcount() ali on radi tek kad izađem
iz memoedit-a tj. kad snimim editovani sadržaj u promenljivu.
Ovo mi treba zbog scrollbar-a :) A kad smo već kod
scrollbar-a, jer rešio neko scrollbar u tbrowse-u. Tu nije problem
koliko record-a ima već koji je tekući po redu (ako je uključen
index). Znam za recno(), al kad je aktivan index, to slabo pomaže.
Paya
clipper.614ppekovic,
>> emulaciju. To "a" dolazi od advanced pa treba prilikom instalacije MSC-a
"a" dolazi od alternate math.
Paya
clipper.615jpiri,
>> Da li si isprazni Hyperov buffer...
Naravno, i to najsigurnijom metodom: resetovanjem racunara :)
clipper.616mrajacic,
Kompletna rutina u Clipperu pa malo u C-eu koja omogucava
Qeditu (najbolje sto postoji) da izbaci POP-UP listu baza
da je izaberete pa da je onda u editoru vidite (strukturu),
vrlo korisna stvar, a mozda i ponuka da neko realizuje ili
cak i ima nesto bolje.
pozdrav Milan
dbs_1.zipclipper.617pjankovic,
"SCROLLBAR" SA "TBROWSE"
> Ovo mi treba zbog scrollbar-a :) A kad smo vec
> kod scrollbar-a, jer resio neko scrollbar u tbrowse-u. Tu
> nije problem koliko record-a ima vec koji je tekuci po
> redu (ako je ukljucen index). Znam za recno(), al kad je
> aktivan index, to slabo pomaze.
Zaista si mi dao ideju. Mogao bi i ja to da napravim. A evo koje mi
je rjesenje palo na pamet. (Ovo sve pisem iz glave, pa nece biti bas
precizno). Naime, prilikom pomjeranja pokazivaca sloga, svaki put se
poziva jedna funkcija ("skip"). Ona vraca neke informacije kao sto su BOF, EOF
i slicno. Pod pretpostavkom da u TBROWSE ulazis uvijek sa pokazivacem na
pocetku ili na kraju baze, lako je izvesti da doticna funkcija azurira jedan
brojac koji ce u stvari biti broj sloga (u logickom radosljedu) na kom se
trenutno nalazis. Za ilustraciju mozes pogledati izvorni kod funkcije
BROWSE.
clipper.618snemcev,
>> Sta je pogresno u sledecem programu:
Pa šta će ti ono USE enz1pat pre COPY TO? Uradi ga posle i biće sve OK.
clipper.619bipin,
Molim pomoc!
Kako da iz GET-a upisem nesto u memo polje, npr.
mA := mC = SPACE(5)
mB := "Memo"
č x , y SAY "mA......" GET mA
č x+1, y SAY "mB......" GET /* MEMOEDIT( mB, x+1, y+1, x+5, y+20, .T.) */
č x+2, y SAY "mC......" GET mC
READ
REPLACE A WITH mA;
,B WITH mB;
,C WITH mC
Ovo ne radi.
Pozdrav Bipin
clipper.620milanv,
I da zaključim,
ipak je kompjuter bio kriv! Naime posle dizanja haube i mrdanja
čipova, mašina je proradila kao nova, odnosno stara (samo da
tako i ostane - čuk, čuk).
Hvala svima na pomoći, možda će nekome i ovo iskustvo biti
korisno.
Milan.
clipper.621bulaja,
│Kako da u toku rada memoedit-a saznam koliko ukupno ima linija
│ukucani tekst. Znam za mlcount() ali on radi tek kad izadem iz
│memoedit-a tj. kad snimim editovani sadrzaj u promenljivu.
└───
Nazalost nikako :(. Jedino ako ti je MemoEdit potreban samo kao browse
(bez izmena), onda bi mogao nekako tako sto preusmeris tastere za
pomeranje kurzor (down, up, page,..) tako da azuriraju counter.
│A kad smo vec kod scrollbar-a, jer resio neko scrollbar u tbrowse-u.
└───
No problem, samo definises svoje blokove za Skip, GoTop i GoBottom tako
da pomeraju pointer na trenutni slog, npr. nesto ovako:
TB := TBrowseDB(...)
GO TOP
nRecPointer := 1
TB:skipBlock := ;
// ovo je lakse ubaciti u funkciju
{
| nSkip, i, GoreDole |
GoreDole := nSkip / Abs(nSkip)
// GoreDole - da li je skip up (-1) ili down (+1)
FOR i:=1 TO Abs(nSkip)
DBSkip (GoreDole)
IF EOF() .OR. BOF()
EXIT
ENDIF
nRecPointer := nRecPointer + GoreDole
NEXT
Nacrtaj_ScrlBar(nRecPointer)
i--
// vraca preko i koliko je preskoceno, valjda je ovako Ok :)
}
TB:goTopBlock := ;
{ ||
DBGoTop()
nRecPointer := 1
Nacrtaj_ScrlBar(nRecPointer)
}
TB:goBottomBlock := ;
{ ||
DBGoBottom()
nRecPointer := RecCount()
Nacrtaj_ScrlBar(nRecPointer)
}
Napravi jos da ti funkcija Nacrtaj_ScrlBar() crta scroll bar, raspodeli
separatore komandi (' i ;) po code blokovima (mene je mrzelo:) i thats'it.
clipper.622bulaja,
│Kako da iz GET-a upisem nesto u memo polje, npr.
│mA := mC = SPACE(5)
│mB := "Memo"
│@ x , y SAY "mA......" GET mA
│@ x+1, y SAY "mB......" GET /* MEMOEDIT( mB, x+1, y+1, x+5, y+20, .T.) */
│@ x+2, y SAY "mC......" GET mC
│READ
└───
Ne mozes direktno iz GET-a, ali bi npr. mogao
@ y+,x SAY "Memo:" GET BiloSta WHEN ;
EVAL ({ || ;
cMemo = MemoEdit (...) ,;
.F. ;
// vraca false da preskoci GET BiloSta
})
clipper.623nbatocanin,
Meni se skoro desilo da je korisnik uradio CHKDSK i pri tom napravio gomilu
CHK datoteka na C:\. Zatim je nešto brljao po CONFIG.SYS i kad je trebalo da
ga snimi, nije moglo zbog prekoračenja broja datoteka i tako je CONFIG.SYS
nestao. Naravno, sa njim i direktiva FILES=35... Možda je nešto tako?
clipper.624nbatocanin,
> .to nbatocanin
Stavio u TREBA.TXT... :)
> Uostalom, bilo bi umesno da se malo vise prica o
> PROJEKTOVANJU i KONCEPCIJI kao bitnim elementima u fazi
> radjanja programa.
Slažem se. Ovo jako nedostaje i "Računarima" i šire.
clipper.625nbatocanin,
> Da li neko zna kako iz Nbatocanin programa za pregled pre
> stampe R 75 da prikacim grficki amblem i da se prikaze na
> stampacu (navodno je bilo u ranijim brojevima, ali nisam
> nasao)
Nisam te baš najbolje razumeo, ali ako hoćeš na početku izveštaja da
štampaš grafički amblem, samo pošalješ štampaču unapred pripremljenu
sliku. Ne bi trebalo da bude većih problem. Objasni malo detaljnije
šta ti treba.
clipper.626bulaja,
**** new file ****
R:\IBMPC\CLIPPER\*.*
----------------------
bumenu12 arj 9339 BuMenu 1.2, poboljsani sistem menija za Clipper (bulaja)
15.05.93 - v1.2
─────────────────
- omoguceno predefinisanje standardne UPPER() funkcije
- omoguceno predefinisanje standardne INKEY() funkcije
- ispravljena greska u tretiranju tastera predefinisanih sa SET KEY TO
(sada je potpuno podrzano redefinisanje)
clipper.627bcetina,
>> Interesantno, problem nestaje kada ne radim sa SELECT, nego
>> svaki put otvaram i zatvaram fajlove, sto jem naravno, neprakticno.
Mislim da jednostavno COPY STRU TO ne dozvoljava da TO datoteka bude
otvorena u trenutku kopiranja.
clipper.628bulaja,
**** new file ****
R:\IBMPC\CLIPPER\*.*
----------------------
crc32 zip 5600* Clipper funkcija za racunanje 32-bit CRC (+ASM source)
netguide zip 27394* Network Guide za Clipper programere
clipper.629nbatocanin,
> Kako da iz GET-a upisem nesto u memo polje, npr.
Kao što neko reče, može pomoću WHEN, a možeš i pomoću izmene GET
reader-a. Kako se to radi, bilo je u jednom od prethodnih savetnika.
clipper.630ratman,
Izgleda da je tako, u medjuvremenu isprobao sam COPY TO i APPEND FROM
sa zatvaranjem i otvaranjem, i izgleda da samo tako radi!
Pomalo neprakticno, zbog indexa i tako to...
Thanx!
Dejan.
clipper.631ndragan,
/ preporučio ako je to prava reč, upravi SEZAM-a da se preorjen-
/ tiše makar na PKZIP 2.0 zbog bolje i brže kompresije, da bi
Jel' će moći 'set archiver pkzip2' ?
clipper.632ndragan,
/ č 5, 30 SAY 'trt-mrt'
/ č 5, 10 SAY 'bla-bla'
Ovo po difoltu generiše nov red; kad malo bolje razmislim, još jedan
ispis u peti red bi otišao na drugu stranu. Jesi li probao da odštampaš
to u fajl, tek da vidiš malo u heksu šta ima između '-mrt' i 'bla-', jel
samo CR ili samo LF ili CRLF...
Zar u kliperu ne postoji editor za izveštaje? Poslednji put sam ovako
pravio izveštaj pre godinu dana; otkako sam prešao na 'Modify report'
(FoxPro :), programi za štampe koji su tako pisani sveli su se sa
prosečnih 6K na 1,5K.
clipper.633ppekovic,
>> Nazalost nikako :(. Jedino ako ti je MemoEdit potreban samo kao browse
>> (bez izmena), onda bi mogao nekako tako sto preusmeris tastere za
>> pomeranje kurzor (down, up, page,..) tako da azuriraju counter.
Bez izmena je trivijalno jer pri svakom pozivu UDF-a se
prosleđuje trnutna pozicija kursora.
>> No problem, samo definises svoje blokove za Skip, GoTop i GoBottom tako
>> da pomeraju pointer na trenutni slog, npr. nesto ovako:
Mislio sam da postoji nešto elegantnije. Hvala u svakom
slučaju.
Paya
clipper.634lkudlik,
Imam dva pitanja ?
1)
Pomocu cega da u clipperu napravim
slozeni izvestaj (na stampacu).
2)
Kako da BLINKER podesim da mi radi
inkrementalno linkovanje (kad ubacujem,
u dati program neki veci modul iz drugog
programa).Javi se poruka da se mora izvrsiti
linkovanje(klasicno).
Lkudlik ;)
clipper.635dejanr,
>> Pomocu cega da u clipperu napravim slozeni izvestaj (na stampacu).
Pogledaj tekst Nenada Batoćanina u majskim "Računarima", bavi se
upravo tim problemom.
Sistemski to se radi pomoću REPORT-a, ali ako ozbiljnije radiš na
Clipper-u predložio bih da sam napraviš neko rešenje (poput tog koje
je opisano u "Računarima") jer ćeš na duži rok lakše praviti izveštaje
i imaćeš potpuniju kontrolu nad njihovim izgledom.
>> Kako da BLINKER podesim da mi radi inkrementalno linkovanje (kad
>> ubacujem, u dati program neki veci modul iz drugog programa).Javi
>> se poruka da se mora izvrsiti linkovanje(klasicno).
Blinker po default-u radi inkrementalno linkovanje, proveri samo da
u .LNK fajlu nisi stavio BLINKER INCREMENTAL OFF. To znači da se iza
svakog .OBJ-a ostavi nešto prostora, za male izmene. Ako su izmene
veće, nema mu druge nego da nanovo linkuje. Koliko prostora ostavlja,
to se reguliše opcijama (pogledaj BLINKER.NG) ali mislim da je
podrazumevana vrednost dobra, tj. da bi veliko povećanje učinilo
čitav sistem neefikasnim, a malo ne bi ništa naročito promenilo.
clipper.636pavbok,
B> Jel' će moći 'set archiver pkzip2' ?
Tako isto bi moglo i set archiver arj
set archiver zoo
set archiver arc
Pa ko voli nek izvoli.
clipper.637snemcev,
>> Zar u kliperu ne postoji editor za izveštaje? Poslednji put sam ovako
U tome da štampam?!? Pa onda nemam nikakvu kontrolu nad štampanjem.
clipper.638dejanr,
>> > Jel' će moći 'set archiver pkzip2' ?
>>
>> Tako isto bi moglo i set archiver arj
>> set archiver zoo
>> set archiver arc
Set srchiver arc valjda već sad može, set archiver arj i pkzip2 bi
trebalo da bude moguće na novom softveru kad jednog dana bude
instaliran, a set archiver zoo neće biti moguće jer taj arhiver
stvarno retko ko koristi.
clipper.639plus,
Molim da mi se javi neko ko ima Class(y). Unapred hvala!
P.S. Svojevremeno ga je bilo moguće skinuti sa HEKOM-a, ali
sad sam dobio ovakvu poruku:
CLASSY.ARJ 75512 bytes
*** Zo'n file-transfer gaat buiten uw limiet. ***
**** ***
H*** SORRY, DOWNLOAD NIET TOEGESTAAN ***
*** ***
*** Zie Bulletin 1 voon meer informatie. ***
clipper.640isimic,
Narode,
treba mi za Clipper biblioteka kojom bih na SVGA mogao prikazivati PCX sli~ice
u 256 boja. Probao sam sa Clipgraph, dGE, Flipper i Rshowpcx10 (uzeta sa
SEZAMA). Samo ova poslednja daje solidne rezultate, ali po{to je demo, ne mogu
da izbegnem pozdravnu poruku, i {to je jo{ gore, dozvoljava mi da vidim samo
prvu sli~icu koju pozovem iz aplikacije, posle vi{e ne}e da radi. Mo`e li mi
nekopomo}i.
Pozdrav,
Ivan.
clipper.641dejanr,
Evo spiska fajlova sa Blinker Support BBS-a (804 747 7333). Ako vas nešto
odatle zanima, mislim da će se naći mogućnost da se download-uje.
allblink.zipclipper.642ndragan,
/ nije menjano, ind. FILE je ispravan (ponovo reindeksiran),
Reindeksiranje izbegavam. Lakše mi je bilo da napišem program koji
generiše program za indeksiranje. Razlog: ako se iz bilo kojih razloga
skembeči indeksni fajl, na čelu sa zaglavljem mu, reindeks ne radi.
Indeksiranje lepo napravi nove indeksne fajlove; dobitak je i na tome
što ne moram da zipujem indekse (a od skora ni baze) kad selim
aplikaciju; program sam zna šta i kako treba da napravi.
clipper.643ndragan,
/ U istu kategoriju spadaju i uslovni indeksi. Sada se sa 'index ..
/ for..'
žestitamo kolegama na prinovi. Stvar se u foksu, inače, zove "filtrirani
indeks". žime ću sad da vas davim?
/ da se najbolji rezultati postizu kod indeksa gde ima puno blankova
/ (npr. indeks po prezimenu, po gradu i sl.) a osobito kod indeksa gde
Glavni dobitak kod .cdx indeksa nije samo u tome, nego što ga foks
interno žestoko koristi za pretrage; naime, ako postoji strukturni
indeks, on se 1. otvara i osvežava automatski, 2. za sve pretrage tipa
polje=izraz, polje between izraz1 and izraz2, i raznorazne druge
kombinacije u svim naredbama gde postoji For opcija, koristi ga za
optimizaciju tako što čita sâm .cdx umesto da čita bazu (ako postoji
indeks po tom polju). Ubrzanja su drastična, čak desetostruka u nekim
slučajevima.
/ su samo postojeci nesto poboljsani (error handling u Tbrowse, neke fn
Postoje li Valid, Picture i When opcije na celom slogu i pojedinim
poljima?
clipper.644ndragan,
/ Zasto je fajl (zaista, proverio sam iz dbu i dbase III) necitljiv!
žemu ono kopiranje strukture ako se već kopiraju slogovi? Drugo, da se
ne buni što žvrljaš po otvorenom fajlu?
clipper.645bipin,
║│Kako da iz GET-a upisem nesto u memo polje, npr.
║│č x+1, y SAY "mB......" GET /* MEMOEDIT( mB, x+1, y+1, x+5, y+20, .T.) */
║└───
║Ne mozes direktno iz GET-a, ali bi npr. mogao
║
║ č y+,x SAY "Memo:" GET BiloSta WHEN ;
║ EVAL (š đđ ;
║ cMemo = MemoEdit (...) ,;
║ .F. ;
║ // vraca false da preskoci GET BiloSta
║ ć)
╚═════════
Radi, hvala.
Dodao sam samo PICT "Memo" da ne brlja dalje ekran,
jer ako stavim "XXXX" izbacuje prvih 4 karaktera iz memo polja.
Bipin
clipper.646bulaja,
│P.S. Svojevremeno ga je bilo moguce skinuti sa HEKOM-a, ali
│sad sam dobio ovakvu poruku:
│CLASSY.ARJ 75512 bytes
│*** Zo'n file-transfer gaat buiten uw limiet. ***
└───
Pretpostavljam da ovo znaci da si presao file transfer limit :).
Pokusacemo da nabavimo taj Classy.
clipper.647snemcev,
>> Indeksiranje lepo napravi nove indeksne fajlove; dobitak je i na tome
>> što ne moram da zipujem indekse (a od skora ni baze) kad selim
>> aplikaciju; program sam zna šta i kako treba da napravi.
Ja ovako radim od početka. Apropo ovoga: može li nešto u stilu
DbSetIndex(...)
IF nekakva_greška
INDEX ON ...
ENDIF
Ako postoji index, upotrebljava se, a ako ne postoji, kreira se nov. Ono
što mene muči je kad van matičnog programa (nemoj da me neko pita zašto)
izmenim neke podatke koji učestvuju u ključu nekog indeksa. Onda indeksi
(što je i normalno) ništa ne valjaju, i rešenje je jedno DEL *.NTX a
zatim startovanje aplikacije koja sama napravi sve indekse. Ovo i nije
tako loše kad baze još nisu pune, al' kad je svaka po par mega sa po dva
indeksa, brzo ti presedne programiranje.
Rešenje bi (možda) bilo da se proverava datum izmene indeksa i datum
izmene baze, pa ako je datum izmene baze noviji, ajmo reindex, a ako
nije, sledi obično DbSetIndex. Jedini problem koji bi tu (eventualno)
iskrsao je šta kad su u bazi menjani podaci koji ne ulaze u ključ
indeksa? Došlo bi do bespotrebnog ponovnog kreiranja indeksa što i te
kako ume da potraje.
Pitanje za ovu poruku je: ima li iko pojma (ili knjigu za Clipper koja
zalazi u sitna crevca) da li se datum na indeks fajlu (ako je index
otvoren, normalno) ažurira sa svakom promenom baze? Ako je odgovor DA,
onda kako najlakše, bez preteranih egzibicija sa FOpen i sličnim
funkcijama, pročitati datum sa datoteke? Nešto u stilu DajGa('trt.mrt').
Teoretski, sva ova pitanja su nepotrebna jer zašto bi neko menjao
podatke van matičnog programa? Ja to često radim zbog dobitka na brzini.
Lakše mi je startovati dbu i izmeniti dva sloga nego startovati
alikaciju, sačekati da ona kreira indekse koje ću minut kasnije
pobrisati, prošetati se po menijima i maskama... Jednom rečju - brže mi
je ovako.
clipper.649fstevo,
Datoteka SUB_SET2.ZIP (dDBE(DBEDIT with a WHILE clause) je vrlo zanimljiva!
Ako ima još zainteresovanih predlažem da se prva download-uje.
Pozdrav kliperašima!
clipper.650dior,
da li neko ima Norton guide za graficku biblioteku FLIPPER za CLIPPER.
Pozdrav Slavisa
clipper.651ladislavs,
> Set srchiver arc valjda već sad može, set archiver arj i
> pkzip2 bi trebalo da bude moguće na novom softveru kad
Zar ne reče da je već sad moguće staviti PkZip 2.04?
ciLa.
clipper.652mrajacic,
Ovo sto si dobio otprilike znaci da si prekoracio neke limite
neznam Nemacki "tecno", saljem ti trazeni fajl mislim da je to
sto ti treba. Moze biti interesantno i drugima jer se radi o
MENI sistemu objektno reseno.
Pozdrav Milan
clsymenu.zipclipper.653d.petrovic,
Ima, samo mu nisu tu dikstle. Ako ne dobijes taj flipper.ng u skorije
vreme podseti me. U stvari... cini mi se da ima :), jer je flipper
davno bio na disku pa kako nisam imao vremena da ga protresem
utamanio sam ga.
clipper.654dejanr,
>> Zar ne reče da je već sad moguće staviti PkZip 2.04?
Pa, negde je na granici, tj. moguće je ali bi moglo da pravi
probleme u nekim podsistemima kada je deo memorije alociran
za eksterni program. Zato smo rešili da novi arhiveri sačekaju
novi softver.
clipper.655pusa,
Moj drugar (nije na sezamu) se zanima da li se nekom desilo
da sa blinker incremental off linkovan program radi, a kada je
incremental on sve radi osim TBROWSE. Kad dodje u TBROWSE prosto
se zamrzne. Ima li tu nekog leka?
clipper.656dr.grba,
>> generiše program za indeksiranje. Razlog: ako se iz bilo kojih razloga
>> skembeči indeksni fajl, na čelu sa zaglavljem mu, reindeks ne radi.
>> Indeksiranje lepo napravi nove indeksne fajlove; dobitak je i na tome
U ovome ti potpuno držim stranu. Idem u svojim programima dotle da
vezujem ispitivanje integriteta baza i indeksa na nekim karakterističnim
mestima u programu, što je vezano sa modulima za kreiranje baza/indeksa.
Pa, mislio sam da je tako nešto sasvim normalno u projektovanju zaštite.
A krajnja intencija je da XXX.EXE može sam da se distribuira, eventualno da
se smlati neki INSTALL program... I da me korisnik ne zove zbog gluposti...
Zbog svega ovoga do dana današnjeg nisam načisto da li da upotrebljavam
bazu strukture i opisa okruženja. Imam neke defaulte i pripremljen prostor
da za sat vremena prešaltam celu aplikaciju na eksterni zapis, ali to ne
radim. Šta kažu kolege koje imaju takve programe? Možda
if file(struct)
... // pročitaj iz baze, pa uključi te vrednosti
else
... // uključi defaulte iz programa i javi da nema
// baze strukture
endif
žini se, na prvu loptu, sasvim jasno i lako, ali mi miriše na zamku,
na nešto što tek treba da mi napravi probleme u budućnosti. Sada ne
pričam o eksperimentisanju, već o realnim uslovima pod kojim neki
program radi kod korisnika...
Vidim, pridružuju nam se i drugari iz PLUS-a, oni bi i te kako imali
šta da kažu (;
Pozdrav, dr Grba
clipper.657dr.grba,
>> žestitamo kolegama na prinovi. Stvar se u foksu, inače, zove "filtrirani
>> indeks". žime ću sad da vas davim?
Ne mogu više...
Usrdno molim da se za mog zemljaka otvori tema "stari lisac"
u kojoj će se pričati o prednostima FOX baterije u odnosu na
Clipper i ostalo. (;
Šta misliš, zašto se Clipper više koristi nego FoxPro na ovim
našim prostorima? Kakvo je poredjenje tamo gde svi (ili skoro svi)
kupuju svoje kompajlere i razvojne sisteme?
U ovom trenutku na stranu poredjenje, ali postoje (nažalost samo
hipotetički ):) uslovi u kojima vidim sebe kao programera u FoxPro
okruženju. Možda bih bio spreman i da žrtvujem sve što sam
dosada razvio u Clipperu... Ali, priča ide drugim tokom...
clipper.658pavbok,
B> Set srchiver arc valjda već sad može, set archiver arj i
B> pkzip2 bi trebalo da bude moguće na novom softveru kad jednog
B> dana bude
Kada će taj lep i sunčan dan?
clipper.659milanv,
║║ Reindeksiranje izbegavam. Lakše mi je bilo da napišem program koji
║║ generiše program za indeksiranje. Razlog: ako se iz bilo kojih razloga
Ne znam da li sam bio dovoljno jasan, možda i nisam, ali mi
cilji i nije bio da objašnjavam način rada programa (potpuno se
slažem sa tobom i tvojom koncepcijom), problem je bio u tome da je
i posle DEL *.NTX, a zatim kreiranja novih indeksnih fajlova,
program, a zatim i DOS ponavljao poruku (program da fajla nema,
a DOS - MEMORY ALOCATION ERROR).
Na moje zadovoljstvo problem je rešen ispravkom hardverske
greške (o načinu ispravke u poruci 9.620) :).
U svakom slučaju, hvala na trudu...
Pozdrav, Milan.
clipper.660snemcev,
>> if file(struct)
>> ... // pročitaj iz baze, pa uključi te vrednosti
>> else
>> ... // uključi defaulte iz programa i javi da nema
>> // baze strukture
>> endif
Ovo je interesantno. Ja sam radio po sistemu da se baze kreiraju
direktno iz aplikacije, al' me jedna rečenica u stilu "zašto mislite da
je sam .exe sigurniji od .dbf?" objavljena u tekstu "Knjiga u kojoj sve
piše" naterala da se prebacim na
if file(struct)
... // pročitaj iz baze, pa uključi te vrednosti
else
... // javi da nema baze strukture, a po mogućnosti
// zaglavi računar
endif
Ako nema baze strukture, logično je pomisliti da je još nešto za*ebano.
Bolje da me tad zovu nego kad oštete i ostale podatke, ako ih nisu već
uništili :(
clipper.661ndragan,
/ onda kako najlakše, bez preteranih egzibicija sa FOpen i sličnim
/ funkcijama, pročitati datum sa datoteke? Nešto u stilu
/ DajGa('trt.mrt').
U FP2.0 pa nadalje, postoji funkcija adir()
n=adir(niz,filespec,<attr>)
gde je n broj fajlova koji pasuju za _filespec_, _attr_ opcioni
argument koji sadrži proizvoljnu kombinaciju slova H, S, R, A, D, V
(hidden,... , directory, volume label) a _niz_ će biti kreiran i imaće
sledeću strukturu:
niz(i,1) File names Character
niz(i,2) File sizes Numeric
niz(i,3) File dates Date
niz(i,4) File times Character
niz(i,5) File attributes Character
Zgodan štos za rad sa gomilom fajlova je programče tipa
n=adir(fajlovi,"*.trt")
for i=1 to n
muljaj_nešto with fajlovi(i,1)
endfor
Opet, moguće je napraviti slučajeve kada je n obavezno jednak 1 ili 0,
što bi moglo da gađa pojedini .ntx (ili .cdx) fajl, pa da se vidi ne
samo datum nego i vreme. To koristim, recimo, kad hoću da se nekoj
sitnoj datotetci ne obraćam kroz mrežu, nego da je iskopiram na lokalni
disk, pa me zanima da li je kopija starija od originala. Sravnjujem
upravo pomoću Adir, što mi uštedi dva otvaranja (ono, Use to_i_to,
datum=lupdate() i slično).
clipper.662ndragan,
/ U tome da štampam?!? Pa onda nemam nikakvu kontrolu nad štampanjem.
Hteo sam da pitam da li postoji editor i kakav je.
Na šta misliš pod 'kontrolom nad štampanjem'? Na ispitivanje statusa
štampača pre svake linije? Za to se lepo šalje štampa u fajl, pa se taj
fajl ponudi na pregled (koliko to hartije uštedi - mnogo puta samo hoće
da vide nešto), pa se eventualno ponudi i bacanje na papir, a tamo već
čitaš taj fajl i štampaš ga red po red, i imaš kontrolu do daske.
clipper.663ndragan,
/ A krajnja intencija je da XXX.EXE može sam da se distribuira,
/ eventualno da se smlati neki INSTALL program... I da me korisnik ne
/ zove zbog gluposti...
Jedna druga stvar je takođe u igri. Treba da izmenja strukture baza kad
donesem novu verziju, ili da izmisli i nove baze ako ih u novoj verziji
ima, i da pritom prihvati i postojeće podatke i prebaci ih u novi
format. Napisao sam generator rutina koje to rade, a na kraju takvih
rutina obavezno se startuje rutina za indeksiranje.
Šta se toliko bojite indeksiranja? Ne traje to toliko dugo.
clipper.664ndragan,
/ Šta misliš, zašto se Clipper više koristi nego FoxPro na ovim
Slično sam čuo svojevremeno od šefa u prethodnoj firmi, kad sam ga
ubeđivao da pređemo sa kobola na bilo šta drugo, makar da neke stvari
uradim u vaks bejziku. Zaključak: svi rade kobol zato što svi rade
kobol.
/ U ovom trenutku na stranu poredjenje, ali postoje (nažalost samo
/ hipotetički ):) uslovi u kojima vidim sebe kao programera u FoxPro
Odluka o napuštanju klipera u korist foksa doneta je još 1988, posle
dužih analiza brzine, vremena potrebnog za stvaranje generatora i još
nekih stvari. Tada još nisam bio u ekipi, ali sam zadovoljan odlukom.
Foks jednostavno bolje leži mojoj prirodi - ponaša se kao kompletan
interpreter, sve mogu odmah da probam, linije koje otkucam u komandnom
prozoru ladno kopiram u program itd. Jeste postao glomazan, ali kad uđeš
imaš sve što ti treba, i ne moraš uopšte da izlaziš u DOS. Ko oni
američki turisti u Veneciji: "u kampu smo imali sve, i prodavnice, i
bioskope, i restorane, i nijednom nismo morali da idemo u grad".
clipper.665draganf,
Da li se kome desilo da prilikom APPEND BLANK Clipper javlja "Internal
error (19)" i to dva put uzastopce. Kada iz programa izdvojim samo tu
proceduru desi se da prođe normalno (90% slučajeva). Ovo se iznenada
počelo dešavati iako na programu nisu vršeni nikakvi zahvati.
Dragan
clipper.666dejanr,
>> Da li se kome desilo da prilikom APPEND BLANK Clipper javlja "Internal
>> error (19)" i to dva put uzastopce.
"Miriše" na problem sa indeksima, probaj da reindeksiraš datoteku.
Gadna stvar kod tih internal error-a je što izleće iz programa, izgleda
da ne konstatuje error handler kad mu se to desi.
clipper.667snemcev,
>> U FP2.0 pa nadalje, postoji funkcija adir()
>> n=adir(niz,filespec,<attr>)
Pa da! Kako se nisam setio onog Directory() iz Clipper-a! Znači, pored
"Knjige u kojoj sve piše" netreba mi ništa više. Hip, hip, hurah!
clipper.668snemcev,
>> Na šta misliš pod 'kontrolom nad štampanjem'? Na ispitivanje statusa
>> štampača pre svake linije? Za to se lepo šalje štampa u fajl, pa se
>> taj fajl ponudi na pregled (koliko to hartije uštedi - mnogo puta
>> samo hoće da vide nešto), pa se eventualno ponudi i bacanje na papir,
>> a tamo već čitaš taj fajl i štampaš ga red po red, i imaš kontrolu do
>> daske.
Jeste. Tako i radim, al' za kreiranje izveštaja na disku koristim sam
program a ne one .FRM fajlove Clipper-a. Ako radim preko .FRM kako da mu
objasnim da ako je konto sintetički, da ga najavi određenim zaglavljem,
zatim ispiše sva njegova analitička konta, to sabere, sabere i klasu i
na kraju da Grand total. Pa još po ukusu dodaj bold, italic, underline i
slične estetske dodatke. Verovatno se nisam dobro odrazio - pod
kontrolom nad štampanjem podrazumevam sve od kreiranja izveštaja,
preview-a, pa do otiska na papiru.
clipper.669draganf,
> "Miriše" na problem sa indeksima, probaj da reindeksiraš
> datoteku.
>
Nisu indeksi to sam prvo probao, usput postoji li igdje spisak šta mu
znači pojedini "internal".
Dragan
clipper.670dcolak,
│ Nisu indeksi to sam prvo probao, usput postoji li igdje spisak šta mu
│ znači pojedini "internal".
U originalnom uputstvu ? ;)
Sledge DAMMIR!
clipper.671dejanr,
>> > Nisu indeksi to sam prvo probao, usput postoji li igdje spisak šta mu
>> > znači pojedini "internal".
>>
>> U originalnom uputstvu ? ;)
To je sigurno poslednje mesto gde ga treba tražiti. Što se tiče autora
programa (ne samo Clipper-a), interne greške ne postoje ;) One zapravo
kažu da program nije dovoljno debagovan
Koliko sam video, u uputstvu za Clipper nema spiska internih greški.
clipper.672ppekovic,
>> Nisu indeksi to sam prvo probao, usput postoji li igdje spisak šta mu
>> znači pojedini "internal".
Meni se to dešavalo dok sam koristio hyperdisk cache. Od kada
sam ga skinuo, čuk, čuk, ...
Paya
clipper.673draganf,
Stvar je završila tako, da kad nije pomoglo ni uklanjanje svega iz
config.sys i autoexec.bat (što se može skloniti), urađeno je sve
nanovo (ll diska, format, instaliranje programa itd.). Ispostavilo
se da je compress kod analize medija našao dosta loših sektora koji
nisu bili u FAT-u označeni kao takvi. Kad smo ponovo počeli raditi sve
je išlo par sati dobro pa su ponovo počeli problemi sa diskom (loši
sektori). Ispada da se nekako dešavalo da se neki datoteke djelom bile
na "labavim" sektorima (tj. APPEND BLANK je vjerovatno probao da udari
na taj sektor). Neznam pametno objašnjenje ali ovako nekako ispada,jer
progam već dve godine radi i ovo mu je prvi put da pravi probleme.
Dragan
clipper.674bulaja,
**** new file ****
R:\IBMPC\CLIPPER\*.*
----------------------
clip52a zip 96584 CA-Clipper 5.2a - update sa verzije 5.2 (USA verzija)
CA-CLIPPER 5.2a - MAINTENANCE RELEASE UPDATE NOTES.
To address the minor problems found with the initial release of CA-Clipper 5.2
Computer Associates has produced patch files to update version 5.2 to version
5.2a.
PROBLEMS ADDRESSED BY CA-Clipper 5.2a
o C3049 - String Space exhausted. - Change to CLIPPER.EXE
The compiler has been changed to increase the available string
space. Developers whose applications compiled with this error in
previous versions of Clipper should no longer receive this error
message.
o Debugger Break Point Handling. - Change to CLD.EXE & CLD.LIB
The debugger has been changed to improve Break Point handling.
Developers who noticed difficulty in setting break points or noticed
that break points were lost upon application restart will no
longer have problems.
o Memoedit() double spacing problem. - Change to EXTEND.LIB
The Memoedit() function has been changed to alleviate a double
spacing effect which sometimes occurred. The only developers who
noticed this problem had memo field data which had a trailing space
at the wrap point. While this problem was uncommon it could be
very disconcerting in applications where the format of memo field
data is important.
o Inkey() setting Lastkey() to 0. - Change to CLIPPER.LIB
The Inkey() function has been changed. The Inkey() function in
CA-Clipper 5.2a will only set the Lastkey() value when a key is
drawn from the keyboard buffer. The Inkey() function in version
5.20 set the Lastkey() value to 0 when there was no key in the
keyboard buffer to retrieve and the time value expired. The 5.20
behavior had an adverse effect on several systems which use
Inkey(); for example Memoedit() with a custom UDF() where the UDF()
had been coded to expect the last navigational key pressed to be
available via Lastkey() would receive a value of 0.
o OrdSetFocus() tag in lowercase. - Change to DBFNTX.LIB
The OrdSetFocus() function will now accept parameters in any case.
Developers who changed their applications to use order names rather
than order numbers noticed that unless the name was in upper case
the order established would be natural (no) order. This problem was
unique to the DBFNTX driver.
o Tools-II with Clipper 5.2x - CT2PATCH.OBJ
Developers using Tools-II noticed unresolved symbols at link time.
This file will resolve these problems and should be included
as an object on the link line.
clipper.675bulaja,
│CA-Clipper 5.2a - update sa verzije 5.2 (USA verzija)
└───
Da jos jednom napomenem da je ovo update SAMO za USA (americku) verziju
Clipper-a 5.2. Potrudicemo se da nabavimo i medjunarodnu (international)
verziju.
Do you know if you have US or International product?
If you are unsure which version of CA-Clipper 5.2 you have installed on
your machine you should go to your OBJ directory and look for a file
called NAT_OBJ.EXE.
EXAMPLE:
C:\CLIPPER5\OBJ> DIR NAT_OBJ.EXE
If this file is present then you have the International version.
If this file is not present then you have the US version.
clipper.676arazumenic,
Da li neko zna zasto se ovo javlja kada se pozove komplajer sa opcijom /w
i kako da ga izbegne?
Clipper (R) Version 5.01
Copyright (c) Nantucket Corp 1985-1991. All Rights Reserved.
Microsoft C Floating Point Support Routines
Copyright (c) Microsoft Corp 1984-1987. All Rights Reserved.
151K available
Compiling LISTANJE.PRG
LISTANJE.PRG(83) Warning C1003 Ambiguous reference: 'GETLIST'
LISTANJE.PRG(84) Warning C1003 Ambiguous reference: 'GETLIST'
LISTANJE.PRG(84) Warning C1004 Ambiguous reference, assuming memvar:
'GETLIST
'
LISTANJE.PRG(97) Warning C1003 Ambiguous reference: 'GETLIST'
LISTANJE.PRG(98) Warning C1003 Ambiguous reference: 'GETLIST'
LISTANJE.PRG(98) Warning C1004 Ambiguous reference, assuming memvar:
'GETLIST
'
6 warnings
Evo kako izgledaju doticne linije:
@ 23,2 say "OPIS:" get Opis <- linija 83
read <- linija 84
Varijabla Opis je deklarsana kao LOCAL.
A kako god joj promenio deklaraciju, ne mogu da izbegnem ovu gomilu warnig-sa,
sto prilicno smeta kada se ovako prevodi program.
Sasa
clipper.677dejanr,
>> Da li neko zna zasto se ovo javlja kada se pozove komplajer sa opcijom
>> /w i kako da ga izbegne?
>> LISTANJE.PRG(83) Warning C1003 Ambiguous reference: 'GETLIST'
>> LISTANJE.PRG(84) Warning C1003 Ambiguous reference: 'GETLIST'
Javlja se zato što Clipper radi prevođenje u više nivoa, zapravo postojeći
Clipper jezik je neka vrsta "predprocesora" za Clipper jezik nižeg nivoa,
pa je onda to "predprocesor" za nekakav P kod. Ukratko, GET naredba u stvari
postoji tek zbog kompatibilnosti, a interno se to drugačije prevodi. GETLIST
je jedna struktura na nivou programa, uvedena baš da bi se sačuvala ta
kompatibilnost.
Lek: na početak procedure stavi LOCAL GETLIST={} i... to je sve! Naravno,
ako procedura poziva neku novu proceduru koja treba da "nastavi" GET,
onda u njoj ne treba staviti LOCAL GETLIST={} nego GETLIST preneti kao
argument. Bitno je da u svakoj proceduri u kojoj se koristi GETLIST bude
deklarisan.
Inače, podržavam prevođenje sa /W, i meni je mnogo puta pomoglo
clipper.678pjankovic,
> incremental on sve radi osim TBROWSE. Kad dodje u TBROWSE
> prosto se zamrzne. Ima li tu nekog leka?
Meni se desava da se jako uspori, ali se nikada nije blokirao.
To vazi samo za 286. Na jacim masinama skoro i ne primjecujem razliku u
brzini izvrsavanja programa, cak ni kada udje u TBROWSE.
clipper.679bingo,
Neso KAKO u pgledu pre stampe na stampanom izvestaju da u recimo
gornjem desnom uglu otkucam graficki amblem u nekom od grafickih
formata (.pcx,.gif....) i kako u mreznom radu omogucim da dvoje
otvore dva razlicita izvestaja ???
Otkrio sam bag u prepravljenom CLIPPERU
funkcija Aeval() ne radi uvek kako treba 5 do 6 puta uradi dobro
a onda 7 put ne uradi dobro. Konkrtno u nizu sam brojao koji je najduzi
clan niza (za menije,poruke itd..) . Kod kracih clanova niza je u redu
ali kod duzih se cudno ponasa. Proverio sam sa FOR NEXT petljom onda radi
normalno
IMALI JOS KO TAKAV PROBLEM ????
Pozdrav BINGO
clipper.680nbatocanin,
> da li neko ima Norton guide za graficku biblioteku FLIPPER
> za CLIPPER.
Zar se NG ne dobija uz Flipper?
clipper.681nbatocanin,
To nije ono što čovek traži: potreban mu je Class(y), a ne demo za
njegovo korišćenje. Ako neko ovo ima, neka mi se javi, i mene
interesuje. Nego, kako se pristupa ovom BBS-u?
clipper.682nbatocanin,
> Kad dodje u TBROWSE prosto se zamrzne.
Očigledno problemi sa memorijom. Ili da isključi INCREMENTAL ili
korišćenje EMS memorije.
clipper.683mrajacic,
Moguce da nije to no mislim da je sasvim moguce i iskoristiti
postojecu biblioteku da se ponesto uradi, mozda ima nesto i kompletnije
ali nisam nasao iako je spisak fajlova na tom BBS-u fajl od 250 Kb.
Pozoves broj koji je naznacen u zaglavlju i odgovaras na pitanja u
pitanju je PCboard pa se snadji bez novaca (SAMO PTT) mozes dosta toga
da skines, ako hoces da ti dostavim spisak pa da neskidas sto sam ja vec.
Pozdrav Milan
clipper.684mrajacic,
Iteresantno resenjae slanja FAXSA iz Clippera
Nova datoteka za razmatranje.
Pozdrav Milan
fpclip.zipclipper.685bora,
Use enzy New
Copy To enz1pat
Use enz1pat New
Select 2
List ... i sve ostalo
Bora
clipper.686arazumenic,
->>> Da li neko zna zasto se ovo javlja kada se pozove komplajer sa opcijom
->>> /w i kako da ga izbegne?
->>> LISTANJE.PRG(83) Warning C1003 Ambiguous reference: 'GETLIST'
->>> LISTANJE.PRG(84) Warning C1003 Ambiguous reference: 'GETLIST'
->Javlja se zato sto Clipper radi prevodenje u vise nivoa, zapravo postojeci
->Clipper jezik je neka vrsta "predprocesora" za Clipper jezik nizeg nivoa,
Hvala lepo.
Sada dobijam cist ekran, i 0 warning-sa.
Sasa
clipper.687nbatocanin,
> Neso KAKO u pgledu pre stampe na stampanom izvestaju da u
> recimo gornjem desnom uglu otkucam graficki amblem u nekom
> od grafickih formata (.pcx,.gif....) i kako u mreznom radu
> omogucim da dvoje otvore dva razlicita izvestaja ???
Ovo prvo je moguće jedino ako je ekran u grafičkom modu, a Clipper
radi u tekst modu, pa izlazi da ne može. Međutim, neke grafičke
biblioteke imaju dodatke za Clipper koji omogućavaju da aplikacija
bez ikakvih prepravki proradi u grafičkom režimu, a onda je prosto
nacrtati simbol. Što se tiče mreže, moraš generisati različite nazive
za izveštaj svakog korisnika. Znači, umesto PART1.PRT, USER1_01.PRT
ili nešto sl.
> Otkrio sam bag u prepravljenom CLIPPERU
Ovo je dosta neobično, lično nisam ništa primetio. Pošalji deo
programa koji brlja.
clipper.688snemcev,
>> ali$nisam nasao iako je spisak fajlova na tom BBS-u fajl od 250 Kb.
^
Ovo me već nervira! Jel' neko piše te dolare, il je Sezam pod uticajem
depresora centralnog nervnog sistema?!? Tri puta u istom pad-u. Po mom
mišljenju, to je dovoljan razlog da neko iz uprave reaguje. Na dve
pojave dolara sam reagovao odgovorom, a na jednu poruku (u Vicevima,
nesećam se koja) nisam.
clipper.689snemcev,
>> Use enzy New
>> Copy To enz1pat
>> Use enz1pat New
>> Select 2
>> List ... i sve ostalo
A šta će ti ono 'Select 2'?
clipper.690gari,
U dokumentaciji za Clipper 5.2 ne pise,
a nije kompatibilno sa C 5.01:
Mora da se na svim mestima u programima
promeni Close &ime_dat
u Close (ime_dat)
Pozdrav svima,
Gari
clipper.691vdarko,
Na molbu dPauna, koji više nije na Sezamu, ali "preko ramena" prati
ponešto od Clipper diskusija, postavljam sledeća pitanja:
1) Zna li neko nešto pobliže o alatima dBfee30 i iQery? Ovaj drugi sadrži
rutine za brzo indeksiranje, pronalaženje loših slogova i sl.
2) Gde se i kako može nabaviti ovde mnogohvaljeni Blinker?
3) Uz sve pohvale naporima nBatoćanina da od MemoEdita učini podnošljiv
editor, predlaže usmeravanje diskusije na ispitivanje mogućnosti
uključenja spoljnog editora za obradu teksta. DPaun je eksperimentisao
sa Q.EXE, ali je problem u tome što se prilikom kasnijeg MemoEdit-ovanja
teksta pisaog u Q, vidi "Ź" /CHR(141)/ ... Može li se, nekako, tekst
pisan Q-om "pročešljati" i meki markeri usaglasiti sa MemoEdit standardom?
clipper.692snemcev,
Nešo, daj bre .ch datoteku za REPEAT-UNTIL uz frm.prg u direktorijumu.
clipper.693smilan,
Nešo, .ch datoteka hitno potrebna.
Šifra "Nestrpljivi" :))
clipper.694smilan,
Prilikom startovanja RMAKE, a ponekad i kod normalni BAT radnji na tu temu,
javlja mi se greška:
BLINKER : 1173 : Internal error - EMS error code 93H
Error RMAKE / R2001 Exit1 : 'blinker @pos'
Naravno, u AUTOEXEC.BAT imam red sa EMS drajverom. Imam 2 MB rama i isključen
keš. U Blinker LNK fajlu postavio sam i liniju sa FILE ...
Draga Saveta, šta da radim. Pomišljam na najgore... :)))
P.S. Naravno, kada posle prijave ove greške otkucam samo red sa:
blinker @pos
sve proradi. Kod većih programa se posle ovoga dobije EXE fajl, ali
ponekad kod startovanja opet prijavi EMS error.
Pozdrav
clipper.695dr.grba,
>> Ako nema baze strukture, logično je pomisliti da je još nešto za*ebano.
>> Bolje da me tad zovu nego kad oštete i ostale podatke, ako ih nisu već
>> uništili :(
Da, u pravu ste i ti i Nenad... Ali, ja ću da ubacim "ali".
Ipak treba makar kriptovati polja baze strukture, ne bih voleo da mi neko
objašnjava kako da hakerišem sopstveni program... ili da mi ne objašnjava,
nego tiho i tajno upotrebljava DBU, pa kad nešto zas*re, ode kod direktora
i kaže da sam ja kriv.
(ovde me zamisliti kako škrgućem zubima)
Da ne bi ispalo da skrećem temu, već sam se pozitivno deklarisao u odnosu
na ideju korišćenja baza strukture. Ja samo nisam sposoban da smislim išta
pametno da zaštitim program od korisnika...
***
Uto evo i nove priče iz ličnog iskustva.
Zvoni telefon u mojoj kancelariji.
- Dragane, ovde XXX iz interne banke. Neće da radi indigo!
- ): ? (koji crni indigo je spopao?)
- Pa, ne mogu da štampam naloge...
Za tamo neke naloge koristi se NCR papir 1+2. Sve je jasno...
- O'ma' dolazim.
- KLIK.
Uletim u inkriminisanu prostoriju, obrušim se na štampač, tamo naopako
postavljen NCR papir (sa dvadesetak već potrošenih listova, al' nećemo
sad o tome). Izvadim papir, po običaju proverim stranu ključem (nikad
napamet), ona osoba viče "šta da radimo, šta da radimo?", ja okrenem papir
itd. itd, a ona posle po firmi priča kako ja umem da popravim štampač.
EPILOG : Kad je crkao linijski štampač, dok sam čekao servirera i neke
duge štampe bile odložene, jedan rukovodilac je pitao "Pa zašto ga ti
ne popraviš...".
Mamin mali programer...
I posle da takvima prodajem neki nazovi koncept baza podataka i mreža i
komunikacija i rke-koke, kamoli da im ostavljam programe zbog kojih ću
posle plakati...
clipper.696dr.grba,
>> Šta se toliko bojite indeksiranja? Ne traje to toliko dugo.
Ja se uopšte ne plašim indeksiranja. Štaviše, u mojim programima NIGDE
ne postoji reindex(), već odgovarajuća funkcija koja kaže
if file(indeksni fajl)
delete ovaj i onaj indeks,
endif
// pa onda lepo
index on izraz
Funkcija je jedinstvena za aplikaciju i šta ima da se mislim jel' dobar
keš program, jel' ima 889 nepovezanih klastera, jel' ga boli stomak itd.
clipper.697dr.grba,
>> uradim u vaks bejziku. Zaključak: svi rade kobol zato što svi rade kobol.
O, da.... ))):
>> Odluka o napuštanju klipera u korist foksa doneta je još 1988, posle
>> dužih analiza brzine, vremena potrebnog za stvaranje generatora i još
>> nekih stvari. Tada još nisam bio u ekipi, ali sam zadovoljan odlukom.
Analiza? Analiza? Š'a to beše? Plan razvoja? Projekat aplikacije?
Snimanje postojećeg stanja? Modularno programiranje? Rasad paradajza?
U mom okruženju ima programera(ki) koji su završili višu lavirintsku,
bar im se vidi po kodovima...
---> Swans? What swans?
clipper.698dr.grba,
E, pazi sad.
U svoje vreme, kad sam postavljao okruženje za Clipper 5.01, ispitivao
sam kako je najbolje postaviti okruženje da bi mi bilo lakše, brže itd.
Jedna od stvari koje sam našao za valjane je svakako i ramdrive koji
služi kao temp direktorijum za snjap i intermediate fajl.
Nakon milion godina, dobijem ti ja DOS 6.0 (znaju oni koji prate ms.dos
temu u PC.OS (;). I počnu problemi... Prilikom kompilacije programa :
Fatal C3032 : Can't create intermediate file
Molim? Kako? Zavirim u NG, kaže "uključi /t svič i nema boli glava".
Uključim /t svič, proradi, al' glava boli od pitanja.
Prošlo je neko vreme, /t je radio, i danas se uzjogunim da otkrijem kvaku.
Prvi trag sam dobio kada se programu MSD na startu nije dopalo
set tmp=i:Đ;d:Đtemp
I: je ramdrive, veličine 640 K - odrekao sam se keša. Dodao sam i d:Đtemp,
jer poštujem bon-ton. Upozoravam da navedene putanje postoje...I tako je
stajalo godinu dana. Ali, MSD kaže "Environment string is invalid".
Šta tu ima da je neispravno?...
I počne kombinovanje tmp varijable. Pa kako, pa zašto,...otkrijem da mu
separator ';' smeta, tj. da nema šanse da se prihvatwe dva direktorijuma
za tmp!!! Daj, pa ovo nema smisla. Probam da se iživljavam :
SET LIB=K:ĐLIB;C:ĐDOS;D:ĐTEMP ( K: je subst drajv, D:ĐCLIP501 )
I radi...
Slično sam razbucivao i INCLUDE direktorijum, i radi...
Ali dva direktorijuma u tmp ne prihvata. A da, onaj idiotski SET LIB i
SET INCLUDE ne smetaju MSD-u.
I sad stoji samo SET TMP=i:Đ i radi bez sviča /t. I prolaze sve kombinacije
koje u TMP varijabli nemaju ';', tj. samo jedan direktorijum. A ako se desi
da temp file prilikom linka preraste sav dodeljen prostor, link će pući, što
je empirijski dokazano. To mi se, doduše, još nije desilo u praksi, ali zato
ne volim neizvesnost.
U MS DOS 5.0 nije bilo frke. Nije mi jasno.
Ima li sličnih iskustava? Ima li ideja?
P.S. Možda je ipak trebalo ovo u PC.OS, ali me najpre zanima da li je iko
baš u sličnim okolnostima doživeo slično.
clipper.699dr.grba,
>> Nešo, daj bre .ch datoteku za REPEAT-UNTIL uz frm.prg u direktorijumu.
Je li bre, koji sam ti andrak pozajmio knjigu od Spence-a ? (;
clipper.700lkudlik,
>> Pomocu cega da u clipperu napravim slozeni izvestaj (na stampacu).
Ja inace kreiram izvestaj u R&R RELATIONAL REPORT WRITER.(ver 3B)
To je programce(moze se reci i biblioteka) koje moze da radi sa:
-dbase IV
-clipper
-dBXL
-FoxBASE+
-Quicksilver
Prvo startujes dati program uzmes dati format(clipper) vidis kako ce
izgledati sam izvestaj a zatim ga prevedes u prg.I zatim u programu
ga pozoves sa DO (stampa.prg) i kompajliras.
Interesuje me dali je ovo verzija za 5.01.
Program je inace HAOS za pravljenje izvestaja kako jednostavnih
tako i slozenih.
Lkudlik
clipper.701snemcev,
>> 2) Gde se i kako može nabaviti ovde mnogohvaljeni Blinker?
Probaj na Euklidu, odande sam ga ja skinuo.
clipper.702snemcev,
>> Je li bre, koji sam ti andrak pozajmio knjigu od Spence-a ? (;
Ali zar nije beskrajno lakše tražiti na Sezamu nego listati knjižurinu
od preko 500 strana? ;))) Btw, savest mi nalaže da kažem da negde na
disketama imam definisano i repeat-until i još par korisnih stvarčica.
Nije mi teško da napišem
#define REPEAT while .t.
#define UNTIL <exp> if !<exp> loop end
Znam da Sezam drži do sebe, pa kako onda izgleda da u svojim
direktorijumima ima nekompletne arhive. O:)
Na konto ove diskusije, pade mi na pamet (uf, al' je bilo teško ;) - da
li bih mogao da u STD.CH ubacim neke svoje naredbe, al' da pri
prevođenju ne koristim onaj 'alternate command set' tj. da nisam
obavezan da mu uz svaku naredbu za prevođenje dodajem nešto poput
/trt_mrt:MOJ_STD.CH? Može li i ovo da se utrpa u neku environment
promenljivu, CLIPERCMD npr?
clipper.703snemcev,
>> BLINKER : 1173 : Internal error - EMS error code 93H
Blinker.ng kaže:
Error 1172-1175 should not occur in normal operation. Please contact...
clipper.704snemcev,
>> Ipak treba makar kriptovati polja baze strukture, ne bih voleo da mi
>> neko objašnjava kako da hakerišem sopstveni program... ili da mi ne
>> objašnjava, nego tiho i tajno upotrebljava DBU, pa kad nešto zas*re,
>> ode kod direktora i kaže da sam ja kriv.
O ovome zaista treba razmisliti. Zasad sve korisnike držim pod budnim
okom i čim primetim nešto što odstupa od normalnog, alarm proradi. Al'
šta kad prodam program u 20,000,000 primeraka :)) Ko onda da pazi? A
treba misliti na budućnost... :))
clipper.705snemcev,
>> Funkcija je jedinstvena za aplikaciju i šta ima da se mislim jel'
>> dobar keš program, jel' ima 889 nepovezanih klastera, jel' ga boli
>> stomak itd.
Al' ipak ima da se misliš što inicijalizacija traje x (x>>2) minuta...
A posle misliš što ima "889 nepovezanih klastera"...
Pravo pitanje po sistemu "ko uzme - kajaće se, ko neuzme - kajaće se". :(
clipper.706nbatocanin,
> Moguce da nije to no mislim da je sasvim moguce i
> iskoristiti postojecu biblioteku da se ponesto uradi,
Ono je demo vezija, ali nisam siguran kako je ograničena? Inače, u
spisku se nalazi i CLASSY.ZIP i čini mi se da je to ono pravo. Ali,
pošto je ovo komercijalni proizvod, bojim se da je i ovo neki demo ??
> Pozoves broj koji je naznacen u zaglavlju i odgovaras na pitanja u
> pitanju je PCboard pa se snadji bez novaca (SAMO PTT) mozes dosta
> toga da skines, ako hoces da ti dostavim spisak pa da neskidas sto
> sam ja vec.
Znači, ništa preko jupak-a? ;(
clipper.707neman,
Analizirajuci demo program za Expand 3.0 naisao dam na sledecu komandu
INIT FUNCTION ime_funkcije
...
RETURN
Klauzula INIT kaze da se po pozivanju programa izvrsi prvo ta procedura a
ne eventualno MAIN ako postoji.
Npr.
Program u datoteci P.PRG
PROC main
? "*"
RETURN
INIT FUNC main_2
? "!"
RETURN
Kada se P.PRG prevede i pokrene na ekranu ce se ispisati "!"
neman
clipper.708ndragan,
/ program a ne one .FRM fajlove Clipper-a. Ako radim preko .FRM kako da
.frm je đubre, ali zato da vidiš na šta liči .frx... eve ga jedan ekran,
da vidiš na šta liči editor:
PgHead
PgHead ZA PERIOD: MPOCDAT DO MZAVDAT
PgHead ══════════════════════════════════════════════════════════════════
PgHead Korisnik Naziv
PgHead Šifra posla prevoz Sati
PgHead ══════════════════════════════════════════════════════════════════
┌1─eof()Š
┌2─kupac
┌3─broj Š kupac naziv1 Ugovor broj
Detail ──────────────────────────────────────────────────────────────────
Detail mater naziv pre nazpre
Detail sta
└3─broj Š
└2─kupac ══════════════════════════════════════════════════════════════════
└2─kupac UKUPNO SATI ZA KUPCA : sa
└2─kupac ══════════════════════════════════════════════════════════════════
└1─eof()Š UKUPNO SATI ZA PERIOD: sa
clipper.709dr.grba,
>> Ali zar nije beskrajno lakše tražiti na Sezamu nego listati knjižurinu
>> od preko 500 strana? ;))) Btw, savest mi nalaže da kažem da negde na
Zlobo, Zlobo (((;
1. Na kraju imaš indeks tema i termina
2. Dobio si i disketu.
Izgleda si i ti lenština kao i ja... (;
clipper.710dr.grba,
Jednu stvar nisam dosada decidirano pročitao, ili mi je promakla :
Da li je Clipper 5.2 vertikalno kompatibilan sa Clipperom 5.01?
Tj., da li je na nivou source-a Clipper 5.01 prohodan kroz kompajler
verzije 5.2 U POTPUNOSTI? A eksterne biblioteke tipa Nanforuma?
clipper.711dejanr,
>> Da li je Clipper 5.2 vertikalno kompatibilan sa Clipperom 5.01?
Koliko sam video, jeste. Pustio sam par najduzih programa koje sam
imao, i prevedoše se bez problema.
Naravno, može biti da ima nekih suptilnih različica ;)
clipper.712snemcev,
>> Izgleda si i ti lenština kao i ja... (;
Izgleda... Uzgred, u onoj mojoj poruci treba #command, a fali i jedan
end i dva-tri puta ;. Nema veze, poslužilo je samo za ilustraciju ;)
clipper.713snemcev,
>> Tj., da li je na nivou source-a Clipper 5.01 prohodan kroz kompajler
>> verzije 5.2 U POTPUNOSTI? A eksterne biblioteke tipa Nanforuma?
Sudeći po tome da re verzija ostala 5.* trebalo bi sve da funkcioniše.
Vidiš, ovo mi upošte nije palo na pamet kao pitanje već kao nešto što
treba po defaultu da važi. Zaista bi im trebao debeli razlog, pa da se
odreknu kompatibilnosti, a sudeći po najavama, ništa nije epohalno novo.
clipper.714nbatocanin,
> 1) Zna li neko nešto pobliže o alatima dBfee30 i iQery?
> Ovaj drugi sadrži rutine za brzo indeksiranje,
> pronalaženje loših slogova i sl.
Ne znam ništa, ali mi bih voleo da vidim.
> 2) Gde se i kako može nabaviti ovde mnogohvaljeni Blinker?
Zar je to problem ;) Ako je baš, neka se javi.
> 3) Uz sve pohvale naporima nBatoćanina da od MemoEdita
> učini podnošljiv editor, predlaže usmeravanje diskusije na
> ispitivanje mogućnosti uključenja spoljnog editora za
> obradu teksta.
Taj problem je rešen pojavom Blinker-a. SwapRunCmd i gotovo.
> Može li se, nekako, tekst pisan Q-om "pročešljati" i meki markeri
> usaglasiti sa MemoEdit standardom?
Ako ništa drugo ne upali, može StrTran. Inače, pravo rešenje je
objektno orijentisani MemoEdit. Pročitao sam da je to već
napravljeno, a neko mi reče da ga ima i kod nas. Clipper 6.0 bi to
morao da sadrži.
clipper.715nbatocanin,
> Nešo, daj bre .ch datoteku za REPEAT-UNTIL uz frm.prg u
> direktorijumu.
Bre, ljudi, ovo je bilo sto puta:
#command REPEAT => WHILE .T.
#command UNTIL <Expr> => IF <Expr> ; EXIT ; END ; END
clipper.716nbatocanin,
> BLINKER : 1173 : Internal error - EMS error code 93H
> Error RMAKE / R2001 Exit1 : 'blinker @pos'
:(((( Bogami, ovaj Blinker i nije baš previše pouzdan. I meni se juče
žalili korisnici na neki Internal Error.
clipper.717nbatocanin,
> Ima li sličnih iskustava? Ima li ideja?
Ja ne koristim SET TMP, jerbo imam dosta RAM-a, pa rTLink i ne kreira
one tmpove. A kad baš kreira, neka kreira u tekućem diru. Sad koristim
Blinker i njemu to takođe ne treba. A u NG-u lepo stoji da LIB i
INCLUDE sadrže *listu* kataloga, a TMP samo jedan. Za LIB i INCLUDE
mora tako (ako koristiš C, i njemu treba SET LIB). Za ostatak
problema ne znam.
clipper.718smilan,
>> #define REPEAT while .t.
>> #define UNTIL <exp> if !<exp> loop end
Može i ovako:
#command REPEAT => DO WHILE .T.
#command UNTIL <exp> => IF <exp> ; EXIT ; END ; END
Pozdrav!
clipper.719ematic,
Bug or feature ?
Iako je stigao i Clipper 5.2, neki inertniji korisnici (npr. ja ;)
još koriste 'stari' 5.01 i zadovoljni su i njime (dok se ne ispita
novi ;). Međutim, prilikom apdejtovanja (dobar izraz, a ? ;) na CA
5.01a pomoću patcha sa Sezama i ponovnog prevođenja, program koji mi
je do tada sasvim lepo radio počeo je da puca. To parče je otprilike
ovakvo:
> static function swap(b)
>
> local col1 := b:getColumn(1), col2 := b:getColumn(2), searcher, slican
>
> set order to if( indexord() == PERA_ORD, MIKA_ORD, PERA_ORD )
> searcher := fieldget(indexord())
> slican := alltrim(searcher)
>
> // col1:colorBlock := NIL // Ovde CA update daje runtime grešku
> col1:colorBlock := {|x| NIL } // zato mora npr. ovako
> // col1:colorBlock := {|x| {6,2}} // ili ovako, mada preferiram gornje
>
> col2:colorBlock := { |x| if( x == searcher, {5,5},;
> if( at(slican, x) == 1, {4,4}, {6,2})) }
>
> b:setColumn(1,col2)
> b:setColumn(2,col1)
> b:configure()
> b:refreshAll()
> donebeep()
>
> return NIL
(u programu se b prenosi po referenci, to je ok)
Xmmmm ;(. Reko' ajd' da pročitam uputstvo ;). Elem, u gajdama za CA
update piše sledeće:
> Assigning invalid data to TBrowse and TBColumn
> instance variables would not generate an error in
> Clipper 5.01. Type checking during instance <- axa !
> variable assignment has been added in Clipper 5.01a
> to trap invalid values and produce a recoverable
> runtime error.
>
> The problem commonly occurs when assigning a NIL <- to li je, al' ipak...
> value to an instance variable as a result of an
> optional parameter:
> blablatruć, sledi primer...
Dobro, slažem se, nije to loše. Međutim, prilikom prvog poziva swap
f-je, colorBlock *ima vrednost NIL* za obe kolone u objektu, a ne
kodni blok (što se vidi u dibageru). Prema tome, ne razumem kako bi
bilo nedozvoljeno dodeljivati vrednost koja je već inicijalno
postavljena (ili nepostavljena, kako hoćete :)), pa prema tome i
dozvoljena ? Ako se npr. colorBlock instanci dodeljuje kodni blok,
zašto onda nije odmah definisana kao blok, već kao NIL ? Cccc,
traljavo.
Moj zaključak je da se u CA Clipperu instancama objekta koje trebaju
da imaju vrednost NIL, odnosno default vrednost (kao što sam ja
radio), ista dodeljuje preko kodnog bloka oblika { |x| NIL }. Stoga,
probajte da u starim listinzima, gde se služite sličnom tehnikom kao
ja gore, upotrebite to rešenje.
Šta kompetentniji od mene (npr. nbatoćanin) misle o ovome ?
p.s.izvinjavam se što je poruka konfuzno napisana, al' valjda će
neko da shvati šta sam mislio da kažem/pitam :)))
p.s.s. da, znam šta je to NIL, al lakše mi je da govorim o istom kao
o vrednosti :))
clipper.720pusa,
> Ocigledno problemi sa memorijom. Ili da iskljuci INCREMENTAL ili
> koriscenje EMS memorije
Covek stvarno sad radi sa incremental iskljucenim ali onda slaba
korist od tog drugog linkera. Kojom opcijom da proba da iskljuci
koriscenje EMS?
Hvala unapred
clipper.721ppekovic,
>> odreknu kompatibilnosti, a sudeći po najavama, ništa nije epohalno novo.
Što se komaptibilnosti tiče i ne treba da bude ništa epohalno
novo, ali je za mene epohalno novo sistem izmenjivih database
driver-a.
Paya
clipper.722bulaja,
**** new file ****
R:\IBMPC\CLIPPER\*.*
----------------------
dbuplus arj 66367 DBU Plus, update za Clipper 5.01 (CA)
DBU Plus
--------
This version of DBU resolves several problems found with the supplied
version. More importantly it adds some additional functionality to the
utility, including
o Network aware - access/modify files already opened share
o Import/Export memo fields
o Maximize/Minimize memoedit window
o Indexing Gauge Bar
o Dates in British Format
o Delete/Recall records with FOR, WHILE and NEXT criteria
o UDF functions within index expression including DESCEND
clipper.723bulaja,
**** new file ****
R:\IBMPC\CLIPPER\*.*
----------------------
fedo10 arj 26172 FastEdit 1.0ß, objektno orijentisana zamena za MemoEdit()
FastEdit is an object oriented editor library for use within
Clipper 5.01 applications. Since Clipper 5.01 is not truly
object oriented, FastEdit depends on external libraries, such
as Class(y) and o:Clip, to provide the OO extensions.
FastEdit is a complete replacement for the Clipper MEMOEDIT()
function. While MEMOEDIT() gives a small amount of control
over your memo editing capabilities, FastEdit gives you total
control.
FEATURES
────────
Here are a few of the things you can do under FastEdit which are impossible
using MEMOEDIT():
- Block operations. Move, copy, delete, & save are just a few of
the operations you can do on blocks.
- Embedded printer codes. Use these to support operations such as
bold and underline. These embedded codes may be displayed as part
of the text being editing (ie [BOLD] shown where bold is turned on)
or cause a color change of the specified text (ie text to be made
bold is displayed hilited).
- Rectangular Gets. Using this feature you can edit long character
strings in a rectangular area. For example, suppose you have a
character field of length 150 characters and you want to edit this
across 3 lines of 50-characters each. To do this in Clipper, you
would have to break the line into 3 different strings and do a GET
on each one. With FastEdit, just define the rectangular area and
the user will get full editing capabilities--and you don't have
to worry about the resulting string being longer than 150 characters.
- Enhanced cursor control. Including word operations, horizontal
and vertical panning, and completely configurable key control.
Emulating your favorite word-processor within Clipper is not out
of the question.
- Multiple edit windows. Display multiple edit windows on the screen
at the same time, and switch between them at the press of a key.
Or, incorporate FastEdit directly into your GET system.
- Search & Replace. (Not completely implemented yet)
- A completely configurable editor environment. The possibilities
are too numerous to mention!
clipper.724bulaja,
Evo ga Class(Y). Nazalost ovo je verzija samo za Clipper 5.0, tako
da je slabo upotrebljiva, ali bar se moze videti cemu to sluzi :).
Welcome to Class(y).lib, the object oriented extension to Clipper 5.0.
Class(y).lib allows the creation of user-defined object classes (UDOs)
in Clipper 5.0 and 5.01. It also provides all the features required to
develop fully object oriented programs. Class(y).lib elevates Clipper
to the level of languages such as C++ and Smalltalk, making it one of
the most attractive choices for software development in today's market.
The software associated with this file is being released free of charge
for evaluation purposes. It will only work with Clipper 5.0. The version
for Clipper 5.01, which is currently under production, will be sold as a
regular product. For those who have already deleted 5.0 off their hard
disks <g>, a restricted demonstration version for 5.01 is being prepared.
classy.arjclipper.725nbatocanin,
> INIT FUNCTION ime_funkcije
Ovo je postojalo u Clipper-u 5.0, ali nije bilo dokumentovano. U 5.0
postoje INIT PROC i EXIT PROC i dokumentovane su.
clipper.726nbatocanin,
> Da li je Clipper 5.2 vertikalno kompatibilan sa Clipperom
> 5.01?
Bilo bi veoma glupo od njih da nije.
clipper.727ndragan,
/ Al' ipak ima da se misliš što inicijalizacija traje x (x>>2) minuta...
E, šta kliperaši podrazumevaju pod inicijalizacijom? Kod nas to čudo ne
postoji, ili ne mislimo na istu stvar.
A procedura za indeksiranje je dostupna iz menija, a mušterijama u tri
rečenice objasnimo u kojim situacijama nije zgoreg da se pusti, što
piše i u uputstvu.
clipper.728dr.grba,
>> Vidiš, ovo mi upošte nije palo na pamet kao pitanje već kao nešto što
>> treba po defaultu da važi.
E, zbog tog "defaulta" su mnogi sate i sate izgubili ):. Jasno je da
najpre STD.CH, a potom i neke druge smicalice postoje da bi se obezbedila
kompatibilnost. Uostalom, U NG fajlu lepo piše da se za obsolete komande
i funkcije ne garantuje kompatibilnost, a za ... bla-bla.
>> Zaista bi im trebao debeli razlog, pa da se
>> odreknu kompatibilnosti, a sudeći po najavama, ništa nije epohalno novo.
Već spomenu Dejan u replici na moje pitanje, "može biti da ima nekih
suptilnih različica", i time je strefio na šta sam mislio pitajući.
A što se tiče novina U Cl 5.2, već smo pričali o raznim aspektima noviteta
koji postoje...
clipper.729dr.grba,
>> :(((( Bogami, ovaj Blinker i nije baš previše pouzdan. I meni se juče
>> žalili korisnici na neki Internal Error.
Znate šta? Nisam siguran, ali ovo mi smrdi na loš odnos sa programom
za keširanje diska...
---> "Tvoj kešer smrđi!". "Nje, Blinher smrđi".
clipper.730dr.grba,
>> Ja ne koristim SET TMP, jerbo imam dosta RAM-a, pa rTLink i ne kreira
>> one tmpove.
Da li to znači da se rTLink inteligentno ponaša u odnosu na EMS / XMS
memoriju? Ovo je vredno eksperimentisanja...
>> ...A u NG-u lepo stoji da LIB i
>> INCLUDE sadrže *listu* kataloga, a TMP samo jedan.
Da, tačno, iako mi je promaklo... Ali opet, prvi put u MS DOS-u 6.0
sam doživeo probleme zbog toga...
Sada smo se sasvim spontano dotakli jedne teme, za koju bi možda bilo
zanimljivo da je ovde apsolviramo : kako optimalno setovati mašinu za
rad / programiranje u Clipper-u 5.xx. Ja već rekoh da sam se odrekao
keša nasuprot RAM drajva i ubrzanje je dvostruko... imam 286 mašinu
sa žestoka 2 megabajta i zver od diska čije vreme pristupa se meri
kretanjem sunca. Izbor nije baš velik, a svaka sugestija je dobrodošla.
Dakle?
clipper.731dr.grba,
>> Što se komaptibilnosti tiče i ne treba da bude ništa epohalno
>> novo, ali je za mene epohalno novo sistem izmenjivih database
>> driver-a.
Sa kojima ću se sigurno dooooooooooobro poigrati pre nego što se rešim
na korak definitivne migracije na Cl 5.2.
clipper.732snemcev,
>> Što se komaptibilnosti tiče i ne treba da bude ništa epohalno
>> novo, ali je za mene epohalno novo sistem izmenjivih database
>> driver-a.
Pa zar to nije moglo i iz Clipper-a 5.01 naredbom USE ... VIA <cDriver>?
Da nije novo to što se sad ovo da proveriti i u praksi?
clipper.733bingo,
Greska takvog tipa da skrati niz u 100 puta 3ga
skrati.Aeval pravi gresku jedino u kombinaciji sa Lenom inace
dobro radi vidi sta se desava. Probano je na puno masina
i uvek se dogadja isto cak je i procenat greske isti.
Molio bih te za detaljnija objasnjenja za rad sa pregledom pre stampe
u mrezi kako to da uradim.
Pozdrav Bingo
o7ŐóÍy`▄ÝőĂl)¤áŞ}[y
box.prgclipper.734bulaja,
││Al' ipak ima da se mislis sto inicijalizacija traje x (x>>2) minuta...
│└───
│E, sta kliperasi podrazumevaju pod inicijalizacijom? Kod nas to cudo
│ne postoji, ili ne mislimo na istu stvar.
└───
Ili si propustio pocetak diskusije :). Pod "inicijalizacijom" se
podrazumevalo vreme da se svaki put uradi ponovni INDEX ON, sto je
neko predlozio kao resenje za probleme sa corrupted indeksima.
clipper.735bulaja,
│Da li to znaci da se rTLink inteligentno ponasa u odnosu na EMS / XMS
│memoriju? Ovo je vredno eksperimentisanja...
└───
Znaci, ali to i nije neka inteligencija :). RTLink uzima EMS memoriju
dok je ima, kad mu nestane memorije pravi swap file na disku. Koliko
memorije memorije mu treba zavisi od aplikacije, ali cini mi se da to
nikako nije ispod 500-600 Kb.
clipper.736ppekovic,
>> Pa zar to nije moglo i iz Clipper-a 5.01 naredbom USE ... VIA <cDriver>?
>> Da nije novo to što se sad ovo da proveriti i u praksi?
Moglo je, ali od drajver-a ni traga, a struktura je bila
poznata samo nantucket-u (CA-u).
Paya
clipper.737snemcev,
>> E, šta kliperaši podrazumevaju pod inicijalizacijom? Kod nas to čudo
>> ne postoji, ili ne mislimo na istu stvar.
Podrazumevam sve ono što treba uraditi od momenta startovanja aplikacije
pa dok korisnik ne dobije meni na ekranu. To znači provera i po potrebi
kreiranje baza podataka, provera integriteta podataka, provera i (po
potrebi) kreiranje indekasa (jel' tako, koji to padež beše...;) a ovo
poslednje je jedino što ume da potraje nerazumno dugo vremena.
clipper.738ematic,
U vezi Internal error-a, dal' neko može da dobavi ovo ?:
> INTERNAL ERRORS No documentation. See User-upload, CL5IEn.ZIP
> ══════════
> Clipper Version 1.29 dtd 04/15/91.
>
> Problem Statement
>
> Nantucket(r) has not supplied Internal Error documentation.
>
> Work Around
>
> None; however, CL5IEn.ZIP in the NanForum library may be of some help.
══════════════════════════════════
clipper.739nbatocanin,
> slaba korist od tog drugog linkera. Kojom opcijom da proba
> da iskljuci koriscenje EMS?
BLINKER CACHE EMS
clipper.740nbatocanin,
> Bug or feature ?
Očigledno je da CA pokušava da završi posao započet prelazom S'87 ->
5.0, a to je strožija sintaksa. Mislim da je ovaj prelaz odlično (tj.
bezbolno) napravljen. E sad, ove poslednje izmene nisu tako krupne,
ali vidim da prave probleme u programima. Nadam se da će se to
kasnije isplatiti: bolje da sad da sintaksnu grešku, a da posle imamo
OK objekte ;) I dalje mislim da ako se 5.2 pokaže pouzdanim
(testiranje je u toku) da se isplati preći na njega!
clipper.741dusanp,
Imam problema sa koriscenjem SWPRUNCMD-a. Bilo kako ga pozvao
(da, sve sam lepo podesio) on swapuje na disk. Ima 4 mega slobodno
gore, sto xms-a sto ems-a, a on nikako da ih konstatuje. Jel
sam bio jasan? Kako svima vama radi ok, nisam primetio da se jos
neko zali?
clipper.742ematic,
> kasnije isplatiti: bolje da sad da sintaksnu grešku, a da posle
> imamo OK objekte ;) I dalje mislim da ako se 5.2 pokaže
> pouzdanim (testiranje je u toku) da se isplati preći na njega!
Bilo bi predivno da CA 5.01a daje *sintaksnu* grešku, al' naprotiv :(,
sůmo prevođenje ide normalno, što će reći da kompajler *prihvata*
stvari tipa c:colorBlock := NIL koje su po 'novom' nelegalne. Zato
program radi naizgled normalno, sve dok ne naleti na ovakvo
dodeljivanje, a onda... TBROW xxxx greška ili nešto slično, ne sećam
se tačno. Ako je nešto 'na površini' onda nije strašno, ali ako se
nalazi u nekoj retko pozivanoj f-ji, onda Marfi radi prekovremeno ;).
Ovako se javlja nekompatibilnost sa Nantucket-ovim 5.01 koja se
ispoljava na najgori mogući način, prilikom rada programa.
Druga stvar je što, bar ja tako mislim, ako stvarno hoćemo da
imamo OK objekte oni trebalo i da se OK inicijalizuju, dakle,
nedopustivo je da neka instanca prilikom inicijalizacije preuzme
vrednost koja je ilegalnog tipa, što se upravo i dešava. Kompajler bi
ipak trebao da bude dovoljno pametan da primeti takve stvari, bar
tamo gde se ilegalna vrednost, tj. neodgovarajućeg tipa, eksplicitno
dodeljuje, što se u stvari i desilo.
CA je započeo fin posao, ali ga nije realizovao na najkorektniji
način. Zanima me kako se Clipper 5.2 nosi sa ovim problemima ? Btw,
koliko vidim 5.2 donosi puno lepih stvari, tako da se potpuno slažem
s tim da nakon provere treba preći na njega.
clipper.743ndragan,
/ Ili si propustio pocetak diskusije :). Pod "inicijalizacijom" se
/ podrazumevalo vreme da se svaki put uradi ponovni INDEX ON, sto je
Nisam propustio, nego sam hteo da čujem naglas. Video sam dovoljan broj
kliper aplikacija koje počinju sa totalnim indeksiranjem svega i
svačega, što je na kilavijim makinama zaista trajalo, pa me zanimalo
zašto se to radi.
Ja baš nikad ne radim tako (tj. cela mi firma). Procedura za
indeksiranje postoji, dostupna je iz menija, a korisniku se kaže kad bi
trebalo da indeksira - jednom nedeljno, ili ako primeti neki od
simptoma, ili ako mu telefonom poručimo da to uradi. Vredelo bi, takođe,
da napravimo test brzine indeksiranja (sve verzije klipera, i tri
verzije foksa u opticaju) sa istim .dbf i istim ključevima. Sve mi se
čini da je S87 imao dosta sporu rutinu za indeksiranje.
clipper.744ndragan,
E, našao sam jedan bugi u funkciji Adir() (u FP2.0), a pošto čujem da
slična postoji i u kliperu, žajde da vidimo u čemu je štos.
Rutine za izradu štampe puštam iz jedne generalne rutine - nekakvog
menija sa promptovima "izrada - pregled - štampa - delimična štampa -
podešavanje štampača". Iz te rutine usput i popunjavam neku bazu za
statistiku štampe. Kad već to radim, ubacim i da popamti vremena, i to
ovako:
t1=time()
do (_rutina)
t2=time()
Posle toga, proverim da li je _rutina napravila nešto, dakle
n=adir(_c,_stampa)
_stampa naravno može da već postoji na disku, pa zato sravnim datum i
vreme, i tu je zbunj. Vreme nastanka (u stvari, zatvaranja) fajla na
disku je ažurno u rezoluciji od dve sekunde, dok je u t1 i t2 ažurno u
sekundu; odatle dobijam ovako nešto:
Dosovi podaci u direktorijumu, kako ih vidi adir()
_C Priv A
( 1, 1) C "KARTROB.TXT" ime fajla
( 1, 2) N 1832 ( 1832.00000000) dužina
( 1, 3) D 27.05.93 datum
( 1, 4) C "19:06:28" vreme
( 1, 5) C ".A..." atributi
Prema FoksProovom časovniku, rutina koja je napravila fajl, startovana
je u 19:06:38 a završila u 19:06:57. Zašto je dos zapisao ranije vreme?
Nije, nego _adir() ne vodi računa o tome da je ono po dve sekunde, ne
pomnoži sa dva i napiše "19:06:28" umesto "19:06:56" ili "19:06:57".
Ukapiram to i skratim test na sate i minute... i opet nađem situaciju
kad se dosov časovnik ne slaže sa funkcijom time() za par minuta; ispada
da je fajl za toliko stariji (na disku). E, sad se i babo češka po
glavi... Testiraću ovo malo podrobnije.
clipper.745bulaja,
│Vreme nastanka (u stvari, zatvaranja) fajla na disku je azurno
│u rezoluciji od dve sekunde,
└───
Nije stvar ni u Foxu (a ni u Clipperu), vec DOS za sekunde u file
date/time koristi 5 bita, pa zato vreme ide u rezoluciji od dve
sekunde.
clipper.746nbatocanin,
Bre ljudi, što se danas razočarah! Isprobavao sam Clipper 5.2 i ima
zaista lepih stvari. Taman sam se naoštrio da pređem na DBFCDX
drajver, kad, ne čuči vraže: performanse su mu po mojim merenjima
katastrofalno gore od DBFNTX drajvera! Jedinu malu prednost sam uočio
kod veoma malih datoteka (do 1000 slogova), ali i to je za dlaku.
Probao sam sve: i različite podatke, i različit broj različitih
podataka, i sa kešom i bez keša i ništa: CDX indeksi ispadoše sporiji
za oko 30% u svim operacijama. Na stranu što sam našao da ovaj
drajver pri indeksiranju menja jedan bajt u DBF datoteci, pa drugi
drajveri posle prave probleme. Dal' je greška il' namera, pitanje je
sad ;)
clipper.747nbatocanin,
> Molio bih te za detaljnija objasnjenja za rad sa pregledom
> pre stampe u mrezi kako to da uradim.
Pa evo ovako. Ako tvoj program ima korisnike, uvedi neki
identifikator za svakog. Na primer, neki broj. Sada funkciju za
pregled izmeni tako da ne radi sa datotekama PART1.PRT i PART2.PRT,
već sa PART1_XX.PRT i PART2_XX.PRT, gde je XX taj identifikator.
Tako ćeš postići da svaki korisnik ima svoje datoteke za preview.
Naravno, ako imaš neki drugi sistem, možeš ovo izvesti na neki drugi
način, ali se sve svodi na to da svaki korisnik ima svoju datoteku za
preview pre štampanja. Nadam se da sam sad bio jasniji.
clipper.748nbatocanin,
> ---> "Tvoj kešer smrđi!". "Nje, Blinher smrđi".
Kamo sreće :( Oba računara su imala klot DOS. Uzgred, danas mi se
žali drug koji nije na Sezamu da je dobio neki internal error na
programu koji radi već nekoliko godina. Naravno upravo kada je sa
Tlinka prešao na Blinker!
clipper.749nbatocanin,
> Da li to znači da se rTLink inteligentno ponaša u odnosu
> na EMS / XMS memoriju? Ovo je vredno eksperimentisanja...
Krkne dosta privremenih podataka u EMS, koliko mi je poznato. Kad mu
oduzmeš EMS, obavezno bude "creating temporary file 21312312"
> kako optimalno setovati mašinu za rad / programiranje u Clipper-u
> 5.xx.
Ja imam 386/33 sa 4MB. Od toga 1-1.5MB drži HyperDisk, 1.5MB je
prazan EMS, a ostatak razne nevažne trice i kučine ;) I ne koristim
MBOOT i slične programe.
> Ja već rekoh da sam se odrekao keša nasuprot RAM drajva i ubrzanje je
> dvostruko...
A za šta koristiš RAM disk?
clipper.750nbatocanin,
> Glavni dobitak kod .cdx indeksa nije samo u tome, nego što
> ga foks interno žestoko koristi za pretrage;
žuj, ovo mi ne izgleda baš tako moćno na drugi pogled. Ne verujem da
je FoxPro pametniji od programera koji će (valjda) uvek prvo izvršiti
SEEK (ako može), pa onda LOCATE. Neka složenija analiza uslova za
pretragu mi je malo komplikovana za on-line analizu. Interesuje me
kakva su ti praktična iskustva sa ovim pretraživanjem? Al' da budeš
objektivan ;)
> Postoje li Valid, Picture i When opcije na celom slogu i
> pojedinim poljima?
Šta to znači?
Uzgred, da li bi mogao neko ko radi sa FoxPro-om da objasni kako
tačno rade SCATER i GATHER naredbe.
clipper.751pusa,
> BLINKER CACHE EMS
Hvala ti prenecu coveku a psole cu preneti tebi da li mu je
uspelo!
clipper.752ppekovic,
Clipper verzija 5.2 postoji u dve verzije: američkoj i
onoj za ostatak sveta. Američka verzija odbija da se instalira
na računarima van USA i Kanade :)). To utvrđuje tako što
proveri koja je kodna strana aktivna.
Paya
clipper.753ndragan,
Al' si mnogo naređao odjedared. žAjd jedno po jedno.
/ SEEK (ako može), pa onda LOCATE. Neka složenija analiza uslova za
/ pretragu mi je malo komplikovana za on-line analizu. Interesuje me
Kod strukturnog indeksa je zaista nebitno da li je urađen SEEK ili
LOCATE For <uslov_po_indeksu>, jer i jedno i drugo podleže Rašmor
optimizaciji. Caka je u tome da se .dbf ni ne čita, ako se skup traženih
slogova može naći iz uslova koji uključuju samo (ili pretežno) polja po
kojima postoje strukturni indeksi. žita se samo .cdx, a on je uz to
komprimovan (nikakav zip ili tako nešto, jedino je ukinuto ponavljanje
delova ključa koji su isti kao u prethodnom ključu; ista tehnika kao na
VMS/RMS od File Prolog V3 pa nadalje).
Objektivno, to znači da je brzina pretraga mnoogo veća. Ranije je
filtriranje baze išlo tehnikom 'index on trt+mrt for <uslov1> .and.
<uslov2> .and. ... ', ili 'Seek... do .. while..'. Brzina u odnosu na
tehniku selektivnog indeksiranja je veća oko 10 puta, a u odnosu na
pretragu po postojećem indeksu nema neke veće razlike, osim što se jedan
deo kodiranja izbegava, što će reći da je program kraći, radi sve u
manje naredbi, najčešće ima bar jednu petlju manje, i tu onda opet
postoji dobitak.
O čemu se radi. Kad napravi SQL kursor, on može da sadrži ne samo
proizvoljne kombinacije polja iz baze (ili više baza), nego može da
sadrži i nekakve zbirne slogove, kao i kombinaciju toga. Naprimer
sele fpromet.konto, fpromet.datnal, fpromet.brnal, ;
fpromet.opis, ;
fpromet.duguje, fpromet.potraz, fpromet.kod;
from fpromet,spisak ;
where fpromet.konto = spisak.konto ;
and DATNAL betw _mpoc and _mZAV;
union (sele fpromet.konto, _mpoc-1 as datnal, fpromet.brnal, ;
'početno stanje ' as opis, ;
sum(fpromet.duguje) as duguje, ;
sum(fpromet.potraz) as potraz, fpromet.kod;
from fpromet,spisak ;
where fpromet.konto = spisak.konto ;
and DATNAL < _mpoc and kod=1 ;
group by fpromet.konto);
union (sele fpromet.konto, _mpoc-1 as datnal, fpromet.brnal, ;
'promet pre '+dtoc(_mpoc) as opis, ;
sum(fpromet.duguje) as duguje, ;
sum(fpromet.potraz) as potraz, fpromet.kod;
from fpromet,spisak ;
where fpromet.konto = spisak.konto ;
and DATNAL < _mpoc and kod#1 ;
group by fpromet.konto);
order by 1,2,3 ;
into cursor nesa
'Spisak' je jedan mali lažni .dbf (u stvari kursor, briše se čim se
zatvori) u kojem su konta za koja se traže kartice. E, ovo radi
stravično brže u odnosu na 'seek konto... do.. sabiraj.. while' pa tako
za svaki konto.
/> Postoje li Valid, Picture i When opcije na celom slogu i
/ Šta to znači?
Browse valid g_f1() when g_f2() ;
fields polje1 :v=f1() :p='999.99', ;
polje 2 : w=f2();
for <uslov> ;
key <klj1>,<klj2>
F*() i g*() su nekakve funkcije koje vraćaju .t. ili .f. (ako se navede
uz polje valid može da vraća i numerik, koji je u stvari ofset do
sledećeg polja: ako vrati 0, ostaje na istom polju, 1 sledeće, -2
pretprošlo itd). g_f1 ne dozvoljava prelazak na sledeći slog dok ne
vrati .t.; g_f2 preskače slogove za koje vraća .f.
/ tačno rade SCATER i GATHER naredbe.
Ima par varijanti, ali ukratko:
select prva
scat to t kreira se niz
sele druga
appe blank
gath from t popunjava se slog iz niza
Ovde Scat naredba stvara niz t() koji ima dimenziju jednaku broju polja
baze 'prva'. Popunjava ga sadržajem polja iz tekućeg sloga - prvo polje
u t(1) itd. Gather onda to iz t() upisuje u slog.
Ovo fino šljaka ako imaju istu strukturu; lepši štos je Scat Memvar -
prepiše polja u memorijske promenljive. Druga baza ne mora da ima istu
strukturu, ne moraju čak ni sva polja da se popune (dobro, uvek može
Fields lista).
E, da, Scat/Gath preskače memo polja.
Al' sam odužio...
clipper.754ndragan,
/ date/time koristi 5 bita, pa zato vreme ide u rezoluciji od dve
/ sekunde.
Da, ali zašto Foks ne pomnoži to čudo sa dva? Bilo bi dobro da im neko
šapne, ko ima pristup gore.
clipper.755jpiri,
>> ...spori DBFCDX drajver.
Da li si prilikom linkovanja izbacio DBFNTX biblioteku?
Ako nisi, ona ti nepotrebno jede Clipperovu radnu memoriju a to itekako
utice na performanse. Pozdrav.
clipper.756balinda,
Instalirao sam novi Clipper 5.2. Kako sam u jednom programu koristio
Nanfor biblioteku (takodje "najnoviju"), prijavljuje se nakon
linkovanja sa RTLINKOM i sa BLINKEROM poruka:
unsolve external 'CLIPPER501' NANFOR.LIB
Ovo mi nije jasno (bar što se smera tiče) :(
Program posle RTLINK-a radi bez problema iako je ova greška prijavljena!
Naravno BLINKER pravi problem zato što čak i zbog jedne prijave greške
ne formira EXE fajl (bar ja neznam kako da ga odviknem od toga).
P.S. Velike probleme imam i sa prijavama raznih EMS grešaka sa
BLINKEROM (npr.93H). Kako da potpuno isključim detekciju EMS i napravim
možda (za utehu) neki RAMDRIVE...
clipper.757cnenad,
Zdravo svim Kliperasima.
Nazalost jos nisam presao sa S87 na 5.* ali molim za pomoc
Prvo, gde mogu da nadjem (mislim) da se zove FUNCKY.LIB iz koje postoji
mogucnost da se napravi sat u kliperu (bilo je u bajtovima u r90 i neki broj)
Drugo (ovo izgleda moze da resi samo Deja caskao sam u chat-u sa mbulatom o
ovome) radi se o sledecem, moj EXE fajl ima 320 Kb, memorije na racunaru imam
slobodno kad ucitam drajvere i ostale rezidente programe (vshield, mouse,
doskey, smartdrive i sl.) oko 580 KB, Koristim DOS 6. ali racunar nikako nece
da startuje program i prijavljuje Not enough Memory ili posto sam preveo dos
NEMA MEMORIJE !!!
Racunar je 386DX40hz 4Mb RAM-a. Ima li leka ovome, napominjem da ni drugi EXE
fajl koji ima 220 i jedan cak 180 nece da startuje. Medjutim onaj prvi od
320 Kb se sastoji od preko 40 modula odnosno glavni program poziva oko 45
potprograma ali su svi kompalirani u jedan obj fajl.
Trece, Dejanr mi odgovori u poruci ▀broj 562 na moje pitanje za replace
datuma ali Dejane ne ljuti se nisam zadovoljan time, odnosno iskreno
priznajem komplikovano je to za mene jos uvek jel moze neko da mi napise
liniju sa normalnim REPLACE.
Hvala i pozdrav Svima koji procitaju ovo.
Nenad Canic
clipper.758dejanr,
>> Trece, Dejanr mi odgovori u poruci ▀broj 562 na moje pitanje za replace
>> datuma ali Dejane ne ljuti se nisam zadovoljan time, odnosno iskreno
>> priznajem komplikovano je to za mene jos uvek jel moze neko da mi napise
>> liniju sa normalnim REPLACE.
REPLACE ALL datum WITH date() FOR empty(datum).
Nisam probao, kucam on-line, ali valjda je tako nešto.
clipper.759dr.grba,
>> unsolve external 'CLIPPER501' NANFOR.LIB
>>
>> Ovo mi nije jasno (bar što se smera tiče) :(
>> Program posle RTLINK-a radi bez problema iako je ova greška
>> prijavljena!
Aha, tu smo. A lepo sam pitao...
>> Naravno BLINKER pravi problem zato što čak i zbog jedne prijave
>> greške ne formira EXE fajl (bar ja neznam kako da ga odviknem od
>> toga).
Pokušaj da upotrebiš switch NODELETE.
clipper.760dejanr,
>> Aha, tu smo. A lepo sam pitao...
Nije stvar u nekompatibilnosti, nego je NANFOR za svaki slučaj definisao
ovaj simbol. Dakle, i RTLINK javlja istu grešku samo što čovek nije
pročitao uputstvo za Blinker pa nije znao da ga "natera" da čuva .EXE
fajl iako ima grešaka u povezivanju.
Inače, greška bi se konačno ispravila nabavkom nove verzije NANFOR.LIB-a,
a verovatno bi i postojeći mogao da se "popravi" iz Nortona.
clipper.761snemcev,
>> Naravno BLINKER pravi problem zato što čak i zbog jedne prijave
>> greške ne formira EXE fajl (bar ja neznam kako da ga odviknem od
>> toga).
Imaš BLINKER EXECUTABLE NODELETE. Stavi to negde u .lnk datoteku i više
ti neće brisati .exe ako ima grešaka.
clipper.762arazumenic,
Da li neko zna kako da iz CLIPPER-a nateram SVGA/VGA karticu u neki drugi
mod (na primer 132 x XX)?
Sasa
clipper.763nbatocanin,
> kompajler *prihvata* stvari tipa c:colorBlock := NIL
Na ćalost, mislim da neäemo skoro doćiveti da Clipper prijavi ovu
greëku, jer promenljiva jednog objekta *moće* imati vrednost NIL, pa
to zavisi od autora objekta/klase.
> dakle, nedopustivo je da neka instanca prilikom
> inicijalizacije preuzme vrednost koja je ilegalnog tipa,
> ëto se upravo i deëava.
Kao ëto rekoh: prevodilac ne moće znati ëta je nelegalna vrednost
jedne promenljive, osim ako mu se ne kaće.
> Kompajler bi ipak trebao da bude
> dovoljno pametan da primeti takve stvari, bar tamo gde se
> ilegalna vrednost, tj. neodgovarajuäeg tipa, eksplicitno
> dodeljuje, ëto se u stvari i desilo.
To bi znaüilo da u definiciji klase promenljive ne budu ravnopravne
sa normalnim promenljivim, jer njima moćeë dodeljivati ëta hoäeë.
> Zanima me kako se Clipper 5.2 nosi sa
> ovim problemima ?
Isto kao i 5.01, iz prethodnih razloga.
clipper.764d.petrovic,
Ă>> dodeljuje, ëto se u stvari i desilo.
set code..
clipper.765cnenad,
Izvinjavam ti se Dejane. U vezi zamene datuma u polju moja je greska
jer sam ispustio naredbu for. I to sto je najcrnje pre naredbe za zamenjivanje
datuma imao sam nekoliko linija u kojima sam isto vrsio zamenu nekih drugih
polja i nikako da primetim da mi bas tu fali jos FOR.
Ipak, hvala.
Nenad / Mr.Virus "X" / BMPS
clipper.766cnenad,
U vezi poruke 9.9577 u kojoj sam napomeno da sam sa Mbulatom u chat-u
razgovarao o probelmu gde kad se zavrsi program ostaje mi zarobljeno memorije
od oko 240 Kb, covek me lepo pitao da li negde u programu koristim naredbu
run / ! a ja kategoricki odgovaram NE moram da se ispravim i da kazem da sam
koristio posto nemam biblioteku za sat u clipper-u mali COM program CLO od
svega 432 bajta ali koji je rezidentan i ne moze da skine a posto se ucitavao
iz glavnog programa koji je pre njega ucitan on zaglavi memoriju koju je zauzeo
glavni program i iz njega se izadje ali memorija ostaje zauzeta a slobodno
samo 237 Kb. Medjutim jos jedno pitanje za onoga ko zna: zasto onda nije
DOS-ova naredba MEM/C prijavila u listi i moj izvrsni program nego samo CLO.
Da to nije neki bag DOS-a odnosno MEM-a ?
Molim jos jednom za odgovor, gde mogu da nadjem FUNCKY.LIB i zasto ne mogu da
startujem program od 320 KB kad imam slobodno 589 Kb.
Pozdrav.
Nenad./Mr.Virus "X"/BMPS
clipper.767bulaja,
│koristio posto nemam biblioteku za sat u clipper-u mali COM program CLO od
│svega 432 bajta ali koji je rezidentan i ne moze da skine a posto se ucitavao
│iz glavnog programa koji je pre njega ucitan on zaglavi memoriju koju je
zauzeo
│glavni program i iz njega se izadje ali memorija ostaje zauzeta a slobodno
│samo 237 Kb.
└───
Malo konfuzno :), ali shvatio sam sta je po sredi. NEMOJ ni slucajno da
iz Clipper-a startujes neki externi program koji ce ostati rezidentan.
Sigurno je da ce ti pojesti memoriju, a mozes i jos goru zbrku da
napravis :). Ako vec hoces taj rezidentni sat, onda ga startuj PRE
Clipper programa (npr. iz .BAT fajla).
│zasto ne mogu da startujem program od 320 KB kad imam slobodno 589 Kb.
└───
Velicina EXE file-a nema mnogo veze sa time koliko program trazi
memorije. Uzsam kod (koji je tih 320 Kb), memoriju trose i razne
promenljive, nizovi, baferi za baze podataka & indekse,... Ako
zelis da ostanes na Summer 87 verziji moraces da se petljas sa
ovrlejovima, zato najbolje predji na 5.x gde nema petljanja sa
ovrlejovima, a memorije imas koliko hoces :).
clipper.768dusanp,
=> Imam problema sa koriscenjem SWPRUNCMD-a. Bilo kako ga pozvao
=> (da, sve sam lepo podesio) on swapuje na disk. Ima 4 mega
=> slobodno gore, sto xms-a sto ems-a, a on nikako da ih
=> konstatuje. Jel sam bio jasan? Kako svima vama radi ok, nisam
=> primetio da se jos neko zali?
Nisam ocekivao da mi se bas niko ne javi. Znaci da bas svima
radi ok? Mozda sam ipak ja nesto z*? Ajde koga ne mrzi da mi
posalje jedan kratak primer + .rmk + .lnk. Hvala :)
clipper.769nbatocanin,
> Kod strukturnog indeksa je zaista nebitno da li je urađen
> SEEK ili LOCATE For <uslov_po_indeksu>, jer i jedno i
> drugo podleže Rašmor optimizaciji.
Ovo ne razumem: kako se optimizuje SEEK? Zar se optimizacija ne
odnosi samo na LOCATE?
> .dbf ni ne čita, ako se skup traženih slogova može naći iz
> uslova koji uključuju samo (ili pretežno) polja po kojima
> postoje strukturni indeksi.
E, ovo me interesuje: do koje mere je FoxPro inteligentan da upotrebi
indeks? Na primer, imaš indekse po X i Y, a tražiš
LOCATE FOR Left(x,2) == Right(y,2)
clipper.770nbatocanin,
> Da li si prilikom linkovanja izbacio DBFNTX biblioteku?
Ne, ovo mi nije palo na pamet, ali uvek je bio prisutan i DBFNTX i
DBFCDX, tako da su oba podjednako smetala onom drugom ;)
clipper.771nbatocanin,
> unsolve external 'CLIPPER501'
Ovo se javlja kad linkuješ biblioteke od 5.2 sa programima prevedim
prevodiocem od 5.01 (ili beše obrnuto?).
clipper.772dejanr,
>> Izvinjavam ti se Dejane. U vezi zamene datuma u polju moja je greska
>> jer sam ispustio naredbu for.
Nema mesta izvinjenjima, zato baš Sezam i služi, da zajednički rešavamo
probleme.
clipper.773bulaja,
Bilo je vec price o tome da je Clipper Debuger (v5.01) glup :), pa da
kad iz programa koji se debaguje promenite aktivni dir, on ne uspeva da
pronadje vise izvorni kod programa (a trebao bi da gleda tamo odakle je
startovan exe). E ovo moze da se resi :). Gluplje resenje je da svaki
put izmenite stazu do source fileova u "Options / path for Files", a
najbolje je da napravite script file za CLD gde ce stojati npr.:
Options path d:\prg
Najbolje da se script file zove INIT.CLD posto njega CLD automatski
ucitava pa ga ne morate posebno navoditi (cld @script exe).
clipper.774ematic,
> Na ćalost, mislim da nešemo skoro doćiveti da Clipper prijavi
> ovu greëku, jer promenljiva jednog objekta *moće* imati
> vrednost NIL, pa to zavisi od autora objekta/klase.
To je u principu tačno, ali opet ne vidim razlog zašto nije bilo
moguće ugraditi ovu proveru u kompajler, jer se tu ipak radi o
klasama ugrađenim u jezik koje su jasno definisane i deklarisane, a
ne o korisnički definisanim klasama (Clipper 6.0, tj. Clipper++ :))
za koje ovo tvrđenje stoji.
> Kao ëto rekoh: prevodilac ne moće znati ëta je nelegalna
> vrednost jedne promenljive, osim ako mu se ne kaće.
Opet tačno, ali u ovom slučaju su mogli da mu kažu... :)
> To bi značilo da u definiciji klase promenljive ne budu
> ravnopravne sa normalnim promenljivim, jer njima moćeë
> dodeljivati ëta hošeë.
Ove promenljive imaju rezervisana imena (jer su i klase o kojima
govorimo ravnopravni deo osnovnog jezika), stoga pretpostavljam da je
bilo moguće uvesti proveru tipa.
clipper.775d.petrovic,
Ă> Nisam ocekivao da mi se bas niko ne javi. Znaci da bas svima
Ă> radi ok? Mozda sam ipak ja nesto z*? Ajde koga ne mrzi da mi
Ă> posalje jedan kratak primer + .rmk + .lnk. Hvala :)
1. Mani ga se, hoće da zeza pomalo, koristi za konačnu verziju rtlink
2. Imaš primer uz blinker
3. ako već nemaš...
swap.arjclipper.776bulaja,
Moze li se u MEMODEDIT() ikako preusmeriti neki od non-configurable
tastera? Oni se kroz user funkciju propustaju tek posle izvrsene default
operacije (npr. ako je pritisnut DEL, prvo se obrise char, a tek onda
ME javi user func "e obrisao sam..."). Potrebno mi je da se pre izvrenja
default operacije (recimo DEL) prvo urade neke stvari, a zatim default
operacija ipak izvrsi. SetKey() ne pomaze mnogo jer sa ME (tj. user
func) moze da komunicira jedino preko globalnih parametara, posto bi
KEYBOARD Chr(K_DEL) opet rekurzivno pozvao SetKey() proc.
clipper.777cnenad,
Zdravo, vidim da se nesto mnogo prica o BLINKER-u.
Kad je tako da Vas pitam gde nadjoste taj linker ?
Koliko kosta ako nije Shareware ?
Cekam odgovor.
Pozdrav.
Nenad/Mr.Virus "X"/PS
clipper.778dejanr,
>> Koliko kosta ako nije Shareware ?
Nije shareware, prodaje ga firma Assembler Softvare Manufacturers.
Bio je prikaz sa dosta detalja u "Računarima 90", 32. strana.
clipper.779ematic,
> KEYBOARD Chr(K_DEL) opet rekurzivno pozvao SetKey() proc.
Neka ide sa setkey(), samo što u funkciji koja će se pozivati
pritiskom na DEL (nek' se zove del_func() ) uradiš prvo setkey(K_DEL,
NIL), pa onda te neke stvari :) i keyboard chr(K_DEL). E, kad onda
memoedit() javi user_funkciji "obrisah šta treba..", kaži dobro,
setkey( K_DEL, { |...| del_func(...) } ). Nadam se da je jasno, ako
nije onda da napišem i listing :)
clipper.780d.petrovic,
Ă> Kad je tako da Vas pitam gde nadjoste taj linker ?
Probaj:
Snake Dance 686-737 18:00 - 05:00
clipper.781bulaja,
│Neka ide sa setkey(), samo sto u funkciji koja ce se pozivati
│pritiskom na DEL (nek' se zove del_func() ) uradis prvo setkey(K_DEL,
│NIL), pa onda te neke stvari :) i keyboard chr(K_DEL). E, kad onda
│memoedit() javi user_funkciji "obrisah sta treba..", kazi dobro,
│setkey( K_DEL, { |...| del_func(...) } ). Nadam se da je jasno, ako
│nije onda da napisem i listing :)
└───
Ma jasno je, to sam bas i koristio kao privremeno resenje :), ali ima
manu da se ipak ne moze prepustiti MemoEditu da komunicira sa user func.
U slucaju kad SetKey() proc naidje na nesto sto se ne bi smelo obrisati
(zato mi i treba da preusmerim DEL), onda ona mora da vrati ME jedno
nista, a onda user func ne zna da je bio pritisnut DEL.
U stvari upravo sam se setio :) da moze i ovako - ako SetKey() u tom
slucaju vraca nista, onda nema potrebe za SetKey (K_DEL, NIL). User func
i ne mora da zna da se nista nije obrisalo, a ne mora da vraca SetKey().
clipper.782dr.grba,
>> Da li neko zna kako da iz CLIPPER-a nateram SVGA/VGA karticu u neki
>> drugi mod (na primer 132 x XX)?
Mislim da bi FT_SETMODE funkcija iz NANFORUM TOOLKIT biblioteke mogla
da završi posao.
clipper.783snemcev,
>> Na ćalost, mislim da nešemo skoro doćiveti da Clipper prijavi ovu
>> greëku, jer promenljiva jednog objekta *moće* imati vrednost NIL, pa
>> to zavisi od autora objekta/klase.
Aman koji je ovo kodni raspored?!? Probah sve što imam na disku, i ništa
nije uspelo. Daj Nenade, napravi taj set code. Ili se bar javljaj samo
sa onog računara sa kojeg si i dosad zvao ;) Sve mi se čini da je ovaj
račun platio neko drugi ;)
clipper.784snemcev,
>> Da li neko zna kako da iz CLIPPER-a nateram SVGA/VGA karticu u neki
>> drugi mod (na primer 132 x XX)?
Za to nisam siguran, ali kad startuješ program u tom modu, radi OK.
Funkcije MaxRow() i MaxCol() rade korektno.
clipper.785dr.grba,
>> Molim jos jednom za odgovor, gde mogu da nadjem FUNCKY.LIB i zasto
>> ne mogu da startujem program od 320 KB kad imam slobodno 589 Kb.
Dopusti da ti odgovorim ovako :
proc main()
..... // nešto
private niz := šć
....
for i = 1 to 1000
nizŠiĆ := space(512)
next
....
Koliko nam sad ceo niz uzima memorije?
...Nije samo kod programa ono što nam uzima memoriju. Postoje tu još
tabele, stekovi, razna egzotična područja... Ispitaj takve tačke u
inicijalizaciji svog programa.
clipper.786dr.grba,
>> Ne, ovo mi nije palo na pamet, ali uvek je bio prisutan i DBFNTX i
>> DBFCDX, tako da su oba podjednako smetala onom drugom ;)
Da li to znači da DBFNTX više ne pripada default spisku biblioteka,
već se decidirano mora navesti?
clipper.787nbatocanin,
> To je u principu tačno, ali opet ne vidim razlog zašto
> nije bilo moguće ugraditi ovu proveru u kompajler, jer se
> tu ipak radi o klasama ugrađenim u jezik koje su jasno
> definisane i deklarisane, a ne o korisnički definisanim
> klasama
Da, mogli su da naprave tu proveru, ali mislim da bi to bilo glupo:
tako bi napravili jednu zavisnost viška, koja bi sigurno kasnije
zasmetala kod novih verzija. Zašto od nečega praviti izuzetak uz
sumnjiv dobitak?
clipper.788nbatocanin,
> Options path d:\prg
Samo da dodam da ovde može da se pojavi spisak. Na primer:
d:\prg;c:\clipper;
clipper.789ematic,
> U slucaju kad SetKey() proc naidje na nesto sto se ne bi smelo
> obrisati (zato mi i treba da preusmerim DEL), onda ona mora da
> vrati ME jedno nista, a onda user func ne zna da je bio
> pritisnut DEL. U stvari upravo sam se setio :) da moze i ovako...
A, to :). Ovo je bilo ovako jer si, kako vidim, tražio da:
> ME javi user func "e obrisao sam..."). Potrebno mi je da se pre
> izvrenja default operacije (recimo DEL) prvo urade neke stvari,
> a zatim default operacija ipak izvrsi.
Uglavnom, došlo se do pravog rešenja :). Ima li nešto bolje ?
clipper.790smilan,
U jednom numerik polju zelim da se dolaskim kursora (preko WHEN
funkcije) pojavi neka osnova za godinu gradnje neke zgrade, npr.
1900 i da kursor dodje na prvu nulu od 1900 i tako omoguci
korisniku da otkuca samo zadnje dve cifre "prave" godine.
Naravno, kada se strelicom prelazi preko tog polja na gore (chr(5))
ili na dole (chr(24)) uneta cifra ne bi trebalo da se menja.
Posto u nekoliko maski imam slicnu potrebu, resio sam da napravim
univerzalnu funkciju. Ovo sto se vidi funkcionise po gornjem opisu ali
nakon REPLACE FILE->GOD with MEM->GOD prijavljuje gresku
DBFNTX /1020 Data type error
@ 9,70 GET GOD pict "@Z 9999" when gradilw("GOD") valid gradilv("GOD")
^^^
ovo je promenjiva a ne
polje baze
FUNC gradilw(gra_whe) ******* (za WHEN funkciju)
LOCAL staro
staro:=&gra_whe && U staro smesta ono sto nadje u
polju
&gra_whe:=1900 && promenjivoj iz GET-a dodeljuje
1900
if lastkey()=5 .or. lastkey()=24
&gra_whe:=staro && ako se ide strelicama gore-dole
vrati staru vrednost
return .t.
endif
keyboard chr(4)+chr(4) && pomeri kursor dva mesta udesno
RETURN .t.
FUNC gradilv(gra_val) ******* (za VALID funkciju)
if (&gra_val > val(god[1])) .or. (&gra_val < 1800) && uneta godina ne
sme biti veca od
tekuce niti manja
od 1800
return .f.
endif
RETURN .t.
clipper.791ematic,
> Da, mogli su da naprave tu proveru, ali mislim da bi to bilo
> glupo: tako bi napravili jednu zavisnost viška, koja bi sigurno
> kasnije zasmetala kod novih verzija. Zašto od nečega praviti
> izuzetak uz sumnjiv dobitak?
Nadajmo se da oni znaju šta rade :), a meni ostaje da napravim
programče koje će da traži pogrešna dodeljivanja (naravno, ukoliko me
ne bude mrzelo :)).
clipper.792bulaja,
│ @ 9,70 GET GOD pict "@Z 9999" when gradilw("GOD") valid gradilv("GOD")
│ ^^^
│ ovo je promenjiva a ne polje baze
└───
A kako je deklarisana ta promenljiva? Ako je LOCAL ili STATIC, onda je
ne mozes koristiti preko macroa. Ako zelis da je menjas iz WHEN
procedure, onda je mnogo zgodnije (ako koristis LOCAL var) da je
preneses po imenu gradilw(@god). A ako je private/public ne moras da
prenosis ime promenljive kao parametar, vec to ime mozes da saznas sa
ReadVar().
clipper.793arazumenic,
---------------------------------------------------------
->>> Da li neko zna kako da iz CLIPPER-a nateram SVGA/VGA karticu u neki
->>> drugi mod (na primer 132 x XX)?
->Za to nisam siguran, ali kad startuješ program u tom modu, radi OK.
->Funkcije MaxRow() i MaxCol() rade korektno.
Sledi još jedan odgovor u sledećoj poruci. U svakom slučaju, hvala.
Sasa
clipper.794arazumenic,
->>> Da li neko zna kako da iz CLIPPER-a nateram SVGA/VGA karticu u neki
->>> drugi mod (na primer 132 x XX)?
->Mislim da bi FT_SETMODE funkcija iz NANFORUM TOOLKIT biblioteke mogla
->da završi posao.
Ne moče. Doduše, ona stvarno prebaci računar u željeni mod (132x30), ali i
dalje ne dobijam željeni rezultat. Naime, ako se startuje sledeci test:
ft_setmode(84)
? maxcol()
? maxrow()
kao rezulta se i dalje dobija 79 i 24 i to ispisani u jednom redu (sa raz-
makom izmedju njih od 78 slovana mesta). Ideja je bila sledeća: Ako je ra-
čunar opremljen sa SVGA/VGA kartom, onda da se iskoristi taj mod za prikaz
raznih tabela koje su dosta sire i od mogucih 132 slova u redu, a ako nije
onda da se ostane pri standardnih 80 kolona. Dakle, ne prolazi sledece:
if ft_adapter() == 3
PrebaciUMod(132x30)
mod = 84
endif
PrikazTabele()
if mod == 84
VratiNormalniMod()
endif
Izgleda da prilikom startovanja programa, interno se postavljaju neki para-
metri programa izmedju kojih je su i mod u kome radi video karta, tako da
funkcije maxcol() i maxrow() samo procitaju te parametre i njih vracaju bez
obzira sto je mod kartice promenjem. Inače, SNEMCEV je u poruci 9.784 pot-
puno u pravu, samo to nije ono što sam želeo.
Saša
clipper.795nbatocanin,
> Aman koji je ovo kodni raspored?!?
Ne pitaj ;)) Imam neki svoj privatni raspored, a joë nisam automatizovao
konverziju u Raüunari raspored koji sam prijavio na Sezamu. Zato kad zaboravim
da izvrëim konverziju nastane haos...
> Sve mi se čini da je ovaj račun platio neko drugi ;)
Jock, varaš se ;)
clipper.796nbatocanin,
> Da li to znači da DBFNTX više ne pripada default spisku
> biblioteka, već se decidirano mora navesti?
Ne, ne mora.
clipper.797neman,
> ->>> Da li neko zna kako da iz CLIPPER-a nateram SVGA/VGA
> karticu u neki ->>> drugi mod (na primer 132 x XX)?
Mislim da Flipper ima neku funkciju BIOSMODE( ) koja radi to.
neman
clipper.798ndragan,
/>> ...spori DBFCDX drajver.
/ Da li si prilikom linkovanja izbacio DBFNTX biblioteku?
Pitam se, pitam se, da li je dbfcdx drajver kompletan? Da li on radi
samo do nivoa čitanja-pisanja .cdx indeksa, tek poradi kompatibilnosti
sa FP2, ili ume i ostale stvari koje ovaj radi?
clipper.799dr.grba,
>> ...Inače, SNEMCEV je u poruci 9.784 potpuno u pravu,
>> samo to nije ono što sam želeo.
Znam, želiš da presvičuješ mod unutar programa.
Opisano ponašanje funkcije koju sam ti preporučio smatram bugom ):
Lično se time nisam bavio, nego se samo prisetih da sam je video u NG
fajlu, pa sam ga i konsultovao da bih ti odgovorio...
clipper.800snemcev,
>> Zato kad zaboravim da izvrëim konverziju nastane haos...
Opet si zaboravio ;))) Napravi bre batch ili još bolje, uradi konverziju
u Clipper-u! :))
clipper.801solajac,
ERROR.DOC (CLIPPER 87) stoji :
INTERNAL ERROR najčešće nastaju zbog pokvarenih indeksa.
Moja napomena i podsćanje: Reindeks radite isključivo sa:
instrukcijom INDEX
nikako sa REINDEX (ova instrukcija ne popravlja HEADER datoteke)
To je sve što sam našao o INTERNAL ERRORčr.
Meni se inače pojavljuje INTERNAL ERROR 19 na jednoj konfiguraciji i
ponovno indeksiranje do sada je uvek pomagalo.
Isti program na drugoj konfiguraciji radi bez probblema.
clipper.802skerl,
RShowPCX 1.2 - 16 March 1993 (c) 1993 Rolf van Gelder
=======================================================================
RSHOWPCX LIBRARY
- RShowPCX is a shareware Clipper 5.01a library which contains a
function to display a .PCX graphics file.
- Because the library is written using the ASSEMBLER language the
function works VERY FAST !!
- Some SUPER VGA adaptors are supported.
- RShowPCX is perfect to display Company logo's, graphs, wallpapers...
Pozdrav,
Skerl.
p.s. sve spremno da ide u dir :)
clipper.803skerl,
ž Clipper "Fast" EGA/VGA PCX Display Library Ć
For Clipper Summer '87 &
Clipper 5.0x
This is the documentation for two libraries: CLFPCX87.LIB and
CLFPCX50.LIB. The first for Clipper Summer '87, the latter for
Clipper 5.0x (5.0 and 5.01).
These libraries provides a function that display's some PCX files,
in an efficient, fast and easy manner. The memory overhead by CLFPCX
is very little, as the core has been programmed directly in Assembly,
and there are also very few options for extra displays etc... CLFPCX
is ideal for your application just to display the Logo of your
Company/Organisation.
The display of the PCX is quite fast, as the decoding and writing of
the actual picture is completely handled by Assembly routines.
For each library, the source code to the FastPCX() function has been
supplied, would you want to add some more robust error checking, or
display more pictures in a row, or whatever..
Files: Comment:
--------------------------------------------------------
CLFPCX87.LIB The library for Clipper Summer '87
CLFPCX50.LIB The library for Clipper 5.0 or 5.01
CLFPCX87.PRG Clipper '87 code to FastPCX(), also in .LIB
CLFPCX87.PRG Clipper 5.0[1] code to FastPCX(), also in .LIB
PCX87.PRG Simple Clipper '87 demo of the FastPCX() function.
PCX50.PRG Simple Clipper 5.0[1] demo of the FastPCX() function.
BART.PCX EGA 640x350x16 picture: Bart Simpson
MJTITLE.PCX VGA 640x480x16 picture: Title screen of Mah-Jonng VGA.
MINDSCAP.PCX VGA 320x200x256 picture: Mindscape (?) Logo.
Pozdrav,
Skerl.
p.s. I ovo moze u dir :)
clipfpcx.zipclipper.804dejanr,
>> p.s. sve spremno da ide u dir :)
U dir-u je, hvala. Pogledao sam na brzaka i lepo radi.
Bulaji ostavljam da pogleda "konkurentski" program uz 9.803.
clipper.805seovic,
> Ima li neki nacin da se za logicke promenljive u raznim
> @say...get maskama pojavljuju i kucaju vrednosti D i N
> (ili recimo J i N) umesto onoga T i F? Ideja je, naravno,
> da se to nekako doda u postojeci program, a da se po
> mogucnosti u njemu sto manje mora menjati.
>
> U bazama itd moze slobodno da ostane .t. i .f., samo da se
> promeni na ekranu
Mozda odgovor na ovo pitanje stize malo prekasno, ali na SEZAM-u sam od
nedavno tako da nisam bio ranije u mogucnosti da ponudim svoje resenje:
LOCAL cVar := "N" // ili "D"
FIELD xxx IN yyy // logicko polje u fajlu
.
.
@ nRow, nCol GET cVar PICT "!" VALID (cVar $ "DN")
READ
.
.
REPLACE xxx WITH (cVar == "D")
Hteo bih i da pitam kako resavate problem podrske razlicitim tipovima
stampaca, kao i stampanje pod mrezom.
A.Seovic
clipper.806smilan,
Ima li ko iskustva sa Flipperom i ima li traga bilo kakvom uputstvu.
žini mi se da za neke hitne potrebe NG nije dovoljan.
clipper.807ndragan,
/ Ovo ne razumem: kako se optimizuje SEEK? Zar se optimizacija ne
/ odnosi samo na LOCATE?
Frljoka u izražavanju - Locate po pojmu koji sadrži samo strukturni
indeks je podjednako optimizovan kao da je urađen Seek. Po tom principu
se u stvari optimizuje sve što ima for opciju.
/ E, ovo me interesuje: do koje mere je FoxPro inteligentan da upotrebi
/ LOCATE FOR Left(x,2) == Right(y,2)
Ovo bi verovatno proglasio za 'partially optimizable'. Pod jedan, ne
treba ti left(), jer po difoltu radi poređenje do dužine desnog stringa.
A onda zavisi da li je y drugo polje iz baze (ne može) ili drugi
indeksni pojam (možda, nisam probao) ili polje iz druge baze koja nije
pod relacijom, ili varijabla (može da optimizuje).
Operacije nad ključevima strukturnih indek(a)sa koje podržavaju totalnu
optimizaciju su uglavnom elementarna poređenja, funkcija Empty()...
uostalom, evo iz helpa:
Potentially Optimizable Commands With FOR Clauses
AVERAGE EXPORT
BROWSE LABEL
CALCULATE LIST
CHANGE LOCATE
COUNT RECALL
COPY TO REPLACE
COPY TO ARRAY REPORT
COUNT SCAN
DELETE SORT
DISPLAY SUM
EDIT TOTAL
...
A basic optimizable expression:
<index expression> <relational operator> <constant expression>
<index expression> must exactly match the expression on which an
index is constructed and <index expression> must not contain aliases.
<relational operator> must be one of the following: <, >, =, < =, >
=, < >, #, !=.
<constant expression> may be any expression, including memory
variables and fields from other unrelated databases.
E sad, šta spada u 'fully optimizable' - sve spomenute relacije i
funkcija empty(), not <basic expr>, te da se u desnoj strani mogu
nalaziti kojekakvi izrazi, uključujući funkcije, ali da im se argument
ne menja tokom šetnje kroz bazu. Not optimizable je ako se manipuliše
stringom, recimo "for ime=upper(ime)", $ operator, ili izrazi tipa x+2=y
(moralo bi da se baci 2 desno i da y ne bude iz iste baze nego iz neke
druge i ne pod relacijom, ili memorijska promenljivva, ili da 2 ostane
levo a x da je iz druge baze itd).
Veoma je bitno da se polje po kojem se traži pojavljuje kao indeksni
pojam u strukturnom indeksu. Jednom sam, verovatno zbog zamora, ukucao
"...where upper(kupac) between k1 and k2" i čudio se zašto čita celu
bazu. Kasnije sam slučajno primetio da onaj Upper ne služi ničemu
('kupac' je šifra :), pa sam ga skinuo, i umesto "3500 records read"
počeo je da javlja "132 records read" i da uradi za 3 sekunde umesto 24.
clipper.808ndragan,
/ Funkcije MaxRow() i MaxCol() rade korektno.
U FoxProu postoji Set Display to Vga50 itd, međutim ako se potera (iz
aplikacije) eksterni program koji promeni dimenzije ekrana, srows() i
scols() daju ispravne vrednosti.
clipper.809arazumenic,
->U FoxProu postoji Set Display to Vga50 itd, međutim ako se potera (iz
->aplikacije) eksterni program koji promeni dimenzije ekrana, srows() i
->scols() daju ispravne vrednosti.
O.K. za FoxPro, ali meni treba za Clipper.
Saša
clipper.810cnenad,
Hvala na odgovoru probacu da ga skinem kad ostanem ovde na poslu
duze od 15 casova.
Pozdrav.
NENAD/Mr.Virus "X"/BMPS/CNENAD
clipper.811cnenad,
Hvala za odgovor ali ipak po savetu moram da predjem sa S87 na 5.01
i da resim taj problem sa memorijom.
Cekam tipa da mi posalje diskete sa C5.01.
Pozdrav.
NENAD/Mr.Virus "X"/BMPS/CNENAD
clipper.812d.petrovic,
Ă> Cekam tipa da mi posalje diskete sa C5.01.
Na vreme..., jel to nešto taze izašlo? ;)
clipper.813mackb,
Da li neko zna kako je moguce pokrenuti iz clippera DOS-ovu
naredbu MODE za podesavanje parametara stampaca ili se parametri
mogu podesiti na drugi nacin(nekom funkcijom ili tome slicno).Kod
pokretanja MODE-a bitno je da poruka o uspesnosti njenog izvrsenja ne ide na
ekran jer to narusava koncepciju Hvala.KKKKKKK. Hvala.
clipper.814martin,
Probaj sa run("MODE ..... > SMECE.TXT")
pozdrav martin
clipper.815bulaja,
│Da li neko zna kako je moguce pokrenuti iz clippera DOS-ovu
│naredbu MODE za podesavanje parametara stampaca ili se parametri
│mogu podesiti na drugi nacin(nekom funkcijom ili tome slicno).
└───
Ma kakav mode, dovoljno je da posaljes stampacu odgovarajucu kontrolnu
(ESC) sekvencu, u ovom slucaju za promenu sirine karaktera (pitch) i
line spacing. Pogledaj u uputstvu za stampac koje su tacno sekvence,
cini mi se da je npr. za Epson za compressed pitch (132 char u redu)
dovoljno poslati jedan SI (chr(15)).
clipper.816ratman,
Imam AT 286/12 sa HD Seagate 44Mb, 640K osnovne + cca.300 extended RAM.
Ako bih hteo da ubrzam kompajliranje i linkovanje sa Clipper-om (5.01),
koliko ima smisla dodavanje RAM i koliko bi bilo najbolje dodati?
Moze li se za Clipper iskoristiti nesto od ovih cca.300K?
█ş█şĚ█Pozdrav,
Dejan
clipper.817martin,
Sa 2 Mb se može sasvim lepo raditi! (ako nisi video brže).
Što se tiče onih 300Kb Clipper ih već koristi!
clipper.818d.petrovic,
Ă> Probaj sa run("MODE ..... > SMECE.TXT")
NUL
clipper.819jtitov,
Da li neko mogao da mi preporuci neku dobru knjigu (ali koja moze da se
kupi/kopira/nabavi ovde) u vezi Clipper-a 5.xx. Treba mi hitnoooo!
clipper.820d.petrovic,
Ă> Imam AT 286/12 sa HD Seagate 44Mb, 640K osnovne + cca.300
Ă> extended RAM. Ako bih hteo da ubrzam kompajliranje i linkovanje
Ă> sa Clipper-om (5.01), koliko ima smisla dodavanje RAM i koliko bi
Ă> bilo najbolje dodati?
Ă>
Ă> Moze li se za Clipper iskoristiti nesto od ovih cca.300K?
Za radne verzije (subjektivno mišljenje) preporučujem BLinker. Uz još
cca 1 MB (mislim da je najbolje keširati biće sigurno brže. Za
poslednje linkovanje koristim RtLink i njega pusti da koristi xms
memoriju kako mu se sviđa bilo da imaš 320 K ili 1348 K...
clipper.821dr.grba,
>> line spacing. Pogledaj u uputstvu za stampac koje su tacno
>> sekvence, cini mi se da je npr. za Epson za compressed pitch (132
>> char u redu) dovoljno poslati jedan SI (chr(15)).
Svima koji su zainteresovani : uvek postoji način...
Prilažem svoju INCLUDE datoteku, koju koristim odavno. Neke od relevantnih
escape sekvenci sa Epson - kompatibilne štampače. Radi lakšeg rada i manjeg
razmišljanja (((:, uveo sam i neke OFF sekvence, a da nisam morao, jer bi
jedna sekvenca možda mogla isključiti drugu... nikad se na zna.
Ovo možete iskoristiti za razvoj INCLUDE datoteka za druge štampače, osim
toga postoje i mnogi drugi načini (((:
printeps.chclipper.822dr.grba,
>> Da li neko mogao da mi preporuci neku dobru knjigu (ali koja moze
>> da se kupi/kopira/nabavi ovde) u vezi Clipper-a 5.xx. Treba mi
>> hitnoooo!
Isključivo knjiga koju je napisao Rick Spence; bavi se Clipperom 5.0, i to
sa stanovišta problematike programiranja (što je i čini vrednom), a kome
treba referentna lista, ima NG bateriju... Može se naručiti kod Mikro knjige.
Nadam se da ovo nije odveć reklama za distributera. Treba ljudima reći šta
valja, pre nego što kupe ono smeće domaćeg autora...
clipper.823bulaja,
│Da li neko mogao da mi preporuci neku dobru knjigu (ali koja moze da se
│kupi/kopira/nabavi ovde) u vezi Clipper-a 5.xx. Treba mi hitnoooo!
└───
Od onoga sto se moze naci ovde, jedino vredi Rick Spence-ov "Clipper 5 -
Vodic za programere", izadala je ŠKnjiga.
clipper.824dejanr,
>> Da li neko mogao da mi preporuci neku dobru knjigu (ali koja moze da se
>> kupi/kopira/nabavi ovde) u vezi Clipper-a 5.xx. Treba mi hitnoooo!
Rik Spens, Clipper 5. Sjajna knjiga.
clipper.825ndragan,
/│ naredbu MODE za podesavanje parametara stampaca ili se parametri
/ Ma kakav mode, dovoljno je da posaljes stampacu odgovarajucu kontrolnu
/ (ESC) sekvencu, u ovom slucaju za promenu sirine karaktera (pitch) i
Pretpostavljam da se radi o štampaču sa serijskim interfejsom, pa se
mora prvo podesiti brzina, parnost itd (ono mode com1 9600,8,1,n ili
kako već beše) i još preusmeriti lpt1 na com1. Na instalacijama gde sam
morao to da radim, gurao sam obe mode naredbe bilo u autoexec bilo u beč
kojim se poziva aplikacija; uglavnom, bitno je da se pozove pre nego što
se u aplikaciju uopšte uđe. Tako mi je radilo bez problema.
clipper.826snemcev,
>> Da li neko mogao da mi preporuci neku dobru knjigu (ali koja moze da
>> se kupi/kopira/nabavi ovde) u vezi Clipper-a 5.xx. Treba mi hitnoooo!
Rik Spens: Clipper 5, Mikro knjiga, Beograd
clipper.827bulaja,
Da li je neko resio probleme sa linkovanjem biblioteka pravljenih sa
Clipper 5.01 i programa pisanih u 5.2? RTlink prijavi nedefinisan simbol
CLIPPER501, Blinker ne javi nikakvu gresku (!), ali se zato program
obicno zaglavi.
clipper.828snemcev,
>> Ovo možete iskoristiti za razvoj INCLUDE datoteka za druge štampače,
>> osim toga postoje i mnogi drugi načini (((:
Mogao si onu datoteku bar zipovati ;)
Elem, odavno se zanosim mišlju da napravim program kojem bi se
jednostavno reklo "imam A3 Epson kompatibilca" ili "imam HP LJ III" i da
on savršeno odštampa izveštaj i na jednom i na drugom, ali da pri tom
iskoristi do maksimuma mogućnosti i jednog i drugog. Npr. želim da mi
izveštaj od širine 160 kolona na Epsonu odštampa na A4 kondenzovano, a
na laseru u lendskejpu normal fontom. Primer 2: izveštaj za koji je na
Epsonu potreban A3 format (zbog preglednosti) isto tako treba na laseru
odštampati u lendskejpu, ali ovaj put koristeći neka "gušća" slova.
Jedina ideja koja mi je pala na pamet je nešto kao ono što je uradio
Nenad u R 9? tj. procedura koja bi analizirala izveštaj i na osnovu toga
odlučivala kako će se šta štampati. Pitanje koje u stvari želim da
postavim je ovo: jel' neko probao nešto slično da uradi i kakva su
iskustva?
clipper.829bulaja,
│Clipper "Fast" EGA/VGA PCX Display Library
└───
Radi :) (i to dobro), prebacneo u Clipper dir.
clipper.830toma,
■■>> ... Pitanje koje u stvari želim da
■■>> postavim je ovo: jel' neko probao nešto slično da uradi i kakva su
■■>> iskustva?
Obrati pažnju! (cit. Radovan III:)
Ja sam uradio nesto sto je mozda početak toga u smislu da program
sam odredi u kom modu će stampati dokument. E sad, moguće je imati
promenljivu pmax_col koja će zavisiti od štampača i od koje će zavisiti
mogućnost štampe. Problem je dokument od recimo 300 kolona na A4
printeru. Rešenje problema sam ukrao od ćaleta (knjigovođe("kad je
raster kratak, uzmeš dva pa produžiš")). Znači, štampanje ide u fajl,
onda prvih 160 kolona ide na prvu stranu, drugih 140 na drugu, pa se
onda to zalepi selotejpom. Verujte mi knjigovođe to vole!
Napravio sam i to da ako je kolona (na dokumentu) sa brojevima
"prazna" da uopšte i ne ide u štampu, tako da se samim tim i ukupan broj
kolona (printerskih:) smanjuje.
Al sam ti pomogo, svaka mi čast, a? Sve ti je jasno.
ps. Dok sam rešavao gore pomenute probleme, nisam ni pomišljao na laser,
pa eto, uradi i te nešto, ne mogu sve ja! :)))
clipper.831cnenad,
Zdravo, svima.
Jedna radosna vest.
Upravo sam malopre instalirao clipper 5.01 i nadao se da je
moj problem sa startovanjem programa resen. Kad ono ne lezi vraze
evo jos problema.
Prvo zasto cliper 5.0 odbija naredbu SET COLOR
javlja da Úfali Úboja na kraju a u stvari to je reset prethodnih
setovanja (barem je bilo u kliperu s87)
Drugo kad sam linkovao obj fajl(ove) linker prijavljuje sledecu gresku:
NIV NIV_FUNC Ú Input parsing error
^ Caret (^) shows portion od line read when error
discovered
Sta je to ?
Napominjem da mi je niv glavni program a niv_func UDF funkcija i to je sve
radilo kad se linkovalo u S87.
Jel mozda nije dobra sintaksa za linkovanje.
Ako nije , napisite sta treba da stavim.
Cao.
Nesa
clipper.832dr.grba,
>> Mogao si onu datoteku bar zipovati ;)
Znate li šta je to bronzani pogled? To je ono kad gurneš kristalnu čašu
sa stola, ona se sruši, skotrlja lagano niz sto, pada, pada, paaaaada,
razbija se u paramparčad, a vi ništa niste preuzeli za sve to vreme, mada
se sve odvijalo lagano, samo ste bespomoćno posmatrali zbivanje.
Taj pogled se zove "bronzani pogled", po rečima Danila Harmsa...
Upload PRINTEPS.CH sam pratio bronzanim pogledom ):
clipper.833dr.grba,
>> mogućnost štampe. Problem je dokument od recimo 300 kolona na A4
>> printeru. Rešenje problema sam ukrao od ćaleta (knjigovođe("kad je
>> raster kratak, uzmeš dva pa produžiš")). Znači, štampanje ide u
>> fajl, onda prvih 160 kolona ide na prvu stranu, drugih 140 na
>> drugu, pa se onda to zalepi selotejpom. Verujte mi knjigovođe to vole!
...ne samo da vole, nego ti skaču u oči objašnjavajući kako će im
firma propasti ako ne bude baš tako.
Stvarno, zar mislite da je neophodno praviti tako široke izveštaje???
Da, da. Za izveštaj "korelacija između kvarta stanovanja i školske
spreme radnika, ponderisano sa radnim stažom i prethodnim radnim mestom,
a sve u punom imenu, omenu oca, prezimenu, adr... .... ...fri, nazivu i
opisu radnog mesta...
Molim vas! Da li je to upotrebljivo?
clipper.834neman,
Jao ....
Prevodio sam jedan stari program ( C501 ) sa novim C52a, ( C52 patch-ovan sa
ovim ovdasnjim patch-om ) i ....
Naime, imam svoju funkciju NET_USE, koja otvara datoteku pod mrezom, sa
parametrima koji se navode itd.
Ide otprilike ovako
FUNC NET_USE( dbf, alias,... )
IF !EMPTY( NETNAME() )
.
.
ELSE
USE (dbf) ALIAS (alias) NEW
RETURN(.T)
ENDIF
E sad, pozivaju ci funkciju iz jednog dela programa u liniji u kojo sam naveo
USE prijavljuje gresku DBCMD 1015 Argument erro DBUSEAREA
Ista ova funkcija radi ( za C501 ) na milion mesta, kada sam izdvajao iz
programa zasebno pozivanje radi, analizirao sam .PPO i nista.
U NG nema greske 1015, nisam koristio nazive za promenljive DBF i ALIAS to sam
samo uradio u ovom primeru, ...
Izgleda da cu da se vratim na C 501 ?
neman
clipper.835snemcev,
>> Molim vas! Da li je to upotrebljivo?
Zar si to dosad živeo bez toga?!? ;))
clipper.836dr.grba,
>> >> Molim vas! Da li je to upotrebljivo?
>>
>> Zar si to dosad živeo bez toga?!? ;))
Za mnogo godina, u AOP-u u kom radim su ispunjene razne muzičke želje.
Ali, kada bi mi neko tražio nešto slično, leteo bi glavačke napolje.
clipper.837snemcev,
>> Napravio sam i to da ako je kolona (na dokumentu) sa brojevima
>> "prazna" da uopšte i ne ide u štampu, tako da se samim tim i ukupan
>> broj kolona (printerskih:) smanjuje.
Inetersantna ideja. Može malo detaljnije?
clipper.838snemcev,
>> Ali, kada bi mi neko tražio nešto slično, leteo bi glavačke napolje.
Ispričah ti u petak priču o platnoj listi u 450 kolona.
clipper.839nbatocanin,
> Da li je neko resio probleme sa linkovanjem biblioteka
> pravljenih sa Clipper 5.01 i programa pisanih u 5.2?
> RTlink prijavi nedefinisan simbol CLIPPER501, Blinker ne
> javi nikakvu gresku (!), ali se zato program obicno
> zaglavi.
Legalno rešenje teško da postoji: ako je deo biblioteke pisan u
Clipper-u, onda će uvek tražiti simbol CLIPPER501. Blinker ne javlja
nikakvu grešku kad inkrementalno linkuje, a prethodno je bilo
uključeno EXE NODELETE.
clipper.840toma,
■■>>>> Napravio sam i to da ako je kolona (na dokumentu) sa brojevima
■■>>>> "prazna" da uopšte i ne ide u štampu, tako da se samim tim i ukupan
■■>>>> broj kolona (printerskih:) smanjuje.
■■>>
■■>> Inetersantna ideja. Može malo detaljnije?
Konkretan slučaj za ovu stvar kod mene je bila tabela tarifnih
brojeva po dokumentima. Na primer
Dokument T-1(44%) T-3.4(43%) T-8.1(3%)
--------------------------------------------------
Kalkul. 1 20,000
Kalkul. 2 30,000
Kalkul. 3 40,000
Prvo sam sabrao sve tarife, odredio koje ne treba da se štampaju,
naslovi se kreiraju automatski iz naziva i stope tarife a ja sam
jednostavno kreirao array koji sadrži šifre tarifa koje se štampaju i to
je to.
Kasnije sam nešto još razmišljao da napravim nešto u stilu
dBrowse-a, tako da svaka kolona ima naziv (zaglavlje), picture, sadržaj
(CENA) i zbir kolone (može i .T. ili .F. za kolone koje ne mogu da se
saberu) i onda program sam odredi koje su kolone "pune" a koje "prazne".
Sa svim tim podacima prevazilazi se i problem naših velikih brojeva jer
i picture može automatski da se odredi prema veličini zbira, a ako
širina pređe 160 slovceta ide na dve strane pa selotejp :) Ideja u
principu nije loša samim tim što je moja ;) ali treba sesti i napisati,
a bliži se šestomesečni, a i ja moram na more ;).
BTW Kako ste rešili "Data width error" koji je sve češći, a? Kod mene je
situacija da sve kontroliše posebna funkcija (nešto kao rečnik baza
Batoćanina) s tim da kad primeti da je širina veća od širine u bazi,
zatvori bazu, kreira tmp sa istom strukturom samo širim potrebnim
poljem, sve appenduje iz baze u tmp, preimenuje šta je potrebno i ponovo
je otvori. Ponekad potraje ali ne prijavi grešku i ne uznemiravaju
programera O:) (normalno nema APPEND BLANK, REPLACE nego dodaj(prom_a,
prom_b...) )
clipper.841bulaja,
││Da li je neko resio probleme sa linkovanjem biblioteka
││pravljenih sa Clipper 5.01 i programa pisanih u 5.2?
│└───
│Legalno resenje tesko da postoji: ako je deo biblioteke pisan
│u Clipper-u, onda ce uvek traziti simbol CLIPPER501.
└───
Neverovatna glupost od strane CA! Kao trude se da ocuvaju vertikalnu
kompatibilnost i sl., a ovamo ni obicni stari LIB-ovi ne mogu da se
povezu sa Clipper-om 5.2. Pokupili su najgoru osobinu od TP-a. :(
clipper.842bulaja,
Moze li se nekako naterati MemoEdit() da ne ubacuje Soft CR (Ź) u
string koji vraca (a da to ne bude pomocu StrTran() ili Memotran()).
clipper.843ematic,
> Moze li se nekako naterati MemoEdit() da ne ubacuje Soft CR (Ź)
> u string koji vraca (a da to ne bude pomocu StrTran() ili
> Memotran()).
Na žalost to ne može da se uradi tako da memoedit vrati 'pročišćeni'
string (ili možda može nekom petljavinom, al' ja to ne znam :),
međutim može jedan hardcr(string), i to bi bilo ono što je tebi
potrebno :)
clipper.844bulaja,
**** new file ****
R:\IBMPC\CLIPPER\*.*
----------------------
ft_doc arj 29257 Kreiranje NG iz izvornog koda formatiranog kao NanFor
FT_DOC is a program which will extract routine documentation out of
source code which is documented using the Nanforum Toolkit documentation
header (FTHDR.PRG or FTHDR.ASM). It is capable of creating the necessary
input files for the Norton Guide compiler (NGC) or a series of ASCII files
which can be browsed or printed.
clipper.845ppekovic,
>> Neverovatna glupost od strane CA! Kao trude se da ocuvaju vertikalnu
>> kompatibilnost i sl., a ovamo ni obicni stari LIB-ovi ne mogu da se
>> povezu sa Clipper-om 5.2. Pokupili su najgoru osobinu od TP-a. :(
Nemoj tako Bulaja, ispljuva ti naše ljude. Naime, iz pouzdanih
izvora sam čuo da je prvi čovek za baze u CA-u naš čovek (završio
FON). Još jedan naš čovek u CA-u (isto sa FON-a :)) je šef
predstavništva CA u Moskvi.
Paya
clipper.847bulaja,
│medutim moze jedan hardcr(string), i to bi bilo ono sto je tebi potrebno :)
└───
Ne treba mi to :), necu da imam nikakve sort CR-ove i gluposti :), vec
samo da mi ostanu CRLF parovi kao terminatori paragrafa.
clipper.848bulaja,
│Nemoj tako Bulaja, ispljuva ti nase ljude. Naime, iz pouzdanih izvora sam
│cuo da je prvi covek za baze u CA-u nas covek (zavrsio FON). Jos jedan
│nas covek u CA-u (isto sa FON-a :)) je sef predstavnistva CA u Moskvi.
└───
Onda povlacim rec :). FON rules! Ali ipak su mogli da pripaze i na
ovakvu sitnicu kao sto je ocuvanje kompatibilnosti LIB-ova.
clipper.849dr.grba,
>> >> Ali, kada bi mi neko tražio nešto slično, leteo bi glavačke napolje.
>>
>> Ispričah ti u petak priču o platnoj listi u 450 kolona.
I nisi leteo glavačke napolje, pa ti sad nešto nije jasno?
clipper.850ematic,
> Ne treba mi to :), necu da imam nikakve sort CR-ove i gluposti
> :), vec samo da mi ostanu CRLF parovi kao terminatori
> paragrafa.
Ups, pogrešno sam razumeo pitanje :) Koliko ja shvatam mehanizam koji
koristi memoedit to što želiš nije moguće u toku memoedita, nego tek
naknadno :(. Nego, kad smo već kod memoedita, da li neko zna način,
ma koliko da je prljav :)), da se direktno pristupi tekst baferu u
toku memoedita. Valjda postoji neka interna f-ja u kliperu koja se
brine za to, pa onda sa malo C-a... ?
p.s. kad će već jednom 'službena' objektna zamena za memoedit, ovaj
ovakav mi pojede dušu do sad :))
clipper.851ndragan,
/ Ne treba mi to :), necu da imam nikakve sort CR-ove i gluposti :), vec
/ samo da mi ostanu CRLF parovi kao terminatori paragrafa.
Ne bih da se mešam, ali to je upravo ono kako radi FoxPro :)
clipper.852snemcev,
>> BTW Kako ste rešili "Data width error" koji je sve češći, a?
Tako što čupam kosu. Imam program za finansijsko knjigovodstvo, pravljen
još za vreme Ante Markovića i kao maximum mu je postavljeno
10,000,000,000.00 dinara, ili u ono vreme, više nego velikodušnih
1,500,000,000.00 DEM (da, milijardu i petsto hiljada maraka). Program je
preživeo sve denominacije i sve do skora je radio OK. E, sad treba
proširiti sva polja za bar 50% (kako se piše ta inflacija, 10^x?), a
source je, dok sam bio na ratištu, misteriozno nestao. I sad, ajmo Jovo
nanovo. Nov program. Što bi rekli mi, Lale, "ko zna zašto je to dobro..."
clipper.853snemcev,
>> i onda program sam odredi koje su kolone "pune" a koje "prazne".
Nismo se razumeli. Mislio sam da si uradio ovo:
KREIRAN IZVEŠTAJ:
Datum Broj Broj Suma
------------------------------------------------
01.01.01 2 2 4
08.12.54 4 1 5
------------------------------------------------
6 3 9
ODŠTAMPAN IZVEŠTAJ:
Datum Broj Broj Suma
--------------------------
01.01.01 2 2 4
08.12.54 4 1 5
--------------------------
6 3 9
Znači, izbačene su one kolone koje su nepopunjene tj. izbačen je prazan
prostor koji ničemu ne služi, osim za izveštaje od ??? kolona.
clipper.854toma,
ja:
■■>> Sa svim tim podacima prevazilazi se i problem naših velikih brojeva
■■>> jer i picture može automatski da se odredi prema veličini zbira, a ako
on:)
■■>> Znači, izbačene su one kolone koje su nepopunjene tj. izbačen je
■■>> prazan prostor koji ničemu ne služi, osim za izveštaje od ??? kolona.
opet ja.
Eto propustio si par redova u mojoj poruci. Na žalost to je tek u
mojoj glavi a ne u .prg fajlu, ali biće :)).
Ideja je da se ide stavka po stavka i određuje najveća širina. Kad se
obrade svi podaci na kraju imaš širinu "najšireg" broja. Uporediš to sa
širinom zaglavlja i pičiš. Eto.
clipper.855jtitov,
> source je, dok sam bio na ratistu, misteriozno nestao. I sad, ajmo Jovo
Tako ti i treba kad branis 'goloruki narod'! ;)
> nanovo. Nov program. Sto bi rekli mi, Lale, "ko zna zasto je to dobro..."
Jadnice :((((
clipper.856snemcev,
>> Eto propustio si par redova u mojoj poruci. Na žalost to je tek u
>> mojoj glavi a ne u .prg fajlu, ali biće :)).
Da, tako sam i shvatio. Nije u .prg, a ono što si opisao u nekoj od
prethodnih poruka je u .prg.
>> Ideja je da se ide stavka po stavka i određuje najveća širina. Kad se
>> obrade svi podaci na kraju imaš širinu "najšireg" broja. Uporediš to
>> sa širinom zaglavlja i pičiš. Eto.
Da, dva prolaza kroz bazu. A šta ako je računanje na osnovu kojeg praviš
izveštaj komplikovano, pa dugo traje? Meni je prvo palo na pamet da se
izveštaj (sa najvećim mogućim kolonama) prvo kreira na disku (zbog
preview-a), pa da se pre štampanja protrči kroz fajl i da se za svaku
kolonu u izveštaju uvede element niza i da taj element bude .t. ako
nešto u toj koloni ima, a .f. ako nema. Možda zvuči nerazumljivo, al'
evo "algoritma":
dimenzioniši i inicijalizuj niz, otvori datoteku itd.
while !eof()
pročitaj red
for i=1 to len(red)
if red[i] == ima_nešto then niz[i] := .t.
next i
end do
Posle ovoga, možeš mirne duše da neštampaš one kolone za koje je
niz[broj_kolone] == .f.
Možda bi još trebalo uvesti proveru za ono podvlačenje ispod zaglavlja,
jer to se pojavljuje u svakoj koloni, bez obzira da li je "prazna" ili
"puna" tj. uslov bi trebao biti nešto kao
if red[i] == ima_nešto .and. red[i] != "-" then ...
clipper.857dr.grba,
>> > source je, dok sam bio na ratistu, misteriozno nestao. I sad,
>> ajmo Jovo
>>
>> Tako ti i treba kad branis 'goloruki narod'! ;)
Nemoj tako, imao je ne samo opravdanje, već i koordinate Jelačića placa.
>> > nanovo. Nov program. Sto bi rekli mi, Lale, "ko zna zasto je to dobro..."
>>
>> Jadnice :((((
Ma jok, nemo' da ga žališ, pisao je u Pascalu, a sad radi u Clipperu.
---> Crkla disketla, al' ne marim.
clipper.858dr.grba,
>> Možda bi još trebalo uvesti proveru za ono podvlačenje ispod
>> zaglavlja, jer to se pojavljuje u svakoj koloni, bez obzira da li...
Zanimljivo. Ako već uvodiš niz koji kontroliše odluku, neka to bude
n-dimenzioni niz, pri čemu se već ispita broj dimenzija.
I sad možeš čuvati logičko stanje, širinu kolone, opcionu širinu...
...a u modulu za štampu formirati zaglavlje shodno log. stanju i oznaci
širine kolone.
Da ovo napišem, samo sam malo škrabao po papiru. Računam da bi model u
ovom smeru mogao da se napravi uspešno...
...al' šta vredi kad ja i dalje nemam nameru da pravim šlajfne formata
direktorovog stola. Moj direktor bi i tako taj izveštaj upotrebio da
zaštiti Ktitor nameštaj od masnog bureka.
clipper.859ndragan,
/ 10,000,000,000.00 dinara, ili u ono vreme, više nego velikodušnih
Paz' cicije, samo 11 celih. Jesi nekad pisao kamate za banku?
Za takva čudesa imam funkciju koja prepakuje bazu u novi format; piše je
generator opisa baza (jaka stvar, programče od 2K), pa je malo
izeditujem i pustim. Za pikčere u maskama imam dve-tri globalne
promenljive, naprimer g_pc='999,999,999,999', a tamo u masci već stoji č
4,3 get tralala pict g_pc. Mož' da se desi da malo prekrije sledeće
polje, al' zato izmena programa traje 15 minuta po aplikaciji.
Teža stvar su izveštaji koje sam radio iz riporta (.frx); tamo obično
sredim jedno polje, a snimim operaciju u makro i onda krenem serijski.
Za pešački rađene štampe (č r,c say) nema problema, jer i tamo stoji
nešto ovako
k1=0
...
k5=k4+1+len(g_pc2)
...
č _red, k5 say to_i_to
i naravno, negde ima crta=replicate('=',k9+len(g_pc1)), pa se i te
štampe automatski šire i skupljaju.
Razmišljam o tome da automatizujem čačkanje .frx izveštaja, čime
dobijamo antiinflatornu i antidemonizacionu vakcinu :).
clipper.860solajac,
Komandu SET COLOR zameni funkcijom SETCOLOR().─ů║
Sve PRG-ove treba da prekompiliras sa C5.1, i tek tako dobijeneĘ
OBJ▀-oů_nůve│ÚĆĘ────▀(linija me zezačr pa ne znam sta sam stvarno nap´kisao)
Tako dobiene OBJ-ove linkuj. Ne znam da li znas. Bez uvrede. U upot│rebiÚĆ│Ę
su RTLINK ▀ili BLINKER═´█. Nikako TLINK ili PLINK.
Inace ne znam koji format koristis za linkovanje. On je uglavnom jednostavan.
Kod kompiliranja je isto tako vazno (mozda i vaznije)│ koje opcije koristis.
Ja kompiliram svaki PRG posebno, na primer:
CLIPPER GLAVNI /A /M /N
stim sto u svakom Ę▀─PRG-u im─am ůvise PROEÚ─
w3
U jednom PRG-u imam vise procedura.
posle linkujem sa RTLINK FILE GLAVNI,PRG1,PRG2.
│ů
ů
Linija me strasno zezala ali se nadam da cu biti od pomoci.
Pozdrav SOLAJAC.
clipper.861snemcev,
>> Ma jok, nemo' da ga žališ, pisao je u Pascalu, a sad radi u Clipperu.
čalim što moram da te ispravim, bio je to ipak Clipper program. Za onaj
u Pascalu više ne znam ni gde je ;)
clipper.862dr.grba,
>> Linija me strasno zezala ali se nadam da cu biti od pomoci.
>> Pozdrav SOLAJAC.
Jel' imaš uputstvo za Sezam?
Tamo se nešto priča o redirekciji ulaza, exec datotekama, uploadu
poruka i tako to, a i manji tlf. račun. Da ne pričam kako možeš i
drugima da omogućiš da pročitaju tvoje poruke...
clipper.863bstevan,
Imam jedno pitanje u vezi S 87'.
Interesuje me dali neko zna kako najbolje iz aplikacije,
može da promeni sistemski datum računara a da ne izlazi
iz aplikacije.
pozdrav,
BSTEVAN
clipper.864neman,
Ja sam problem koriscenja biblioteka za Clipper 5.01 resio tako
sto sam sam definisao
PROC CLIPPER501
RETURN
i zavrsio pos'o.
neman
clipper.865d.petrovic,
Ă> Imam jedno pitanje u vezi S 87'.
A zašto ne pređeš na 5.01 ili 5.2 ? Imaš gomilu bublioteka, a u
nanform.lib se valjda nalazi funkcija koja radi to što tebi treba...
Ă> Interesuje me dali neko zna kako najbolje iz aplikacije,
zaboravio sam već šta S87 ima..., probaj:
datum=date()
get datum
read
string="date "+dtoc(datum)
run &string
clipper.866cnenad,
ŁŁŁ Sve PRG-ove treba da prekompiliras sa C5.1, i tek tako
ŁŁŁ dobijeneĘ OBJ▀-oů_nůve│ÚCĘ────▀(linija me zezacr pa ne znam
ŁŁŁ sta sam stvarno nap´kisao)
ŁŁŁ
ŁŁŁ Tako dobiene OBJ-ove linkuj. Ne znam da li znas. Bez uvrede.
ŁŁŁ U upot│rebiÚC│Ę su RTLINK ▀ili BLINKER═´█. Nikako TLINK ili
ŁŁŁ PLINK.
ŁŁŁ
ŁŁŁ Inace ne znam koji format koristis za linkovanje. On je
ŁŁŁ uglavnom jednostavan. Kod kompiliranja je isto tako vazno
ŁŁŁ (mozda i vaznije)│ koje opcije koristis.
Ma nema problema i nema uvrede.
Programe sam i preveo sa novim C5.01 i trebalo je da RTLINK linkuje
NIV.OBJ i NIV_FUNC.OBJ sto je radilo u S87 (sa TLINK) ali ovde nece.
Onda sam jedno 30 puta menjao sintaksu za linkovanje i nije uspelo.
Onda rekoh, ajd da probam da taj NIV_FUNC.PRG stavim na kraj NIV.PRG-a
i lepo prevedem i linkujem samo NIV.OBJ i sve proradi kako treba.
Meni ovo bas cudno deluje.
Kad smo vec kod te funkcije SETCOLOR() na koji nacin ona resetuje
prethodno postavljene boje ?
clipper.867cnenad,
Interesuje me jedna stvar. Koliko sam razumeo u CLIPPER-u 5.01
je uvedeno dodeljivanje vrednosti promenljivima na sledeci nacin
xxxxx := 42
A uporedjivanje promenljivih se vrsi normalno sa potrebnim matematickim
znakovima, jel tako ?
Znaci bilo bi pozeljno da u svim svojim programima izvrsim zamene i dodam
umesto ( = ) znak ( := ) (normalno bez zagrada) ?
Ako je pozeljno, ima li neki programcic koji bi to mogao automatski da uradi
da ne jurcam po sorsu i trazim ?
clipper.868bstevan,
>> A zašto ne pređeš na 5.01 ili 5.2 ?
To nije sporno ali aplikacija koja proverena i radi 2 godine
kod korisnika, samo zbog jedne izmene da celu prilagodjavam na
5.01 ili 5.2, a hvala ja ne bih.
>> datum=date()
>> get datum
>> read
>> string = "date "+dtoc(datum)
>> run &string
===
Ovo run mnogo smeta jer traži mnogo od programa i jako je
neprijatno.
No' ipak hvala smislio sam način kako da rešim problem,
ali ne preko menjanja sistemskog datuma u računaru.
Ali bih pitanje ostavio otvoreno, kako bez korišcenja RUN naredbe
promeniti sistemski datum u računaru iz aplikacije pisane u S87'.
pozdrav,
BSTEVAN
clipper.869dr.grba,
>> Kad smo vec kod te funkcije SETCOLOR() na koji nacin ona resetuje
>> prethodno postavljene boje ?
Postavi zastareli oblik, komandu SET COLOR TO , bez argumenata.
Ovo će da vrati na crno-beli ispis, onaj default oblik.
A ako te interesuje doslovni oblik funkcije, zaviri u STD.CH, baš
mi se nešto sad ne da... Ali oblik je nešto poput :
#define SET COLOR TO (<c>) SetColor(<c>)
Izvini ako sam pogrešio, malo sam lenj da proverim, toplo mi je...
A ako hoćeš da vratiš neke tvoje egzotične boje nakon nekih drugih,
takođe egzotičnih, napravi stek za boje. Lepo je u Spence-ovoj knjizi
opisano kako se to radi...
clipper.870dr.grba,
>> Ako je pozeljno, ima li neki programcic koji bi to mogao automatski
>> da uradi da ne jurcam po sorsu i trazim ?
Jurcaj i traži, da ne bi posle mislio "pa gde je greška?", jer kako
nekom programu ili editoru objasniti razliku između operatora dodele
i operatora logičkog poređenja?
clipper.871d.petrovic,
Ă> Programe sam i preveo sa novim C5.01 i trebalo je da RTLINK
Ă> linkuje NIV.OBJ i NIV_FUNC.OBJ sto je radilo u S87 (sa TLINK) ali
Ă> ovde nece.
Ă> Onda sam jedno 30 puta menjao sintaksu za linkovanje i nije
Ă> uspelo. Onda rekoh, ajd da probam da taj NIV_FUNC.PRG stavim na
Ă> kraj NIV.PRG-a i lepo prevedem i linkujem samo NIV.OBJ i sve
Ă> proradi kako treba.
Može biti da si koristio static promenljive pa nisi niv_func
preveo sa opcijom "/n".
clipper.872d.petrovic,
Ă> To nije sporno ali aplikacija koja proverena i radi 2 godine
Ă> kod korisnika, samo zbog jedne izmene da celu prilagodjavam na
Ă> 5.01 ili 5.2, a hvala ja ne bih.
Ne treba ništa da menjaš, jedino sve prevedeš njime. Zadržao je
kompatibilnost osim (možda, ni ja više nisam siguran) oko
dodeljivanja. Ne mogu sebe da ubedim da mi nije u jednom delu bio
problem da sve "=" zamenim sa ":=" i to samo u jednoj proceduri. Ipak
pokušaj sve da prevedeš sa 5.01, trebalo bi da proradi.
Ă> Ali bih pitanje ostavio otvoreno, kako bez korišcenja RUN naredbe
Ă> promeniti sistemski datum u računaru iz aplikacije pisane u S87'.
Mislim da iz samog S87 ne može, jedino dodati funkciju u
assembleru (ili C-u)
clipper.873d.petrovic,
Ă> Ako je pozeljno, ima li neki programcic koji bi to mogao
Ă> automatski da uradi da ne jurcam po sorsu i trazim ?
Moraš da tražiš, zbog poređenja...
clipper.874balinda,
Ima li ko iskustva sa Flipperom ili poseduje neku dokumentaciju?
clipper.875nbatocanin,
Primetih jedan nedostatak dibagera u Clipper-u 5.2: ako imate
programe u nekoliko dirova, pa hoćete da otvorite neku datoteku koja
nije u tekućem, ranije je bilo dovoljno da otkucate njen naziv, a
dibager bi sam dodao pun naziv. Na primer, vi otkucate PRINT, a
on doda D:\BASE\SYS5\PRINT.PRG. Naravno, mora se postaviti
odgovarajući "Path for Files". E, novi i bitno šareniji dibager ne
prihvata čak ni samo PRINT, (mora ekstenzija) a o produženju naziva
da i ne govorim ;(( Doduše, ima nekih drugih dobrih osobina.
clipper.876cnenad,
ŁŁŁ>> Kad smo vec kod te funkcije SETCOLOR() na koji nacin ona
ŁŁŁ>> resetuje prethodno postavljene boje ?
ŁŁŁ Postavi zastareli oblik, komandu SET COLOR TO , bez
ŁŁŁ argumenata.
Kad sam prevodio sa C5.01 nisam ni menjao naredbu SET COLOR TO
ali je on prijavio gresku i kad sam izbacio tu naredbu sve je preveo
bez problema. Dakle, pitanje i dalje ostaje otvoreno.
clipper.877cnenad,
ŁŁŁ Moze biti da si koristio static promenljive pa nisi niv_func
ŁŁŁ preveo sa opcijom "/n".
Nigde nisam stavio STATIC niti sam preveo programe sa opcijom "/n" !?!
clipper.878cnenad,
Kako mogu da napravim sledecu stvar:
da kad se vrsi poziv exe fajla iz dos-a prenese odredjeni argument ili
parametar programu koji treba da znaci da ne treba da izvrsi deo
programa gde se startuje uvodni deo ekrana.
Dajem primer source koda:
glavni.prg ide ovako
do while .t.
clear all
close all
public datum
public naslovna, p
public w, n, zut, b, g, bg, r, rb, gr, inverzno, prazno, siv, form, srm
// setovanja programa
do parametr
do provera // poziva program koji proverava da li je uradjena naslovna
iz=0
do while iz<9
clea
do while .t.
do ram
set message to 17 center
set wrap on
set delimiters to "[]"
set delimiters off
m_izbor=1
// komande za ispis menija
clear typeahead
menu to m_izbor
do case
case lastkey()=27
do nista
exit
case m_izbor=1
do prozor1
exit
... // itd.
endcase
enddo
iz=0
if iz<9
loop
else
exit
endif
enddo
enddo
return
provera.prg
naslovna="uradjeno" <--- e ovaj parametar (kako to izvesti)
if .not. iscolor()
// setovanja boja
endif
if naslovna="uradjeno"
return
else
do ekran
endif
set color to w/n
return
Nadam se da mi necete zameriti sto sam Vam poslao malo mog izvornog koda.
Posto vec stoji taj parametar naslovna="uradjeno" nece se vrsiti startovanje
glavnog ekrana ali bih to u zavrsnoj verziji izbacio tako da se uvek startuje
naslovni ekran osim ako se iz dos linije za poziv ne ubaci neki parametar
koji ce staviti do znanja programu da ne prikazuje naslovni ekran.
To mi je strasno potrebno, pa ako mozete da pomognete...
clipper.879snemcev,
>> Ako je pozeljno, ima li neki programcic koji bi to mogao automatski
>> da uradi da ne jurcam po sorsu i trazim ?
Uzmi bilo koji editor i uradi Search&Replace.
Alternativa (za >> xx .prg) je program SNR iz Sezamovih direktorijuma.
clipper.880dejanr,
>> da kad se vrsi poziv exe fajla iz dos-a prenese odredjeni argument ili
>> parametar programu koji treba da znaci da ne treba da izvrsi deo
>> programa gde se startuje uvodni deo ekrana.
Parameter a
If PCount()=1
x:=a
Else
x:=123
End If
...
clipper.881nikac,
>■ To nije sporno ali aplikacija koja proverena i radi 2 godine
>■ kod korisnika, samo zbog jedne izmene da celu prilagodjavam na
>■ 5.01 ili 5.2, a hvala ja ne bih.
Neznam zbog sta to moras da prilagodjavas...
Mislim, moj cale je VEOMA lako presao sa summer 87 na 5.01
i to sa nekim minimalnim ili nikakvim(sad se bas nesecam najbolje)
prepravkama. Samo ces da dobijes brzi kod kad ga kompajliras
sa 5.01.
-=Nikac=-
clipper.882nikac,
>■ Interesuje me jedna stvar. Koliko sam razumeo u CLIPPER-u 5.01
>■ je uvedeno dodeljivanje vrednosti promenljivima na sledeci
>■ nacin
Koliko ja znam ne postoji takva izmena.
5.01 je nadskup s87 tj. skoro u potpunosti su kompatibilni.
-=Nikac=-
clipper.883d.petrovic,
Ă> Nigde nisam stavio STATIC niti sam preveo programe sa opcijom
Ă> "/n" !?!
Brži su mi prsti od pameti :). Sada sam se setio da je pojenta u tome
što su programi bili pisani u S87. Opcijom "/n" treba prevoditi kada
koristiš eksterne static promenljive, tada su promenljive vidljive na
nivou modula. Sad žurim, pogledaj nenadov umetak u nekim starijiim
računarima...
clipper.885d.petrovic,
Ă> da kad se vrsi poziv exe fajla iz dos-a prenese odredjeni
Ă> argument ili parametar programu koji treba da znaci da ne treba
Ă> da izvrsi deo programa gde se startuje uvodni deo ekrana.
čurim i mrzi me da pregledam ceo source koji si ostavio, valjda
ti treba sledeće:
glavni_prog
parameters a,b,c
d:=pcount() // vraca broj prenetih parametara
// svi parametri preneti iz dos-a su "C" tip, ako ti treba brojni
// izvrsis konverziju
do case
case d==0
// nije prenet parametar
// sve tri promenljive postaviti na default
case d==1
// a je prenet
// b:= default
// c:= default
case d==2
// c:= default
case d==3
// sva 3 su preneti
otherwise
// beep, preneto previse parametara
endcase
clipper.886snemcev,
>> Posto vec stoji taj parametar naslovna="uradjeno" nece se vrsiti
>> startovanje glavnog ekrana ali bih to u zavrsnoj verziji izbacio tako
>> da se uvek startuje naslovni ekran osim ako se iz dos linije za poziv
>> ne ubaci neki parametar koji ce staviti do znanja programu da ne
>> prikazuje naslovni ekran.
Pri dekleraciji glavne procedure, navedi i neki parametar i u njemu ćeš
dobiti prvi parametar iz komandne linije, u drugom drugi itd.
Alternativa (za Clipper '87) je da posle zaglavlja (procedure bla_bla)
navedeš PARAMETERS p1, p2...
clipper.887snemcev,
Jedno interesantno pitanje: kako saznati ime datoteke koja je otvorena u
trenutno aktivnoj radnoj oblasti? Ne, neću alias, već pravo ime
datoteke. Izgleda mi da Clipper to nema, a nema ni NanFor v2.1
clipper.888nbatocanin,
> Ali bih pitanje ostavio otvoreno, kako bez korišcenja RUN
> naredbe promeniti sistemski datum u računaru iz aplikacije
> pisane u S87'.
Najprostije i najčistije preko DOS funkcije Set System Date iz C-a
ili ASM-a.
clipper.889nbatocanin,
> xxxxx := 42
Ovo je on-line dodeljivanje (može se koristiti i u okviru izraza),
ali ostao je i stari metod sa xxx = 42.
> A uporedjivanje promenljivih se vrsi normalno sa potrebnim
> matematickim znakovima, jel tako ?
Da.
> Znaci bilo bi pozeljno da u svim svojim programima izvrsim
> zamene i dodam umesto ( = ) znak ( := ) (normalno bez
> zagrada) ?
Da, ali NIJE obavezno: radiće i sa "=".
> Ako je pozeljno, ima li neki programcic koji bi to mogao
> automatski da uradi da ne jurcam po sorsu i trazim ?
Nije problem napraviti takav program. Morao bi od linija da prepoznaje
samo ovo na početku reda:
<Promenljiva> = <nevazno>
i da ga transformiše u:
<Promenljiva> := <nevazno>
al kao što rekoh, ne treba ti :)
clipper.890nbatocanin,
Clipper 5.2 NE ispisuje promenljivu koja se učitava pomoću GET-a dok
se odgovarajućem objektu ne pošalje poruka DISPLAY(). U vezi
diskusije za učitavanje logičke vrednosti, to znači da se sada može
veoma prosto napraviti BEZ izmene programa da sva učitavanja logičkih
vrednosti umesto .T./.F. rade sa DA/NE.
clipper.891bstevan,
>>> pokušaj sve da prevedeš sa 5.01, trebalo bi da proradi.
Hocu jer ima još njih koji na tome insistiraju.
Navodno dobija se brži kod.Dali je to tako i koliko je
brži ?
>>> assembleru (ili C-u)
Izgleda da je to ipak jedino rešenje.
pozdrav,
BSTEVAN
clipper.892bstevan,
>>> Samo ces da dobijes brzi kod kad ga kompajliras
>>> sa 5.01.
Koliko je to brze, pitaj caleta.Ako je to za 5% i vise
vredi to probati.
Nego sumnjam da samo kompajliranjem dobijaš brzi kod
ali ko zna, moze biti.
pozdrav,
BSTEVAN
clipper.893bstevan,
>>> Najprostije i najčistije preko DOS funkcije Set System Date iz
>>> C-a ili ASM-a.
Izgleda da je to pravo rešenje, nešto slično je predložio i
d.petrovic u poruci 9.872.
Nenade imam pitanje, dali programe pisane u S87' kad se prevedu
(kompajliraju) sa 5.01, njihov kod bude brži, bez nekih izmena
naravno, sem oni rutinskih što se spominju kod dodeljivanja ?
pozdrav,
BSTEVAN
clipper.894dejanr,
>> Nenade imam pitanje, dali programe pisane u S87' kad se prevedu
>> (kompajliraju) sa 5.01, njihov kod bude brži
Koliko sam ja primetio (bez nekog naročito opsežnog testiranja), ne bude.
Brzina rada je približna, a ako ima promene ona je na gore tj. program
postane za žilet sporiji.
clipper.895bstevan,
>>> postane za žilet sporije.
Upravo sam preveo aplikaciju za obradu ličnih zarada
u 5.01 i testirao i verovali ili ne sporije je za
nekoliko žileta.
Dejane tvoj odgovor je i potvrdjen ovim testiranjem.
Znaci ipak treba izvršiti radikalne promene da bi dobio
brži kod.
pozdrav,
BSTEVAN
clipper.896bstevan,
Ipak ima i nešto što dobijaš prevodjenjem u
5.01, a to je da sad aplikacija može biti glomaznija bez
straha da ce program pasti.
Ali o tome je vec bilo ovde reci ne bih
da ponavljam potvrdjene cinjenice.
clipper.897bstevan,
>>> Samo ces da dobijes brzi kod kad ga kompajliras
>>> sa 5.01.
Više nema sumnje u to jer sam upravo iskompajlirao sa
5.01 i izvršio testiranje.
Rezultaprogram je sporiji.
Za brži kod mora se izvršiti i radikalne izmene u samom
programu.
Inacslažem se da neke vece izmene da bi ga preveo
nisam imao, ali sam izgubio malo u brzini.
pozdrav,
BSTEVAN
clipper.898ndragan,
/>> string = "date "+dtoc(datum)
/>> run &string
/ ali ne preko menjanja sistemskog datuma u računaru.
Sad sam se setio nečeg. Neke kolege programeri su, iz ne znam kojih
razloga, insistirali na upisivanju sistemskog datuma kao datuma
knjiženja. Ovo je skriveni zajeb, jer evo šta se događa:
- dokumentacija u firmi kasni
- operateri hoće da ispadnu ažurni ili da bar izgleda da je
proknjiženo istog meseca
- operateri će podesiti sistemski datum na 31.12 ili 31.01
- dođeš nešto da uradiš, uradiš Pkzip -u (ili -f), i ne pokupi ti baš
ništa što je tog dana rađeno (Ardž isto nema ugrađenu veštačku
inteligenciju da prepozna vraćene datume)
- odneseš to na drugo mesto, znaš da na toj_i_toj disketi imaš bolju
verziju rutine
- raspakuješ i vidiš da imaš neku staaaru verziju
- ne možeš sam sebi da se načudiš šta si kog đavola radio tamo 31.12?
Sistemski datum, ako se beleži, nek se beleži da operater ni ne zna.
Datum knjiženja, nek' kuca šta hoće. Ako ukuca nešto bez veze, opomenem
ga (recimo <date()-100 ili >date()+5 ), i onda pustim da ispravi ili
ostanje pri svom.
clipper.899cnenad,
ŁŁŁ nivou modula. Sad zurim, pogledaj nenadov umetak u nekim
ŁŁŁ starijiim racunarima...
Kad smo vec kod tog umetka bas sam razmisljao da posaljem poruku u MALE.OGLASE
da mi treba taj umetak pa ako ga neko ima neka salje MAIL da mi pozajmi da
ga fotokopiram.
clipper.900nikac,
>■>>> postane za žilet sporije.
>■
>■ Upravo sam preveo aplikaciju za obradu ličnih zarada
>■ u 5.01 i testirao i verovali ili ne sporije je za
>■ nekoliko žileta.
>■ Dejane tvoj odgovor je i potvrdjen ovim testiranjem.
>■ Znaci ipak treba izvršiti radikalne promene da bi dobio
>■ brži kod.
Neznam na koju semu, ali video sam svojim ocima.
Program pisan na summer87-ici prvi put prekompajliran sa
novim 5.01. Posle par sitnih izmena (cisto sintaksne razlike
nekih specificnih funkcija) program je proradio i razlika
u radu sa bazama je vidna i ogromna... radi bar dva puta
brze. Mozda ima neke veze jer je program ogroman?
Stvarno neznam?!
-=Nikac=-
clipper.901dr.grba,
>> prepravkama. Samo ces da dobijes brzi kod kad ga kompajliras
>> sa 5.01.
Zaboga! Ovo si rekao kao da je to jedina prednost Clippera 5.xx.
Molim te, reci da nisi onako mislio!
clipper.902dr.grba,
>> Navodno dobija se brži kod.Dali je to tako i koliko je brži ?
Slušaj, u jednim malo starijim Računarima ima tekst Nenada Batoćanina
pod naslovom "Kralj je stigao", u kome Nenad detaljno i studiozno
priča o (tada) novim konceptima projektovanja Clippera, kao i alatima
okoline. Za prvi susret sa Clipperom 5.xx veoma upotrebljiv i koristan
tekst. U rind bazi možeš uz malo truda pronaći referencu na taj tekst.
clipper.903bstevan,
>>> Sistemski datum, ako se beleži, nek se beleži da operater ni
>>> ne zna.
Znaš imao sam neku ideju da promenim sistemski datum i ponovo
vratim, ali sam to prevazišo novom idejom kao što si i sam
spomenuo da on i ne zna.
Ali me kasnije zagolicala ta prva ideja, a ispade da u samom
kliperu to nemožemo rešiti, vec samiz C-a ili asemblera.
Znači to je više bilo znatiželj dali je neko to rešio iz
klipera, no mislim da su ovake diskusije dobro došle za sve.
pozdrav,
BSTEVAN
clipper.904bstevan,
>>> u radu sa bazama je vidna i ogromna... radi bar dva puta
>>> brze. Mozda ima neke veze jer je program ogroman?
>>> Stvarno neznam?!
Da zaključimo, samo čistim prevodjenjem aplikacije pisane na
S87' (odnosno kompajliranjem) iste sa 5.01 nedobijamo brži kod.
Odnosno nešto sporiji, a izmenama u ključnim delovima dobijamo
na brzini, odnosno što bolje iskoritimo mogucnosti novog
kliper dobijamo brži kod.
To koliki je program ne utice mnogo na brzinu.Jer ja imam
aplikaciju negde oko 610.000,00 Kb i slobodne memorije
pri njenom radu oko 230 Kb, znaci sasvim dovoljno za
bilo kakav rad pa cak i za RUN iz iste, inace ta aplikacija
je kompajlirana sa 5.01.
pozdrav,
BSTEVAN
clipper.905bstevan,
>>> U rind bazi možeš uz malo truda pronaći refrencu na taj tekst.
Ma to je ok, sve njegove tekstove o clipperu sam pratio
jasne su mi prednosti u odnosu na S87' i to nije sporno.
Ovde je konkretno bilo govora da se samo suvim kompajliranjem
programa pisanog na S87' sa Clipperom 5.01 nedobija na brzini.
Vec se moraju kriticni momenti u programu malo srediti.
pozdrav,
BSTEVAN
clipper.906d.petrovic,
Ă> Zaboga! Ovo si rekao kao da je to jedina prednost Clippera 5.xx.
Ă> Molim te, reci da nisi onako mislio!
Pa reč je o programu koji je pisan za S87, kod je za S87, ne može
pretprocesor da uradi sve umesto tebe. Ako si pisao i=i+1 neće ga
prebaciti u i++. žoveka smo ubeđivali da prevede program sa 5.01 da
bi mogao da doda nekoliko funkcija iz drugih biblioteka, a ne da ga
ubrza. S druge strane niko mu ne brani kad je to već uradio da malo
prošeta kroz source i eventualno nekoliko kritičnih funkcija ubrza,
samo mislim da je to ubrzanje zanemarljivo.
clipper.907d.petrovic,
Ă>> ■ Upravo sam preveo aplikaciju za obradu ličnih zarada
Ă>> ■ u 5.01 i testirao i verovali ili ne sporije je za
Ă>> ■ nekoliko žileta.
Ă> Neznam na koju semu, ali video sam svojim ocima.
Ă> Program pisan na summer87-ici prvi put prekompajliran sa
Ă> novim 5.01. Posle par sitnih izmena (cisto sintaksne razlike
Kanda ta dva programa nije pisao isti čovek ? ;)))
clipper.908jtitov,
> aplikaciju negde oko 610.000,00 Kb i slobodne memorije
-------------
Jel to novih ili starih Kb??? :))) A na cemu drzis tu aplikaciju? Na CD ROM-u?
clipper.909bstevan,
>>> Jel to novih ili starih Kb??? :))) A na cemu drzis tu aplikaciju?
>>> Na CD ROM-u?
Ne to je trenutno žiralna vrednosDržim ga u ......(citaj kako
hoceš).
pozdrav,
BSTEVAN
clipper.910solajac,
>> To koliki je program ne utice mnogo na brzinu.Jer ja imam
>> aplikaciju negde oko 610.000,00 Kb i slobodne memorije
>> pri njenom radu oko 230 Kb, znaci sasvim dovoljno za
>> bilo kakav rad pa cak i za RUN iz iste, inace ta aplikacija
>> je kompajlirana sa 5.01.
Malo o brzini C5.01:
- Program pisan u C5.01 radi sa VIRTUELNOM memorijom, SWAP-uje
na disk pa zato je (u nekim situacijama) nesto sporiji. Ako
imate EXPAND memoriju SWAP-ovace u nju pa ce raditi brze.
Ali zato programi od 600K i vise K-ova za njega nisu nikakav
problem.
- Ako ne zelite da program (ili neki njegovi delovi) SWAP-uje
i tako ga ubrzate, za to postoje odgovarajuce opcije prili-
kom linkovanja.
- Ako se PRIVATE i PUBLIC promenljive zamene sa LOCAL, program
ce raditi brze. Ovo nije uvek moguce, a nije ni preporucljivo
u programima koji rade. Moze biti izvor novih gresaka.
Kratko podsecanje: Formalni parametri u procedurama ili fu-
nkcijama, ako se deklarisu iza PARAMETERS tretiraju se kao
PRIVATE, a ako se navedu uz ime procedure, izmedju zagrada,
tretiraju se kao LOCAL.
- Program ce raditi brze ako se MACRO-i zamene sa CODE-BLOCK.
- Verovali ili ne: SEEK radi brze od SKIP (ovo sam procitao u
NGUIDE.ART -skino sa SEZAMA-, ali nisam proverio)
When one can make SEEK instead of skipping through database,
it's much faster ...
- Program cete najvise ubrzati ako podatke koje obradjujete,
organizujete na PRAVI nacin. Ako ste tu omanuli, nece vam
pomoci ni C5.01 ni C ni ASEMBLER.
-----------------------------------------------------------
C87 -> C5.01
- Moje programe pisane u C87 samo sam prekompilirao sa C5.01
i sve je funkcionisalo bez greske. Vidjao sam programe kod
kojih su morale biti uradjene minimalne izmene (greske se
pojave vec u kompilaciji, najkasnije u linkovanju).
Posedujem i primerak programa koji nisam uspeo, a ni njegov
slavni autor, da prevedem sa C87 na C5.01.
U C87 radi, a sa C5.01, kako naleti na neki READ padne sa
Error BASE/1066 Argument error: conditional
Called from (b)__GET(0)
Called from obj: SETFOCUS(0)
Called from GETREADER(0)
Called from READMODAL(0)
Called from UNOS_ORG(2645)
....
-----------------------------------------------------------
Znak = ili :=
- Clipperu je svejedno da li koristite (u komandama koje rade)
= ili :=.
Znak := je uveden zbog nekih novih komandi.
- Da malo prosirimo. Uveden je novi znak za poredjenje ==.
On nije prosta zamena za =.
Znak == radi kao da je setovan EXACT ON, a = kao EXACT OFF.
(Ovo moze uticati da program pod C87 ne radi isto kao pod
C5.01)
- Da jos malo prosirimo: Uveden je i operator += (-=, *=...).
Opasan je i ja ga uglavnom (zbog licnog iskustva) izbegavam.
Primer: br1 := 5.23
br2 := 3.345
Napisali ste brzopleto: br1 += ROUND(br2,0)
zeleci da skraceno napisete: br1 := ROUND(br1 + br2)
Ako brzopleto zakljucite, mozda cete pomisliti da je rezultat
br1=8
Ako se ova instrukcija razvije: br1 := br1 + ABS(br2)
odmah se vidi da to nije ono sto smo zeleli, a cak ako i
brzopleto zakljucite videcete da je rezultat
br1=8.23
Probajte i sa drugim funkcijama. Veselje je isto.
(Izvinjavam se onima koji ovakve brzoplete greske ne prave).
-----------------------------------------------------------
Zavrsne odredbe
- Izvinjavam se autoru pitanja na koje odgovaram sto sam isko-
ristio njegovo pitanje da odgovorim i na jos neka koja su
bila aktuelna u poslednje vreme.
- Zahvaljujem Dr.Grbi na korisnim i dobronamernim sugestijama.
kao sto se iz prilozenog vidi. (I ubuduce su dobrodosle, malo
sam taze na SEZAMU).
Pozdrav, Solajac.
clipper.911nikac,
>■ Zaboga! Ovo si rekao kao da je to jedina prednost Clippera
>■ 5.xx. Molim te, reci da nisi onako mislio!
Dobro, dobro nemoj da se ljutis... ;) Ja sam to reko samo onako
usput. Inace nisam bas maher za clipper, ali sam bio prisutan
kada je cale prebacivao program sa s87 na 5.01 pa nisam mogao
da odolim a da ne kazem moja (tj. njegova) iskustva u vezi toga...
Pozdrav,
-=Nikac=-
clipper.912d.petrovic,
Samo da dopunim...
Ă> - Program pisan u C5.01 radi sa VIRTUELNOM memorijom, SWAP-uje
Ă> na disk pa zato je (u nekim situacijama) nesto sporiji. Ako
Pri startovanju program ucitava overleje jedan po jedan, zavisno
od ucestalosti poziva i raspolozive memorije (to se regulise i u
enveroimentu). Zbog toga je nesto sporiji u startu, ali se kasnije
izjednaci (posle nekoliko akcija u programu) pa mozda i ubrza u
odnosu na S87 (opet zavisi od raspolozive memorije). Ako iskljucite
keser i na sporom disku sa dosta memorije to je itekako primetno
(sporost pa ubrzanje).
Ă> - Izvinjavam se autoru pitanja na koje odgovaram sto sam isko-
Ă> ristio njegovo pitanje da odgovorim i na jos neka koja su
Ă> bila aktuelna u poslednje vreme.
Samo izvoli :)
clipper.913bstevan,
>>> Malo o brzini C5.01:
Stvarno mi je drago što si se potrudio i detaljnije da objasniš
neke stvari oko brzine 5.01.Znači ostajemo na tome da se cistim
prevodjenjem sa S87' -> 5.01 ne dobija u brzini sem u delu koji
si objasnio.To potvrdjuje da se ipak mora izvršiti neka izmena.
>>> -Ako se PRIVATE i PUBLIC promenljive zamene sa LOCAL, program
ce raditi brze. Ovo nije uvek moguce, a nije ni preporucljivo
u programima koji rade. Moze biti izvor novih gresaka.
U ovom se slažem sa tobom, nemam šta da dodam.
>>> -Program cete najvise ubrzati ako podatke koje obradjujete,
organizujete na PRAVI nacin. Ako ste tu omanuli, nece vam
pomoci ni C5.01 ni C ni AMBLER.
Ovo odavno cekam da neko primeti, ovde se jako malo govorilo o
organizaciji podataka za kasnije obradjivanje, to smatram da je
kljuc mnogih diskusija o brzini programa i ako moramo priznati
da su programi na C,MODUL-2,PASCAL i ASEMBLER brži od Clipper
programa ali su zato teški za kasnije održavanje.Ovo mi je reko
jedan iskusni C - programer, inace sad u Južnu Afriku.
Inace postaje glupo i monotono kad se govori o brzini
C-a u odnosu na Clipper (uglavnom se vrši to uporedjivanje),
stvarno nema smisla.Dejan je jednom dobro razgranicio kad se
pocene pisati program treba imati u vidu šta on treba da radi
za koje vreme i u kojim prilikama i konacno se odluciti na kom
jeziku ga napisati.
>>> C87' -> C5.01
Tvrdio sam uporno da se baš svaki program nemože prevesti ladno
bez ipak nekih izmena.
Evo kod mene je bilo sledecih problema:
1. proc = VAL(PROCENAT)
proce = SUBSTR(proc,15,2)
proc i proce nije vario i smatrao je da je upitanju nova
PROCEDURA.
2.Zatim u vezi SetColor(<ime>)
3.I konacno u vezi DBEDIT
Ovu poruku nastavljam u sledecoj.
pozdrav,
BSTEVAN
clipper.914bstevan,
a nastavim oko problema u vezi EDIT().
KodBEDIT() sa korisnickom funkcijom za unos podataka imam
problem tako kad želim novi slog i izadjem iz nega a nisam
otkucao ništa on mi zadnji slog duplira samo na ekran a baza
ostaje neizmenjena, ali zato na ekranu imam navodno dva sloga
ista (mislim na zadnji slog).
Ako to ponovim više puta za toliko puta na ekranu prikaže
zadnji slog, pa po broju prikazanih slogova na ranu ispada da
ima u bazi npr. 10 sloga a u bazi je ustvari ostalo 5 sloga
jer nisam ništa otkucao u novom slogu.
Ne shvatam šta je problem ali moguce je da je oko GET-a
problem on izgleda ovako:
č ROW(),COL() GET get_data PICTURE get_pic(m->e_field)
READ
Medjutim to se nije dogadjalo u S87', sve je radilo kako treba.
Na kraju hvala ti na poruku koju si poslao ono objašnjava mnogo
toga(poruka 9.910), a takodje hvala i ostalima ku se
ukljucivali , ipak smo neke stvari razjasnili.
pozdrav,
BSTEVAN
clipper.915dr.grba,
>> - Zahvaljujem Dr.Grbi na korisnim i dobronamernim sugestijama.
>> kao sto se iz prilozenog vidi. (I ubuduce su dobrodosle, malo
>> sam taze na SEZAMU).
Hvala tebi na toplim rečima, a sad svi na posao (;
Dopao mi se tvoj problemski pristup odgovaranju na sopstveno pitanje.
Mislim da bi ti u ovom trenutku knjiga koju je napisao Rick Spence
mogla dosta pomoći, u njoj postoji goooomila sitnica koje mogu jako
da pomognu, problemski je orijentisana i iskustvom potkrepljena.
clipper.916goranr,
Evo nešto za sve Clipperaše: Menjanje sistemskoůg datuma bez RUN komande!
ÔOPAH
setdate.zipclipper.917nbatocanin,
> Izgleda mi da Clipper to nema, a nema ni NanFor v2.1
Možda i postoji negde interno. Ako ti to treba, zašto ne zameniš USE
naredbu svojom koja pravi tabelu gde je šta otvoreno?
clipper.918nbatocanin,
> Hocu jer ima još njih koji na tome insistiraju.
> Navodno dobija se brži kod.Dali je to tako i koliko je
> brži ?
Kod dobijen Clipper-om 5.xx je u principu sporiji od koda dobijenog
sa Summer'87. Međutim, tu ima jedna kvaka. Brzina se gubi u
dinamičkim operacijama sa overlejima i tu se usporenje oseća kada se,
na primer, šetaš kroz menije. Tada se traži učitavanje novih blokova
programa, pa ako računar ima malo memorije, a program je veliki, to
može da potraje toliko da se oseti usporenje. Međutim, najvažnije
operacije (pretraživanje, indeksiranje, ...) je u većini slučajeva
brže sa 5.0, jer postoji interni sistem keširanja podataka. Sledi,
programi u Summer'87 verziji su podjednako brzi u svim delovima, dok
5.0 ima neke delove (zaista prihvatljivo) usporene, ali su zato
najvažniji delovi ubrzani, osim ako se ne radi sa nekom specifičnom
konfiguracijom.
clipper.919nbatocanin,
> Nenade imam pitanje, dali programe pisane u S87' kad se
> prevedu (kompajliraju) sa 5.01, njihov kod bude brži, bez
> nekih izmena naravno, sem oni rutinskih što se spominju
> kod dodeljivanja ?
Već sam odgovorio - moguće, mada u opštem slučaju - ne. Ako praviš
izmene, obavezno pređi na LOCAL i STATIC promenljive, kodne blokove i
program će ti svakako biti brži.
clipper.920d.petrovic,
Ă> Kod dobijen Clipper-om 5.xx je u principu sporiji od koda
Ă> dobijenog sa Summer'87. Međutim, tu ima jedna kvaka. Brzina se
Ă> gubi u dinamičkim operacijama sa overlejima i tu se usporenje
Ă> oseća kada se, na primer, šetaš kroz menije. Tada se traži
Ă> učitavanje novih blokova
A MENU.OBJ je dovoljno mali i često pozivan da zaslužuje da bude
resident :)
clipper.921bstevan,
>>> Evo nešto za sve Clipperaše: Menjanje sistemskog datuma bez RUN
>>> komande!
Gorane to je što sam hteo, hvala na prilogu.
pozdrav,
BSTEVAN
clipper.922bstevan,
>>> Već sam odgovorio - moguće, mada u opštem slučaju - ne. Ako
>>> praviš izmene, obavezno pređi na LOCAL i STATIC promenljive,
>>> kodne blokove i program će ti svakako biti brži.
Nenade hvala na odgovoru, i svima koji su ucestvovali u raspravi
o pitanjima koji su pokrenuti u vezi promene sitemskog datuma
i o brzini prilikom prevodjenja sa S87' -> 5.01.
pozdrav,
BSTEVAN
clipper.923gaston,
Zdravo !
Skoro sam nabavio CA Clipper 5.2, evropsku verziju i skinuo sa Sezam-a zakrpu
za verziju 5.2A, ali je ona samo za americku verziju Clipper-a. Naravno, ne
mogu da zakrpim Clipper 5.2. Da li je nekko resio problem i kako ?
Moze i slanje zakrpe americke verzije...
clipper.924goranr,
OK, javi kako radi, i javi ako ti treba ASM sors.
clipper.925dr.grba,
>> > Izgleda mi da Clipper to nema, a nema ni NanFor v2.1
>>
>> Možda i postoji negde interno. Ako ti to treba, zašto ne zameniš
>> USE naredbu svojom koja pravi tabelu gde je šta otvoreno?
Zlobo, lepo sam ti rekao...
P.S. Izvinjavam se ostalima, reč je o jednoj privatnoj poruci, koja
sadrži sugestiju sličnu Nenadovoj.
clipper.926dr.grba,
>> A MENU.OBJ je dovoljno mali i često pozivan da zaslužuje da bude
>> resident :)
MENU.OBJ je u redu, nego je reč o procedurama/funkcijama pozivanim iz
menija. Verovatno mali broj programera vodi računa o ovakvim stvarima.
Ima jedna zanimljiva rasprava o linkovanju, doduše u Cl S'87, ali
principijelno zanimljiva, u knjizi S. Straley-a.
clipper.927d.petrovic,
Ă> MENU.OBJ je u redu, nego je reč o procedurama/funkcijama
Ă> pozivanim iz menija. Verovatno mali broj programera vodi računa o
Ă> ovakvim stvarima.
Šio mu ga Džordž. Pa kad izabereš stavku u meniju najčešće se otvori
po neka baza? E, ako se prvo učita overlej pa onda otvara dalje
bazu(e) ko će ga znati šta kad radi. Uostalom vrlo brzo nauči šta da
zadržava u memoriji od overleja.
Zanimljive stvari su mi se dešavale kad sam samo šetao kroz menije, a
menu.obj linkovao sa resident. Startujem prvo recorder.com, pa jedan
program, pa resetujem recorder, pa drugi program. Samo dok uđeš u
menije i izađeš 40-ak puta otvori sjebe samoga.
clipper.928bstevan,
>>> OK, javi kako radi, i javi ako ti treba ASM sors.
Radi ok, baš ono što sam i mislio.
Takodje bi ti bio zahvalan da pošalješ i ASM sors.
pozdrav,
BSTEVAN
clipper.929snemcev,
>> - Verovali ili ne: SEEK radi brze od SKIP (ovo sam procitao u
>> NGUIDE.ART -skino sa SEZAMA-, ali nisam proverio)
>>
>> When one can make SEEK instead of skipping through database,
>> it's much faster ...
Ne, ne, ne i po sto puta ne! Gore naveden citat u slobodnom prevodu
znači: indexiraj datoteke i traži onaj slog koji ti treba sa SEEK, a ne
da se od početka baze pa do sloga koji ti treba šetaš sa SKIP, slog po
slog.
clipper.930ialeksic,
IA> zdravo svima!
IA> Ja sam novi korsnik i imam jednu molbu.
IA>
IA> Evo kratkog (!?) uvoda:
IA> Trenutno pravim funkcijsku biblioteku rutina za Clipper kojom bi
IA> se komuniciralo sa hostom korscenjem razlicitih adaptera. Pri tom
IA> koristim neke gotove API-je, a za neke pisem sam drajvere u C-u.
IA>
IA> Svojevremeno sam imao u rukama knjigu, koju mislim da s pravom
IA> mnogi hvale u ovoj temi: Rick Spence... Tamo je koliko se secam
IA> bila jedna zgodna mala rutina (u poglavlju za Extend sistem) koja
IA> preusmerava pozive standardnih C funkcija _MALLOC() i _FREE() u
IA> Clipper funkcije _XGRAB() i _XFREE() tako da se ne moraju menjati
IA> funkcije originalnih servisa (na primer iz gotovog APIa) a i
IA> bazne rutine se onda mogu pozivati i iz C-a i iz Clippera,
IA> Foxa(?) itd.
IA>
IA> Elem, ne zelim da izmisljam toplu vodu, a knjigu - je li - nemam,
IA> niti sam je nasao u prodaji (trazio!). Zato molim neku dobru dusu
IA> :) da to stavi na mail ili bilo gde na SEZAMU (kako cu to posle
IA> da nadjem?).
IA>
IA> Pozdrav svima uz odlican utisak o ovoj konferenciji.
IA>
IA> Ivan A.
clipper.931goranr,
OK, evo ga.
setdate.asmclipper.932bstevan,
>>> Verovali ili ne: SEEK radi brze od SKIP (ovo sam procitao u
>>> NGUID.ART -Skinuo sa SEZAMA,ali nisam proverio)
Ali to nije za verovali ili ne.VERUJEM stim da sam to i probao.
pozdrav,
BSTEVAN
clipper.933bstevan,
>>> OK, evo ga.
HVALA !
pozdrav,
BSTEVAN
clipper.934dr.grba,
>> IA> Elem, ne zelim da izmisljam toplu vodu, a knjigu - je li - nemam,
>> IA> niti sam je nasao u prodaji (trazio!). Zato molim neku dobru dusu
Ako te interesuje Spenceova knjiga, bilo je već reči ovde, nazovi
"Mikro knjigu", 542-516, oni kjnige distribuiraju uglavnom pouzećem.
Ovo zbog cene ):
P.S. Molim te, izbaci ono "IA>" sa početka svojih redova, tako liči
na quote nečije tuđe poruke, pa malo zbunjuješ nas koji čitamo.
clipper.935gaston,
3 pitanja:
1. Je li neko uspeo da americkom verzijom zakrpe (PATCH) zakrpi CA Clipper v5.2
i ako jeste kako????
2. Ima li neko iskustva sa o:Clip (P.M.Freese, CyberSoft) i Object
(JHK-Software, Piestany) objektnim bibliotekama? Zvuce vrlo privlacnoa pitam se
da li su u praksi upotrebljive...
3. Posedije li neko objektnu lib Class(y) koja se spominje kao alternativa
biblioteci o:Clip u dokumentaciji lib Object ??
Gaston- Nesa
clipper.936snemcev,
>> Možda i postoji negde interno. Ako ti to treba, zašto ne zameniš USE
>> naredbu svojom koja pravi tabelu gde je šta otvoreno?
He, he, pa zar nemam "knjigu u kojoj sve piše" ;)) Još samo ubacim jedan
niz i voila! Dr.Grba mi je baš to u mail-u predložio. Predlog je
jednoglasno usvojen.
clipper.937dejanr,
>> 2. Ima li neko iskustva sa o:Clip (P.M.Freese, CyberSoft) i Object
>> (JHK-Software, Piestany) objektnim bibliotekama? Zvuce vrlo privlacnoa
>> pitam se da li su u praksi upotrebljive...
Bio je prikaz o:Clip-a u "Računarima 82", strana 30
clipper.938nbatocanin,
> 1. Je li neko uspeo da americkom verzijom zakrpe (PATCH)
> zakrpi CA Clipper v5.2 i ako jeste kako????
Baš kao što piše u uputstvu zakrpe, više se ne sećam tačno, ali znam
da je bilo prosto.
> 2. Ima li neko iskustva sa o:Clip (P.M.Freese, CyberSoft)
> i Object (JHK-Software, Piestany) objektnim bibliotekama?
> Zvuce vrlo privlacnoa pitam se da li su u praksi
> upotrebljive...
Probao sam o:Clip i Class(y). Nesumnjivo bolja je Class(y), a kako
kažu stranci, bolja je i od ostalih. Što se tiče upotrebljivosti,
ogromna je ;) Ali: svaka sledeća verzija Clipper-a zahteva *novu*
verziju biblioteke, što obično nije tehnički problem nego želja
autora biblioteke. Tako smo ovde videli Class(y) koji radi sa 5.0 ali
ne radi sa 5.01! Nabavka novih verzija može biti ogroman problem, pa
je zato totalno nepreporučljivo njihovo korišćenje. Još jedna stvar
ovome u prilog je i što će Clipper 6.0 sasvim sigurno imati objekti
koji nisu kompatibilni sa ovim bibliotekama. Kao prelazno rešenje
preporučujem pseudo-objekte (objekte realizovane u čistom Clipper-u).
> 3. Posedije li neko objektnu lib Class(y) koja se spominje
> kao alternativa biblioteci o:Clip u dokumentaciji lib
> Object ??
Nemam neku verziju koja normalno radi: sve su na neki način osakaćene :(
clipper.939aquarius,
>-> Kako mogu da napravim sledecu stvar:
>->
>-> da kad se vrsi poziv exe fajla iz dos-a prenese odredjeni
>-> argument ili parametar programu koji treba da znaci da ne
>-> treba da izvrsi deo programa gde se startuje uvodni deo
>-> ekrana.
Ne znam da li to radis u Clipper-u 5.xx, ali ako radis evo...
Otvoris novi fajl, npr. MyInc.ch ili u neki postojeci stavis sledece
MyInc.ch
/bof/
#command FIRSTDEF <xpar> TO <xval> [, <xparn> TO <xvaln> ] => ;
<xpar> := IF( <xpar> = NIL, <xval>, <xpar> ) ;
[; <xparn> := IF( <xparn> = NIL, <xvaln>, <xparn> ) ]
/eof/
>-> Dajem primer source koda:
>-> glavni.prg ide ovako
#include "MyInc.ch"
para MyParam
FIRSTDEF MyParam TO Nil
E sad MyParam ima vrednost Nil, osim ako na komandnoj liniji
ne stavis C:\Glavni uradjeno
naslovna := MyParam
etc ...
IZBACIS !!! => naslovna="uradjeno"
i onda
if Upper( naslovna ) == "URADJENO"
etc ...
To bi bilo to... :)
~Aquarius~
clipper.940aquarius,
>->3. Posedije li neko objektnu lib Class(y) koja se spominje kao alternativa
>-> biblioteci o:Clip u dokumentaciji lib Object ??
Poseduje... :)
~Aquarius~
clipper.941aquarius,
>-> Kako mogu da napravim sledecu stvar:
>->
>-> da kad se vrsi poziv exe fajla iz dos-a prenese odredjeni
>-> argument ili parametar programu koji treba da znaci da ne
>-> treba da izvrsi deo programa gde se startuje uvodni deo
>-> ekrana.
Ne znam da li to radis u Clipper-u 5.xx, ali ako radis evo...
Otvoris novi fajl, npr. MyInc.ch ili u neki postojeci stavis sledece
MyInc.ch
////////
/bof/
#command FIRSTDEF <xpar> TO <xval> [, <xparn> TO <xvaln> ] => ;
<xpar> := IF( <xpar> = NIL, <xval>, <xpar> ) ;
[; <xparn> := IF( <xparn> = NIL, <xvaln>, <xparn> ) ]
/eof/
////////
>-> Dajem primer source koda:
>-> glavni.prg ide ovako
#include "MyInc.ch"
para MyParam
FIRSTDEF MyParam TO Nil
E sad MyParam ima vrednost Nil, osim ako na komandnoj liniji
ne stavis C:\Glavni uradjeno
naslovna := MyParam
etc ...
Izbacis !!! => naslovna="uradjeno"
i onda
if Upper( naslovna ) == "URADJENO"
etc ...
To bi bilo to... :)
~Aquarius~
clipper.942aquarius,
>->3. Posedije li neko objektnu lib Class(y) koja se spominje kao alternativa
>-> biblioteci o:Clip u dokumentaciji lib Object ??
Poseduje... :)
~Aquarius~
clipper.943cnenad,
Interesuje me da li je moguce da se TBROWSE klasom napravi BROWSE
slican paketu DBASE IV gde mogu da se i menjaju podaci u poljima baze a
ne samo pregledaju jer primer koji imam u knjizi o kliperu daje
istu stvar kao i funkcija DBEDIT() ?
Probao sam da napravim sledecu stvar iz clipper-a sto je delimicno uspelo
a to je izlaz u DOS i to sa obicnim RUN COMMAND ali kad sam trebao da se
vratim u clipper sa exit iz DOS-a racunar se zaglavio. Ima li resenja za
ovo ?
clipper.944cnenad,
Molim jos jednom, ako neko ima umetak iz racunara od Nenada Batocanina
da mi ga pozajmi da ga isfotokopiram.
Dogovor preko mail-a na CNENAD.
Hvala.
clipper.945ialeksic,
20 DEM SEZAM
30 DEM RS
--------------
50 DEM O-LA-LA!, sta bi bilo da sam se raspitivao za 5.2, dal' bi dobio
telefon Computer Associates-a ;>
clipper.946v.nesic,
> Interesuje me da li je moguce da se TBROWSE klasom napravi BROWSE
> slican paketu DBASE IV gde mogu da se i menjaju podaci u poljima baze a
> ne samo pregledaju jer primer koji imam u knjizi o kliperu daje
> istu stvar kao i funkcija DBEDIT() ?
Recimo da uz tbcolumn:cargo stavis kodni blok koji menja polje.
Sam Clipper ti postavi kursor gde treba tako da bi izgledalo otprilike
ovako:
tb:=TBNew(...)
col:=TColumnNew(...)
col:cargo:={||edit()}
tb:AddColumn(col)
....
func edit
@ row(),col() get .... <- ovo mozes i mnogo elegantnije,
read <- al' nikad nisam imo vremena da doteram
return
> Probao sam da napravim sledecu stvar iz clipper-a sto je delimicno uspelo
> a to je izlaz u DOS i to sa obicnim RUN COMMAND ali kad sam trebao da se
> vratim u clipper sa exit iz DOS-a racunar se zaglavio. Ima li resenja za
> ovo ?
Reci jos, meni je sljakalo bez problema. Jedino kad promenim dir zna da se
izgubi jer ne ume da nadje overleje.
clipper.947ppekovic,
>> Interesuje me da li je moguce da se TBROWSE klasom napravi BROWSE
>> slican paketu DBASE IV gde mogu da se i menjaju podaci u poljima baze a
>> ne samo pregledaju jer primer koji imam u knjizi o kliperu daje
>> istu stvar kao i funkcija DBEDIT() ?
U clipper-u već imaš funkciju browse. Pored toga, u primerima
koje si dobio uz clipper postoji i browse.prg koji radi upravo ono
što tražiš.
>> Probao sam da napravim sledecu stvar iz clipper-a sto je delimicno uspelo
>> a to je izlaz u DOS i to sa obicnim RUN COMMAND ali kad sam trebao da se
>> vratim u clipper sa exit iz DOS-a racunar se zaglavio. Ima li resenja za
>> ovo ?
Da li ti je ispravno postavljena env. promenljiva COMSPEC?
Paya
clipper.948d.petrovic,
Ă>> Probao sam da napravim sledecu stvar iz clipper-a sto je
Ă>> delimicno uspelo a to je izlaz u DOS i to sa obicnim RUN COMMAND
Ă>> ali kad sam trebao da se vratim u clipper sa exit iz DOS-a
Ă>> racunar se zaglavio. Ima li resenja za ovo ?
Ă>
Ă> Reci jos, meni je sljakalo bez problema. Jedino kad promenim dir
Ă> zna da se izgubi jer ne ume da nadje overleje.
Posle "run command" proveris u kom si direktorijumu pa se vratis.
Valjda je jasno da funkcija kojom to radis ne sme da bude u overleju
:)
clipper.949ialeksic,
Zna li neko zasto zasto ne mozemo da se smeskamo?
# include "inkey.ch"
cls
@10,40 say ":("
@24,0 say "Pritisni Ctrl-ScrollLock dirku da dobijes smile..."
do while !(i:=INKEY()=K_CTRL_C)
enddo
@10,40 say ":)"
@24,0 say "Hvala... "
quit
clipper.950cnenad,
ŁŁŁ Posle "run command" proveris u kom si direktorijumu pa se
ŁŁŁ vratis. Valjda je jasno da funkcija kojom to radis ne sme da
ŁŁŁ bude u overleju
Nisam menjao direktorijume niti mi je ta funkcija u .OVL cisto sam
probao da napisem taj mali program i da vidim kako radi !
cls
wait "idemo u DOS !"
!command
cls
wait "vratili smo se !"
cls
Sta ne valja !
clipper.951cnenad,
ŁŁŁ Da li ti je ispravno postavljena env. promenljiva COMSPEC?
Uopste nemam namesteno COMSPEC !?! Cemu to sluzi a i inace ne radi ? :)
clipper.952dr.grba,
>> 50 DEM O-LA-LA!, sta bi bilo da sam se raspitivao za 5.2, dal' bi
>> dobio telefon Computer Associates-a ;>
Moja sugestija je bila krajnje dobronamerna. Mislio sam da znaš
da je bavljenje računarima skup sport i u današnje vreme teško isplativ.
clipper.953bstevan,
Molim svi koji imaju iskutva sa programiranjem odnosno
prilagodjavanjem clipper program na rad sa matematickim procesorom,
nek prenesu svoje iskustvo u ovoj konferenciji.
Ja nažalost nemam nikakvog iskustva a to me interesuje.
pozdrav,
BSTEVAN
clipper.954ialeksic,
Ovo radi:
#include "inkey.ch"
cls
keyboard chr(K_ENTER) // Dodaj jedan Enter !
wait "idemo u DOS !"
!command.com
cls
wait "vratili smo se !"
cls
clipper.955ialeksic,
Dobro de, salio sam se. :)
clipper.956d.petrovic,
Ă> cls
Ă> wait "idemo u DOS !"
Ă> !command
Ă> cls
Ă> wait "vratili smo se !"
Ă> cls
Ă> Sta ne valja !
Nisam probao, ali kao sugestija na mogućnost zaglupljivanja ako
promeniš direktorijum:
cls
!command
if <direktorijum promenjen>
<vrati se u radni dir> <= ovo da nije u overleju
endif
clipper.957bulaja,
│Kad smo vec kod te funkcije SETCOLOR() na koji nacin ona resetuje
│prethodno postavljene boje ?
└───
SetColor( "" )
clipper.958bulaja,
Zna li neko zasto zasto ne mozemo da se smeskamo?
> @24,0 say "Pritisni Ctrl-ScrollLock dirku da dobijes smile..."
> do while !(i:=INKEY()=K_CTRL_C)
> enddo
> @10,40 say ":)"
:) K_CTRL_C je Ctrl-Pause (Break) a ne Ctrl-ScrollLock! :)
clipper.959paki,
> @24,0 say "Pritisni Ctrl-ScrollLock dirku da dobijes smile..."
> do while !(i:=INKEY()=K_CTRL_C)
Možda zato što se natpis Break (bar kod mene) nalazi na tasteru
Pause :) Jesi li probao Ctrl-C umesto Ctrl-ScrollLock?
clipper.960ialeksic,
ŠŠ> :) K_CTRL_C je Ctrl-Pause (Break) a ne Ctrl-ScrollLock! :)
Jeste! Kao i 'PgDn', kao i 'Ctrl-C'. To je lepo..., ali:
(NG:The Guide To Clipper:Tables:Inkey Codes) kao i Clipper Refference app.C
kaze sledece:
Ctrl-ScrollLock 3 K_CTRL_C
OK, neka to tako i treba, koji je onda scan-code za "Ctrl-ScrollLock" ?
Ivan A.
ps. Ovo nije iz...ivljavanje, bas mi taj 'Ctrl-ScrollLock' treba ;)
clipper.961zsavic,
Radim na sistemu sledećih karakteristika:
- Mreža sa 35 radnih stanica
- File server DTK 386DX/33 sa SCSI diskom Maxtor 1.7GB i Adaptec
1542b kontrolerom i dve mrežne karte NE2000
- Operativni sistem Novell 3.11 100 users, DOS 5.0
- Aplikacije su pisane na Clipperu 5.01.
Već drugi put u zadnja 4 meseca se javlja isti problem: DBF fajl
dužine oko 60 MB (prvi put je imao dužinu od par MB) iz neobjašnjivih
razloga je promenio dužinu na oko 4GB. Otkucam CHKVOL, a on daje
korektan
rezultat: 150MB slobodno, koliko je bilo i ranije. Obrišem fajl sa
DEL, ovog puta CHKVOL daje 210MB slobodno. Vratim fajl sa SALVAGE i
CHKVOL daje opet 150MB slobodno, a DBF fajl se vrati na 4GB. Kad sa
DBV /W pregledam fajl, javi mi umesto 180,000 neki abnormalno veliki
broj slogova a izgled fajla je bio prilično "rupičast" tj. sa velikim
brojem praznih polja.
Problem sam rešio vraćanjem fajla sa strimera, ali me zanima da li je
neko imao sličan problem i kako ga je rešio.
clipper.962bulaja,
Treba li vam u Clipper-u nesto nalik na LIST, za pregled dugackih
tekstualnih datoteka. Nista lakse :), uz koriscenje TBrowse i NanFor
funkcija za File I/O (FT_F*). Radi sa neograniceno dugackim datotekama
(ako koristite MemoEdit() mozete samo 64K), ni megabajti nisu problem
:). Evo je ovde cela LIST funkcija, poziva se sa LIST (<file name>)
(npr. list("READ.ME).
#include "Inkey.ch"
#include "FileIO.ch"
**** ---------------------------------------- ****
PROC List (cFileName)
LOCAL FB
LOCAL bCol, nKey, cScr
IF FT_FUse (cFileName, FO_READ) == -1
RETURN
ENDIF
cScr := SaveScreen (0, 0, MaxRow(), MaxCol())
Scroll (0, 0, MaxRow(), MaxCol())
@ 0,0 TO MaxRow(), MaxCol()
FB := TBrowseNew (1, 1, MaxRow()-1, MaxCol()-1)
bCol := TBColumnNew ("", { || FT_FReadLn() } )
bCol:width := MaxCol()-2 // =78
FB:AddColumn (bCol)
// ovde je uglavnom sva mudrost :)
FB:skipBlock := { |n| FT_FSkip (n) }
FB:goTopBlock := { || FT_FGoTop () }
FB:goBottomBlock := { || FT_FGoBot () }
WHILE .T.
WHILE ( ! FB:Stabilize() .and. (nKey := Inkey() == 0)) ; END DO
IF FB:Stable ; nKey:=inkey(0) ; ELSE ; nKey:=0 ; END IF
DO CASE
CASE nKey == K_UP ; FB:up()
CASE nKey == K_DOWN ; FB:down()
CASE nKey == K_PGDN ; FB:PageDown()
CASE nKey == K_PGUP ; FB:PageUp()
CASE nKey == K_CTRL_PGUP ; FB:goTop()
CASE nKey == K_CTRL_PGDN ; FB:goBottom()
CASE nKey == K_ESC ; EXIT
CASE nKey == 32 ; FB:refreshAll()
END CASE
END DO
FT_FUse()
RestScreen (0, 0, MaxRow(), MaxCol, cScr)
RETURN
Problem je samo sto FT_F* funkcije imaju malo bugova :) pa vam se
moze desiti da ponekad prikaze i neki LF (chr(10) karakter tamo gde ne
treba. Dok ne izadje novi NFLib (ili ja ne napisem iste funkcije :), ovo
se moze resiti jednostavnim filtriranjem svakog reda, pa bi trebalo
umesto
bCol := TBColumnNew ("", { || FT_FReadLn() } )
staviti
bCol := TBColumnNew ("", { || StrTran (FT_FReadLn(), Chr(10), "") } )
That's it,
Bulaja
clipper.963ivan.s,
Cini mi se da nema jednostavnog nacina da resis svoj problem, ako ga uopste
ima; naime nisam siguran da li tastatura salje bilo sta racunaru po pritisku
na ctrl-ScrollLock. U svakom slucaju BIOSov int 9 handler ne stavlja nista
u keyboard buffer, pa ti inkey() ne moze pomoci.
Pozdrav, Ivan.
clipper.964bulaja,
│OK, neka to tako i treba, koji je onda scan-code za "Ctrl-ScrollLock" ?
└───
ScrollLock, ostali lock-ovi, Shift, Alt i Ctrl tasteri nemaju svoje scan
kodove, znaci njihovo stanje ne mozes ispitati preko inkey() vec npr.
preko funkcija koje imas u NanForum lib-u.
clipper.965d.petrovic,
Ă> ps. Ovo nije iz...ivljavanje, bas mi taj 'Ctrl-ScrollLock' treba
Ă> ;)
Zaviri u Nanfor, mozda tamo nesto ima, mislim da inkey() tu ne moze
nista :(
clipper.966ppekovic,
>> ŁŁŁ Da li ti je ispravno postavljena env. promenljiva COMSPEC?
>>
>> Uopste nemam namesteno COMSPEC !?! Cemu to sluzi a i inace ne radi ? :)
To je environment promenljiva koja pokazuje gde se nalazi
komandni iterpreter tj. command.com ili 4dos.com.
Paya
clipper.967ialeksic,
>>>ScrollLock, ostali lock-ovi, Shift, Alt i Ctrl tasteri nemaju svoje scan
>>>kodove, znaci njihovo stanje ne mozes ispitati preko inkey() vec npr.
>>>preko funkcija koje imas u NanForum lib-u.
Da u NanForum lib-u postoji nesto slicno, FT_NUMLOCK() na primer, ali ne i
FT_SCRLOCK(). No izgleda da je 'Ctl-ScrllLock' jedina kombinacija koja ne
funkcionise. Kada je pritisnut, 'Ctl' kao da blokira registrovanje pritiskanja
'ScrllLock' dirke. To nije slucaj za kombinaciju 'Shift-ScrllLock' ili
'Alt-ScrllLock' koje inace mogu da se registruju. Posto sam sa time
eksperimentisao evo osnove za za sada nepostojecu funkciju FT_SCRLOCK() ako
nekoga zanima:
#include "extend.h"
#define status_byte (*(char *)(0x00000418))
CLIPPER FT_SCRLOCK(void)
{
_retl( (int) (status_byte & 0x10) );
status_byte = (status_byte & 0xEF);
return;
}
Ivan A.
clipper.969rpausic,
Da li sam nešto propustio pretražujući SEZAMove conf ili zaista
nema posebnih tema i diskusija o najčešćim problemima programera
koji rade sa bazama podataka: finansijsko knjigovodstvo,
robno-materijalno, pogonsko, plate, fakturisanje, ...
Verujem da je ovo prava stvar za mnoge programere, jer svi verovatno
imamo slične probleme: knjigovođe ne mogu ili neće da objasne
problematiku (zamislite poraza: naučiti njihov posao za par dana i
omogućiti jednom običnom magacioneru da obavi pola knjigovodstvenog
posla!!!). Nekad je samo problem što ljudi koji znaju, nemaju živaca da
se malo napregnu i udube se u problematiku. Nekad ni njima samima nije
sve baš sasvim jasno, pa kako će onda drugom preneti? Nekada se zakon
menja svaki čas. Nekada se napravi zbrka (kao sada sa otkupom žita: 4
puta sam menjao program za obračun otkupa i ovog momenta ne mogu da
garantujem da je poslednji put).
Sve u svemu, mislim da su ova pitanja vredna pažnje. Ja sam spreman da
podelim sa drugima ideje oko organizovanja podataka, podeli poslova i
svaga što ja znam. Trenutno sam dosta razradio materijalno poslovanje u
mojoj zem. zadruzi sa nekoliko isturenih radnih jedinica i vodjenje
kooperativne proizvodnje, obračunu kamata i slično. Predstoji mi rad na
finansijskom knjigovodstvu, pogonskom, personalna evidencija, obračun
plata itd.
Ako imam istomišljenika, neka se jave. Ako nas bude malo, možemo i neku
grupu da osnujemo!
Pozdrav, Robert.
P.S. Jedini sam programer u firmi i očajnički želim da razmenjujem
iskustva i smanjim vreme provedeno sa ljudima koje mrzi da žive!
clipper.970dr.grba,
>> se moze resiti jednostavnim filtriranjem svakog reda, pa bi trebalo
>> umesto
>> bCol := TBColumnNew ("", š đđ FT_FReadLn() ć )
>> staviti
>> bCol := TBColumnNew ("", š đđ StrTran (FT_FReadLn(), Chr(10), "") ć )
Nisam testirao, ali koliko filtriranje smeća usporava rad?
clipper.971snemcev,
>> Uopste nemam namesteno COMSPEC !?! Cemu to sluzi a i inace ne radi ?
>> :)
Najkraće rečeno, tu piše ime komandnog interpretera koji će biti pozvan
da bi izvšio ono što mu ti iz svoje aplikacije narediš. Stavi u autoexec
SET COMSPEC=C:\DOS\COMMAND.COM (ili gde ti je već ;) i sve bi trebalo da
proradi.
clipper.972snemcev,
>> do while !(i:=INKEY()=K_CTRL_C)
Varovatno ga ovde buni dodela vrednosti. Probaj
do while !((i:=INKEY())==K_CTRL_C)
clipper.973pjankovic,
> posla!!!). Nekad je samo problem što ljudi koji znaju,
> nemaju živaca da se malo napregnu i udube se u
> problematiku. Nekad ni njima samima nije sve baš sasvim
> jasno, pa kako će onda drugom preneti? Nekada se zakon
Nekada žele da od svoga posla naprave bauk, da mu što
više podignu cijenu. Šta bi značilo da "neki tamo programer" prvi
put dođe u firmu i za desetak minuta provali kako se radi cijeli
njihov posao. To bi značilo da je njihov posao strašno jednostavan.
Zato oni objašnjavaju ali boga mole da ne shvatiš. Pa još ako
nešto zabrljaš pa izađe pogrešan rezultat, njihovom likovanju
nema kraja: "Eto, i mašina je pogriješila, ništa ne može da
zamijeni čovjeka".
clipper.974paki,
> Da li sam nešto propustio pretražujući SEZAMove conf ili
> zaista nema posebnih tema i diskusija o najčešćim problemima
> programera koji rade sa bazama podataka: finansijsko
> knjigovodstvo, robno-materijalno, pogonsko, plate,
> fakturisanje, ...
Mislim da posebne teme tu i nisu potrebne, o svemu tome se može
raspravljati u okviru teme baze.podataka.
clipper.975mickeyl,
Nabavio sam program DISCLIPPER ver 1.09. I to ne iz razloga da bih krao,
nego da bih isprobao kako šljaka i kako da se eventualno zaštitim.
Zasad sam otkrio da je dovoljno napraviti EXE program sa overlejima i
disclipper mu ne može ništa. Mislim da je to način da se zaštiti od ovog
programa. Jesam li u pravu i kakva su iskustva drugih?
Radi se o CLIPPER '87 verziji. Samo mi ne recite pređi na Clipper 5.x i
disclipper ti ne može ništa, jer prelazim na FOXPRO koji mi se više sviđa.
Dok ne preradim na Fox, treba da mi šljaka na clipperu, a da pri tom neko
ne dođe u iskušenje da mi mazne source.
p.s. nadam se da ne postoji neka novija verzija disclipper-a kojoj ne
smetaju overlay-i.
clipper.976bulaja,
││bCol := TBColumnNew ("", s dd StrTran (FT_FReadLn(), Chr(10), "") c )
│└───
│Nisam testirao, ali koliko filtriranje smeca usporava rad?
└───
Neprimetno. Ne bi ni trebalo nesto da usporava, posto filtrira samo
red koji se trenutno prikazuje.
clipper.977bulaja,
│Nekada zele da od svoga posla naprave bauk, da mu sto vise podignu
│cijenu. Sta bi znacilo da "neki tamo programer" prvi put dode u firmu
│i za desetak minuta provali kako se radi cijeli njihov posao.
└───
Ne znam koliko je teska ta njihova "velika" nauka, al znam da je
debela :). Slucajno me ceka najesen spremanje ispita Racunovodstvo &
Finansije (500+ strana:), pa cu imati prilike da vidim o cemu uci i
druga strana :).
clipper.978bulaja,
│Zasad sam otkrio da je dovoljno napraviti EXE program sa overlejima
│i disclipper mu ne moze nista.
└───
Takodje ako je linkovano sa starim Blinkerom, ne moze mu nista.
clipper.979cnenad,
ŁŁŁ disclipper ti ne moze nista, jer prelazim na FOXPRO koji mi
ŁŁŁ se vise svida.
Ovo nije sabotaza unutar teme za kliper. Ali moram da vam kazem da sam
od dosta ljudi cuo da prelaze na FOX. Inace ja sam dosta radio na DBASE-u
u okviru DBASE IV ali znate sta sve on nema. Medjutim ni kliper nema mnogo
stvari koje ima DBASE IV. Izgleda da uvek postoji neka zlatna sredina.
Kad li ce da se napravi neki dobar kompajler ili program u kome covek
ima sve sto mu treba.
Da li je odgovor mozda DBASE IV 2.0. kompajler ?
clipper.980v.nesic,
> Da bi bilo jasnije, to je isto kao kad bi naucio da zapisujes
> rezultate u preferansu i rekao kako si isti naucio :).
Poenta preferansa je u igri, poenta knjigovodstva je u pisanju :))
clipper.981draganf,
>
> P.S. Jedini sam programer u firmi i očajnički želim da
> razmenjujem iskustva i smanjim vreme provedeno sa ljudima
> koje mrzi da žive!
Nisi samo, ja sam čak jedini u krugu od 50 -tak kilometara.
Dragan
clipper.982snemcev,
>> Treba li vam u Clipper-u nesto nalik na LIST, za pregled dugackih
>> tekstualnih datoteka. Nista lakse :)
Da, ništa lakše, postoji funkcija u NanFor!
clipper.983snemcev,
>> Ako imam istomišljenika, neka se jave. Ako nas bude malo, možemo i
>> neku grupu da osnujemo!
Eto, da ne kažeš da si sam, jedan član grupe sam ja.
>> P.S. Jedini sam programer u firmi i očajnički želim da razmenjujem
>> iskustva i smanjim vreme provedeno sa ljudima koje mrzi da žive!
Nemoj tako pesimistički!
clipper.984ialeksic,
Imam pitanje za nekog objektasa:
prilozio sam kod koji ne radi kako ja ocekujem :(
A hteo sam sledece: Da mi TBrowseDB prikaze kombinovan sadrzaj DBFa
i rezultat neke funkcije. U praksi to izgleda ovako: Kada krene u
stabilizaciju, i stigne na liniju *** i:=browse:colPos *** unutar UDFa
to shvata kao rekurzivan poziv tog kodnog bloka (tj. UDF funkcije) i
izvvodi ga dok na kraju ne iscrpi stack i padne sa:
(b)DEMO (0) Unrecoverable error 650: Processor stack fault
Ja ipak ocekujem kao sto pise u dokumentaciji da je browse:colPos
"Exported Instance VARIABLE" a ne metod.
Gde gresim? Evo koda:
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
#include "Inkey.ch"
#define MY_HEADSEP "═Đ═"
#define MY_COLSEP " │ "
FUNCTION demo( dbf, index )
LOCAL nKey
LOCAL browse := TBROWSEDB( 1, 5, 24, 75 )
local w
CLS
USE (dbf) INDEX (index)
browse:headSep := MY_HEADSEP
browse:colSep := MY_COLSEP
browse:addColumn(TBColumnNew( ;
Field(1), ;
{|| FIELDGET(1)} ;
))
w:=TBColumnNew( ;
"xxxxx", ;
{|| udf(browse)} ;
)
w:width=5
browse:addColumn(w)
w:=TBColumnNew( ;
"yyyyy", ;
{|| udf(browse)} ;
)
w:width=5
browse:addColumn(w)
DO WHILE nKey != K_ESC
DO WHILE ! browse:STABILIZE()
ENDDO
nKey := INKEY( 0 )
DO CASE
CASE nKey == K_DOWN
browse:DOWN()
CASE nKey == K_UP
browse:UP()
CASE nKey == K_LEFT
browse:LEFT()
CASE nKey == K_RIGHT
browse:RIGHT()
ENDCASE
ENDDO
RETURN Nil
FUNCTION UDF(browse)
LOCAL a
LOCAL i:=0
i:=browse:colPos
IF (i=2)
a:="XXXYX"
ELSE
a:="YYYYY"
endIF (b:colPos=2)
RETURN a
clipper.985dr.grba,
>> Ako imam istomišljenika, neka se jave. Ako nas bude malo, možemo i
>> neku grupu da osnujemo!
Fala ti, Bože, da se neko najzad javio i glasno i jasno rekao
ono što nam leži na duši.
Imaš moju podršku i izraze spremnosti da dam doprinos u radu
konferencije/grupe. Iz saradnje se uvek može izvući nešto korisno.
clipper.986ficus,
> Zdravo !
> Skoro sam nabavio CA Clipper 5.2, evropsku verziju i skinuo sa
> Sezam-a zakrpu za verziju 5.2A, ali je ona samo za americku
> verziju Clipper-a. Naravno, ne mogu da zakrpim Clipper 5.2. Da
> li je nekko resio problem i kako ? Moze i slanje zakrpe
> americke verzije...
Ako ti nešto znači ja imam američko-kanadsku verziju...
Pozdrav, Deki
clipper.987ficus,
> IA> Elem, ne zelim da izmisljam toplu vodu, a knjigu - je li -
> nemam, IA> niti sam je nasao u prodaji (trazio!). Zato molim
> neku dobru dusu IA> :) da to stavi na mail ili bilo gde na
> SEZAMU (kako cu to posle IA> da nadjem?).
Zovni Mikro Knjigu, ako ti je neophodan Clipper5 od Spence-a, ali ja mislim da
ti je najbolje da odeš do Jugoslovenske knjige, jer tamo nešto kasnije rade
update cena... :)))
Pozdrav, Deki
clipper.988ficus,
> Ovo radi:
>
># include "inkey.ch"
> cls
> keyboard chr(K_ENTER) // Dodaj jedan Enter !
> wait "idemo u DOS !"
>! command.com
> cls
> wait "vratili smo se !"
> cls
Izvini, ali nije mi jasno čemu ono Enter?
Pozdrav, Deki
clipper.989ficus,
> Molim jos jednom, ako neko ima umetak iz racunara od Nenada
> Batocanina da mi ga pozajmi da ga isfotokopiram.
>
> Dogovor preko mail-a na CNENAD.
> Hvala.
Ja mogu da ti pozajmim...
Samo mi se obrati na mail...
Pozdrav, Deki
clipper.990ficus,
> Problem sam rešio vraćanjem fajla sa strimera, ali me zanima da
> li je neko imao sličan problem i kako ga je rešio.
Priznajem da ti je problem PPRRIILLIIžžNNOO zajeban. Ja nisam na sreću imao
iskustava sa ovim, ali kod mog ćaleta imaju sličnu (ali veću) mrežu, i svi rade
u 5.01, pa ću ih pitati...
Pozdrav, Deki
clipper.991ficus,
> Ovo nije sabotaza unutar teme za kliper. Ali moram da vam kazem
> da sam od dosta ljudi cuo da prelaze na FOX. Inace ja sam dosta
> radio na DBASE-u u okviru DBASE IV ali znate sta sve on nema.
> Medjutim ni kliper nema mnogo stvari koje ima DBASE IV. Izgleda
> da uvek postoji neka zlatna sredina. Kad li ce da se napravi
> neki dobar kompajler ili program u kome covek ima sve sto mu
> treba. Da li je odgovor mozda DBASE IV 2.0. kompajler ?
I meni se FoxPro mnogo više sviđa, a i mnogo je lakši za rad...
Ja sam ga instalirao i počeo da radim i ide mi super...
Ali, ne može sve da bude idealno... :(
NEMA DBEDIT!!! a ni adekvatnu zamenu...
Ima samo BROWSE, ali od toga nema mnogo vajde!
Ima li ko ideju, kako realizovati nešto slično DBEDIT-u ali za FoxPro?
Pozdrav, Deki
clipper.992nbatocanin,
> Molim svi koji imaju iskutva sa programiranjem odnosno
> prilagodjavanjem clipper program na rad sa matematickim
> procesorom, nek prenesu svoje iskustvo u ovoj
> konferenciji.
Nikakvo posebno prilagođavanje ti nije potrebno. Bojim se da ti
koprocesor neće doneti neko primetno poboljšanje performansi, jer je
ono što se u Clipper-u daleko najčešće radi je čitanje/pisanje po
disku, a tu ti koprocesor slabo pomaže.
clipper.993ematic,
> {|| udf(browse)} ;
probaj {|| udf(@browse)}
clipper.994v.nesic,
> Gde gresim? Evo koda:
Kolko ja vidim, nigde. Izgleda da clipp ne radi ono sto mu pise.
Ako ti je nesto onakvo bas potrebno iskoristi polje cargo u koloni,
recimo :
...
w:cargo:=1
browse:addcolumn(w)
...
w:cargo:=2
browse:addcolumn(w)
...
func udf(browse)
...
i:=browse:cargo
...
return a
clipper.995terza,
> Ako imam istomisljenika, neka se jave. Ako nas bude malo,
> mozemo i neku grupu da osnujemo!
Racunaj i na mene za grupu, sve sto se tice programa za plate,
tu sam.
Terza
clipper.996toma,
■■>> Da li sam nešto propustio pretražujući SEZAMove conf ili zaista
■■>> nema posebnih tema i diskusija o najčešćim problemima programera
■■>> koji rade sa bazama podataka: finansijsko knjigovodstvo,
■■>> robno-materijalno, pogonsko, plate, fakturisanje, ...
E ovo nam je baš trebalo!
Računajte na mene.
ps. Ćale mi je knjigovođa, a ja radim u njegovoj knjigovodstvenoj
firmi, pa izvolte...
clipper.997v.nesic,
>> Ako imam istomisljenika, neka se jave. Ako nas bude malo,
>> mozemo i neku grupu da osnujemo!
>
> Racunaj i na mene za grupu, sve sto se tice programa za plate,
> tu sam.
Ako se pravi grupa, count me in !)
clipper.999ialeksic,
>>> Izvini, ali nije mi jasno cemu ono Enter?
To je crnogorska varijanta [bez ruku ;)]. Zapravo ja sam prevideo da je
komanda u pitanju bila WAIT (koja i ocekuje stisak dirke), nju inace ne
koristim. Verovatno je problem da command.com nije u PATKI,COMSPEC,4DOS,...
clipper.1000ialeksic,
>>> probaj {|| udf(@browse)}
Ne verujem, jer je prenos Objekta i ovako preko reference...
A i nije me mrzelo da proverim - ista stvar :(
clipper.1001ialeksic,
>>> Ako ti je nesto onakvo bas potrebno iskoristi polje cargo u koloni,...
Ovo je bilo principijelno pitanje. Primer sam uprostio do kraja samo
da bih opisao anomaliju (ako je anomalija uopste, a ne pogresna upotreba).
Inace u aplikaciji cargo nameravam da koristim za druge svrhe. Samo sam
mislio da ovo ne bi smelo ovako da se ponasa, prilicno je trivijalno da
bi bio bug,... pa sam naravno mislio da ja negde gresim, i jos uvek mislim
...,ali gde? Ajde objektovci.
clipper.1002milanv,
║║ debela :). Slucajno me ceka najesen spremanje ispita Racunovodstvo &
║║ Finansije (500+ strana:), pa cu imati prilike da vidim o cemu uci i
║║ druga strana :).
Učićeš šta se beleži na kojoj klasi, pa kontu, pa...
Stvarno, velika mudrost, samo, voleo bih da vidim i knjigovodju
koji zna sve što piše u tih 500-tinak stranica. Pa, ipak, misli
da bi zemlja bez njega stala!
clipper.1003gaston,
->Gde gresim? Evo koda:
Prijatelju, verovatno u programu nigde i ne gresis, ali ...
1) Ja NIKADA ne dajem promenljivoj ime koje makar malo asocira na ime neke
procedure ili funkcije. Cak izbegavam da dajem imena koja lepo zvuce na
engleskom. Razlog: pa neko od americkih ili engleskih programera se
verovatno vec setio da nesto tako nazove. Lepo to brate nazoves po srpski,
pa da te ceo svet razume ;| <--- kiseo osmeh na sopstveni racun ...
2) Takodje izbegavam da kao parametre prenosim objekte - zgodni su, ali su
komplikovani, posebno u jeziku koji prakticno jos nema jasno definisana
pravila igre sa njima. Bolje prenesi kao parametar ColPos.
3) Ako je stvarno u pitanju onako jednostavan posao kao u primeru, lepo brate
napisi tako da ti kodni blok zavrsava posao...
Ne smatram sebe bogznakakvim strucnjakom, sve sto ti kazem potice iz sopstvenog
loseg iskustva. Bice mi drago ako sam ti makar malo pomogao...
Nesa
clipper.1004gaston,
▀▀┌Pa ja bas i nemam neka mnogo negativna iskustva, sto se tice saradnje oko
izrade knjigovodstvenih programa, imam samo kasnije, oko placanja ...
Pored toga, matori su mi u toj bransi, tako da imam eksperte kod kuce skoro
za sve, osim plata (ali su tu pravila igre uglavnom poznata).
Ako osnivas grupu, evo i mene (sviram samo u drombulje, ali zato jako lepo
pevam i ,kao sto se vidi skromnost mi je vrlina ... B)))
Nesa
clipper.1005nbatocanin,
> Mislim da je to način da se zaštiti od ovog programa. Jesam li u
> pravu i kakva su iskustva drugih?
Prvo, nije mi jasno šta ti znači to "zaštiti se". Da li misliš da će
neko uzeti tvoj program, generisati tekst programa, pa onda prodavati
malo izmenjen? žini mi se da je verovatnoća takvog događaja ravna
nuli. Ko normalan će da analizira kilometarski sors bez reda
komentara, da bi ga shvatio i izmenio? Uostalom, ako to može, sigurno
može i da napiše isti takav program, uz manje komplikacije.
clipper.1006nbatocanin,
> Medjutim ni kliper nema mnogo stvari koje ima DBASE IV.
Šta, na primer?
clipper.1007nbatocanin,
> Imam pitanje za nekog objektasa:
>
> prilozio sam kod koji ne radi kako ja ocekujem :(
Problem je u tome što se pri definisanju TBrowse objekta referišeš
opet na njega rekurzivno, ali bez izlaza. Tj. nije problem u
varijabli TB:colPos, već u definiciji kolone. Moraš promeniti
koncepciju i kao kolonu definisati nešto drugo. Slučaj je sličan kao u
a:= {1, 2, 3}
a[3] := a
clipper.1008ematic,
>>>> probaj {|| udf(@browse)}
>
> Ne verujem, jer je prenos Objekta i ovako preko reference...
>
> A i nije me mrzelo da proverim - ista stvar :(
Izvini što sam ovako lupio napamet, tvoju poruku sam samo letimice
pogledao pre nego što sam odgovorio. Elem, koliko vidim, ti želiš da
za ove tvoje dodatne kolone imaš neku konstantnu vrednost koja zavisi
od pozicije iste. Tu ti nije potrebno nikakvo muljanje s korisničkim
funkcijama, dovoljno je da umesto ovoga što si napisao:
> w:=TBColumnNew( ;
> "xxxxx", ;
> {|| udf(browse)} ;
> )
staviš npr.:
w := tbcolumnnew ("xxxxx", { || "XXXXX" })
Ukoliko naknadno želiš da menjaš takvu kolonu, odnosno da je napuniš
nekom drugom vrednošću, dovoljno je da uradiš nešto kao:
pozicija := browse:colpos
kolona := browse:getcolumn(pozicija)
do case
case pozicija == TRT
kolona:block := { || "TRTRT" }
// i tako dalje (i tako bliže :)
end
// sledeća linija je vrlo važna
browse:configure()
// naredna je novitet (5.2)
browse:forcestable()
Vratimo se sad na ono zbog čega ti puca program, dakle na zlo i
pokvareno :) { || udf(browse) }. Kada se objektu dodaje kolona, blok
pomoću koga ista dobija svoju tekuću vrednost se evaluira tek
prilikom stabilizacije objekta. U ovom slučaju blok poziva korisničku
funkciju koja opet pokreće novu stabilizaciju, jer referencira na
isti objekat iz koga je krenula stabilizacija ( i := browse:colpos ),
dok prethodna stabilizacija u stvari još nije izvršena. Rezultati
prethodne stabilizacije se stavljaju na stek, kreće nova i tako ide
rekurzivno dok se stek ne iscrpi i dođe do famozne fatalne greške.
p.s izvini zbog konfuzne poruke, objašnjavanje mi nikad nije bilo
jača strana :)
clipper.1009dejanr,
>> Prvo, nije mi jasno šta ti znači to "zaštiti se". Da li misliš da će
>> neko uzeti tvoj program, generisati tekst programa, pa onda prodavati
>> malo izmenjen? žini mi se da je verovatnoća takvog događaja ravna
>> nuli.
Pa, ne znam baš. Meni je glavna zaštita programa u tome što se na ekranu,
na formularima i izveštajima ispisuje ime firme, adresa, telefon, fax itd.
Na taj način je dosta teško da to iko drugi koristi (mada sam čuo da je
bilo nekih koji su koreksom brisali ime samo da ne plate program ;)). To
ime je oduvek malo "zamumuljeno", čisto da se ne može iz Nortona promeniti.
Međutim, otkad su "izmišljeni" ti de-clipper-i, morao sam da pišem neku
straobalnu programčinu na asembleru koja se brine o tekstovima tog tipa,
sve u nadi da declipper neće umeti tek tako da je izdvoji ili da je neće
biti baš lako analizirati.
"Lopov" ne mora ništa da menja u programu - samo promeni ime firme i
proda ga upola cene "izvadivši" tako štetu što je platio program. Ne
bi bilo prvi put.
clipper.1010ndragan,
/ P.S. Jedini sam programer u firmi i očajnički želim da razmenjujem
Kućni programer? Kolega, saučešće. Bićeš kriv za sve, i što zajebeš ti i
što zajebu oni, a onda će te hvaliti na sva usta za nešto što si uradio
malim prstom za pet minuta, pa će te posle psovati što trodnevni posao
nije bio gotov za minus pola dana... Drž' se i pitaj ovde šta ti treba.
clipper.1011ndragan,
/ debela :). Slucajno me ceka najesen spremanje ispita Racunovodstvo &
/ Finansije (500+ strana:), pa cu imati prilike da vidim o cemu uci i
Upoznaj neprijatelja da bi ga više voleo poraženog.
clipper.1012ndragan,
/ Ima samo BROWSE, ali od toga nema mnogo vajde!
Ajd baš da vidimo šta ima DbEdit() a šta nema Browse i obratno.
Browse ima toliko opcija da se razmišljam da napišem generator za tih
nekoliko linija, da mi bar prvu verziju napiše sintaksno tačnu i štogod
ulepšanu. žisto me zanima šta su posebne cake u DbEdit(), tek da vidim
da li mi nešto od toga nedostaje.
clipper.1013d.petrovic,
Ă> Browse ima toliko opcija da se razmišljam da napišem generator za
Ă> tih nekoliko linija, da mi bar prvu verziju napiše sintaksno
Ă> tačnu i štogod ulepšanu. žisto me zanima šta su posebne cake u
Ă> DbEdit(), tek da vidim da li mi nešto od toga nedostaje.
Meni izgleda nije jasno o čemu vi ovde... :))
Zar postoji nešto što DbEdit() može, a ne može da se uradi u
TBrowse() ??
clipper.1014goranr,
Na primer, ladno pravljenje POP-UP menija
clipper.1015goranr,
Po bulajinom izrazicitom narednjenju :) u dolenavedenom fajlu se nalaze
opisi funkcija (kratki!) biblioteke Clipper Tools, koja je novopristigla
na SEZAM. Navali na Download! :)
cliptool.txtclipper.1016ialeksic,
>>> Elem, koliko vidim, ti zelis da za ove tvoje dodatne kolone imas neku
>>> konstantnu vrednost koja zavisi...
Hvala na ideji za konstne vrednosti kolona, no to mi nije bila zelja. Primer
sam samo uprostio pa je zbog toga tako izgledalo. Naime, nisam hteo da
zamaram celu ekipu sa svojom aplikacijom, ali izgleda je ipak neophodna mala
eksplikacija :)
Pravim aplikaciju u kojoj kooperativno ucestvuje i 'remote' aplikacija (na
hostu), tako da neke od TBcolumn treba vrednostima da popunjava lokalna
aplikacija a neke, 'remote' aplikacija (pozivima funkcija). Zato sam mislio
da se to moze resiti tako da kodni blokovi budu posebne funkcije koje
izmedju ostalog koriste 'remote' servise. Kada sam to smislio jednostavno
sam zeleo da imam samo JEDNU (glavnu) funkciju za kodni blok koja bi na
osnovu browse:colpos trebala da pozove odgovarajucu servisnu funkciju.
Nista vise. Onda su nastali opisani problemi, pa sam kasapljenjem i
uproscavanjem tog dela programa stigao do ilustracije koju sam poslao
u conf. Problem sam prevazisao tako sto svaki remote-zavian TBcolumn korist
kodni blok sa zasebnom funkcijom,... i to lepo radi.
Inace ja sam stari kliperas (A'86,S'87) ali sam se u zadnje vreme zapustio
[mrzelo me je da migriram aplikacije sa S'87 ;)] tako da nemam nekog zesceg
iskustva sa 5.0, pa cu biti slobodan da priupitam kad-kad (a mozda i cesce!)
neku glupost. Koliko vidim objekti su velika (i jako korisna) novost (dobro
ja sam malo zadocnio :( ). Da li se na 5.2 objekti mogu i definisati?
>>> // sledeca linija je vrlo vazna
>>> browse:configure()
Kao sto rekoh, ne mogu bas da se pohvalim preteranim poznavanjem 5.0 objekata
a citajuci u reference-u nije mi sasvim jasno sta radi browse:configure()
metod. Moze malo objasnjnja?
>>> Vratimo se sad na ono zbog cega ti puca program, dakle na zlo i
>>> pokvareno :) { || udf(browse) }. Kada se objektu dodaje kolona, blok...
>>> ....
>>> p.s izvini zbog konfuzne poruke,...
Begaj, Poruka i objasnjenje su OK.
Objasnjenje sta se desava i zasto dolazi de prepunjenja steka mi je ubedljivo
i prihvatljivo. Medjutim, principijelno govoreci, i dalje mi nije jasno zasto
se radi dobijanja koja je kolona u pitanju (browse:colpos), mora evaluirati
kodni blok TBcolumn objekta! Zar to nije podatak iz strukture podataka
TBrowse objekta koji bi trebalo da mu bude poznat kada tretira pojedinacni
TBcolumn objekat. Ajd' dobro, kako je - tako je.
>>> // naredna je novitet (5.2)
>>> browse:forcestable()
I na kraju ovog napada blagoglagoljivosti, da izrazim i svoj obol u vezi
ovog pitanja. Znam da je to nepristojno pitanje, ali kako ... 5.2? Video
sam instalacionu verziju na jednom BBS-u ali je to golemo do bola :(
to je sve. cestitam onima koji su izdrzali do kraja!
pozdrav Ivan A.
clipper.1017ialeksic,
>>> 1)...
>>> 2)...
>>> 3)...
Prijatelju:
1) Bezrezervno podrzavam tvoj patriotizam, ali u ovoj stvari sam ovako
navikao, amator da se po stare dane odvikavam.
2) Meni se bas cini da su objekti dusu dali da se vozaju tamo-vamo.
3) Bojim se da je u pitanju robija od posla... :(((
Pozdravlja te prijatelj :)
clipper.1018ialeksic,
>>> Slucaj je slican kao u
>>> a:= {1, 2, 3}
>>> a[3] := a
Sta je tu cemo slicno?
Ovo je rekurzivno definisana struktura, a tamo je rekurzivna
... macka (TBcolumn) u dzaku (TBrowse)!
;)
clipper.1019bulaja,
-> Medjutim ni kliper nema mnogo stvari koje ima DBASE IV.
=> Sta, na primer?
> Na primer, ladno pravljenje POP-UP menija
Zar je to problem izvesti iz Clipper-a?
Btw ako ti nije tesko opisi taj sistem menija iz dB IV, mozda ubacim
nesto slicno u sledecu verziju BuMenu-ja :).
clipper.1020mjevta,
>Ć Da li sam nesto propustio pretrazujuci SEZAMove conf ili
Potpuno te razumem i pitanje je stvarno na mestu. I ja sam u
pocetku bio u prilicnoj nedoumici glede toga pa sam, nakon nekoliko
MB starih i novih poruka tipa 'Kako da uradim ovo i ono u kliperu',
'zasto kliper radi ovo a nece ono', 'kako da povezem kliper sa ovim i
onim', 'kliper vs. Godzila' digao ruke. Mislim, od klipera definitivno
a zamalo i od Sezama.
>Ć zaista nema posebnih tema i diskusija o najcescim problemima
>Ć programera koji rade sa bazama podataka: finansijsko
>Ć knjigovodstvo, robno-materijalno, pogonsko, plate,
>Ć fakturisanje, ...
Upravo ovih dana 'udaram zavrsni glanc' aplikaciji za
finansijsko knjigovodsvo i znam koliko bih nerava sacuvao da
sam, umesto da se natezem sa frustriranim i nadobudnim knjigovodjama,
neke cake mogao da kupim sa Sezama - onako, fino dajdzestirane za
instant primenu.
Zato se pridruzujem tvom 'apelu' i kandidujem za jedno od mesta u
eventualnoj grupi ( izuzev ako ne diskriminisete prebege u protivnicki
FoxPro tabor :)
Pozdrav Jevta.
clipper.1021mickeyl,
=> nuli. Ko normalan će da analizira kilometarski sors bez reda
=> komentara, da bi ga shvatio i izmenio? Uostalom, ako to može, sigurno
=> može i da napiše isti takav program, uz manje komplikacije.
Neka hvala, ali ja mirnije spavam kad sam siguran da niko nema source
mog programa. Jest da ovaj disclipper ne razbija i exe bez ovl-ova
100%, ali se dosta toga može
clipper.1023d.petrovic,
Ă> Btw ako ti nije tesko opisi taj sistem menija iz dB IV, mozda
Ă> ubacim nesto slicno u sledecu verziju BuMenu-ja :).
Ix, kako je lepo bumenu poslužio da ih napravim :)). Samo što nisu
univerzalni nego prilagođeni mojim potrebama, nabudžio sam nešto i to
lepo radi :))
clipper.1024ratman,
Je li tacno da postoji neka vrsta sintaksnog checkera za Clipper koji radi
u editoru, i.e. svaki put kada se otkuca linija i CR, proverava sintaksu.
To mi izgleda zgodno, pogotovo za ljude kao ja koji jos pate od BASIC-a.
Ako to postoji, i nije preveliko, bas bih voleo da mi neko uploadu-uje.
Pozdrav,
Dejan
clipper.1025mickeyl,
H E L P !!!!!!!!!!!!!
Kako da rješim ovo?
BLINKER : overlay opsize set to 40kb - minimum is 32kb (DB_TEXT)
swapping to temporary file .Đ$T100002
BLINKER : 1115 : bliovlmgr(S8OVLMGR) : '__DOS_HOLD' : unresolved external
BLINKER : 0 Warning error(s), 1 Fatal error(s)
SAFIR.EXE (not created) (11.0 seconds)
clipper.1026ndragan,
/ verovatno vec setio da nesto tako nazove. Lepo to brate nazoves po
/ srpski, pa da te ceo svet razume ;đ
Upravo to. žak i ako funkcija kojoj si dao lepo ime ne postoji, nije
sigurno da neće u sledećoj verziji. Banalan primer: koristili smo
promenljivu _text. Sve je bilo ok do FP2.0, koji odjednom _ima_ tu
promenljivu, i ona mu čak nešto i znači.
clipper.1027ndragan,
/ Prvo, nije mi jasno šta ti znači to "zaštiti se".
Ništa. "Zaštititi se" bi još i značilo :)
/ malo izmenjen? žini mi se da je verovatnoća takvog događaja ravna
/ nuli. Ko normalan će da analizira kilometarski sors bez reda
Šta da radiš sa takvim čovekom? Jednom sam i ja napravio takvu zaštitu
(ona jedna aplikacija u kliperu koja je pre neki mesec stigla da se
spomene ovde), izmenjavši sva imena unakrst. Funkcija CEKAJ je
indeksirala, VIDI je ispisivala okvire itd, a sve promenljive su se
zvale zx81, atari, ferari, gejts, audi, trt, mrt i slično.
Zaključio sam da sam ga dovoljno zakomplikovao, a ko razbije tu zaštitu,
dobrodošao da radimo zajedno.
Sad već ne mislim tako. Ako on ima pristup aplikaciji koju hoće da
ukrade, i ne može za pola sata igranja sa njom (i šetanja kroz .dbfove)
da zaključi u čemu su cake, kako su organizovani podaci, i da smisli
kako bi to sam bolje napravio... nego mora da disasemblira (reč shvatiti
bukvalno: rastavi) program, onda džaba ga bilo. Ne treba mi takav za
saradnika.
Još je gore po njega ako samo traži način da skine zaštitu da bi
prepelcovao drugo ime korisnika - negde u programu se stavi kontrola na
čeksum od toga, i pusti da program radi par nedelja tako, pa onda
reklama za original. Dovoljno je, jer ionako ne postoji bilo koja
aplikacija (osim ako ima neka da ne barata sa parama) koja može da
izdrži bez izmena više od par meseci (inflacija, demonizacija, propisi).
U tom slučaju možeš da ga častiš što ti je doveo mušteriju.