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,
-> #816, ratmanĂ> 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,
-> #815, bulaja>> 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,
-> #819, jtitov>> 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,
-> #819, jtitov│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,
-> #819, jtitov>> 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,
-> #815, bulaja/│ 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,
-> #819, jtitov>> 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,
-> #821, dr.grba>> 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,
-> #803, skerl│Clipper "Fast" EGA/VGA PCX Display Library
└───
Radi :) (i to dobro), prebacneo u Clipper dir.
clipper.830toma,
-> #828, snemcev■■>> ... 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,
-> #828, snemcev>> 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,
-> #830, toma>> 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,
-> #833, dr.grba>> Molim vas! Da li je to upotrebljivo?
Zar si to dosad živeo bez toga?!? ;))
clipper.836dr.grba,
-> #835, snemcev>> >> 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,
-> #830, toma>> 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,
-> #836, dr.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.
clipper.839nbatocanin,
-> #827, bulaja> 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,
-> #837, snemcev■■>>>> 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,
-> #839, nbatocanin││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,
-> #842, bulaja> 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,
-> #841, bulaja>> 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,
-> #843, ematic│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,
-> #845, ppekovic│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,
-> #838, snemcev>> >> 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,
-> #847, bulaja> 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,
-> #847, bulaja/ 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,
-> #840, toma>> 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,
-> #840, toma>> 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,
-> #853, snemcevja:
■■>> 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,
-> #852, snemcev> 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,
-> #854, toma>> 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,
-> #855, jtitov>> > 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,
-> #856, snemcev>> 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,
-> #852, snemcev/ 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,
-> #831, cnenadKomandu 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,
-> #857, dr.grba>> 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,
-> #860, solajac>> 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,
-> #863, bstevanĂ> 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,
-> #860, solajacŁŁŁ 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,
-> #865, d.petrovic>> 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,
-> #866, cnenad>> 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,
-> #867, cnenad>> 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,
-> #866, cnenadĂ> 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,
-> #868, bstevanĂ> 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,
-> #867, cnenadĂ> 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,
-> #869, dr.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.
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,
-> #871, d.petrovicŁŁŁ 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,
-> #867, cnenad>> 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,
-> #878, cnenad>> 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,
-> #868, bstevan>■ 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,
-> #867, cnenad>■ 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,
-> #877, cnenadĂ> 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,
-> #878, cnenadĂ> 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,
-> #878, cnenad>> 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,
-> #868, bstevan> 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,
-> #867, cnenad> 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,
-> #872, d.petrovic>>> 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,
-> #881, nikac>>> 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,
-> #888, nbatocanin>>> 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,
-> #893, bstevan>> 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,
-> #894, dejanr>>> 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,
-> #895, bstevan 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,
-> #881, nikac>>> 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,
-> #868, bstevan/>> 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,
-> #883, d.petrovicŁŁŁ 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,
-> #895, bstevan>■>>> 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,
-> #881, nikac>> 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,
-> #891, bstevan>> 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,
-> #898, ndragan>>> 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,
-> #900, nikac>>> 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,
-> #902, dr.grba>>> 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,
-> #901, dr.grbaĂ> 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,
-> #900, nikacĂ>> ■ 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,
-> #904, bstevan> 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,
-> #908, jtitov>>> 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,
-> #909, bstevan
>> 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,
-> #901, dr.grba>■ 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,
-> #910, solajacSamo 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,
-> #910, solajac>>> 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,
-> #913, bstevan 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,
-> #910, solajac>> - 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,
-> #887, snemcev> 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,
-> #891, bstevan> 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,
-> #893, bstevan> 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,
-> #918, nbatocaninĂ> 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 :)