PCPROG.1

20 Sep 1991 - 03 Dec 1992

Topics

  1. ms.dos (235)
  2. cccc (0)
  3. asembler (321)
  4. pascal (896)
  5. clipper (1059)
  6. zastita (239)
  7. basic (178)
  8. baze.podataka (116)
  9. novi.fajlovi (66)
  10. algoritmi (52)
  11. razno (707)
  12. van.teme (126)
  13. unknown (986)

Messages - pascal

pascal.101 ivans, -> #98, vasic
Bilo mi je zadovoljstvo da te grize savest! :)))))))) Pozdrav, ivans.
pascal.102 dejanr, -> #100, dgrbic
>> Na koji nacin Racunari dobijaju softver na testiranje? da li samo >> od domacih zastupnika ili moze i direktno Naravno da može i direktno... ako je proizvođač raspoložen. Manji proizvođači su obično vrlo raspoloženi, veći imaju zastupnika... Na žalost, u poslednje vreme se nedovoljno radi na tome - eto, ja za taj Pascal+ nisam ni čuo :(
pascal.103 bearboy, -> #94, alazic
> Postoji jedno malo ali povodom 's:string[2000]' a to je : > ne radi. Naime turbo pascal (do verzije 5.5) pamti string > kao prvi bajt +tekst , gde je prvi bajt duzina stringa. Iz > thi razloga string ne moze biti duzi od 255 char-ova. Turbo Pascal 6.0 zna ! Bar je kod mene svario !
pascal.104 dejanr, -> #103, bearboy
>> Turbo Pascal 6.0 zna ! Bar je kod mene svario ! Ako imaš instaliran Turbo Pascal 6.0 (ja nemam), probaj još jednom, to mi izgleda neverovatno. Ako nemaš instaliran, moraću ja da ga instaliram da to probam.
pascal.105 bearboy, -> #94, alazic
> Postoji jedno malo ali povodom 's:string[2000]' a to je : > ne radi. Naime turbo pascal (do verzije 5.5) pamti string > kao prvi bajt +tekst , gde je prvi bajt duzina stringa. Iz > thi razloga string ne moze biti duzi od 255 char-ova. Turbo Pascal 6.0 zna ! Bar je kod mene svario !
pascal.106 ppekovic, -> #102, dejanr
>> Na žalost, u poslednje vreme se nedovoljno radi na tome - eto, ja >> za taj Pascal+ nisam ni čuo :( Grbo, gde si ti video ili cuo za taj Pascal? Ko je proizvodjac? itd. Daj neku informaciju pa da potrazim po BIX-u nesto vise o tom Pascal-u. Paya
pascal.107 ivujanic, -> #106, ppekovic
╠ Grbo, gde si ti video ili cuo za taj Pascal? Ko je ╠ proizvodjac? itd. Daj neku informaciju pa da potrazim po BIX-u ╠ nesto vise o tom Pascal-u. U Byte-u se reklamira Pascal+. Proizvođač je Stony Brook Software. Ivica
pascal.108 predragd,
Zdravo Saljem vam dva programcica koji mogu da citaju gif fajlove. Prvi program je pisan u Paskalu i Asembleru, a drugi samo u Paskalu. Na zalost prilozeni programi mogu samo da citaju gif slicice. Naravno za oba programa je dat kompletan sors. Pozdrav, Pedja. gifsrc.zip
pascal.109 bojanp, -> #106, ppekovic
> Grbo, gde si ti video ili cuo za taj Pascal? Ko je > proizvodjac? itd. Daj neku informaciju pa da potrazim po BIX-u > nesto vise o tom Pascal-u. Oni koji imaju novembarski BYTE neka okrenu stranu 116IS-58, a za one koji isti nemaju evo nekoliko informacija o prevodiocu Pascal+: - 100% kompatibilan sa TP V6.0 - brzina izvrsavanja do 100% veca - velicina koda do 30% manja - generise standrdne .OBJ file-ove - podrzava sve memorijske modele. Proizvodjac: Stony Brook Software 187 E. Wilbur Road, Suite 9 Thousand Oaks CA 91360 tel: 805/496-5837 fax: 805/496-7429 Cena do 31-12-91: $375 od 31-12-91: $475 (U cenu ukljuceno slanje) Pozdrav, Bojan
pascal.110 dejanr, -> #109, bojanp
> - 100% kompatibilan sa TP V6.0 > - brzina izvrsavanja do 100% veca > - velicina koda do 30% manja > - generise standrdne .OBJ file-ove > - podrzava sve memorijske modele. žetvrto i peto je vrlo značajno, doduše ovde se ne pominje dužina stringova (zapravo, ako mogu da budu duži od 256 znakova, teško će se održati kompatibilnost sa TP jer mnogi programeri umesto length(prom) koriste ord(prom[0])) ali je i ovo "dovoljno značajno". Dosta koristim Pascal, ali mi je ipak $400 "na neviđeno" malo previše, pogotovu uzevši u obzir gde ode dolar poslednjih dana :(( Moram da probam da tražim primerak na test ;)
pascal.111 dgrbic, -> #110, dejanr
:: pogotovu uzevsi u obzir gde ode dolar poslednjih dana :(( :: Moram da probam da trazim primerak na test ;) Tako je, pa da saznamo nesto vise o tome :)
pascal.112 dgrbic, -> #110, dejanr
:: Cetvrto i peto je vrlo znacajno, doduse ovde se ne :: pominje duzina stringova (zapravo, ako mogu da budu duzi :: od 256 znakova, tesko ce se odrzati kompatibilnost sa TP :: jer mnogi programeri umesto Onu poruku sam pisao po secanju, pa moze biti da sam malo omanuo :)
pascal.113 draganj,
Jednog mog prijatelja intresuje kako da ugradi zastitu u program pisan na pascalu, tako da onemoguci piratovanje programa (namerava da ga pusti u prodaju). Pozdrav, Dragan.
pascal.114 xenomorphe,
POstoje li proc. u TPascalu kojima se mogu pojedini sektori sa diskova i disketa ucitavati u npr.neku promenljivu odn. array? ...ili u asembleru, pa da se proc. linkuje u TP?
pascal.115 predragd, -> #114, xenomorphe
> POstoje li proc. u TPascalu kojima se mogu pojedini > sektori sa diskova i disketa ucitavati u npr.neku > promenljivu odn. array? ...ili u asembleru, pa da se proc. > linkuje u TP? Zdravo Pa u TP ne postoji procedura koja moze da cita sektore diska, ali zato postoji u DOS-u i BIOS-u. Saljem ti proceduru koja uz pomoc BIOS-ovog interapta $13 cita zadati sektor sa diska/diskete. type sector_buffer = array [1..512] of byte; function ReadSector (drive, head: byte; track: word; sector: integer; var diskbuff: sector_buffer): byte; var regs: registers; begin fillchar (regs, sizeof (regs), 0); with regs do begin ah:=$02; al:=$01; es:=seg(diskbuff); bx:=ofs(diskbuff); ch:=track; cl:=sector; dh:=head; dl:=drive; intr($13,Dos.Registers(regs)); ReadSector:=0; if (flags and 1) = 1 then ReadSector:=ah; end; end; { readsector } Oznake za disk su ti sledece: A - 0 B - 1 C - $80 ( fizicki disk, ne logicki } D - $81 - || - Pozdrav, Pedja.
pascal.116 bearboy, -> #113, draganj
-+={ Jednog mog prijatelja intresuje kako da ugradi zastitu -+={ u program pisan na pascalu, tako da onemoguci -+={ piratovanje programa (namerava da ga pusti u prodaju). Evo saveta za SVE jezike. Napises program, kompajliras ga, linkujes ga, a posle toga opalis Pklite -r (ne moze se vratiti u prvobitni oblik), ili, jos jednostavnije, sa LZEXE. Ja moje programe prepisem ovako, tako da se ne mogu ni gledati (olako), a i sam program postaje manji. PS. Copyright (c) Bearboy, 1991. !!!
pascal.117 macak,
YOOI! Imam jedan problem. Budzim neki programcic koji treba da je rezidentan i koji bi mogao da aktiviram pisuci neku naredbu ili nesto sto bi mogao da razume. Znaci napisem u DOS-u nesto kao "aktiviraj se" <ENTER> i na taj nacin ga startujem.Program presrece interapt 09 i posle pritiska na ENTER on bi trebalo da proveri sta je napisano.Tu je problem - KAKO? Probao sam da procitam bafer tastature ili barem ja mislim da je to bio bafer.:) Na ovaj nacin sam dobio nesto,ali to je nekako nepotpuno. Znaci,trebala bi mi neka ...procedura koja bi kao rezultat davala komandu, string, koji sam napisao.Nadam se da sam bio dovoljno jasan. :)))
pascal.118 dzakic, -> #117, macak
>> Budzim neki programcic koji treba da je rezidentan i koji bi >> mogao da aktiviram pisuci neku naredbu ili nesto sto bi mogao da >> razume. Mislim da ti nije dobra ideja da na taj način proveravaš koja je komanda zadata. Zamisli da si u editoru i da je poslednja reč u redu naziv tvog programa, pritisneš enter... treba li da se aktivira? Ili ako u kucanju komande koristio delete, u baferu neće biti ono što ti očekuješ. Dakle, batali int 9. Treba u okviru svog programa da napraviš proveru da li je program već instaliran pa ako jeste da podesiš parametre prema svičevima u komandnoj liniji (da se aktivira). Jel program u paskalu? A ako ti BAŠ koćeš da se tvoj program aktivira na komandu "dir" recimo ;)) onda je to suviše podlo i takve savete ne dajem :)))
pascal.119 dzakic, -> #116, bearboy
>> Napises program, kompajliras ga, linkujes ga, a posle toga >> opalis Pklite -r (ne moze se vratiti u prvobitni oblik) Molim objašnjenje za ovo. Ja uspevam da vratim program u izvorni oblik pomoću -x i kad ga pklitujem sa -r... ?
pascal.120 macak, -> #118, dzakic
>>Ako ti bas hoces da se tvoj program aktivira na komandu "dir" recimo ;)) onda je to suvise podlo i ne dajem takve savete. Ma ti si mene pogresno shvatio.Ovo ne pravi nikakve "podle" stvari. Ako neces da mi pomognes,OK,a ako ne znas,onda opet OK. Prevrnucu celu memoriju i naci cu sta mi treba.
pascal.121 vasic, -> #120, macak
Nije mi jasno zasto toliko insistiras na tome. Sta fali standardnom pozivanju sa ctrl-alt-nesto i slicnim ? A ako vec treba da se poziva samo iz komandne linije, zasto ga jednostavno ne stavis na path. ;) Vasa
pascal.122 dzakic, -> #120, macak
>> Ma ti si mene pogresno shvatio.Ovo ne pravi nikakve "podle" >> stvari. Ako neces da mi pomognes,OK,a ako ne znas,onda opet OK. >> Prevrnucu celu memoriju i naci cu sta mi treba. Nemoj macak da se ljutiš, molim te. Video si smešak na kraju. Reko, ako čovek pravi virus, bolje da ćutim ;)) Šala bre! Dao sam ti par konkretnih predloga u prvom delu poruke a na njih mi nisi odgovorio. Jel ok da pozoveš svoj program sa recimo "proba -on" i on se aktivira, posle sa "proba -off" i on se ugasi? Ako ti ovo odgovara (ovo sam već doktorir'o), rado ću ti detaljno objasniti šta treba da radiš. Opet te pitam jel program u paskalu ili mašincu?
pascal.123 macak, -> #122, dzakic
>>OPet te pitam jel program u pascalu ili masincu? Pa koliko znam,ovo je tema PASCAL,a ne asembler ili tome slicno. Virus ne moze nikako biti je bi to onda bio virus od nekih 20-30KB. Smesno.:))) Mislio sam da kad recimo napises TYPE,ne koristi DOS-ov TYPE,nego rutinu iz programa koja bi recimo mogla da prikaze vise fajlova i gde bi mogao da koristis * i ? u imenu.Prvo je to trebao da bude neki batch fajl,ali sam od toga odustao. Mislim da bi ovako bilo elegantnije i bolje. S'vatas sta 'ocu da ti kazem? Znaci ono proba -on i proba -off otpada. Ja sam samo pitao jel zna neko da dobijem ono sto sam napisao u (ocde fali ^ kako) komandnoj liniji ,a vi digli celu frku. :)))))) P.S.sorry zbog gresaka,ovo pisem on-line. P.S.S.Ne ljutim se,DZ,samo sam mislio da ne znas :)))
pascal.124 drakce, -> #119, dzakic
│ Molim objašnjenje za ovo. Ja uspevam da vratim program u │ izvorni oblik pomoću -x i kad ga pklitujem sa -r... ? └──── To važi samo za registrovanu verziju. Verovatno si zaboravio da registruješ PKlite O:)
pascal.125 djelovic, -> #123, macak
> Smesno.:))) Mislio sam da kad recimo napises TYPE,ne koristi > DOS-ov TYPE,nego rutinu iz programa koja bi recimo mogla da > prikaze vise A zasto ne izmenis COMMAND.COM tako da vise ne prepoznaje TYPE (recimo preimenujes naredbu u QYPE), pa onda negde u path stavis TYPE.EXE?
pascal.126 vasic, -> #123, macak
Daleko najjednostavnije resenje za ovo je da u CEDu, 4dosu ili DOSKEYu (sta vec koristis) definises odgovarajuci alias koji ce pozivati npr. LIST (ima ga na sezamu) a koji vec ima sve to sto trazis. Vasa
pascal.127 macak, -> #126, vasic
Phuuu...ono gore je bio vise kao primer. 'ocete vi meni reci ono sto sam pitao ili necete (ili ne znate (?)) :) (bolje da sam cutao :)) ).
pascal.128 radunovic, -> #117, macak
?! Znaci napisem u DOS-u nesto kao "aktiviraj se" <ENTER> i na taj nacin ?! ga startujem.Program presrece interapt 09 i posle pritiska na ENTER ?! on bi trebalo da proveri sta je napisano.Tu je problem - KAKO? Pa kad vec presreces int 9 onda ti lepo u neku promenjivu pisi sve sto se pritisne, pa kad dodje ENTER eto ti sve to u promenljivoj(npr stringu).
pascal.129 alazic,
Pa , pod pretpostavkom da se radi o text modu , zasto jednostavno program ne bi non Ú─Łë╚t-stop gledÚao u video memoriju , i kada ustanovi da je zadnjih xxx slova iza kursora 'Dir' ili nesto slicno se a▀k▀tivirao-ŚÚÚ]. Za to imaEÇÚs sve sto ti je potrebno u tp-u : WhereX WhereY i definises ▀screen :array [1..2000] of word , absolute $b000Ú:0000 (ili vecÚş9 ÚÚ]gde treba , to pogledas negde nize ▀). Ok ?
pascal.130 dzakic, -> #123, macak
>> Ja sam samo pitao jel zna neko kako da dobijem ono sto sam >> napisao u komandnoj liniji E pa to konkretno ne znam, ali ja bih to rešio drugačije. Kao što djelović reče, možeš da promeniš type u command.com-u u nešto drugo, ali ako hoćeš da tvoj program bude sasvim legalan, i da ga prodaješ :) što mu ne daš neko novo ime? Ako je zaista koristan, korisnik će se brzo navići na mtype (mačkov type :) ... U 4dosu sve može legalno aliasima. Zatim, postoji interapt koji možeš da presretneš kod _izvršavanja_ programa sa odredjenim nazivom (exec), za interne komande nisam našao ništa. A i nelogično mi je da tvoj program bude rezidentan ako će ga neko koristiti samo kod listanja datoteka (?) dz
pascal.131 dgrbic, -> #123, macak
Imas u dosu funkciju (int 21h, ah=0ah) za citanje stringa sa stdin. Mozes nju da "uhvatis", pa da analiziras sta ona vraca. Jedino ne znam da li bi to radilo ako korisnik ne upotrebljava "cisti" command.com (on poziva ovu f-ju za unos stringa), nego koristi neki ced, ili slicno.
pascal.132 macak, -> #130, dzakic
>>mtype (mackov type) Vec imam MTYPE.EXE :)) Vidis,ja ne znam da li postoji takavoftware,ali bi meni i recimo jednom mom oratku {dobro dosao program koji bi kontrolisao sta ti radis iz komandne linije.Program bi bio instaliran u u autoexecu i mogao bi da podesis koja naredba bi radila ,a koja ne i tako te stvarcice. Pa ja reko,│ovo je lako!Ali se ispostavilo da tu postoji par problemcica :) (dobro sad,mozda malo vise od PAR :) ).─ Ja sam dobio nesto uz pomoc var komanda:^string; begin komanda:=Ptr(0,$2E0A); ... Dobijem string.Lici.Ali nije to bas to.Dobije se jos Ęneko djubÍre od prethod─ůne │narečd▀be i tako to.
pascal.133 bearboy, -> #119, dzakic
-+={>> Napises program, kompajliras ga, linkujes ga, a posle -+={>> toga opalis Pklite -r (ne moze se vratiti u prvobitni -+={ oblik) -+={ -+={ Molim objasnjenje za ovo. Ja uspevam da vratim program -+={ u izvorni oblik pomocu -x i kad ga pklitujem sa -r... ? Nisam siguran za ono -r, mozda je i nesto drugo (drugi switch).Inace tu opciju ima SAMO registrovani Pklite. Dakle ako je nemate, koristite Lzexe...
pascal.134 vasic, -> #132, macak
> Program bi bio instaliran u > u autoexecu i mogao bi da podesis koja naredba bi radila ,a koja ne i > tako te stvarcice. Pa napravi MCED, ;) tj. preuzmi INT 21h FN 0Ah. To rade i CED i DOSED, posto COMMAND.COM zove ovo za unos komandne linije. E onda, kad on pozove tvoju rutinu, ti pustis korisnika da otkuca sta hoce, proveris da li mu je to dozvoljeno, pa ili vratis korisnika na ponovni unos ili, ako je sve u redu, prosledis to dalje. Jedini problem je sto verovatno ne bi smeo da koristis TP-ove I/O procedure i funkcije za ocitavanje tastature i ispis na ekran. Sto se tice bafera tastature, pogledaj sta NG ima da kaze o recima na 0:417h i 0:41Ch. Vasa
pascal.135 vasic, -> #134, vasic
> tice bafera tastature, pogledaj sta NG ima da kaze o recima na 0:417h i > 0:41Ch. ^^^^^^ Greska u kuc(k)anju. Ovo je trebalo da bude 0:41Ah. Sorry. Vasa
pascal.136 xenomorphe, -> #115, predragd
> Pa u TP ne postoji procedura koja moze da cita sektore diska, ali > zato postoji u DOS-u i BIOS-u. Saljem ti proceduru koja uz pomoc > BIOS-ovog interapta $13 cita zadati sektor sa diska/diskete. Hvala na ovoj proceduri, uspeo sam i da je isprobam, sasvim lepo radi. Zaboravio sam, medjutim da postavim sasvim logicno pitanje: kako stoje stvari sa analognom proc koja radi obratno: array > sector. Ako budes stigao da mi posaljes (ili ma ko drugi), dobro bi mi dosla! Pozdrav, Dejan.
pascal.138 predragd, -> #136, xenomorphe
Greska je moja sto se nisam setio da ti posaljem proceduru za snimanje, no zato to sada ispravljam. procedure write_sector (drive, head: byte; track: word; sector: integer; var diskbuff: sector_buffer); var regs: registers; begin fillchar (regs, sizeof (regs), 0); with regs do begin ah:=$03; al:=$01; es:=seg(diskbuff); bx:=ofs(diskbuff); ch:=track; cl:=sector; dh:=head; dl:=drive; intr($13,regs); bioserror:=ah; end; end; { write_sector } Dobra strana ovih procedura (pisanih u BIOS-u) je ta da mozes citati i tabelu particija, i da slobodno mozes svrljati po celom fizickom disku, a mana je ta sto ces tesko ustanoviti kako da pristupis logickom disku (C, D, ...). Stoga ti preporucujem da ponekad koristis i MS-DOS interapte ($25, $26), ili IO-CTL funkcije. Zoran Zivotic ih je opisao u jednom broju "Racunara". Njihove opise imas i na SEZAM-u, medju spisku svih dokumentavanih i nedokumentovanih interapta. Ako ih nemas skinute, javi mi se pa cu ti preneti opise tih interapta. Pedja.
pascal.139 drpr,
Zanima me da li može recimo da se u TP 5.5 ili recimo postoji naredba pomoću koje mogu da uradim sledeće Recimo kad startujem program Proba.exe koji je napravljen iz paskala pročitam i prametre iza kao recimo proba /s /p kao u dosu sa %1 itd.. nadam se da sam bio jasan i molim pomoć drpr
pascal.140 macak, -> #139, drpr
>>Recimo kad startujem program Proba.exe koji je napravljen u pascalu >>procitam i parametre... Parametre mozes da procitas uz pomoc funkcija (ili procedura ?) PARAMCOUNT:word i PARAMSTRING:string. Prva ti pokazuje koliko parametara si stavio uz program (proba /s /p ovde ima 2 komada).A da...PARAMSTRING(INDEX):string (sorry,zaboravio sam ono index).Uz pomoc ove druge dobijas neki od parametara iz opsega koji dobijes sa PRAMCOUNT. recimo: FUNCTION parametar:string; BEGINHK {recimo neka promenaljiva Q:STRING} q:=paramstring(1); {U tvom slucaju bi to bilo "/s"} KK .... parametar:=q; KKEND. Ili nesto slicno. :)))
pascal.141 ivans, -> #139, drpr
Postoji funkcija koja radi bas to, a i malo vise. Zove se ParamStr. ParamStr(0) vraca ono sto ti treba - stazu i ime programa koji je startovan. ParamStr(n) vraca n-ti parametar iz komandne linije ili prazan string ako je n vece od ParamCount. O ovome je bilo reci u "Bajtovima licne prirode", "Racunari", nepoznat broj. Pozdrav, Ivans.
pascal.142 xenomorphe,
Kako da najjednostavnije iskompajliram pgm u TP, da graficke rutine budu zajedno u istom EXE faju, tako da ne bude potreban BGI posebno? Treba li u source-u nesto menjati i sta? U pgm. se koristi samo herc. driver i standardne graph proced. i funkc. Pozdrav, Dejan.
pascal.143 mjova, -> #142, xenomorphe
> Treba li u source-u nesto menjati i sta? U pgm. se koristi > samo herc. pretpostavljam da je isti postupak kao i u C-u. ne znam napamet postupak, probao sam jedared i znam da nije bilo problema. ništa se ne menja u source-u jednino se linkovanje radi drugim postupkom.
pascal.144 kole, -> #142, xenomorphe
>> Kako da najjednostavnije iskompajliram pgm u TP, da graficke rutine >> budu zajedno u istom EXE faju, tako da ne bude potreban BGI posebno? Imaš demo pod imenom BGIDEMO u kome se objašnjava ono što Ti treba. Suština je u tome da BGI-je prevedeš u OBJ (Sa BINOBJ ako se ne varam) , zatim ih ulinkuješ u program sa {$Lblabla..}, kasnije registruješ njihovo postojanje u memoriji,... >> Treba li u source-u nesto menjati i sta? U pgm. se koristi samo herc. Treba... Pozdrav, Kole P.S. Ako nemaš taj DEMO poslaću ti...
pascal.145 sslavko, -> #142, xenomorphe
>> Kako da najjednostavnije iskompajliram pgm u TP, da >> graficke rutine budu zajedno u istom EXE faju, tako da ne Zdravo, Isti problem je i mene mucio. U C-u je to sve detaljno objasnjeno dok je u TP-u samo napomenuto. Ja sam to jednom uspeo ali sad pojma nemam kako. Znam da sam uspeo da ulinkujem HERC.BGI u .EXE fajl tako da je grafika radila i ako nema poseban drajver. Postoji jedan primer tamo, zove se BGILINK.PAS u kome je pokazano kako se linkuju i drajveri i fontovi. Znam da sam na osnovu njega to uradio, ali nisam uspeo da ulinkujem vise od jednog .BGI drajvera. Naime hteo sam da napravim program koji ce da radi na svim grafickim kartama (za koje imam drajvere), ali sam morao da ih imam u tekucem direktorijumu. Imam jos jedno pitanje. Kako u text fajl ubaciti neku rec. Treba mi nesto kao: PROCEDURE INSERT(var f:text;mesto:integer;st:string); begin ....... ovde se na poziciju "mesto" u fajlu f ubacuje rec st end; Resenje koje sam ja smislio mi deluje isuvise grubo. Prepisuje se ceo fajl od pocetka do mesta "mesto", zatim se APPEND-uje rec st pa onda ostatak fajla. Pozdrav Slavko.
pascal.146 bojanp, -> #140, macak
> Parametre mozes da procitas uz pomoc funkcija (ili procedura ?) > PARAMCOUNT:word i PARAMSTRING:string. Funkcije su: function ParamCount : word; function ParamStr (index : word) : string; Sem toga obrati paznju da su "razdvajaci" parametara white spaces, pa ako neko napise: proba /s/p tu postoji samo jedan parametar, a ne dva! Pozdrav, Bojan
pascal.147 bojanp, -> #142, xenomorphe
> Kako da najjednostavnije iskompajliram pgm u TP, da graficke rutine > budu zajedno u istom EXE faju, tako da ne bude potreban BGI posebno? U okviru TP-a ima program BgiLink u kome je sve to lepo objasnjeno i prikazano. Problem se svodi na to da se za svaki driver/font koji koristis definise procedura koja pokazuje na njega i da se driver/font programom BinObj prevede u object file. > Treba li u source-u nesto menjati i sta? U pgm. se koristi samo herc. > driver i standardne graph proced. i funkc. Potrebno je na pocetku programa, pre inicijalizovanja grafike "prijaviti" programu da se driver/font nalazi u okviru exe file-a funkcijama: RegisterBGIdriver (Driver : pointer) : integer; RegisterBGIfont (Font : pointer) : integer; i to svaki driver/font posebno. Svakako pogledaj primer i sve ce ti biti jasno, a ako bude problema javi se. Pozdrav, Bojan
pascal.149 ppekovic, -> #145, sslavko
>>Resenje koje sam ja smislio mi deluje isuvise grubo. Prepisuje se ceo >>fajl od pocetka do mesta "mesto", zatim se APPEND-uje rec st pa onda >>ostatak fajla. To je i jedini način! Paya
pascal.150 grom, -> #149, ppekovic
@@>> Resenje koje sam ja smislio mi deluje isuvise grubo. @@>> Prepisuje se ceo fajl od pocetka do mesta "mesto", @@>> zatim se APPEND-uje rec st pa onda ostatak fajla. @@ @@ To je i jedini način! Možda i nije, zašto bi se prepisivao ceo fajl od početka. To jeste najlakši način za realizaciju, ali sigurno nije i jedini. Ako je to problem koji se često javlja u sslavkovom programu, verovatno se isplati napisati bolju rutinu. Uzgred sslavko, voleo bih da znam kojeg su reda veličine fajlovi, a kojeg je reda veličine reč st. GROM
pascal.151 ppekovic, -> #150, grom
>>Možda i nije, zašto bi se prepisivao ceo fajl od početka. To jeste najlakši >>način za realizaciju, ali sigurno nije i jedini. Ako je to problem koji se >>često javlja u sslavkovom programu, verovatno se isplati napisati bolju >>rutinu. Možda rutina u kojoj se prepisuje ceo fajl nije najracionalnija sa stanovišta prostora ali sa stanovišta brzine svakako jeste, a i uštede memorijskog prostora. Naravno, postoji i mogućnost rada na istom fajlu tako što bi se na mestu gde treba umetnuti novi deo, prethodni zapamtio u memorijski bafer, pa onda kreneš, zapamtiš stari, ubaciš novi, zapamtiš stari ubaciš novi ... Ubrzanje ovog procesa je direktno proporcionalno veličini memorije odvojenoj za befersisanje. Uz to, ovim načinom se malo više šeta file pointer, pa samim tim i brzina neće biti zavidna. Neko srednje rešenje je možda da se fajl podeli na dva i to na onom mestu gde treba da se ubaci novo parče. Onda napraviš novi fajl kao prvi_deo_starog + novi_deo + drugi_deo_starog. Ipak, onaj prvi način je najprihvatljiviji osim u slučaju manjka disk prostora. Paya
pascal.152 bojanp, -> #145, sslavko
> Znam da sam uspeo da ulinkujem HERC.BGI u .EXE fajl tako da je > grafika radila i ako nema poseban drajver. Postoji jedan primer tamo, > zove se BGILINK.PAS u kome je pokazano kako se linkuju i drajveri i > fontovi. Znam da sam na osnovu njega to uradio, ali nisam uspeo da > ulinkujem vise od jednog .BGI drajvera. Naime hteo sam da napravim > program koji ce da radi na svim grafickim kartama (za koje imam > drajvere), ali sam morao da ih imam u tekucem direktorijumu. Nije mi jasno kako nisi uspeo da link-ujes vise od jednog driver-a, kada je bas u navedenom primeru (BgiLink) linkovano 4 driver-a i 4 font-a. Mozda nisi bio registrovao sve driver-e. Pozdrav, Bojan
pascal.153 sslavko, -> #150, grom
>> Ako je >> to problem koji se cesto javlja u sslavkovom programu, >> verovatno se isplati napisati bolju rutinu. Uzgred >> sslavko, voleo bih da znam kojeg su reda velicine >> fajlovi, a kojeg je reda velicine rec st. Ta rutina je trenutno *najcesce* pozivana rutina u programu. Zato i trazim neko bolje i brze resenje. Kod ovog prepisivanja se trosi *mnogo* vremena. Fajl ce ici do jedno 300k a reci do 70 znakova. Radi se o nekoj bazi podataka koja se cesto azurira. Da stvar bude komplikovanija ceo fajl je izdeljen na stranice od po 100 redova. Tako ako korisnik hoce da ubaci novi red (duzine do 70 znakova) na drugu stranicu onda se mora po jedan red sa svake sledece stranice prebaciti na sledecu. Znaci poslednji red sa trece ide na cetvrtu i.t.d. Ovo sve je nadgradnja vec postojeceg programa koji koristi taj format. Pozdrav Slavko.
pascal.154 ndragan, -> #145, sslavko
/ Resenje koje sam ja smislio mi deluje isuvise grubo. Prepisuje se ceo / fajl od pocetka do mesta "mesto", zatim se APPEND-uje rec st pa onda Jedino elegantnije rešenje je da se ceo iskopira u memoriju do tog mesta, umetne reč i onda ... čekaj, mogao bi da pišeš preko tog istog, samo da guraš tekst uvek malo dalje. Tu si na dobitku ako ti se reč javlja pri kraju fajla. Recimo, dođeš do pozicije x koju si tražio; pročitaš sledećih n bajta, upišeš svoju reč na x i za njom sledećih n-len(reč) bajta; onda pročitaš sledećih n, upišeš poslednjih len(reč) i prvih n-len(reč) iz druge ture i tako do kraja. Programče bi moglo da bude bombonica, a? Ako se reč pojavljuje na početku, ili ako si nešto zeznuo - ili nisi dobio bog zna šta na vremenu, ili... šta misliš zašto editori prave .BAK fajlove? Bue_ NDragan
pascal.155 ppekovic, -> #154, ndragan
>>Recimo, dođeš do pozicije x koju si tražio; pročitaš sledećih n bajta, upišeš >>svoju reč na x i za njom sledećih n-len(reč) bajta; onda pročitaš sledećih n, >> upišeš poslednjih len(reč) i prvih n-len(reč) iz druge ture i tako do kraja. >> Programče bi moglo da bude bombonica, a? Pa tu ideju sam i ja izložio u jednoj od prethodnih poruka, ali razmisli malo. Prvo pomeriš fajl pointer napred za len(rač) bajtova. Pa ga onda vratiš nazad za isto toliko bajtova da bi upisao novi tekst, pa sve tako do kraja fajla. Moraš priznati da bi to radiiiillloooo. Ja i dalje tvrdim da je NAJBRčE! rešenje prepisivanje fajla, a voleo bi akobi neko mogao da napravi nešto brže, premda čisto sumnjam. Dakle, ajde programeri, pokažćite se. Paya
pascal.156 skoprivica, -> #154, ndragan
A da proba da stavi rec na kraj texta pa zatim napravi index fijl ? Radi super sa ne-text datotekama, tj. sa datotekama kod kojih znas duzinu sloga (record), tj. nisi ogranicen eoln-ima... Aje... CTEBO.
pascal.157 grom, -> #155, ppekovic
@@ Ja i dalje tvrdim da je NAJBRčE! rešenje prepisivanje @@ fajla, a voleo bi akobi neko mogao da napravi nešto brže, @@ premda čisto sumnjam. Dakle, ajde programeri, pokažćite @@ se. Payo, Payo... Ajde ti napravi rutinicu za upisivanje reči u fajl tako kako ti kažeš (to mogu i ja, al' da ne ispadne da sporo radi što sam ja kodirao :) u Turbo Pascalu (ja dogurao do 5.0 :) a ja ću sa malo pointera, malo keširanja :) pa da vidimo koja će brže da radi. Da te upozorim, baza NEĆE stalno biti "u komadu" (znači, biće i rutina za čitanje baze i za povezivanje baze kod zatvaranja), da ne pričaš posle da nisi bio upozoren :) Još nisam počeo da pišem, da neko ne kaže da sam to već uradio pa se sada kurčim. Ako si zainteresovan za duel, javi mi, pa da počnemo :) Hristos se rodi! GROM
pascal.158 ppekovic, -> #157, grom
>>Ako si zainteresovan za duel, javi mi, pa da počnemo :) Javljam ti. Ajde kreni sa svojim nacinom, a ja cu po sistemu prepisivanja fajla. Kriterijumi dobrote programa su naravno brzina, ali i racionalnost koriscenja memorije, kao i sigurnost podataka (nestanak struje, i sl. problemi). Paya
pascal.159 macak, -> #158, ppekovic
TOOO!!! FIGHT! ;))
pascal.160 cacxa, -> #156, skoprivica
> A da proba da stavi rec na kraj texta pa zatim napravi > index fijl ? Radi super sa ne-text datotekama, tj. sa > datotekama kod kojih znas duzinu sloga (record), tj. nisi > ogranicen eoln-ima... Uze mi reč iz usta...
pascal.162 predragd, -> #88, powderman
Zdravo Dakle, fazon je bio u tome da se datoteka cita s kraja ka pocetku, dake unatrag. To bi se sve moglo srediti da definisemo jednu tekstualnu datoteku, pozicioniramo se na njen kraj, proceitamo jedan red, sa SEEK naredbom odemo dva reda unazad ... Medjutim TP nedozvoljava SEEK naredbu kod tekstualnih datoteka. Moja ideja je bila da se cita bajt po bajt unatrag, s tim da se pazi na EOL karaktere ($13 $10). To i nije tako tesko uraditi samo sto se citanje relativno sporo izvodi, no za pocetak mislim da ce ti i ovo biti dovoljno. Uses Crt; var F: File; FileName, Linija: String; Ch1, Ch2, i: Byte; begin ClrScr; Write ('Unesite ime tekstualne datoteke: '); Readln (FileName); Assign (F, FileName); {$I-} Reset (F, 1); {$I+} if IOResult <> 0 then begin Writeln ('Datoteka ', FileName, ' ne postoji.'); Halt; end; Linija:=''; Ch1:=0; Ch2:=0; Seek (F, FileSize (F) - 1); While FilePos (F) > 0 do begin BlockRead (F, Ch1, 1); Seek (F, FilePos (F) - 2); if chr (Ch1) = #10 then begin BlockRead (F, Ch2, 1); Seek (F, FilePos (F) - 2); if Chr (Ch2) = #13 then begin for i:=Length (Linija) downto 1 do Write (Linija [i]); Writeln; Linija:=''; end else begin Seek (F, FilePos (F) - 2); Ch1:=0; end; end else Linija:=Linija + chr (Ch1); end; close (F); end.
pascal.163 ndragan, -> #155, ppekovic
/ Ja i dalje tvrdim da je NAJBRčE! rešenje prepisivanje fajla, a voleo Mislim da sam se lepo ogradio - ovo je interesantnije za programiranje, a brže je samo ako je reč negde pri kraju. Dobar keš bi izravnao razlike u brzini. Ona dopuna problema koja se u međuvremenu pojavila drastično menja stvar. Tu stvarno treba razmisliti o indeksu. Indeksiranje teksta i nije neki problem - postavlja se fizički fajl pointer na prvi bajt u liniji umesto na broj sloga u DBF (a i taj služi da se recno()*recsize+header_len dobije opet fizički pointer na prvi bajt sloga). Da stvar može sasvim lepo da radi, primetili su svi koji koriste SOR. Drugo je pitanje ako on sad tu treba da pravi servisnu rutinu za čačkanje podataka koji se prave i koriste iz tuđeg programa. To onda više liči na sviranje kontrabasa iza leđa u liftu ili tako neku ekvilibrističku tačku; pitanje je koliko vremena sme da prođe da se datoteka drži u nekom međustanju u kojem format ne bi odgovarao potrebama originalne baze. Ako se izmene mogu raditi u paketu, moglo bi biti rešenje da se u neku datoteku sa strane upišu sve izmene, sa tekstom izmene i pointerom na mesto na kojem treba da se ubaci, a zatim da se paketnim prepisom napravi nova: prepisuje se pravolinijski do mesta sledećeg umetka, umetne se, pa opet prepis do sledećeg itd. To jeste ono najprostije rešenje, a tako nekako rade i neki of lajn editori na vaksu i PDPu. Uslov je da izmene budu poređane po redosledu pojavljivanja u tekstu. Bue_ NDragan
pascal.164 grom, -> #158, ppekovic
@@ Javljam ti. Ajde kreni sa svojim nacinom, a ja cu po @@ sistemu prepisivanja fajla. Kriterijumi dobrote programa @@ su naravno brzina, ali i racionalnost koriscenja @@ memorije, kao i sigurnost podataka (nestanak struje, i @@ sl. problemi). @@ @@ Paya E, pa, evo ga, dajem ga u PD :) Verzija 0.1. Radi samo insertovanje i čitanje, tek da se vidi kako radi. A radi brzo. Koristi malo memorije, podaci su sigurni. Program stalno zapisuje tabelu indeksa na disk, tako da se u slučaju pucanja (nestanak struje ili slične nevolje) podaci mogu povratiti posebnim programom. Šta to čujem "gde je taj posebni program" ? Tu je zapravo, samo treba pročitati tabelu indeksa i uraditi fclose. Ako bude interesovanja, uradiću i funkcije fdelete, fwrite i slične, onda obradu grešaka (disk full i slično), otvaranje više fajlova istovremeno, i očistiću ga od (eventualnih) bagova. Ako bude interesovanja, otvoriću grupu koja će da pronalazi bagove. GROM P.S. U početku sam mislio da se petljam sa Fatom, ali sam odustao iz razloga bezbednosti :) P.P.S. Have a safe sex :) P.P.P.S. A gde je tvoj program? fafil.zip
pascal.165 bojanp,
Da li je neko pretplaćen na "Inside Turbo Pascal"? Intersuje me koliko je kvalitetan i da li se isplati? Pozdrav, Bojan
pascal.166 grom, -> #164, grom
Tek sad sam video šta sam poslao onomad :) Elem, više sreće u drugom pokušaju. Greškom sam poslao "radnu" verziju, kojom sam vršio lov na bubice. Sada, da bih se oprao, dodao sam i proceduru fdelete. Ako je neko isprobao predhodnu verziju, izvinjavamo se, mnogo se izvinjavamo :) ovaj put je sigurno sve u redu (99% očišćeno od bagova). Ako i ovo nije dosta da me opere, sledeći put ću poslati i program za popravku podataka (nestanak struje, i sl. problemi). GROM fafil.zip
pascal.167 ppekovic, -> #166, grom
>>Ako je neko isprobao predhodnu verziju, izvinjavamo se, mnogo se >>izvinjavamo :) ovaj put je sigurno sve u redu (99% očišćeno od bagova). Khm, kod mene proradi onih 1%! Ipak, da pojasnim u cemu je caka tj. ideja u tvom programu (objasnjenje by dgrbic, grom's brother) :) Stos je u tome sto se u toku rada programa za insert trosi jako malo vremena jer ovaj sistem u stvari uopste ne uradi insert nego dati string zakaci na kraj fajla formirajuci neku pokazivacku strukturu. Kada se zatvori datoteka, onda se fajl pakuje, tj. vrsi se stvarno umetanje umetnutih stringova na njihova mesta, sto raaadddiiiiiI!!!! Dakle, ovim je reseno brzina ubacivanja u toku samog rada, s tim sto se javljuju neki sitniji problemi a to su da u toku rada, fajl moze da se cita samo sa prilozenom funkcijom fread. Naravno, da bi sistem bio fleksibilniji, moguce je brisati delove fajla. E sad, tu ostaje coveku da izabere sta mu treba, ali na kraju ipak dolaziomo do toga da fajl moras da prepisujes kako god okrenes, jedino sto to ne mora uvek da se radi. A kad smo vec kod te ideje, bas cu da probam jednu drugu varijantu u kojoj bi se novi stringovi dodavali u poseban fajl, a ne na kraj postojeceg, kako bi se sacuvala originalna struktura baze, a i mislim da bi radilo brze. Videcemo ... Paya
pascal.168 djnsnd, -> #165, bojanp
> Da li je neko pretplaćen na "Inside Turbo Pascal"? > Intersuje me koliko je kvalitetan i da li se isplati? Nisam pretplaćen, ali sam uz TP dobio besplatnu ponudu da mi pošalju 3 broja, pa da posle odlučim da li ću se pretplatiti. (Sva sreća.) Nisam ni malo oduševljen časopisom. Nije da nema šta da se pročita, ali očekivao sam mnogo više. To je časopis sa 4-5 članaka u broju i listinzima programa. Ako te interesuje mogu ti dati da vidiš. Dejan
pascal.169 grom, -> #167, ppekovic
@@ Khm, kod mene proradi onih 1%! Ops, pa da, ja sam i rekao da je program 99% očišćen od bubica. Treba samo neke promenljive prebaciti iz integer u longint :). Što je promena u manje od 1% teksta programa (kako se vadim :). Kod mene je jedno vreme radilo, a onda sam da bih vama nezahvalnicima uštedeo par bajtova prebacivao promenljive koje su UVEK manje od MAXINT u integer. Problem je što se onda množenjem dve integer promenljive dobija i integer rezultat :(. Inače, i ovakav kakav je bio radi sa fajlovima kraćim od 64k. A ti odmah moj mali programčić vs. 1M dugačkog fajla. Stidi se! Nisam ni napomenuo da provera stringova mora biti u TP konfigurisana kao RELAXED, ali sam živeo u dubokom ubeđenju da je već kod svih tako, je li Payo :). @@ Stos je u tome sto se u toku rada programa za insert @@ trosi jako malo vremena jer ovaj sistem u stvari uopste @@ ne uradi insert nego dati string zakaci na kraj fajla @@ formirajuci neku pokazivacku strukturu. Kada se zatvori @@ datoteka, onda se fajl pakuje, tj. vrsi se stvarno @@ umetanje umetnutih stringova na njihova mesta, sto @@ raaadddiiiiiI!!!! Pa nije baš. Ovaj sistem u stvari uradi insert, ali CEO dobijeni klaster (ili dva) zakači na nekorišćeno mesto u fajlu. U pravu si da se troši jako malo vremena u toku rada :), a to da pri zatvaranju fajla raaaaadddiiiiii, raaaaadddddiiii nešto duže od prepisivanja celog fajla (jel to beše tvoja ideja), ali SAMO JEDNOM U TOKU RADA. Zamisli samo 10 insertovanja ili brisanja iz baze. A i ta dužina je uglavnom posledica malog bafera koji sam predvideo za prepisivanje. Ako se pokaže interesovanje potrudiću se da za prepisivanje odvojim svu raspoloživu memoriju. Ali u neko veće interesovanje ne verujem. Izgleda da samo ti i skidaš sve verzije (koje ne rade kako treba) ovog programa, ti si jedini i primetio da ne radi. @@ Dakle, ovim je reseno brzina ubacivanja u toku samog @@ rada, s tim sto se javljuju neki sitniji problemi a to su @@ da u toku rada, fajl moze da se cita samo sa prilozenom @@ funkcijom fread. Naravno, da bi sistem bio fleksibilniji, @@ moguce je brisati delove fajla. Šta fali, bolje fread nego blockread, lakše se kuca (jednom rukom :). A možeš upisivati i malo veće strukture >64k (mada ruku na srce, to stvarno nisam proverio, gde naći >64k smislenih podataka :). Aha, primetio si i brisanje :). @@ E sad, tu ostaje coveku da izabere sta mu treba, ali na @@ kraju ipak dolaziomo do toga da fajl moras da prepisujes @@ kako god okrenes, jedino sto to ne mora uvek da se radi. @@ A kad smo vec kod te ideje, bas cu da probam jednu drugu @@ varijantu u kojoj bi se novi stringovi dodavali u poseban @@ fajl, a ne na kraj postojeceg, kako bi se sacuvala @@ originalna struktura baze, a i mislim da bi radilo brze. @@ Videcemo ... Aha, sada i ti misliš da može još brže (zaražen si, možda neizlečivo). Naravno da fajl mora da se prepisuje, samo je razlika jednom ili 10, 100, 1000... puta. Varijanta sa dodavanjem stringova u poseban fajl, hm, opet bi moralo da se na kraju prepisuje, opet bi bila potrebna fread naredba, a očuvanje originalne strukture baze... Zašto? Vratićemo je u originalnu strukturu sa fclose. A i mislim da bi bilo sporije :) Videćemo. GROM PS. Zna li neko šta radi šta radi ovaj program? Ne, ali evo ga opet! fafil.zip
pascal.170 ppekovic, -> #169, grom
>>U pravu si da se troši jako malo vremena u toku rada :), a to da pri >>zatvaranju fajla raaaaadddiiiiii, raaaaadddddiiii nešto duže od >>prepisivanja celog fajla (jel to beše tvoja ideja), ali SAMO JEDNOM U TOKU >>RADA Pa cela diskusija je krenula od ideje da coveku treba umetanje JEDNOG stringa u fajl. I sve vreme se i pricalo u umetanju jednog stringa u fajl. Tako da ja i dalje stojim iza toga da je prepisivanje celog fajla najbrzi nacin. E sad, ovaj sistem koji si napravio je stvarno vredan postovanja, ali cim nadjem par sati rvemena realzovacu onu ideju sa pamcenjem inserta u odvojenom fajlu itd. Dakle, imao dve stvari. Prvo: za ibacivanje jednog sloga (ili vise svejedno) ali odjednom, najbrzi je sistem prepisivanja fajla, sto na neki nacin i sam radis na kraju fafil-a. E sad, smo dakle stalo kod drugog dela a to je na koji nacin u toku rada pamtiti stringove za umetanje da bi na kraju prepisivnje bilo najbrze. Paya
pascal.171 sslavko, -> #170, ppekovic
>> Pa cela diskusija je krenula od ideje da coveku treba >> umetanje JEDNOG stringa u fajl. I sve vreme se i pricalo >> u umetanju jednog stringa u fajl. Tako da ja i dalje >> stojim iza toga da je prepisivanje celog fajla najbrzi >> nacin. Ja se izvinjavam sto nisam ukljucen u diskusiju, ali stvarno nemam vremena. Coveku treba taj program *hitno* da se zavrsi pa sad sve slobodno vreme provodim sa tim. Inace, problem umetanja sam resio na najjednostavniji moguci nacin, a kako ti kazes i najbrzi. Kad god mi zatreba ubacivanje stringa ja lepo isprepisujem ceo fajl. Inace cela ova diskusija je izuzetno zanimljiva i moze da bude stvarno korisna ostalima. Cim nadjem malo vremena ukljucicu se. Pozdrav Slavko.
pascal.172 grom, -> #170, ppekovic
@@ Pa cela diskusija je krenula od ideje da coveku treba @@ umetanje JEDNOG stringa u fajl. I sve vreme se i pricalo @@ u umetanju jednog stringa u fajl. Hm, Payo, sećaš li se ove poruke (sledi). To umetanje stringa u fajl je *najčešće* korišćena rutina u programu. Ne verujem da se ta priča odnosi na to da se rutina poziva na N (N=mnogo) mesta u programu, a da se izvrši samo jedan put (mada, video sam ja i takve programe). Znači krenuli smo sa različitih početnih pozicija (ha, uhvatio sam te da ne čitaš poruke, modulatore). Ja se izmuči pišući one rutine, izbruka se zbog onih grešaka, a ti tako. @@>> Ako je @@>> to problem koji se cesto javlja u sslavkovom programu, @@>> verovatno se isplati napisati bolju rutinu. Uzgred @@>> sslavko, voleo bih da znam kojeg su reda velicine @@>> fajlovi, a kojeg je reda velicine rec st. @@ @@ Ta rutina je trenutno *najcesce* pozivana rutina u @@ programu. Zato i trazim neko bolje i brze resenje. Kod @@* ovog prepisivanja se trosi mnogo* vremena. Fajl ce ici @@* do jedno 300k a reci do 70 znakova. GROM PS. Jasno da bi bilo najbrže da je baza indeksirana. Ove nesrećne rutine koje sam napisao upravo indeksiraju na neki način tekstualnu bazu, i ako kojim slučajem nema potrebe za obradom baze nečim drugim (recimo tekst editorom), ona se i ne bi morala uvek zatvarati na dati način. Međutim, nekoliko sekundi za 1MB fajl i nije tako mnogo, a dobija se na fleksibilnosti.
pascal.173 lgut.,
Zdravo narode ! Posedujem PC AT i imam problema sa Turbo Pascal-om (ver. 5.5) i misem. Problem je u tome sto ne znam kako da prikazem graficki kurzor misa t.j kako da kazem programu da iscrtava graficki a ne tekstualni kurzor. Program koji koristim je sledeci : uses crt , dos , graph; var GrDriver : Integer; GrMode : Integer; Reg : Registers; begin GrDriver := DETECT; InitGraph (GrDriver , GrMode , ''); reg.ax := 1; { 1 oznacava broj funkcije } intr ($33,reg); { a 33 interap misa } repeat until keypressed; end. UNAPRED ZAHVALAN lgut. of Zrenjanin
pascal.174 sslavko, -> #173, lgut.
>> Problem je u tome sto ne znam kako da prikazem graficki >> kurzor misa t.j kako 09h Define Graphics Cursor ( funkcija 9 interapta $33 ) entry AH 09h BX column of cursor hot spot in bitmap (-16 to 16) CX row of cursor hot spot (-16 to 16) ES:DX pointer to bitmap 16 words screen mask 16 words cursor mask return unknown note Each word defines the sixteen pixels of a row, low bit rightmost
pascal.175 predragd,
Zdravo Nedavno sam dobio sa TRICKLE-a sours ZMODEM protokola na TP. Medjutim kao sto cete videti u primeru, traze se neki UNIT-i koji nisam dobio. Cini mi se da ih na TRICKLE-u nema. Moze li mi neko reci gde se ti UNIT-i mogu nabaviti. UNIT TpzAsync; (* Modem interface routines for Turbo Pascal Zmodem *) (* (c)1988 by J.R.Louvau *) (* You will need a copy of PIBASYN45 to compile *) (* this unit. *) INTERFACE USES Dos, PibAsync, PibTimer, GlobType; Pozdrav, Pedja.
pascal.176 pbojan,
Ima li neko proceduru (ili funkciju) za trazenje INVERZNE MATRICE? HITNO!! pBOJAN
pascal.177 nboskovic, -> #176, pbojan
*> Ima li neko proceduru (ili funkciju) za trazenje INVERZNE *> MATRICE? Mislim da ne bi bilo frke da se napiše program. Ako ne znaš Inverzna Matrica se računa na sledeći način: ┌ ┐ │A11 A12 ... A1s│ │A21 A22 ... A2s│ │. │ A=│. │ r=s │. │ │. │ │Ar1 Ar2 ... Ars│ └ ┘ E ovo je data matrica za koju tražiš inverznu. Izračunava se na sledeći način: A* A^-1= ─── detA gde je A* adjugovana matrica tj. matrica čiji su članovi promenili mesta u odnosu na osnovnu matricu A po glavnoj dijagonali. Glavna dijagonala je od člana A11 do Ars.Nadam se da ti je ovo jasno. Izvinjavam se ako si ovo znao a trebao ti je samo gotov program ali ne bi trebalo da je frka da se napiše program. (c) klap nikola
pascal.178 prvul, -> #177, nboskovic
>> gde je A* adjugovana matrica tj. matrica čiji su članovi promenili >> mesta u odnosu na osnovnu matricu A po glavnoj dijagonali. Glavna Nije. Ako sam dobro naučio ovu svoju algebru ( a valjda jesam) onda si ti upravo opisao transponovanje, a ne adjungovanje matrice. Adjugovana matrica se dobija kada se svaki element matice zameni svojim kofaktorom (a kofaktor nekog elementa a[i,j] je determinanta submatrice koja se dobije kada se iz matrice izbaci i-ta vrsta i j-ta kolona), pa se dobijena matrica transponuje. Prvul.
pascal.179 spantic, -> #176, pbojan
> Ima li neko proceduru (ili funkciju) za trazenje INVERZNE > MATRICE? Je li može na FORTRANU 77? Mrzi me da to ponovo pišem na TP, ali ako je hitno...
pascal.180 pbojan, -> #179, spantic
>> Je li moze na FORTRANU 77? Mrzi me da to ponovo pisem na TP, ali ako je >> hitno... Moze i na francuskom, sto se mene tice :))). Dakle, 77, ne pravim pitanje. pBOJAN ps. Thanks.
pascal.181 nboskovic, -> #178, prvul
*> Nije. Ako sam dobro naučio ovu svoju algebru ( a valjda *> jesam) onda si ti upravo opisao transponovanje, a ne *> adjungovanje matrice. Adjugovana Dobro. Onda matrica A* izgleda ovako: ┌ ┐ │A11 A21 ... An1│ │A12 A22 ... An2│ │. │ A*=│. │ │. │ │A1n A2n ... Ann│ └ ┘ Nadam se da je sad jasnije šta i kako. Inače, u knjizi iz matematike 1 piše sledeće: Ako je matrica A regularna, vodeći računa o tome kako se množe determinante, njenu inverznu matricu možemo odrediti na sledeći način. Neka su Aik, i, k=1,2,...,n, kofaktori elemenata matrice A. Adjugovana matrica, u oznaci A*, matrice A je matrica (pa je ovde napisana gornja matrica). Ovo je izvod iz knjige Determinante, matrice, vektori, analitička geometrija od Zlatka P. Mamuzića iz koje sam spremao matiš 1 za mašinac odavno. Nadam se da negušimo auditorijum a ako gušimo pardoniram se. (c) klap nikola
pascal.182 gww., -> #178, prvul
Jes. Mada mi se oduvek najviše svidjao sledeći metod: ┌ │ ┐ │A11 A12 ... A1s│ 1 0 0 ... 0 │ │A21 A22 ... A2s│ 0 1 0 ... 0 │ │. │ 0 0 1 │ │. │. │ │. │. │ │. │. │ │Ar1 Ar2 ... Ars│ 0 0 0 ... 1 │ └ │ ┘ │ Jedinična matrica e pa lepo, onak se potrudiš da leva matrica posane jedinična radeći iste operacije sa jednim ili više redova u cugu, a kad sa leve strane dobiješ jediničnu ona sa desne strane je inverzna. Pozdrav GWW.
pascal.183 pbojan, -> #180, pbojan
I, bre, ljudi, dok mi vi objasniste ono sto sam 'polozio' pre tri godine, ja sam seo i napravio stvar ( mada sa kasnjenjem od 2 dana ). U svakom slucaju, hvala svima na trudu i zalaganju. pBOJAN
pascal.184 vojkan,
Jel zna neko da li ima neki grafički program koji pretvara sliku u sors kod TurboPaskala. Pozdrav VOjkan
pascal.185 mensi,
Da li u *standardnom* Paskalu postoji funkcija za generisanje slucajnih brojeva? Treba mi brz odgovor (koristice mi i ako neko zna takvu funkciju u mekintosevom Paskalu). Hvala unapred mensi
pascal.186 ivans, -> #185, mensi
* Da li u *standardnom* Paskalu postoji funkcija za * generisanje slucajnih brojeva? Treba mi brz odgovor Koliko mi je poznato, ne. U knjizi "Programski jezik Pascal" (Vojislav Stojkovic, Dusan Tosic, Ivan Stojmenovic) se ne pominju slucajni brojevi, a sama knjiga je manje-vise opis standardnog Paskala. Pozdrav, Ivans.
pascal.187 mjova, -> #184, vojkan
> Jel zna neko da li ima neki grafički program > koji pretvara sliku u sors kod TurboPaskala. e, ne znam paskal, ali me zanima kako si mislio da se slika pretvori u source? nije mi jasno. možda te zanima kako je odštampati na ekran? ima dosta programa koji skidaju sliku u neki od formata (gif, pcx..), ali source? SY
pascal.188 macak, -> #185, mensi
>>Funkcija za generisanje slucajnih brojeva... U Turbo Pascalu 5.0 (taj fosil ja imam :)) ) postoji funkcija RANDOM.Ova funkcija daje slucajan broj.Broj je iz opsega word ili 65535 (jel bese toliko? ).Ako je zadata kao RANDOM(opseg),onda daje slucajan broj iz intervala OPSEG. Pre ove funkcije se mora inicijalizovati generator slucajnih brojeva sa RANDOMIZE. E sad, za Pascal na meku je valjda isto (a mozda i nije? :)) ). Ovde su 2 trivijalna primera koriscenja ovih funkcija i dobijanja slucajnih brojeva : program slucajan_broj; var opseg:word; broj :word; begin write('Upisi opseg :');readln(opseg); randomize; broj:=random(opseg); writeln('Slucajan broj je:',broj); end. ili: ~~~~~~ program slucajan_broj_1; uses dos,crt; var broj :word; koliko,q :longint; begin clrscr; writeln('Gneracija slucajnih brojeva od 1 do 100 - by macak'); write('Upisite koliko slucajnih brojeva zelite :');readln(koliko); write('Slucajni brojevi su:'); for q:=1 to koliko do begin randomize; broj:=random(100); write(broj,','); delay(100); end; end. Nadam se da ce ti ovo nesto koristiti. :) P.S.Btw,a za cega sluzi F1 (HELP) ???? :))))))
pascal.189 bojanp, -> #188, macak
>>> Funkcija za generisanje slucajnih brojeva... > U Turbo Pascalu 5.0 (taj fosil ja imam :)) ) postoji funkcija > RANDOM.Ova funkcija daje slucajan broj.Broj je iz opsega word ili > 65535 (jel bese toliko? ).Ako je zadata kao RANDOM(opseg),onda > daje slucajan broj iz intervala OPSEG. Vidim ja da je ovde uputstvo mislena imenica :) Funkcija Random --------------- Funkcija: Vraća pseudo-slučajan broj Deklaracija: Random [ (Range : word) ] Tip rezultata: real ili word u zavisnosti od parametra Napomena: Ako Range nije zadata, rezultat je tipa real a broj je u opsegu 0 <= X < 1. Ako je Range zadat, izraz mora biti tipa integer, a rezultat je pseudo-slučajni broj u opsegu 0 <= X < Range. Ako je Range jednak 0, biće vraćena vrdnost 0. Inače u standardnom Pascal-u ne postoji funkcija za genersianje pseudo-slučajnih brojeva! Pozdrav, Bojan
pascal.190 vojkan, -> #187, mjova
-> e, ne znam paskal, ali me zanima kako si mislio da se -> slika pretvori u source? nije mi jasno. možda te zanima -> kako je odštampati na ekran? Pa program za crtanje koji recimo crta po pascalovim procedurama i celu sliku može da pretvori u jednu datoteku koja bi sadržala procedure Graph.tpu (unit) tako da u svako doba mogu da te procedure kao blok ubacim u *.pas datoteku. Pitam ovo jer sam mislio da napravim nešto tako :) Olakšalo rad sa grafikom 1000x moraš priznati :) VOjkan P.s. COPYRIGHT BY ^^^^^^
pascal.191 vojkan, -> #185, mensi
U Turbo Pascalu posotoji funkcija RANDOM ([Number:Word]); (naravno pre toga inicijalizuješ generator brojeva) koja daje proizvoljan broj. Verovatno i kod tebe postoji nešto slično ako ne probaj da je napraviš (recimo uzmi sat kao generator brojeva).
pascal.192 vojkan, -> #188, macak
-> P.S.Btw,a za cega sluzi F1 (HELP) ???? :)))))) Pa nije svaki paskal TURBO :))))
pascal.193 mensi, -> #186, ivans
>> Koliko mi je poznato, ne. U knjizi "Programski jezik >> Pascal" (Vojislav Stojkovic, Dusan Tosic, Ivan >> Stojmenovic) se ne pominju slucajni brojevi, a sama >> knjiga je manje-vise opis standardnog Paskala. Ocekivao sam ovakav odgovor (ipak i ja citam uputstva), ali se tebi i svim ostalima koji su mi odgovorili zahvaljujem na trudu. Pozdrav, mensi
pascal.194 mensi, -> #188, macak
>> E sad, za Pascal na meku je valjda isto (a mozda i nije? >> :)) ). Za paskal na meku stvarno vazi nesto slicno (to sam nasao u medjuvremenu jer sam nabavio Mac Pascal Reference Manual). Hvala za primere (iako ih verovatno necu iskoristiti - da te ne lazem). >> P.S.Btw,a za cega sluzi F1 (HELP) ???? :)))))) Nisam siguran da razumem smisao ovog pitanja, ali ako se odnosi na help funkciju koja je obezbedjena u nekom od (Turbo) paskala, moram ti reci da ja nemam takvu olaksicu na mekintosu (zamisli, imam samo *taj* paskal), mada se ja ne zalim na njegov graficki interfejs. mensi
pascal.195 mensi, -> #189, bojanp
>> Vidim ja da je ovde uputstvo mislena imenica :) Da bi procitao uputstvo, prvo ga treba imati (ili bar naci nekog ko ga ima). U svakom slucaju, hvala za korisne detalje u vezi ove funkcije (ako budem radio u Turbo paskalu bice barem jedna funkcija zbog koje necu morati da konsultujem UPUTSTVO). mensi
pascal.196 ivans, -> #189, bojanp
* Inace u standardnom Pascal-u ne postoji funkcija za * genersianje pseudo-slucajnih brojeva! Pa, covek je to i trazio! Zao mi sto nema... :( Pozdrav, Ivans.
pascal.197 mensi, -> #191, vojkan
>> U Turbo Pascalu posotoji funkcija RANDOM ([Number:Word]); >> (naravno pre toga inicijalizujes generator brojeva) >> koja daje proizvoljan broj. Verovatno i kod tebe postoji >> nesto slicno ako ne probaj da je napravis (recimo uzmi >> sat kao generator brojeva). Ne mogu da ostanem ravnodusan na toliki trud koji je ulozen da se odgovori na moje pitanje pa cu i ja reci kako se generise slucajni broj u MacPascalu (to sam saznao kad mi je doslo pod ruku UPUTSTVO - naravoucenije neka izvuce svako za sebe): ----- var k: integer; ---- k:=random; ---- ... Ovo da se funkcija zove random verovatno nikad ne bi pogodili (ovo je teska ironija na moj racun, jer ja ipak nisam pogodio), ali cu reci da se primenom ove funkcije dobija ceo broj iz opsega -32768 do 32767. Hvala jos jednom svima, mensi
pascal.198 macak, -> #189, bojanp
>>Vidim ja da je ovde uputstvo mislena imenica!:) Kod mene u uputstvu pise: function Random [ ( range : word ) ] : (Same type as parameter) Return a random number. See also Randomize -------- (neka posle neko kaze da je uputstvo mislena imenica :))))) ) P.S.Pa daa...mogli smo da pretpostavimo! To je nesto kao u obicnom basic-u ...naravoucenije:ko ne cita uputstvo,taj voli sladoled od cokolade :)))))
pascal.199 jtoma, -> #176, pbojan
Uz poruku su procedure koje ja koristim za invertovanje matrice. Kompletno objasnjenje je dato uz svaku proceduru. Originalne procedure su bile pisane za FORTRAN, pa sam ih ja preveo na NOS/VE Pascal (masina je CDC CY 180, drz'te se), medjutim rade vrlo dobro i sa QUICK (odnosno TURBO) Pascal-om (provereno). Pozdrav, Janos. PS. Ako imas bilo kakav problem -> MAIL. linal.zip
pascal.200 radunovic, -> #184, vojkan
?! Jel zna neko da li ima neki graficki program ?! koji pretvara sliku u sors kod TurboPaskala. Koju sliku, kog tipa? Ja mislim da imas negde u ovoj temi procedure za prikazivanje gifova. Ali za prebacivanje u sors nema. Sta ce ti to? To ce ti zauzeti mnogo vise prostora nego ovako.
pascal.201 ndragan, -> #182, gww.
/│ A11 A12 ... A1s│ 1 0 0 ... 0 │ / ... / Jedinična matrica Ovo mi je bio omiljeni sport kad sam polagao linearnu algebru i numelu (numeričke metode linearne algebre). Stara dobra vremena... Bue_ NDragan
pascal.202 bearboy, -> #187, mjova
-+={ ima dosta programa koji skidaju sliku u neki od formata -+={ (gif, pcx..), ali source? Ako je mislio na to, ja sam napravio jedan... Jes' da je spor k'o bog, al' ima source i radi... PS. Ako vam treba, recite, jer' cu staviti kopirajt, itd.. :)
pascal.203 ognjan, -> #202, bearboy
>> Ako je mislio na to, ja sam napravio jedan... Jes' da je spor k'o bog, al' >> ima source i radi... Jel' može da skine sa VGA karte sliku u GEM (IMG) formatu ??? Ako može, šalji odma' ! Pozdrav, Ogy.