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.1 ppekovic,
O ovom popularnom jeziku je rečeno mnogo, ali ne i baš sve, zato, PASCAL programeri izvolite, ovo je vaša tema ... Paya
pascal.2 vpetrovic,
Jedan moj drug je pisao program u tpascalu koji prikazuje sat na vrhu ekrana. To radi izvesno vreme pa se zaledi. Ako neko ne zna šta da radi sa svojim životom, evo mu prave prilike. Neka proba da otkrije šta ne valja. mistery.pas
pascal.3 ilazarevic,
Ljudovi, jel bi mogo neko da mi kaže sadržaj modula koji se nalaze u TURBO.TPL (dos, system, crt, graph, printer ...)?? PLEASE! Pozdrav IL
pascal.4 ivans,
>> Ljudovi, jel bi mogo neko da mi kaze sadrzaj modula koji se nalaze u >> TURBO.TPL (dos, system, crt, graph, printer ...)? Pa, za to imas utility TPUMOVER, koji je kod verzija 5.5 i mladjih crtao meni sa spiskom svih unita (nisam bas siguran da l' to bas tako bese) i njihovom velicinom (omoguceno je i dodavanje ili oduzimanje novih unita). Kod verzije 6.0 nema menija nego se sve radi iz komandne linije. Da bi dobio bas to sto trazis otkucaj nesto poput: TPUMOVER d:\tp\turbo.tpl i dobices spisak svih unita u turbo.tpl-u, njihovu velicinu, kao i spisak drugih unita koje koriste uniti iz turbo.tpl. I ovde je moguce dodavanje i oduzimanje unita, samo sto se radi iz komandne linije - otkucaj samo TPUMOVER pa ces videti koje sve opcije ima. Pozdrav, ivans.
pascal.5 ilazarevic,
Thanx a lot! Pozdrav, Ivan
pascal.6 ilazarevic,
Probao sam i sve je OK, ali mene muči drugi problem: - koje se procedure nalaze u svakom od unita, zato što ni u jednoj knjizi nisam uspeo da nađem spisak svih procedura i/ili funkcija?
pascal.7 dmiric,
> Probao sam i sve je OK, ali mene muči drugi problem: > - koje se procedure nalaze u svakom od unita, zato što ni u jednoj > knjizi nisam uspeo da nađem spisak svih procedura i/ili funkcija? Pa verovatno nisi probao prave knjige ;) Za prvu pomoć može da ti posluži TP help (u njemu možeš dobiti spisak interface procedura, varijabli i konstanti za svaki unit) a uz pascal se dobija i par *.doc fajlova u kojima je dat interface section glavnih unit-a. Evo spiska tih doc fajlova: CRT DOC 2560 DOS DOC 4411 GRAPH DOC 11647 GRAPH3 DOC 1988 HELPME! DOC 18706 OVERLAY DOC 1125 PRINTER DOC 541 SYSTEM DOC 2953 THELP DOC 12704 TURBO3 DOC 894 WINDOW DOC 1150 WIN DOC 1428 DRIVERS DOC 455 FONTS DOC 435 Ako ti treba nešto konkretno ask. dragan.
pascal.8 ppekovic,
>>Ako ti treba nešto konkretno ask. O.K. al nemojte u conf. please! Paya
pascal.9 ilazarevic,
Thanx! Pogledaću te doc-ove.
pascal.10 ilazarevic,
█ O.K. al nemojte u conf. please! Why not?
pascal.11 ppekovic,
>> Why not? Iz mnoooooooogo razloga. Prvi i osnovni je što je to deo komercijalnog software-a i nije dozvoljeno takvo šta ostavljati u conf. A i da nije komercijalni software, nije dozvoljeno izdvajati deo paketa/arhive i tako ga distribuirati dalje. Paya
pascal.12 ilazarevic,
Ma jok da mi on ostavi fajlove u conf! Ja sam shvatio da je zabranjen razgovor na tu temu :) Sad mi je lakše, niko nije ni planirao upload toga u conf. Laza
pascal.13 djelovic,
> O.K. al nemojte u conf. please! Ne razumem ovaj stav SEZAM-a!? OK je da se piratuju stvari, OK je da se o tome i javno prica, sve dok ne piratujes preko konf. vec preko mail-a. Pa onda pustite ljude da to stave u konf., niko vas nece za usi vuci. Milsim, neka niko ne shalje VENTURU u 30 nastavaka, ali zasto se ljutiti ako neko posalje deo arhive?
pascal.14 ilazarevic,
Ma ljudi, ja nisam ni heto da šaljem bilo šta, samo sam pitao za help gde bih mogao da nađem sadržaj unita. Nisam ni tražio da mi se to pošalje u conf. Sve je ovo misunderstanding!!
pascal.15 macak,
>>To radi izvesno vreme pa se zaledi. Sta se zaledi? Sat? Kod mene radi savrseno (ako je samo sat),ali zato je sve ostalo mrtvo dok ne pritisnem enter ("strin:=''"). TXE JA!
pascal.16 jtoma,
Ne znam sta je za tebe 'izvesno vreme', ali taj program je kod mene (uz sitne, ali ne i sustinske prepravke) radio citav sat pre nego sto sam ga prekinuo. Inace, nije bas dobra ideja da se ne da ceo izvorni kod (umesto UNIT-a VideoU je trebalo dati proceduru WriteStr, koju sam ovako morao da 'izmisljam'); mozda je problem bas u toj biblioteci. Uslovi testiranja: -racunar Victor V286A, (AT sa 1 MB memorije na 12 MHz) -Victor MS-DOS 3.30c -od rezidentnih programa sam imao driver za tastaturu (self made), editor komandne linije (self made), PCTOOLS Desktop, a bio je aktivan i NORTON Commander. -program je preveden koriscenjem dva prevodioca TURBO Pascal V5.5 QUICK Pascal V1.0 i radi sa oba na isti nacin. Nadam se da sam bio od pomoci, pogotovu sto vracam kod sa izmenama. Svaki izmenjeni/dodati red je na kraju oznacen komentarom (* TJ *), a dodat je i program WriteStr, koji je u originalu koriscen iz UNIT-a. Pozdrav, Janos. clock.zip
pascal.17 alazic,
Hi, Interesu je me da li neko ima neki zaista dobar skup procedura za rad sa COM portom uz svu neophodnu podrsku za modem
pascal.18 dejanr,
>> Interesu je me da li neko ima neki zaista dobar skup procedura za rad sa >> COM portom uz svu neophodnu podrsku za modem Za početak pogledaj RSOFT\r057com.zip.
pascal.19 ppekovic,
>> Interesu je me da li neko ima neki zaista dobar skup procedura za rad sa >> COM portom uz svu neophodnu podrsku za modem U COM direktorijumu imaš MX5 MNP drajver. U okviru tog paketa imaš jednostavan program za modemsku komunikaciju sa source-om u assembleru. Paya
pascal.20 nesavic,
Pozdrav, imam jako GLUP bar se nadam problevo u čemu je problem... Pravio sam program i napravio koji je radio sa WIN.ASM iz TP 5.5 i to je sve radilo, e sad ti se ja prebacim u TP 6.00 i šta se desi, ništa strašno samo program sada NE RADI i očigledno je da je greška baš u tom WIN.ASM delu,ali ja ne shvatam šta bi to toliko moglo da se izmeni pa da sada program ne radi! Inače program se blokira kod procedure OpenWindow(); I ne morate da se mislite da li sam rekompajlirao sve UNITe, jesam... i opet ništa... Ako mi neko pomogne neka mu je sa srećom! Pozdrav, NeŠa!
pascal.21 radunovic,
Zanima me da li je moguce iz turbo pascala napraviti obj fajl koji bi kasnije mogli linkovati sa npr clipperom Boki
pascal.22 dejanr,
>> Zanima me da li je moguce iz turbo pascala napraviti obj fajl koji bi >> kasnije mogli linkovati sa npr clipperom Mislim (tj. siguran sam) da nije. Turbo Pascal i pravljenje OBJ fajlova ne ide zajedno, to mu je velika mana. Možeš da napraviš exe pa da ga iz clipper-a zoveš sa RUN.
pascal.23 ppekovic,
>>Mislim (tj. siguran sam) da nije. Turbo Pascal i pravljenje OBJ fajlova >>ne ide zajedno, to mu je velika mana. A kako stoji stvar sa MS Pascal-om i OBJ-ima? Paya
pascal.24 miro,
Koliko ja znam, tu nema problema. Samo moras dobro da vodis racuna o pozivnim konvencijama (calling conventions). Ako vezes pascal OBJ fajlove i C, pristup slanju parametara je skroz razlicit. O /█> Ů Ţ ▀ ▀
pascal.25 dejanr,
>> > A kako stoji stvar sa MS Pascal-om i OBJ-ima? >> Koliko ja znam, tu nema problema. Za MS Pascal stvarno moguće, ali to je antička stvar. Međutim, Quick Pascal (koji je novi) takođe (koliko znam, nisam baš siguran) nema OBJ fajlove nego neki svoj format.
pascal.26 kvelkovski,
>> U COM direktorijumu ima{ MX5 MNP drajver. U okviru tog paketa ima{ >> jednostavan program za modemsku komunikaciju sa source-om u >> assembleru. Da li bi taj drajver radio ako ga zakacim na Procomm, ili radi samo sa TeleMate ? Kupe
pascal.27 zkehler,
Ŕ >> Mislim (tj. siguran sam) da nije. Turbo Pascal i pravljenje OBJ Ŕ >> fajlova ne ide zajedno, to mu je velika mana. Ŕ Ŕ A kako stoji stvar sa MS Pascal-om i OBJ-ima? Eto ga ljubitelj Microsofta ;) ZK
pascal.28 miro,
■■ Da li bi taj drajver radio ako ga zakacim na Procomm, ili radi samo ■■ sa TeleMate ? Koliko sam shvatio, ne mozes ga zakaciti na nesto sto ne zna za njega. MX5 implementira skup funkcija za INT 14, i ukoliko kom.prog. zna za to, sve je OK. Mislim da tekuca verzija Procomm-a nema pojma da takvo nesto postoji. O /█> Ů Ţ ▀ ▀
pascal.29 ppekovic,
>> Koliko ja znam, tu nema problema. Samo moras dobro da vodis racuna >> o pozivnim konvencijama (calling conventions). Ako vezes pascal OBJ >> fajlove i C, pristup slanju parametara je skroz razlicit. Pa to nije problem, u C-u imaš PASCAL definiciju koja to rešava. Paya
pascal.30 ppekovic,
>> Eto ga ljubitelj Microsofta ;) O:) Paya
pascal.31 vpetrovic,
Hvala u ime moga druga. Vlada
pascal.32 nesic,
Imam gomilu UNIT-a za asinhronu komunikaciju. Ovaj mi se nekako, čini, najkompletniji. Ali ni u jednom UNIT-u ne postoji funkcija kojom mogu da pitam da li je COM port spreman za komunikaciju. Evo o čemu se radi. Povežem dva računara, LapLink radi, DeskLink radi, ProComm radi, MTE radi, a UNIT zeza. Podesim brzinu na 115200, jedan računar šalje, drugi prima, ali ne primi sve što je prvi računar poslao. Kada na prvom računaru stavim da, dok šalje, štampa ono što šalje, onda radi. (Mislim da je to zbog pauze, to jest, vremena koje potroši na ispisivanje.) Kada koristim UNIT da bi se igrao MODEM-om. Napravim mali program koji šalje ono što je pritisnuto na tastaturi, a štampa ono što je stiglo sa COM porta i tako radi. E sad. Kada treba da pošaljem niz karaktera (na primer inicijalizacija modema) onda brljavi. To, za sada, glupo rešavam pauzom pre svakog poslatog znaka. Jedan još gori slučaj. Kada kucam `plus plus plus' modem lepo pređe iz DATA MODE u COMMAND MODE. A kada to šaljem kao string onda ništa. Jednom mi je čak Sezam rekao da `plus plus plus ATH0' nije korisnik sistema. Verovatno bi mi to uvek rekao. Sve mi liči da bi jedna funkcija u smislu: function comready(comport:byte):boolean; rešila ove probleme. Da možda nema tako nešto u ovom UNIT-u, a ja sam ćorav pa ne vidim. Pozdrav, Nešić. async.arj
pascal.33 vasiljevic,
Imam vga karticu sa ET3000 cipom. Kako da u TP 6.0 ili bilo kojem drugom postignem ibm8514 rezoluciju. Nesto koci sa onim ibm8514.bgi drajverom.Probao sam sa programom bgidemo. POMOC!! Marko (the erh)
pascal.34 magician,
­=> Imam vga karticu sa ET3000 cipom. Pogledaj na instalacionoj disketi da nemas mozda VGA368.DRV... To je za Windows. Mnogoooooo mi treba !!!!!!!!!!! MAGICIAN
pascal.35 jtoma,
I drugi put. Nekako mi se cini da je problem bio u delu programa kojeg sam ja zamenio sa ... REPEAT UNTIL KeyPressed; dummy:=ReadKey; ... sto izgleda prilicno banalno, ali su ti "magicni" problemi uglavnom ovakvi. Janos.
pascal.36 vasiljevic,
Ja pito ono u vezi hi-resolution u pascalu , a niko ne odgovara. Jos jednom: Kako da postignem u pascalu rezoluciju 800x600 u 256 boja i 1024x768 u 16 boja. Nesto mi zapinje onaj IBM8514 drajver ;<< Imam inace Tseng ET3000 cip. Marko (the help-needer)
pascal.37 ppekovic,
>>Kako da postignem u pascalu rezoluciju 800x600 u 256 boja i 1024x768 u 16 boja. >>Nesto mi zapinje onaj IBM8514 drajver ;<< Imam inace Tseng ET3000 cip. Probaj sa: R:ĐIBMPCĐDRIVERSĐ*.* ---------------------- ... svgabgi3 zip 75008 SuperVga BGI driver Paya
pascal.38 nesavic,
Pozdrav, Ovo je pitanje za modemase koji se bave pisanjem programa za iste! E pa lepo, kako naterati modem da odgovori na "dolazeci poziv" - čitaj RING. Pokušao sam sa ATS0=0 pa kad zvoni da mu posaljem "ATA" ali nešto ne ide... Unapred zahvalan, NeŠa!
pascal.39 alexa,
> E pa lepo, kako naterati modem da odgovori na "dolazeci poziv" > - čitaj RING. Pokušao sam sa ATS0=0 pa kad zvoni da mu posaljem > "ATA" ali nešto ne ide... A zašto ne samo 'ATS0=1' ? Onda će sam da odgovori. I šta će ova poruka u temi 'pascal'?
pascal.40 ppekovic,
>>I šta će ova poruka u temi 'pascal'? Pa verovatno čovek piše program za komunikaciju na pascalu, uostalom zar i telemate nije pisan u TP-u. Paya
pascal.41 zzivotic,
> Ovo je pitanje za modemase koji se bave pisanjem programa za iste! > E pa lepo, kako naterati modem da odgovori na "dolazeci poziv" - čitaj > RING. Pokušao sam sa ATS0=0 pa kad zvoni da mu posaljem "ATA" ali nešto ne > ide... Kako si detektovao kada zvoni? Naime, postoje dva načina, jedan je ring indikator (posebna linija iz modema čitljiva na portu) a drugi je da čekaš odgovor modema, reč 'RING'. Ako je prvi metod u pitanju, problema ima puno i teško ih je generalizovati jer se razlikuju od modema od modema. Naime, neki modemi ne dozvoljavaju da ima pošalješ ATA odmah nakon što detektuješ ring - potrebno je da ceo ring prođe pa tek onda će ata komanda biti prihvaćena. Neki se pak zbune ako im ti pošalješ ata baš u onom trenutku dok oni šalju reč RING - kao da tada nisu spremni za prijem. Ako pak čekaš reč RING pa onda šalješ ATA ima nešto manje problema jer su ovi 'tajminzi' ;) obični usaglašeni. Dakle, nema generalnog odogovora zašto ne ide. Daj malo detalja: koji metod koristiš, kako to 'ne ide' odnosno šta se dešava, koji je modem itd.. Pozdrav, zz
pascal.42 nesavic,
Pozdrav, e pa ovako, prvo pišem u TPu, a sada zzu, radim prvom metodom, modem je 2400boda ekstrni, ističe mi vreme javiću se kasnije!
pascal.43 predragd,
Zdravo Ova poruka je odgovor na pitanje postavljeno u staroj konferenciji Turbo.Pascal 9.223. U kjizi pod nazivom "Object orijented programming for TP 5.5" (naslov je napisan napamet) postoji skup veoma dobrih podprograma za rad sa misem. U slucaju da ne mozes da dodjes do te kjige, a ako se moderator slozi rado cu preneti taj skup podprograma, na SEZAM. Pedja.
pascal.44 ppekovic,
>> U kjizi pod nazivom "Object orijented programming for TP >> 5.5" (naslov je napisan napamet) postoji skup veoma dobrih >> podprograma za rad sa misem. U slucaju da ne mozes da >> dodjes do te kjige, a ako se moderator slozi rado cu preneti >> taj skup podprograma, na SEZAM. Ih, što se nebi složio, ako tebe ne mrzi da prekucavaš te programe, samo navali. Paya
pascal.45 radunovic,
> R:DIBMPCDDRIVERSD*.* > ---------------------- > ... > svgabgi3 zip 75008 SuperVga BGI driver Ja sam odnegde pokupio svgabgi drajver i pokusao sam da radim sa njim ali posto je uspesno instalirao mod, nije hteo da crta. Video sam da su funkcije getmaxx, getmaxy i getmaxcolor dale prave vrednosti, ali na ekranu ni jedne crtice. Probao sam i uspeo da crtam sa INT10 u tom modu. Sta je sa BGI funkcijama? Moze li se naci demo program ? Boki
pascal.46 nesavic,
Pozdrav, znaci kao sto sam rekao potrebno je da MODEM digne slusalicu i to preko onog prvog nacina kada se pojavi RING indikator na portu.... Ja sam pokusavao da usaglasim vreme sa delay() ali ne ide pa to ti je... I jos jedna stvarčica kako posle uspostavljanja carriera "pricati" sa drugim modemom tj. ima li kakve veze i softhandshaking, rts itd! Hvala, NeŠa!
pascal.47 ppekovic,
>>Sta je sa BGI >>funkcijama? Moze li se naci demo program ? Mislim da u pomenutoj bgi arhivi imaš i demo. Paya
pascal.48 zzivotic,
> znaci kao sto sam rekao potrebno je da MODEM digne slusalicu i to preko > onog prvog nacina kada se pojavi RING indikator na portu.... > Ja sam pokusavao da usaglasim vreme sa delay() ali ne ide pa to ti je... Nema ni šanse da ide kad ring nikada nije istog trajanja. Ono što moraš da uradiš je nešto poput ovoga: while (!RING) ; /* cekanje na zvono */ while (RING) ; /* cekanje da prodje */ delay(N) modem_send("ATA\r"); Pauza N je različita od modema od modema ali uglavno negde između 0.5 i 2 sec i vrednost nije tako kritična. Zapravo, treba sačekati taman toliko da modem sastavi i pošalje računaru string "RING" i tek tada će "ATA" sigurno imati dejstvo. Opet, pauza mora biti dovoljno kratka da te ne sačeka novi ring što kod naših centrala zna da se desi (dva uzastopna sa skoro nikakvom pauzom). > I jos jedna stvarčica kako posle uspostavljanja carriera "pricati" sa > drugim modemom tj. ima li kakve veze i softhandshaking, rts itd! I da i ne - zavisi o čemu se radi. Ako koristiš neki fossil drajver onda te uglavnom ne zanima handshaking između modema i računara jer o tome brine drajver (ono je inače osetljivo pitanje ako radiš sa MNP modemom i ne može se ignorisati kao što se najčešće može ako imaš 'čist' 1200 ili 2400 modem). Generalno, comm rutine najjnižeg nivoa o tome treba da vode računa. Ako sam pišeš ovaj deo, onda je priča nešto duža - reci ako te to zanima. Ako pod pojmom softhandshaking misliš na usklađivanje dva udaljena modema onda sve zavisi o čemu se u toj komunikaciji radi i da li je handshaking potreban. Najčešći način je XON/XOFF koji se najprostije može opisati kao 'ako ti nekom nešto šalješ a stigne ti XOFF, prekini dok ne primiš XON'. Implemetacija ovoga nikada nije baš tako ogoljena jer očigledno postoji mogućnost da te 'đubre' na vezi trajno ućutka (stigne ti XOFF a nikada XON :) pa se na to obično dodaje i malo merenja vremena posle koga ipak nastavljaš predaju itd. Pozdrav, zz
pascal.49 ddjj,
==> Kako da postignem u pascalu rezoluciju 800x600 u 256 ==> boja i 1024x768 u 16 boja. Nesto mi zapinje onaj IBM8514 ==> drajver ;<< Imam inace Tseng ET3000 cip. Koliko ja znam ET3000 (koji usput i ja imam) i ne poddržava u potpunosti IBM8514 (kao recimo ET4000). Najbolje da downloaduješ svgabgi3.zip sa SEZAMa. U njemu su ti svi potrebni drajveri i primeri u pascalu i TC-u (radi provereno). Dejan P.S. Pogledaj molim te da nemaš slučajno VGA368.DRV. To je driver za Windows (800x600 256 colors). Mnogo mi trba.
pascal.50 darone,
>> P.S. Pogledaj molim te da nemas slucajno >> VGA368.DRV. To je driver za Windows (800x600 256 >> colors). Mnogo mi trba. Da li uopste postoje drajveri za vindouze 800x600 256 boja? KOliko vidim, na sezamu su mloooogo trazeni. Karta nije vazna. Jel to ovaj program ima neku frku sa tim modom ili sta??? darone
pascal.51 magician,
­=> P.S. Pogledaj molim te da nemas slucajno VGA368.DRV. To je driver ­=> za Windows (800x600 256 colors). Mnogo mi trba. I meeeeeeeeenniiiiiiiiii !!!! Nema ga nigde u pm. !!! ;<<<< Ako nesto saznas javi mi ! MAGICIAN
pascal.52 darone,
>> P.S. Pogledaj molim te da nemas slucajno >> VGA368.DRV. To je driver za Windows (800x600 256 >> colors). Mnogo mi trba. Da li uopste postoje drajveri za vindouze 800x600 256 boja? KOliko vidim, na sezamu su mloooogo trazeni. Karta nije vazna. Jel to ovaj program ima neku frku sa tim modom ili sta??? darone
pascal.53 vasiljevic,
Hvala svima pa i tebi za pomoc a sto se tice drajvera nemam ga ;<<<<< Slao bih ali ........ Marko (thje kfjfj)
pascal.54 magician,
­=> Jel to ovaj program ima ­=> neku frku sa tim modom ili sta??? Izgleda da je to u pitanju :((( Ne znam zasto ga, inace, ne ubacuju u drivere koji se dobijaju uz karticu! MAG
pascal.55 nesavic,
Pozdrav, JAKO me interesuje i ako bi mogao da das obavestenja u vezi s tim, ako je ovde preopsirno, ili mozda i ne spada ovde, ostavi mi mail nesavic! Hvala, NeŠa!
pascal.56 predragd,
ÇÇ>> ..., a ako se moderator slozi rado cu preneti ÇÇ>> taj skup podprograma, na SEZAM. ÇÇ ÇÇ Ih, sto se nebi slozio, ako tebe ne mrzi da prekucavas te ÇÇ programe, samo navali. Nisam bas sto posto siguran, ali mi se cini da nije bas po pravilu da se programi iz knjiga distribuiraju na taj nacin. No ja cu ih ipak preneti. Moram da napomenem da se u okviru ZIP fajla nalaze samo Unit-i, nema svih demo primera. Primeri mi trenutno nisu pri ruci, ali cu ih zato kasnije preneti. Pozdrav, Pedja. tpmouse
pascal.57 vpetrovic,
Evo skup procedura za rad sa GIF-ovima. Vlada gif-pas.zip
pascal.58 ppekovic,
>> Evo skup procedura za rad sa GIF-ovima. Hvala Vlado! Paya
pascal.59 radunovic,
# Izgleda da je to u pitanju :((( Ne znam zasto ga, inace, ne ubacuju # u drivere koji se dobijaju uz karticu! Meni se desavalo da mi u tom modu kao i u 1024X768X16 smanji sliku na pola ekrana, a sa 640X480X256 radi samo nisam ustanovio da li imam 256 boja. Probacu jos jednom pa cu vam poslati moje drajvere a i da se uverim da je moj cip zaista ET3000 Boki
pascal.60 predragd,
Zdravo Krajem meseca Jula sam uspeo nakratko da se spojim sa zagrebackim MIPS-om, i prilokom listanja fajlova video sam dva programa koja pretvaraju TPU fajlove u ASM i OBJ. Ako je neko od Sezamovaca video te programe na nekom trenutno dostupnom BBS-u, ili ako ih poseduje, najlepse bih ga molio da me uputi gde bi ih mogao naci, ili ako mu to ne predstavlja problem da ih uploaduje. Pozdrav, Pedja.
pascal.61 dejanr,
>> Krajem meseca Jula sam uspeo nakratko da se spojim sa >> zagrebackim MIPS-om, i prilokom listanja fajlova video sam >> dva programa koja pretvaraju TPU fajlove u ASM i OBJ. Ako >> je neko od Sezamovaca video te programe na nekom trenutno >> dostupnom BBS-u, Telefonske veze su proradile (kuc kuc u drvo) MIPS je dostupan, zvao sam ga par puta u zadnja 4 dana i dobijam iz prve (noću).
pascal.62 alazic,
Hi, Po beogradskim bbs-ovim kruzi unit za pisanje door-ova za neke od bbs programa. Da li slucajno neko ima te unite?
pascal.63 alazic,
Da li slucanjo neko ima neki unit za asinhronu komunikaciju (pored onog async.arj , zakacenoga uz poruku 4.32 ) koji RADI . Naime onaj async.arj nije u stanju da smesti u buffer za slanje (ili jednostavno guta) karaktere dok bilo sta stize sa COM porta. Takodje , bilo bi preporucljivo da podrzava COM4. Ovo mi je hitno potrebno tako da ... Unapred hvala P.S: Uzgled imam gomilu unita koji ne rade , nece da rade , ili polovicno rade , tako ako nekome bilo sta od toga zatreba (a cito sumnjam) ....
pascal.64 djelovic,
> Da li slucanjo neko ima neki unit za asinhronu komunikaciju > (pored onog async.arj , zakacenoga uz poruku 4.32 ) koji > RADI . Ne znam da li se razumemo, ali ako ti treba program koji kontrolise portove (bez protokola za prenos itd.), onda nadji u PC.SOFT modifikovan lcomm (mislim da se tako zvao, modifikovan da koristi sva 4 porta i veci bafer). Prevodis ga i dobijas .OBJ datoteku (obavezno koristi /Mx ako radis sa MASM-om), koju onda slobodno mozes da koristis. Ako ti bas treba UNIT, ni to nije tesko, treba samo da napises deklaracije i onda da stavis ($Llcomm.obj) (viticaste zagrade). (Nisam siguran da je bas $L, mozda je i $O ili tako nekako. Davno je bilo...)
pascal.65 nesic,
Pa, ovo je jedini unit koji imam, a koji podržava 4 COM porta u isto vreme. Nisam baš tačno shvatio u čemu je tvoj problem, ali kod mene sve radi osim onog što sam već naveo [PC.PROG:4.32]. Ali to ne radi ni u jednom UNIT-u koji imam. Možda si pogrešio u redosledu pozivanja procedura za inicijalizaciju. Prvo treba pozvati funkciju OPENCOM pa tek onda proceduru COMPARAMS. Evo kako to izgleda na primeru malog komunikacionog programa: uses crt, async; const com:byte=4; buf:word=1024; echo:boolean=false; crlf:boolean=false; var c,r:char; f:boolean; begin if opencom(com,buf,buf) then begin comparams(com,2400,8,'n',1); f:=false; repeat if keypressed then begin c:=readkey; f:=c=chr(27); comwritech(com,c); if echo then write(c); if crlf and (c=^M) then writeln; end; if combufferleft(com,'i')<buf then begin r:=comreadch(com); write(r); end; until f; closecom(com); end else writeln(^M^J'Ne postoji COM',com:1,':') end. Međutim, problem se javlja kada treba poslati string COM portu. To nisam uspeo da rešim nu u jednom UNIT-u. Ustvari, potrebna je neka funkcija kao: function comready(comport:byte):boolean; koja će omogućiti čekanje sve dok COM port ne bude spreman za prijem. Javi ako nešto budeš našao ili uradio sa ovim UNIT-om ili nekim drugim. Pozdrav, Nešić
pascal.66 dragan.juric,
Ovo ti je malo slozeno. Bavio sam se tim neko vreme. Prvo, imas dve vrste kompajlera : one koji prave standardne (.OBJ) objektne fajlove i one koji prave neke svoje (npr. .TPU). Od onih koji prave .OBJ, nisu svi medjusobno kompatibilni, jer neki mogu da definisu imena kao kod drugih, ali za druge stvari i da naprave sto drugih zajebancija. Kompatibilno je na primer CLIPPER + MS C (probao) CLIPPER + MS Pascal (cuo) sto je iz prostog razloga sto su CLIPPER pravili na MS C-u. Nekompatibilno je npr. CLIPPER + Turbo C. One kombinacije koje nisu kompatibilne mozes ipak da ostvaris, na sledeci nacin : (primer za Turbo Pascal + CLIPPER) 1. rutine koje pravis u TP strpaj u zaseban program 2. taj program treba da bude rezidentan 3. u clipper dodaj nove naredbe koje samo pozivaju preko interapta rutine iz rezidentnog TP programa i prenose podatke. kako : ovo je malo vracanje na staro. MOZES da spojis TC i CLIPPER ali u TC-ovom .OBJ-u ne sme da bude prakticno nista sem onog sto ti napises, tj. bez poziva TC-ovih procedura i funkcija. Za prosto po- vezivanje preko interapta ce biti dovoljno. (prethodno moze i u MS C ili na koji drugi nacin) za prenos podataka pregledaj uputstvo za CLIPPER, negde pred kraj. 4. te naredbe treba da linkujes sa programom koji pravis u CLIPPER-u. 5. startuj rezidentan deo 6. startuj tvoj program Na ovaj nacin mozes da spojis prakticno bilo sta sa bilo cim (tj. babe i zabe) Znam da je odgovor malo kasno stigao, ali tek skoro sam pristupio SEZAM-u. Pozdrav, Dragan
pascal.67 ppekovic,
>> Kompatibilno je na primer >> CLIPPER + MS C (probao) Sa MSC-om 5.1 da. Sa MSC-om 6.0, samo delimicno. Ne radi npr. grafika, chertovi ali ni osnovnije stvari kao sto su standard IO funkcije. Provereno rade system, error, string i jos neke funkcije. Paya
pascal.68 radunovic,
Hvala za ideju. Mada moram priznati da cu za to instalirati MSC. Boki
pascal.69 dragan.juric,
Sasvim moguce. Tu vec ulazimo u linkovanje. Ima glupih (zapravo ih danas vise i nema) i pametnih linkera. Oni prvi prosto linkuju sve, a oni drugi vide sta si pozvao, pa sta su te funkcije pozvale (a mogu pozvati ne samo druge funkcije, nego i npr. varijable itd.) pa tako do dna i to izlinkuju. Problemi nastaju kad ti se vise stvari isto zove (a ne mora da bude ista struktura), ili kad imas vise stvari od jedne vrste, npr dva stek segmenta. Linkeri ovo prijavljuju kao greske, a ako ih i ubedis da ostave samo jednu funkciju od vise sa istim imenom (ovo je i najlaksi slucaj) pitanje je da li ce ta jedna da radi kao sve druge. Nekad je ovo i neresivo. MS C 5.1 mozda ima takvo "stablo pozivanja" da se nigde ne kosi sa Clipper-om, ali u 6.0 je to izmenjeno, pa nesto radi, nesto ne radi. U svakom slucaju, to se moze resiti pozivanjem preko interapta, kao sto sam rekao u prosloj poruci. Po mom misljenju, najbolje je odabrati takav alat za razvoj koji sadrzi sve sto ti treba (ili bar da su svi alati od iste firme) pa da ne moras da pravis nikakve budzevine. Zanimljivo je kako je ovo reseno pod Windows-om 3.0. Sistem DLL library-a moze da se povezuje potpuno nezavisno od jezika u kom je DLL pravljen, i ne postoje problemi kao ovi oko kojih se mucimo. Nadam se da ce ovo moje tupljenje nekad nekome i pomoci. Dragan.
pascal.70 dgrbic,
:: Sa MSC-om 5.1 da. Sa MSC-om 6.0, samo delimicno. Ne radi :: npr. grafika, chertovi ali ni osnovnije stvari kao sto su :: standard IO Payooooo! Ovo je PC.PROG:Pascal!
pascal.71 dgrbic,
:: ce ta jedna da radi kao sve druge. Nekad je ovo i :: neresivo. MS C 5.1 mozda ima takvo "stablo pozivanja" da :: se nigde ne kosi sa Clipper-om, ali u 6.0 Clipper je pisan u MSC 5.1, pa su delovi C biblioteka "pozajmljeni" i za Clipper biblioteke (uz odobrenje, naravno, nije to kao kad se kod nas pisu programi). E, sad, C 6.0, izgleda, nesto malo drugacije poziva neke od funkcija, pa ne moze da koristi stare I/O, koje se nalaze u Clipperovim bibliotekama, a Clipper ne moze da koristi nove iz MSC 6.0. Neko "resenje" bi bilo da se, za linkovanje sa Clipperom, nove C biblioteke patchuju, da im se izmene nazivi procedura, pa da se onda te procedure zovu iz C-a, a stare sa pravim nazivima iz Clippera. Sa grafikom ovo, svejedno, vrlo verovatno nece raditi, uostalom tu nema preklapanja imena, tu je neki drugi belaj. Sto se tice povezivanja TP i Clippera, nevolja je u tome sto TP ne pravi standardne .OBJ datoteke. Inace su Clipper funkcije deklarisane u C-u kao Pascal. Nego, video sam negde TPU->OBJ konverter (i TPU->ASM). Bilo bi zanimljivo probati da li oni mogu da pomognu (a trebalo bi da mogu). Ako neko zna gde to ima (a ima na nekom BBS-u, ili je mozda bilo na Triklu), bilo bi lepo da to vidimo i isprobamo ovde na Sezamu. :: Zanimljivo je kako je ovo reseno pod Windows-om 3.0. :: Sistem DLL library-a moze da se povezuje potpuno :: nezavisno od jezika u kom je DLL pravljen, i ne Pod Windowsima su sve procedure/funkcije deklarisane kao Pascal, bez obzira koji programski jezik ih koristi (moglo je i Fortran, prema MSC helpu, deklaracije Pascal i Fortran su sinonimi), pa se to ne odnosi samo na DLL, nego na sve LIB (osim, naravno, ako pises program u C-u, pa imas neku internu funkciju za koji Win ne mora da zna, onda ona ne mora da bude Pascal, npr. FILE I/O ti nije bas vezan za Win, mada bi bilo lepo da su napravili DLL za to, pa da moze da se napravi pravi multitasking, tj. da pazi na InDos stanje i tako to)
pascal.72 gtomic,
Da li bi mi neko pomogao i rekao mi kako da odstampam nesto sa ekrana u grafickom modu. Probao sam procedurom HardCopy() paô│ţbne ide. Stampac sara bez veze. Pomagajte braco, sestre i drugovi ŚŚ!!!!
pascal.73 dzakic,
# Da li bi mi neko pomogao i rekao mi kako da odstampam nesto sa # ekrana u grafickom modu. Probao sam procedurom HardCopy() paô│ţbne # ide. Stampac sara bez veze. Ne znam o kakvoj se proceduri radi, ja upravo iskopah neki svoj unit koji sam koristio za Screen Dump. Fora je da se sadržaj ekrana čita sa GetPixel... -------------------- Unit Hcopy; interface Procedure Dump(x,y,xl,yl,lmarg:integer); ... Šalje na štampač deo ekrana, gde su i x i y koordinate gornjeg levog ugla, a xl i yl dimenzije prozora. Lmarg je jeva margina u pikeslima. Na štampač se šalju sekvence #27,'L',lo,hi,bytes,#13,#10 za svaki red. Dakle, procedura radi na epson kompatibilnim štampačima. Pozdrav, zak hcopy.pas
pascal.74 powderman,
Jedno malo pitanje : Kako naterati pascal da procita textualnu datoteku u stilu red,red,red , kao sto se to radi sa readln(f,var); Molim pomoc, Powderman PS. Tek sam poceo Úda pisem u pascal -u
pascal.75 dnikolic,
Pa brate, otkucaj ( ako imas VGA i sl. ) GRAPHICS pre stampanja. Kod mene radi bez greske. dn
pascal.76 ssokorac,
-=)> Pa brate, otkucaj ( ako imas VGA i sl. ) GRAPHICS pre -=)> stampanja. Kod mene radi bez greske. Ne mora da ima VGA, radi savršeno i na Herculesu, samo treba - GRAPHICS GRAPHICS (na OKI Microline 182 turbo, IBM Graphics a i ne Epsoncima, čini mi se...) Stasha
pascal.77 dgrbic,
:: Pa brate, otkucaj ( ako imas VGA i sl. ) GRAPHICS pre :: stampanja. Kod mene radi bez greske. Covek je pitanje ostavio u temi Pascal. Znaci, oce da stampa ekran iz Pascal programa. DZakicev odgovor je ono sto mu je trebalo (ako nije promasio temu).
pascal.78 gtomic,
postovani dnikolic, hvala na savetu ali mi je trebao odgovor dzakic-a Sada mi se javlja drugi problem. Kaddampujem ekran na stampac slika mi bude izduzena (krug vise lici na elipsu). Da li postoji mogucnost da se to izbegne?
pascal.79 dzakic,
# Sada mi se javlja drugi problem. Kad dampujem ekran na # stampac slika mi bude izduzena (krug vise lici na elipsu). Da li # postoji mogucnost da se to izbegne? Pa problem je taj što je retko kada slika na ekranu razmeri 1:1. Na herkulesu je krug i na ekranu elipsa. Ako je na ekranu ok, onda je problem što su na štampaču horizontalne tačke međusobno bliže nego vertikalne. Na epson kompatibilnim štampačima postoji 7 grafičkih modova sa različitim vrednostima za dots/inch. Možeš da pokušaš da umesto #27,'L' staviš #27,'*',m gde je m dots/inch ---------------- 0 60 single density 1 120 double density 2 120 double density (high speed) 3 240 quadraple density 4 40 crt I 5 80 plotter 6 90 crt II trebalo bi da m=5 (80 dpi) daje ono što ti treba. Pozdrav, dz
pascal.80 dgrbic,
:: trebalo bi da m=5 (80 dpi) daje ono sto ti treba. Osim ako je u pitanju 24-pinac, kod njih je izmenjen odnos.
pascal.81 vasic,
Interesuju me kodovi gresaka koje daje turbo pascalov IOresult. Ima li neko komletan spisak sa znacenjem svakog od njih ? Vasa
pascal.82 alazic,
Hi , Kodove gresaka koje vraca IOResult , moci ces da nadjes (cini mi se ) u poglavlju o unitmÚu System , i to negde pri kraju . Evo ti nekoliko iz glave: 0 - Ok , 2 - Nije pronadjen f. , ... eh ovaj , bolje ti to pogledaj u help-u :) Pozdrav
pascal.83 predragd,
> Kako naterati pascal da procita textualnu datoteku u stilu > red,red,red , kao sto se to radi sa readln(f,var); Izvinjavam se, ali nisam bas najbolje razumeo tvoje pitanje, pa bih te molio da ga malo pojasnis. Pedja.
pascal.84 ivans,
I/O errors ========== These errors cause termination if the particular statement was compiled in the {$I+} state. In the {$I-} state, the program continues to execute, and the error is reported by the IOResult function. 100 Disk read error. Reported by Read on a typed file if you attempt to read past the end of the file. 101 Disk write error. Reported by Close, Write, Writeln, Flush, or Page if the disk becomes full. 102 File not assiggned. Reported by Reset, Rewrite, Append, Rename, and Erase if the file variable has not been assigned a name through a call to Assign. 103 File not open. Reported by Close, Read, Write, Seek, Eof, FilePos, FileSize, Flush, BlockRead, or BlockWrite if the file is not open. 104 File not open for input. Reported by Read, Readln, Eof, Eoln, SeekEof, or SeekEoln on a text file if the file is not open for input. 105 File not open for output. Reported by Write and Writeln on a text file if the file is not open for output. 106 Invalid numeric format. Reported by Read or Readln if a numeric value read from a text file does not conform to the proper numeric format. Pozdrav, ivans.
pascal.85 vasic,
U helpu nisam nasao nista, a imam PD verziju TP bez ikakvog stampanog uputstva. Poziv u pomoc i dalje vazi. Nego, cini mi se da je ovuda pre dosta vremena kruzila Norton Guides baza za TP (valjda za 5.0), pa ako je neko jos ima, neka pogleda. Vasa
pascal.86 spantic,
>... imam PD verziju TP bez ikakvog stampanog :))
pascal.87 ilazarevic,
█> Kako naterati pascal da procita textualnu datoteku u stilu █> red,red,red , kao sto se to radi sa readln(f,var); Ako misliš da čita char po char, lepo uzmeš i čitaš znak po znak dok ne dođe do <eoln>. Teorijski lepo zvuči, ali nikad nisam probao.... :)
pascal.88 powderman,
Citiram : ' Kako naterati pascal da procita textualnu Citiram : ' datoteku u stilu red,red,red , kao sto se to Citiram : ' radi sa readln(f,var); Trebala bi mi procedura koja bi datoteku : ======================== Red 1 Red 2 Red 3 Red 4 Red 5 ======================== pročitala kao : ======================== Red 5 Red 4 Red 3 Red 2 Red 1 ======================== Hvala unapred.
pascal.89 vasic,
Hvala Ivans, bas mi je ovako nesto trebalo. Nego, ima jedan problem. Ovaj spisak nije bas kompletan. Ja sam eksperimentisuci dobio i sledece vrednosti: 152 - Drive not ready 158 - Sector not found Ovo odgovara vrednostima dobijenim od DOS Fn 59h (Get Extended Error Info) uvecanim za 83h. Znaci li to da kada TP dobije od DOS-a gresku sa kojom ne zna sta ce, on na njen kod doda 83h ( zasto bas toliko ? ) i onda to prosledi kao IOresult ? Inace, i ove vrednosti izazivaju prekid programa pri {$I+}. Vasa
pascal.90 vpetrovic,
radi i var s:string; ... begin ... readln(f1,s); Ako, naravno, redovi nisu duži od 255 znakova.
pascal.91 sslavko,
>> Kako naterati pascal da procita textualnu datoteku u >> stilu red,red,red , kao sto se to radi sa readln(f,var); Pretpostavljam da zelis da procitas ceo "red" datoteke u neku promenljivu (naravno pretpostavka je da je datoteka propisno formatizovana tj. da iza svakih npr. 70 karaktera stoji LF). Ako je to to sto pitas onda imas vise nacina. Na primer: 1.citanje u LOOP-u karakter po karakter i stavljanje u neki string; 2.citanje celog stringa var st:string[70]; begin read(f,st) end; (Bas nesto nisam siguran u ispravnost ovoga ali mislim da ide tako nekako); 3.koriscenjem pointera. Pozdrav Slavko.
pascal.92 dejanr,
Ako su linije različitih dužina, onda stvarno jedino što znam jeste da ih pročitaš u neki niz stringova, pa posle da ga obrađuješ po potrebi. Ako su jednake dužine, možeš da otvoriš fajl kao binarni pa čitaš redove sa seek (dat, (i-1)*duzina); blockread (dat, red[1], duzina);
pascal.93 sslavko,
>> radi i >> var >> s:string; >> ... >> begin >> >> ... >> readln(f1,s); >> >> >> >> Ako, naravno, redovi nisu duzi od 255 znakova. A ako jesu npr. duzine 2000 (ne znam cemu to ali ajde) onda umesto var s:string; stavi: var s:strind[2000]; Pozdrav Slavko
pascal.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.
pascal.95 ivans,
* Hvala Ivans, bas mi je ovako nesto trebalo. Nego, ima * jedan problem. Ovaj spisak nije bas kompletan. Ja sam * eksperimentisuci dobio i sledece vrednosti: Potpuno si u pravu! Ja sam otkucao samo I/O greske, zaboravljajuci da IOResult vraca i kodove gresaka koje nisu I/O. Evo, da se iskupim, uz ovu poruku saljem spisak *svih* run-time gresaka. Javi ako nesto ne valja, pa da gledamo dalje! Pozdrav, ivans. run-time.txt
pascal.96 bearboy,
> Interesuju me kodovi gresaka koje daje turbo pascalov > IOresult. Ima li neko komletan spisak sa znacenjem svakog > od njih ? Zar ne pise u HELP- ?
pascal.97 bearboy,
> a imam PD verziju TP bez :))))))))))))))))))
pascal.98 vasic,
E, ovo je BAS ono sto mi je trebalo. Nadam se samo da si ovo skenirao. Grizla bi me savest zbog vremena koje si potrosio prekucavajuci. Jos jednom hvala. Vasa
pascal.99 dejanr,
>> Postoji jedno malo ali povodom 's:string[2000]' a to je : ne radi. >> Naime turbo pascal (do verzije 5.5) ... string ne moze biti duzi od >> 255 char-ova. Ne samo do 5.5, nego i na 6.0, pa i na TP for Windows. Tamo su kao "surogat" uveli nekakve "zero terminated strings" do 65535 znakova, ali se sa njima teže radi nego sa običnim stringovima... Jedna od (naj)ozbiljnijih mana Turbo Pascala.
pascal.100 dgrbic,
:: Jedna od (naj)ozbiljnijih mana Turbo Pascala. Da znas da jeste. A da li je neko video makar neki konkretniji tekst od reklame o onom cudu PASCAL+? Prema reklami, ima sve sto fali TP-u: optimizujuci kompajler, memorijske modele, pravi .OBJ, i tome slicno... Naravno, stringovi nisu ograniceni na 255 znakova. Na koji nacin Racunari dobijaju softver na testiranje? da li samo od domacih zastupnika ili moze i direktno (posebno ako zastupnika nema)? Mislim, testovi prevodilaca o Pascalu su u Racunarima prilicno ograniceni na TP, a ima i dosta drugih mogucnosti, bilo bi zanimljivo saznati sta drugi nude, posebno ako zelimo da kupujemo softver.
pascal.101 ivans,
Bilo mi je zadovoljstvo da te grize savest! :)))))))) Pozdrav, ivans.
pascal.102 dejanr,
>> 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,
> 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,
>> 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,
> 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,
>> 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,
╠ 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,
> 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,
> - 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,
:: 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,
:: 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,
> 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,
-+={ 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,
>> 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,
>> 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,
>>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,
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,
>> 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,
>>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,
│ 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,
> 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,
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,
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,
?! 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,
>> 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,
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,
>>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,
-+={>> 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,
> 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,
> 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,
> 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,
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,
>>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,
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,
> 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,
>> 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,
>> 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,
> 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,
> 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,
>>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,
@@>> 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,
>>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,
> 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,
>> 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,
/ 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,
>>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,
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,
@@ 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,
>>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,
TOOO!!! FIGHT! ;))
pascal.160 cacxa,
> 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,
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,
/ 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,
@@ 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,
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,
>>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,
> 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,
@@ 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,
>>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,
>> 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,
@@ 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,
>> 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,
*> 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,
>> 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,
> 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,
>> 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,
*> 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.,
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,
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,
* 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,
> 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,
>>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,
>>> 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,
-> 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,
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,
-> P.S.Btw,a za cega sluzi F1 (HELP) ???? :)))))) Pa nije svaki paskal TURBO :))))
pascal.193 mensi,
>> 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,
>> 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,
>> 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,
* 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,
>> 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,
>>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,
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,
?! 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,
/│ 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,
-+={ 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,
>> 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.
pascal.204 vojkan,
-> Ako je mislio na to, ja sam napravio jedan... Jes' da je -> spor k'o bog, al' ima source i radi... Pa ok to je ono što sam i ja hteo da radim. Pošalji ga ako nije frka zbog kopitajta ;)
pascal.205 nesavic,
Hi, imam problema sa programom datim u racunarima ne zna se kojim ali nije ni vazno, vazno je da ne radi... Program je dat listingom i trebalo bi da presrece $5 interapt i skida sliku odakle hoces i posle je ucitava, e sad to mozda i radi za CGA tj adresa $B800:$0000 ali za Hercules ne da ne radi nego se nista ne pojavljuje, radio sam sa adresom $B000:$0000 ali nista, tj. kada stavim da mi snimi 16192 bytesa onda imam oko 1/4 - 1/2 slike, sve iznad ove cifre ne radi... Ajd sad vi meni recite sta je po sredi... zahvalan, NeSa!
pascal.206 bearboy,
-+={ Jel' moze da skine sa VGA karte sliku u GEM (IMG) -+={ formatu ??? Ako moze, salji odma' ! PA ZAR TI CITAS STA REPLICIRAS ?!?!?! Pise lepo - GEM, PCX, a ja sam dodao jos i LBM (nekompresovan). Inace koliko ja znam (a bas ne znam :) GEM je VEKTORSKA grafika... A bogami skidanje grafike sa ekrana u vektorima... Xex, pa nisam ja DR. Prof. Mr. Dipl. Ing. Gr., Ziv., i S. O. Bear !
pascal.207 ppekovic,
>> PA ZAR TI CITAS STA REPLICIRAS ?!?!?! Pise lepo - GEM, PCX, a ja sam dodao jos >>i LBM (nekompresovan). Inace koliko ja znam (a bas ne znam :) GEM je VEKTORSKA >>grafika... A bogami skidanje grafike sa ekrana u vektorima... Xex, pa nisam >>ja DR. Prof. Mr. Dipl. Ing. Gr., Ziv., i S. O. Bear ! Uh bearboy, kad čovek ovo pročita, pomisli da si mnogo neki gadan tip, a ono ti duša od čoveka. Niko nije bezgrešan. Paya
pascal.208 macak,
█ Niko nije bezgresan... ...sem mene! ;)))
pascal.209 bearboy,
-+={ sam sa adresom $B000:$0000 ali nista, tj. kada stavim -+={ da mi snimi 16192 bytesa onda imam oko 1/4 - 1/2 slike, -+={ sve iznad ove cifre ne radi... Da ne treba 32K ? Adresa je sigurno dobra ? (Xe, blago nama, VGA-sima :)
pascal.210 bearboy,
-+={ Uh bearboy, kad covek ovo procita, pomisli da si mnogo -+={ neki gadan tip, a ono ti dusa od coveka. Niko nije -+={ bezgresan. Xe, samo sam se mao nervirao... :)
pascal.211 bearboy,
-+={ █ Niko nije bezgresan... -+={ ...sem mene! ;))) Siguran ? ;)))))))))
pascal.212 macak,
█ Siguran ? ;)) Apsolutno!
pascal.213 ilazarevic,
Evo pitanja od mog profana informatike: jel ima neko ovde drajvere za VGA i SVGA, za Turbo Pascal, koji će raditi? On kaže da njemu kod kuće drajveri koje je dobio uz TP 6.0 ne rade na višoj rezoluciji (ne znam da li je u pitanju 800x600 ili 1024x768, ne sećam se).
pascal.214 dejanr,
>> Evo pitanja od mog profana informatike: jel ima neko ovde drajvere >> za VGA i SVGA, za Turbo Pascal, koji će raditi? Ima toga puno na Sezamu, najnovije uz poruku PC.HARD/video.kartice 4.486. Srećno!
pascal.215 dzakic,
>> $B800:$0000 ali za Hercules ne da ne radi nego se nista ne >> pojavljuje, radio sam sa adresom $B000:$0000 ali nista Video memorija herkulesa je duga 32K i nalazi se na segmentu B000 ili B800 u zavisnosti od toga koja je stranica aktivna.
pascal.216 ilazarevic,
█ Ima toga puno na Sezamu, najnovije uz poruku PC.HARD/video.kartice █ 4.486. Srećno! Hvala, čovek će da bude presrećan (xe, kako se šlihtam ;)))
pascal.218 macak,
Momci,imam jedan (mozda trivijalan) problem. Kad startujem neki program koji koristi GRAPH unit,on nece da radi nego izbaci poruku: BGI eError: Graphics not initialized (uses InitGraph) Posto je ovo prvi put da se bakcem sa nekom grafikom,u cemu je problem? Gledao sam u neku knjigu i sve bi trebalo da bude OK. (na pocetku se nalazi : GD:=Detect ; InitGraph (Gd,Gm,'') ) Mozda ne odgovara unit ili... u cemu bi mogla da bude sema?
pascal.219 nandi,
> Momci,imam jedan (mozda trivijalan) problem. > Kad startujem neki program koji koristi GRAPH unit,on nece > da radi nego izbaci poruku: > BGI eError: Graphics not initialized (uses InitGraph) mora biti prisutan onaj *.bgi file u dir-u gde pokrećeš program. (herc.bgi, cga.bgi ... zavisi od video adaptera koji koristiš). nandi ps: pričam napamet, ali mislim da sam potrefio
pascal.220 nesavic,
Pozdrav, problem je bas u tome... tj. treba graph.tpu da ti stoji u direktorijumu iz kog ga startujes ili da u InitGraph(Gd, Gm, 'c:ĐpascalĐbgi'); navedes svoj ROOT dira u kome se nalazi graph.tpu.... Ako i ti ne radi onda... reci da ti saljnem ovaj moj, mozda proradi? NeSa!
pascal.221 dgrbic,
:: (na pocetku se nalazi : GD:=Detect ; InitGraph (Gd,Gm,'') ) ^ ovde treba da bude path do *.bgi drivera, a možeš i da iskopiraš onaj driver koji ti treba za karticu u tekući dir.
pascal.222 djnsnd,
> Evo pitanja od mog profana informatike: jel ima neko ovde > drajvere za VGA i SVGA, za Turbo Pascal, koji će raditi? > On kaže da njemu kod kuće drajveri koje je dobio uz TP 6.0 > ne rade na višoj rezoluciji (ne znam da li je u pitanju > 800x600 ili 1024x768, ne sećam se). Imam ja. Javi se na mail. DjnSnd
pascal.223 ilazarevic,
█ Mozda ne odgovara unit ili... u cemu bi mogla da bude sema? Trebalo bi da definišeš u Options/Directory sve one direktorijume, pa između ostalih i Unit Directory. Mislim da će ti tako naći graph.tpu. Ako si ovo već definisao, onda lepo vidi da li si podesio BGI dir na onaj u kome ti se nalaze BGI fajlovi.
pascal.224 ztuke,
Zdravo! Imam problema, ko ih nije imao ;(((, sa visokom rezolucijom! Naime radi se o već poznatom drajveru Jordana Henxd.... kako mu je već prezime za SuperVGA modove sve do 32k boja. Ono što me nervira jeste da uopšte ne mogu da inicijalizujem grafiku na mojoj SVGA kartici sa tim drajverom. Reč je o rezoluciji od 1024x768x256! To verovatno ima neke fore u tome da zeznem stvar sa InstallUserDriver ili tako nečim. Sve bi bilo jasnije kada bi neko od vas naterao ovaj programčić da radi u rezoluciji od 1024x768x256: š Ovo je program za crtanje kruga u samodetektovanoj sredini! ć uses Graph; var Gd, Gm: integer; Radius: Integer; begin Gd := Detect; InitGraph(Gd, Gm, ''); if GraphResult <> grOk then Halt(1); for Radius := 1 to 5 do Circle(320, 240, Radius*10); ReadLn; CloseGraph; end. Ovo radi u rezoluciji 640x480 sa EGAVGA.BGI. Kako da ga nateram da radi sa drajverom SVGA256.BGI !? Inače broj moda za rezoluciju 1024x768x256 jeste 4! Unapred hvala! Pozdrav, Zoran!
pascal.225 piter,
kako da napravim unit koji bi mi zastitio programe od izmena ? (virusi,drugovi) Pokusao sam sa crc-om kojeg posebni program upise na kraj fajla ali ne radi. Help. pitanje je od Powderman-a (skuplja pare za sezam) vir.arj
pascal.226 janko,
> kako da napravim unit koji bi mi zastitio programe od > izmena ? (virusi,drugovi) Pokusao sam sa crc-om kojeg > posebni program upise na kraj fajla ali ne radi. Help. Slučajno ja imam nešto što RADI uvek za zaštitu od "drugova" (Od virusa treba da te štiti Mek Afi). Ugrađuje se u toku prevođenja i samo mojih je ruku delo. Naravno, nisam raspoložen da delim džabe. Pa ako je neko zainteresovan za 'ključ u ruke' rešenje tog problema, nek' me MAIL-ne. Janko J. Stamenović
pascal.227 nesavic,
Pozdrav, pitas se kako da zastitis svoj program od... itd. Imam i ja unit koji ti moze pomoci, a radi na specifican nacin... Nemoj da dajes pare bezveze poslacu ti ga ja, uskoro... NeSa! vsafe.arj
pascal.228 nesavic,
Pozdrav, nisam mogao da pronadjem fajl koji je PRIMER za koriscenje UNITa... Kad budem nasao spusticu ga... Ovaj UNIT je predvidjen za TP 6...
pascal.229 piter,
Kako to radi ? Molim uputstvo i jedan sample program. jer imam nesto slicno ali neradi ....
pascal.230 predragd,
> kako da napravim unit koji bi mi zastitio programe od > izmena ? (virusi,drugovi) Pokusao sam sa crc-om kojeg > posebni program upise na kraj fajla ali ne radi. Help. Zdravo Pa recimo mogao bi da proverava duzinu svaki put po startovanju program proveri duzinu programa (.EXE fajl). Na taj nacin bi, eventualno mogao utvrditi da ti se nije mozda nesto prilepilo za program. Mogao bi jos da proveris da li je promenjeno vreme i datum kreiranja fajla, mada cisto sumnjam da bi neki "virus" programer koji drzi do sebe probustio takvu banalnu stvar, da vrati nazad vreme i datum, no nikad se nezna. Ako taj CRC snimis na kraj fajla, da li ti rutina za CRC proveru uzima u obzir i sam kraj fajla (CRC deo), mozda je njega njega zaboravio da proveri. Pezdrav, Pedja.
pascal.231 piter,
pored one poruke je i arhiva sa suorce-om. Trebalo bi da proverava sve bajtove osim poslednja četiri. CRC za sada upisujem pomocu NU tako da prvo startujem program zapisem vrednosti,povecam duzinu za 4,upisem CRC u poslenja 4 bajta i onda ponovo start. Piter
pascal.232 marvin,
Jel' ima neko mozda neku (dobru) literaturu za TP6 u kojoj je objasnjen (lepo i kompletno) TV ?
pascal.233 djelovic,
> Ovo radi u rezoluciji 640x480 sa EGAVGA.BGI. Kako da ga nateram > drajverom SVGA256.BGI !? Inače broj moda za rezoluciju 1024x768 Pre reda u kome pozivaš InitGraph pozovi InstallUserDriver. Više o tome imaš valjda u helpu.
pascal.234 vilic,
#> Jel' ima neko mozda neku (dobru) literaturu za TP6 #> u kojoj je objasnjen (lepo i kompletno) TV ? Imaš li originalni TP 6.0 Sa njim ide i uputstvo za TV bye
pascal.235 marvin,
Eeee, kamo lepe srece...
pascal.236 jbili,
predrag, nisam odavno na SEZAM-u, tako da ne znam za početak diskusije o radu sa mišem iz TP. Meni upravo tako nešto treba, pa sam skinuo TPMOUSE.zip i probao ga i naravno on radi samo sa color kartama, a meni treba za hercules. Mozes li mi pomoći? Tačnije meni treba program pisan u TP 5.5 ili 6.0 kojim je moguće da u grafici visoke rezolucije crtam kruznice, linije, kvadrate, itd. (ACAD u vrlo malom izdanju). POMAGAJ!
pascal.238 adezelin,
Help me if you can... Imam 1 mali(??) problem.Nikako mi ne polazi za rukom da povezem program u pascalu sa procedurom(funkcijom) pisanom u asembleru. Moze i neki listing uz objasnjenje! Please!!!!!!!
pascal.239 stomic,
$ Imam 1 mali(??) problem.Nikako mi ne polazi za rukom da $ povezem program u pascalu sa procedurom(funkcijom) pisanom $ u asembleru. Moze i neki listing uz objasnjenje! 1. Program (procedura) u asembleru mora da izgleda ovako: ------------------------------------------------------------ ; Primer procedure pisane u asembleru. Ispisuje tekst na ekranu public asmpas ; Navodiš ime procedure code segment assume cs: code, ds: code begin: jmp asmpas message db ' (C) 1992 by Slobodan Tomic ',13,10,'$' asmpas proc near push bp ; Moraš da sačuvaš mov bp, sp ; TPov BP i ... push ds ; ... DS push cs ; data segment = code segment pop ds lea dx, message ; procedura za ispis mov ah, 9h int 21h pop ds ; povratiš sačuvan DS i ... pop bp ; ... BP ret 0 ; vratiš rezultat 0 jer je ; ovo procedura a ne funkcija ; i nevraća nikakvu vrednost asmpas endp code ends end begin ----------------------------------------------------------- 2. Prevedeš ovu proceduru u OBJ file sa nekim linkerom (najbolje TLINK) 3. Program u pascalu bi izgledao ovako: ----------------------------------------------------------- Program AsmPas_Demo(Input, Output); { Primer vezivanja procedure pisane u asembleru i pascal programa } {$L C:\TASM\ASMPAS.OBJ} Procedure AsmPas; External; Begin AsmPas; { ispiši poruku } End. ----------------------------------------------------------- 4. Prevedi program i startuj! Pozdrav stomic ▀▀▀▀▀▀▀▀▀▀▀▀▀▀ P.S: Pređi na TP 6.0, ima mogućnost direktnog kucanja asemblerskog programa u pascal programu (direktiva ASM).
pascal.240 smiloradovic,
Sorry, ali moram malo da te ispravim. Umesto |> code segment |> |> assume cs: code, ds: code |> begin: jmp asmpas prirodnije je da staviš CODE segment public assume cs:code, ds:data public imena_procedura ; ovde deklarišeš tvoje procedure, tako ... ; da se zna kom segmentu pripadaju ... ... CODE ends i time iskoristiš već postojeće segmente u programu. Pri tome ćeš ubaciti DATA segment public extrn lista_promenljivih ; ovde eventualno možeš da ubaciš nazive ... ; globalnih promenljivih koje koristiš message ... DATA ends tako da ti nisu potrebne nikakve dalje manipulacije sa segmentima, uključujući i ono push cs - pop ds. Dalje: |> ret 0 ; vratiš rezultat 0 jer je |> ; ovo procedura a ne funkcija |> ; i nevraća nikakvu vrednost Ovde imaš dve greške. Prvo, deklarisao si proceduru kao near, čime praviš zbrku sa stekom - tvoju proceduru paskal sigurno poziva sa CALL FAR, tako da ti ostaje reč viška na steku - znači, umesto ret treba da stoji retf (return far); mogao si i da deklarišeš proceduru kao far, i da koristiš samo ret - to bi sam asembler preveo kao retf. Zatim, broj iza ret instrukcije kaže koliko bajtova treba skinuti sa steka prilikom povratka - to ćeš koristiti ako tvoj potprogram ima *ulazne* argumente koje treba pri povratku poništiti. Recimo, ako tvoja procedura ima dva ulazna parametra tipa word, i ne vraća ništa, stavićeš retf 4. |> end begin Ovo ti ne treba, jer procedura ne stoji sama za sebe. Naziv labele iza end označava ulaznu tačku u programu, a to treba staviti ako nameravaš da praviš samostalan program (.com ili .exe). |> 2. Prevedeš ovu proceduru u OBJ file sa nekim linkerom (najbolje TLINK) Mali lapsus, treba ti asembler (recimo TASM). BTW, uz sam Turbo paskal se, koliko se sećam, dobija primer povezivanja paskal<->asembler - u pitanju su funkcije za rad sa prozorima. Pozdrav, Stojan
pascal.241 dzakic,
>> praviš zbrku sa stekom - tvoju proceduru paskal sigurno poziva sa >> CALL FAR, tako da ti ostaje reč viška na steku - znači, umesto Delimično tačno. Paskal sve procedure poziva sa CALL NEAR dok se procedure *u unitu* pozivaju sa CALL FAR. Ne vidim, momci, zašto se patite sa {$l program.obj} kad novi paskal 6.0 ima lepu mogućnost da se procedura/funckija deklariše kao assembler i prenošenje parametara obavlja se automatski. Meni je ovo bio dovoljan razlog da pređem na šesticu. Recimo: Function ipluspet(i:integer); assembler; asm mov ax,i add ax,5 end; Ništa lakše. Vrednost koju vraća funkcija treba da ostane u ax. Dalje, ako se prenosi parametar sa var: Procedure LowCase(var cc:char); assembler; asm les di,cc mov al,es:[di] cmp al,'A' jb @low_over cmp al,'Z' ja @low_over or al,$20 mov es:[di],al @low_over: end; Dakle, cc je far pointer na promenljivu. U dokumentaciji kaže da je obavezno čuvanje DS i SS segmenta dok se ES sme menjati pa nije obavezan push/pop es. Eto, mislim da je dovoljo, treba li još?
pascal.242 stomic,
$ Sorry, ali moram malo da te ispravim. Nema problema, i onako niko nije savršen a pogotovo ja i asembler. Ovo sam inače prepisao neki moj stari primer kada sam pokušavao da vežem TP i OBJ file, od tada nisam to više radio, do sinoć. Inače retko programiram u asembleru i znam osnovne stvari. $ tako da ti nisu potrebne nikakve dalje manipulacije sa $ segmentima, uključujući i ono push cs - pop ds. Dalje: Thanx za ovo, kada sam radio (pre) ovaj primer, sam se mučio zašto mi neće da ispiše string na ekran, na kraju sam porao da uradim ovaj PUSH CS i POP DS. $ Zatim, broj iza ret instrukcije kaže koliko bajtova treba $ skinuti sa steka prilikom povratka - to ćeš koristiti ako $ tvoj potprogram ima *ulazne* argumente koje treba pri $ povratku poništiti. Recimo, ako tvoja procedura ima dva $ ulazna parametra tipa word, i ne vraća ništa, stavićeš $ retf 4. Zeznuo sam se, PASCAL vraća vrednosti u AX, a ne, hvala bogu, preko RETa. $ |> 2. Prevedeš ovu proceduru u OBJ file sa nekim linkerom $ (najbolje TLINK) $ $ Mali lapsus, treba ti asembler (recimo TASM). To sam i mislio! $ BTW, uz sam Turbo paskal se, koliko se sećam, dobija $ primer povezivanja paskal<->asembler - u pitanju su $ funkcije za rad sa prozorima. Da. To je WIN.ASM (za verziju 6.0). Pozdrav stomic ▀▀▀▀▀▀▀▀▀▀▀▀▀▀ P.S: Thanx, pomogao si mi da mi neke stvari budu jasnije.
pascal.243 stomic,
$ Delimično tačno. Paskal sve procedure poziva sa CALL NEAR $ dok se procedure *u unitu* pozivaju sa CALL FAR. Zašto ovo nisi objasnio dan ranije. Sinoć sam od 11h-03h (po novom vremenu), pokušavao da povežem moj program u pascalu sa onom bibliotekom funkcija, zzivotic-a, i RAžUNARA 54, za komunikaciju sa COM1-COM2. Hteo sam da napravim UNIT, sa još nekim dodatnim funkcijama koje se baziraju na ovima, i nije htelo da proradi dok nisam prebacio sve u glavni program! Interesantno još, da se stack pravilno ažurira pri izlasku iz procedure pisane u asembleru, ako je definisana kao funkcija u pascalu, odnosno nema problema sa viškom reči na stacku. Npr.: _Comm_Install mi je radio jer sam ga definisao kao funkciju, dok npr. _Comm_SetParam nije jer je bila procedura! Da li bi onda trebalo da sve definišemo kao funkcije i da uključimo oni {$X+} (ja mislim da se tako zove, pojavljuje se u verziju TP 6.0) direktivu koja može da tretira funkcije kao procedure (kao u C-u), i da sve eksterne procedure/funkcije definišemo kao funkcije. Pozdrav stomic ▀▀▀▀▀▀▀▀▀▀▀▀▀▀
pascal.244 sale,
Da li neko zna kako da napravim .com program sa TP 6.0? Sale P.S. EXE2BIN neće nekako, i vrlo je škrt na objašnjenjima zašto i kako...
pascal.245 stomic,
$ Da li neko zna kako da napravim .com program sa TP 6.0? Mislim da nema šanse. Neke starije verzije (ja mislim 3.0 pa nazad) su jedino i pravile .com fileove. Pozdrav stomic ▀▀▀▀▀▀▀▀▀▀▀▀▀▀ P.S: Na Durlanu su se jedno vreme mučili, čak su mi i poslali par fileova prevedenih sa TP i njihov source kao dokaz, da može da se prave COM fileove, kada sam pogledao sa sadržaj tih COM fileova, na početku je pisalo nešto kao Copyright (C) 1985 (!?!) Borland Inc. Što otprilike znači da su prevedeni verzijom 3.0, ili nekom pre.
pascal.246 dgrbic,
:: Da li neko zna kako da napravim .com program sa TP 6.0? Teško, rekao bih čak nikako. TP 6.0 pravi medium memorijski model, prema tome ima više segmenata, a takođe i kod ne počinje na $100, što je potrebno da bi se program pretvorio u .com jer se na to mesto .com programi učitavaju.
pascal.247 stomic,
Da li neko možda ima neku biblioteku funkcija za TP koja ima mogućnost ubacivanja slika (u nekom od poznatijih formata), u PASCAL program? Pozdrav stomic ▀▀▀▀▀▀▀▀▀▀▀▀▀▀
pascal.248 adezelin,
>|#*}- 1. Program (procedura) u asembleru mora da izgleda >|#*}- ovako: >|#*}- ------------------------------------------------------ >|#*}- ; Primer procedure pisane u asembleru. Ispisuje tekst >|#*}- na ekranu public asmpas ; Navodis >|#*}- ime procedure >|#*}- >|#*}- code segment >|#*}- >|#*}- assume cs: code, ds: code >|#*}- begin: jmp asmpas >|#*}- >|#*}- message db ' (C) 1992 by Slobodan Tomic >|#*}- ',13,10,'$' >|#*}- >|#*}- asmpas proc near >|#*}- >|#*}- push bp ; Moras da sacuvas >|#*}- mov bp, sp ; TPov BP i ... >|#*}- push ds ; ... DS >|#*}- push cs ; data segment = code segment >|#*}- >|#*}- pop ds >|#*}- lea dx, message ; procedura za ispis >|#*}- mov ah, 9h >|#*}- int 21h >|#*}- >|#*}- pop ds ; povratis sacuvan DS i ... >|#*}- pop bp ; ... BP >|#*}- ret 0 ; vratis rezultat 0 jer je >|#*}- ; ovo procedura a ne funkcija >|#*}- ; i nevraca nikakvu vrednost >|#*}- asmpas endp >|#*}- >|#*}- code ends >|#*}- >|#*}- end begin Thanx a lot! Ali kako sad sa funkciom?? ??????????????????????????
pascal.249 .bale.,
ŮŢ >|#*}- ret 0 ; vratis rezultat 0 jer je ŮŢ >|#*}- ; ovo procedura a ne funkcija ŮŢ >|#*}- ; i nevraca nikakvu vrednost Kah-kah... Jel ovo citat A.K.-a? Nemam mnogo vremena, al je red da razjasnim neke stvari ;) RET ne vraca nikakvu vrednost, vec je to masinska instrukcija koja sa steka skida rec i smesta je u IP (programski brojac) i, eventualno, ako je poziv procedure bio "izdaleka" (tzv. FAR PTR), jos jednu rec u CS (kodni segment), i nista vise! Procesor zatim ucitava instrukciju sa adrese koja se nalazi u CS:IP (ovo se prevodi kao 16*[CS]+IP), sto ce reci da se program nastavlja iza poziva potprograma (procedure), jer su prilikom tog poziva na stek stavljene vrednosti ova dva registra. Ono nula kao parametar RET nema nikakvog smisla, verovatno je neko hteo u stilu A.K.-a da objasni (?). Taj parametar znaci da se, posle ovoga sto sam napisao, vrednost SP (stek pointera) poveca za zadat broj, sto prakticno znaci da se preskoce neki parametri koji su prosledjeni proceduri stavljanjem na stek pre njenog poziva (CALL), a koje procedura ne vraca, pa da se ne bi trosio stek dzabe... Dakle, ponavljam da nemam vremena, a robert me zeza page-ovanjem u ovom trenutku ;), parametri se standardno prosledjuju stavljanjem na stek ispred CALL, a zatim se, u proceduri, na primer, stavi na stek BP, pa se iz SP prespe u BP i doda malo, da se preskoci BP stavljen na stek i adresa iza CALL (tu treba program da se nastavi), pa ce onda BP biti pointer na parametre... Jednostavno, zar ne? E, ovaj robert stvarno... Bale
pascal.250 .bale.,
Jos nesto: ŮŢ >|#*}- end begin ako stavis ovo, program ce uvek da ti startuje od tacke BEGIN, jer je ovo direktiva za startnu tacku. To znaci da, ako hoces tu proceduru da povezes sa nekim glavnim programom, on se nikada nece izvrsiti, vec ce biti haos... Ovo samo za glavni program... Bale
pascal.251 stomic,
$ Kah-kah... Jel ovo citat A.K.-a? Nemam mnogo vremena, al $ je red da razjasnim neke stvari ;) Sorry! Ovo sam ja poslao. Napravio sam grešku slučajno!?! Inače TP vraća vrednosti u AX. Pozdrav stomic ▀▀▀▀▀▀▀▀▀▀▀▀▀▀
pascal.252 stomic,
$ Thanx a lot! $ Ali kako sad sa funkciom?? $ ?????????????????????????? Ako procedure vraća bajt, onda (nisam siguran, posle onog lapsusa sa RET 0 :-))) stavi izlaznu vrednost u AL, ako je izlaz word ili integer onda u AX. Za ostale tipove neznam. Nepravi neku funkciju u TP prevedi program, i pregledaj ga sa nekim debugom (najbolje TD, ukluči i source kod). Pokušaj da pređeš na TP 6.0, i asemblerske programe možeš glatko da pišeš u TPu. Pozdrav stomic ▀▀▀▀▀▀▀▀▀▀▀▀▀▀
pascal.253 dzakic,
>> je izlaz word ili integer onda u AX. Za ostale tipove neznam. Longint je kombinacija DX:AX; boolean je al=0 za false, bilo šta drugo za true.
pascal.254 vvelisavljev,
Mislim da je bilo to u nekoj staroj konferenciji i to za GIF format. Ukoliko ne možeš da nađeš javi pa da šaljem. pozdrav, VV
pascal.255 stomic,
$ Mislim da je bilo to u nekoj staroj konferenciji i to za $ GIF format. Ukoliko ne možeš da nađeš javi pa da šaljem. Molio bih te ako možeš da mi pošalješ. Po mogućstvu za PCX, ako ne, onda za bilo koji drugi format. Pozdrav stomic ▀▀▀▀▀▀▀▀▀▀▀▀▀▀
pascal.256 vvelisavljev,
Nema za PCX, ali zato imam za GIF. pozdrav, VV gif-pas.zip
pascal.257 hercog,
Kako da spojim moj program u pascalu za drajverom herc.bgi? Hercog
pascal.258 stomic,
$ Kako da spojim moj program u pascalu za drajverom $ herc.bgi? Jel' misliš da driver direktno povežeš sa EXE fileom, da ne bude van programa, nego u njemu? Ako je tako pogledaj demo programe (koji se dobijaju uz TP), mislim da se zovu BGILINK.PAS, BGIFONT.PAS i BGIDRIV.PAS. Pored njih treba ti i MAKE.EXE i BINOBJ.EXE da prevediš *.BGI i *.CHR u *.OBJ fileove. Ovako možeš i slova, odnosno *.CHR fileove da uključiš u svoj program. Kod mene je ovako radi OK. Ako nemaš ove programe javi pa ih šaljem. Pozdrav stomic ▀▀▀▀▀▀▀▀▀▀▀▀▀▀
pascal.259 ssokorac,
Hteo sam da napravim program koji će da uporedjuje datume dva fajla i ispiše 'isti' ili 'različiti' na koordinate koje navedem u komandnoj liniji. Konkretno, ako ga pozovem sa: C:Đ> uporedi mika.doc mika2.doc 13 7 da ispiše 'isti' ili 'rzličiti' u 7. redu, 13. koloni. Nažalost, program mi ne ardi. Šta ne valja? Napominjem da sam početnik u vezi TP <-> komandna linija i fajlovi, pa nemojte da se smejete ako ima neka glupa greška...;) Ili je sve greška...;)) program poredi_datume; uses dos,crt; var flh,fld:file; tm1,tm2:longint; tmr1,tmr2:datetime; x,y:integer; function poredjenje(file1,file2:datetime):boolean; begin poredjenje:=(file1.year=file2.year) and (file1.month=file2.month) and (file1.day=file2.day) and (file1.hour=file2.hour) and (file1.min=file2.min) and (file1.sec=file2.sec) end; procedure parametri(koorx,koory:string; var x,y:integer); var code:integer; begin val (koorx, x, code); val (koory, y, code) end; procedure jednaki(x,y:integer); begin gotoxy (y,x); writeln ('isti') end; procedure razliciti(x,y:integer); begin gotoxy (y,x); writeln ('različiti') end; begin if paramcount<>4 then halt; parametri(paramstr(3),paramstr(4),x,y); assign (flh, paramstr(1)); reset (flh); if ioresult<>0 then halt; getftime (flh,tm1); close (flh); unpacktime (tm1,tmr1); assign (fld, paramstr(2)); reset (fld); if ioresult<>0 then halt; getftime (fld,tm2); close (fld); unpacktime (tm2,tmr2); if poredjenje(tmr1,tmr2) then jednaki(x,y) else razliciti (x,y) end.
pascal.260 andrejl,
Ako te interesuju samo file-ovi različitog datuma što onda proveravaš vrednosti za sat, minut i sekundu kreiranja file-a ? Program radi ! Samo što su retke datoteke koje su nastale istog dana, iste godine, meseca, sata, minuta i sekunde. Ako ti je potrebno provera vremena izbaci proveru sekundi i program će imati nekog smisla Ako sam omašio temu (missunderstandig etc.) :) kaži bye, andrejl
pascal.261 ssokorac,
-=)> Ako te interesuju samo file-ovi različitog datuma što -=)> onda proveravaš vrednosti za sat, minut i sekundu -=)> kreiranja file-a ? Pa, to je u stvari trebalo da proverava da li su na disketi i na HD-u iste verzije tog fajla. Ako jesu - vreme će biti isto. -=)> Samo što su retke datoteke koje su nastale istog dana, -=)> iste godine, meseca, sata, minuta i sekunde. -=)> Ako ti je potrebno provera vremena izbaci proveru -=)> sekundi i program će imati nekog smisla Ovo sam već objasnio gore :) -=)> Program radi ! Pa, to sam i ja mislio, ali - neće. Javlja run-time error...:( Probaću ponovo. Hvala, Stasha. P.S. Evo, sad sam probao - radi :). Samo je izgleda greška u pozivanju iz batch fajla...O;) P.P.S. Sad sam otkrio šta ne radi! Ako pozovem uporedi.exe za celim path-om ta dva fajla javlja runtime error!!! Zašto??? :(((
pascal.262 ilazarevic,
█ da ispiše 'isti' ili 'rzličiti' u 7. redu, 13. koloni. Nažalost, █ program mi ne ardi. Šta ne valja? Napominjem da sam početnik u vezi Meni sve izgleda OK (i ja sam početnik ;) Probaj internim dibagerom u Turbo Pascalu da otkriješ gde ti brljavi, pa kad nađeš reci...
pascal.263 vbole,
> P.P.S. Sad sam otkrio šta ne radi! Ako pozovem uporedi.exe za celim > path-om ta dva fajla javlja runtime error!!! Zašto??? :((( Program je sintaksno ispravan, ako ti javlja runtime-error, onda si pogrešio u navodjenju path-a, imena programa i sl. Pošto nisi isključio prijavljivanje grešaka, funkcija ioresult ** ne može ** da ti vrati kod greške. Ubaci š$I-ć direktivu u program, pa probaj ponovo. bye... vbole P.S. Umesto šć stavi vitičaste zagrade, ofkors.
pascal.264 ssokorac,
-=)> Probaj internim dibagerom u Turbo Pascalu da otkriješ -=)> gde ti brljavi, pa kad nađeš reci... Kao što već rekoh, program radi samo neće ako ga pozovem sa punim path-om fajlova. Ako navedem samo drajv:ime.ext onda radi...:) Hm, zadovoljan sam sobom za početak...;)) Stasha
pascal.265 ssokorac,
-=)> Ubaci š$I-ć direktivu u program, pa probaj ponovo. žemu to služi? Možda je glupo - ali nemam pojam šta je to...:)
pascal.266 ssokorac,
Kako da dobijem highlited tekst? Tj. kako da sa writeln ('Stasha'); ;) dobijem highlited ispisano Stasha? Pokušavao sam sa textcolor(lightgray), textcolor(white), highvideo, ali očigledno ni jedan nije 'onaj' koji treba... Inače, imam herkules ako to nešto znači. Hvala, Stasha.
pascal.267 dejanr,
>> > Ubaci {$I-} direktivu u program, pa probaj ponovo. >> >> žemu to služi? Možda je glupo - ali nemam pojam šta je to...:) Pristup fajlu se radi ovako: {$I-} assign (ft, 'ime'); reset (ft); if ioresult<>0 then begin writeln ('Greška itd'); halt; { ili nešto drugo } end; read (ft, fv); if ioresult<>0 then begin writeln ('Greška itd'); halt; { ili nešto drugo } end; ... {$I+}
pascal.268 predragd,
> Molio bih te ako mozes da mi posaljes. Po mogucstvu > za PCX, ako ne, onda za bilo koji drugi format. U prilogu ti saljem biblioteku za rad sa PCX fajlovima. Radi samo na TP 6.0. Pedja. tppcx.arj
pascal.269 ssokorac,
ž¸Ć writeln ('Greška itd'); Hvala!
pascal.270 ssokorac,
Hm, otkrio sam kako da dobijem highlighted text...:) Moram da stavim textmode(mono); ;)) E, sad imam jedno pitanje u vezi toga: Sada taj highlighted tekst neće biti hig...itd. :) na VGA? Ili EGA, CGA...svejedno...? Kako da izvedem da, ako može, program sam neadje koji textmode treba da se eključi, pa da njega i uključi...? Hvala, Stasha.
pascal.271 djnsnd,
Osniva se grupa koja ce se baviti Turbo Vision-om Turbo Pascala 6.0 Pozivam sve zainteresovana da mi se jave. DjnSnd
pascal.272 ssokorac,
Recimo imam neki text fajl, recimo 'ss.txt' i u njemu tekst:'Bio jednom car' i hoću da ubacim izmedju 'jednom' i 'car' - 'jedan'. Kako to da izvedem u pascal programu. Takodje, recimo da upisujem u neki ss fajl: write(ss,'d'), zatim hoću da obrišem taj karakter 'd'. Kako? Ovo je verovatno (u stvari sigurno;) elementarna stvar, ali kako već rekoh - početnik sam, pa se nadam da ćete imati strpljenja...;)) Stasha
pascal.273 dejanr,
Da ubaciš u sred tekst fajla... teško. Praktično, morao bi prepisati čitav fajl u drugi, dakle (napamet kucano): assign (ulaz, 'a.txt'); assign (izlaz, 'b.txt'); reset (ulaz); rewrite (izlaz); while not eof (ulaz) do begin readln (ulaz, red); { ovde izmeniš šta treba u redu } writeln (izlaz, red); end; close (ulaz); close (izlaz);
pascal.274 stomic,
$ U prilogu ti saljem biblioteku za rad sa PCX fajlovima. $ Radi samo na TP 6.0. $ $ Pedja. Thanx! Nadam se da će biti OK. stomic.
pascal.275 stomic,
$ Recimo imam neki text fajl, recimo 'ss.txt' i u njemu $ tekst:'Bio jednom car' i hoću da ubacim izmedju 'jednom' i $ 'car' - 'jedan'. Kako to da izvedem u pascal programu. Jedino da kreiraš još jedan file u koji ćeš prepisati 'Bio jednom', pa zatim ubactiti 'jedan' pa 'car', izbrisati stari file i novi preimenovati u stari file. $ Takodje, recimo da upisujem u neki ss fajl: write(ss,'d'), $ zatim hoću da obrišem taj karakter 'd'. Kako? Isto prepisivanjem iz starog u novi file. Deluju idiotski primeri, ali ne verujem (bar ja neznam) da oveke operacije (umetanja/brisanja) mogu da se obavljaju nad datotekama. stomic
pascal.276 ilazarevic,
█ Sada taj highlighted tekst neće biti hig...itd. :) na VGA? Ili EGA, █ CGA...svejedno...? Kako da izvedem da, ako može, program sam neadje █ koji textmode treba da se eključi, pa da njega i uključi...? Pa ja mislim da hajlajtid text može da se dobije pomoću HighVideo procedure.
pascal.277 radunovic,
Probaj sa textbackground(white) ali posto obrises ekran. Tada ce samo slova koja pises biti inverzna.
pascal.278 ssokorac,
¸¸ Pa ja mislim da hajlajtid text može da se dobije pomoću ¸¸ HighVideo procedure. Ja, ja, ali mora prvo textmode(mono); I još mi niko nije rekao kako program sam da nadje koji textmode radi na kompjuteru!!!
pascal.279 ssokorac,
4¸¸ Iz readline ocita funkcijski taster i pozove neku ¸¸ proceduru , npr HELP ????????? Hm, može sa readkey, ali sa readline - ne verujem (?). Evo za readkey: program ss; uses crt; var ch:char; begin ch:=readkey; if ch=#0 then begin ch:=readkey; if ord(ch)=59 then helpproc š* konkretno za F1 *ć end end. Za F2, F3...menjaš 59 u 60,61...itd. Stasha
pascal.280 skoprivica,
>-> Hm, zadovoljan sam sobom za pocetak...;)) A sad pogledaj i kuhinju i predsoblje...
pascal.281 skoprivica,
>-> Osniva se grupa koja ce se baviti >-> Turbo Vision-om Turbo Pascala 6.0 Molim vas sve da ne idete u grupu, pricajte ovde, ja tek pocinjem sa Turbo Visionom, a mislim kad postoji tema, ne treba i grupa. Molim vas sve jos jednom, steta bi bilo... Aje... CTEBO.
pascal.282 stomic,
$ Molim vas sve da ne idete u grupu, pricajte ovde, ja tek $ pocinjem sa Turbo Visionom, a mislim kad postoji tema, ne $ treba i grupa. Molim vas sve jos jednom, steta bi bilo... Slažem se, mada sam prvo bio za grupu, a i onako TV potpuno spada u pascal, pa barem da osvežimo ovu konferenciju (nadam se :-))). Evo za početak hijerarhija objekata iz TV, kompletno je skinuta iz HELPa TPa 6.0 (verovatno će retko kome poslužiti, ali barem da imamo osnovu). TObject─┬─TCollection───TSortedCollection──TStringCollection ├─TResourceFile └─TResourceCollection ├─TStream─────┬─TDosStream─────────TBufStream ├─TStringList └─TEmsStream ├─TStrListMaker └─TView───────┬─TCluster─────────┬─TCheckBoxes ├─TFrame └─TRadioButtons ├─TGroup───────────┬─TDeskTop ├─TBackGround ├─TProgram─────TApplication ├─TButton └─TWindow────┬─TDialog ├─TStaticText──────┬─TLabel └─THistoryWindow ├─THistory └─TParamText ├─TListViewer──────┬─THistoryViewer ├─TInputLine └─TLi ├─TMenuView────────┬─TMenuBar ├─TScrollBar └─TMenuBox ├─TScroller──────────TTextDevice──TTerminal └─TStatusLine stomic
pascal.283 skoprivica,
>-> Recimo imam neki text fajl, recimo 'ss.txt' i u njemu tekst:'Bio >-> jednom car' i hocu da ubacim izmedju 'jednom' i 'car' - 'jedan'. >-> Kako to da izvedem u pascal programu. Takodje, recimo da upisujem >-> u neki ss fajl: write(ss,'d'), zatim hocu da obrisem taj karakter >-> 'd'. Kako? Mani se sekvencijalnih datoteka i radi sa record i vecina problema resena...
pascal.284 ppekovic,
>> Sada taj highlighted tekst neće biti hig...itd. :) na VGA? Ili EGA, >> CGA...svejedno...? Kako da izvedem da, ako može, program sam neadje >> koji textmode treba da se eključi, pa da njega i uključi...? Ne tvrdim da je rešenje idealno, ali probaj sa korišćenjem ANSI sekvenci! Paya
pascal.285 ssokorac,
¸¸ Probaj sa textbackground(white) ali posto obrises ekran. ¸¸ Tada ce samo slova koja pises biti inverzna. ? Ali tako slova neće biti highlited već inverse... U svakom slučaju, uspeo sam, radi highvideo, samo sa textmode(mono) pre toga... Eh, da: kako se briše ekran u tekst modu?? Ja sam napravio neku svoju proceduru cls koja izbaci ceo ekran nagore pa ostane prazan, ali sigurno ima nesto normalnije? Stasha
pascal.286 stomic,
$ Eh, da: kako se briše ekran u tekst modu?? Briše se pomoću CLRSCR, mora da bude uključena CRT biblioteka u glavni program (Uses Crt). stomic
pascal.287 vbole,
> Ja, ja, ali mora prvo textmode(mono); Ma, ne mora ništa za herkules. > I još mi niko nije rekao kako program sam da nadje koji textmode > radi na kompjuteru!!! program KojiMod; uses dos; var Regs : Registers; Mode : Byte; Display : String; begin Regs.AX:=$0F00; Intr($10, Regs); Mode:=Lo(Regs.AX); Case Mode of 0 : Display:='40x25 B / W'; 1 : Display:='40x25 Color'; 2 : Display:='80x25 B / W'; 3 : Display:='80x25 Color'; š pa idu modovi 4-6 ć 7 : Display:='80x25 Mono'; end; writeln(Display); end. Ako hoćeš da saznaš inicijalni video-mod, onda pozovi int 11h, koji u registru AX vraća podatke koji te interesuju. bye... vbole
pascal.288 ivans,
* Eh, da: kako se brise ekran u tekst modu?? ClrScr, iz unita Crt. Pozdrav, Ivans.
pascal.289 ilazarevic,
█ Sada taj highlighted tekst neće biti hig...itd. :) na VGA? Ili EGA, █ CGA...svejedno...? Kako da izvedem da, ako može, program sam neadje █ koji textmode treba da se eključi, pa da njega i uključi...? Pa ja mislim da hajlajtid text može da se dobije pomoću HighVideo procedure.
pascal.290 djnsnd,
> Molim vas sve da ne idete u grupu, pricajte ovde, ja tek > pocinjem sa Turbo Visionom, a mislim kad postoji tema, ne > treba i grupa. BTW, tema je PASCAL.
pascal.291 hercog,
Sve sam lepo uradio i povezao moj prg sa bgi-om, al sad kad startujem prg dobijem neke zbrljotine na ekranu umesto grafike. Ako startujem program u direktorijumu gde se nalazi herc.bgi onda sve radi bez pro- blema. Hercog
pascal.292 skoprivica,
>-> Evo za pocetak hijerarhija objekata iz TV, kompletno >-> je skinuta iz HELPa TPa 6.0 (verovatno ce retko kome posluziti, >-> ali barem da imamo osnovu). Moze malo teorije: Sta su objekti, metode, u cemu se razlikuju od 'obicnog' programiranja, i tako... Ukratko, posto otprilike znam... Aje... CTEBO.
pascal.293 stomic,
$ Sve sam lepo uradio i povezao moj prg sa bgi-om, al sad $ kad startujem prg dobijem neke zbrljotine na ekranu umesto $ grafike. Ako startujem program u direktorijumu gde se $ nalazi herc.bgi onda sve radi bez problema. Onda verovatno nisi nešto dobro povezao. Jer ako sve uljučiš u izvršni kod (.EXE) program više nema nikakve veze sa externim driverima. Kod mene je sve radilo OK! Uključio sam i slova i sve drievere za kartice. Radio je i na Herculesu i na CGA,EGA i VGA. Ako ne uspeš javi da ti pošaljem primer. stomic
pascal.294 skoprivica,
>->> pocinjem sa Turbo Visionom, a mislim kad postoji tema, ne >-> BTW, tema je PASCAL. Turbo Vision = objektni paskal (kao c++ i c, ne ?)
pascal.295 prvul,
Ů Turbo Vision = objektni paskal (kao c++ i c, ne ?) Ů▄▄▄ Ne! TVision je biblioteka objekata za Turbo Pascal, a C++ je programski jezik. In fact, postoji i jezik koji se zove Object Pascal (bilo ih blam da jezik nazovu Pascal:=Pascal+1 ;) ali je, naravno, TP nekompatibilan sa njim. Prvul.
pascal.296 ssokorac,
¸¸ Ne tvrdim da je rešenje idealno, ali probaj sa ¸¸ korišćenjem ANSI sekvenci! Veliko hvala! Ali...kahm...kako? ;)
pascal.298 ssokorac,
¸¸> -> Hm, zadovoljan sam sobom za pocetak...;)) ¸¸ A sad pogledaj i kuhinju i predsoblje... žekaj, još nisam toliko napredovao...
pascal.299 stomic,
$ Moze malo teorije: Sta su objekti, metode, u cemu se $ razlikuju od 'obicnog' programiranja, i tako... Ukratko, $ posto otprilike znam... Evo ovako (mada nisam ni ja nešto naročito iskusan): Objekat je grupa procedura, funkcija (koje se nazivaju metode) i promenljiva koje rešavaju neki zadatak. Objekte naravno možeš i ti kreirati, a možeš i koristiti već gotove. Tvoj objekat može da nasledi, neki predhodni, već definisani objekat. Pod nasleđivanjem podrazumevam da primi sve njegove procedure,funkcije i varijable. Taj novi objekat će biti isti kao stari, ali ti možeš dodavati nove procedure, funkcije i varijable. U novom objektu možeš i menjati metode (dodavati novi kod) koje si nasledio a možeš i kreirati potpuno novu metodu. Prednost je što problemu pristupaš "prirodnije" (što mrzim ovu definiciju). Npr: Praviš grafički program, osnovni objekat će ti biti TAžKA, koja će imati proceduru za crtanje i dve promenljive X i Y, koje će označavati kordinate tačke. Sledeći objekat LINIJA, će naslediti objekat TAžKA jer se sastoji iz tačaka (prirodno!), a dodaćeš nave promenjljive X1,Y1,X2 i Y2 koje će označavati početak/ kraj linije i novu proceduru, koja će iscrtavati liniju, pozivajući za svaku tačku proceduru iz objekta TAžKA koja crta tačku. Sledeći objekat KRUG će naslediti objekat TAžKA dodati novu promenljive X,Y i R za određivanje centra i radijusa kruga i proceduru za iscrtavanje kruga. E sada, objekat PRAVOUGAONIK će naslediti objekat LINIJA (a ne TAžKA), jer se sastoji iz četiri linije. I tako se postupno pravi program počinjući od najprostijeg oblika (u našem primeru TAžKA), i nasleđivanjem i dodavajuć nove procedure grade se novi složeniji oblici. Inače metodama iz nekog objekta pristupaš pomoću: IME_OBJEKTA.IME_METODE, npr. (za crtanje tačke). TACKA.NACRTAJ(20,30), ili TACKA.X:=20; TACKA.Y:=30, itd... Ovo lepo, zvuči ali kakva je razlika između UNITa i objekata? I u UNITima ima neka vrsta nasleđivanja (Uses), imaš i procedure i promenljive u svakom UNITu, možeš da dodaješ nove, ... Evo je bio maloooooooooo duži odgovor. Ako ima grešaka, voleo bih da me neko ispravi, jer ni sam nisam siguran sa OOPom. stomic
pascal.300 macak,
█ Ako ne uspes javi da ti posaljem primer. Mogao bi ovde da ga ubacis...imam i ja nekih problemcica sa tim.
pascal.301 nbatocanin,
> Prednost je ëto problemu pristupaë "prirodnije" Osim ovoga, OOP znaüajno pojednostavljuje program, poveäava üitljivost programa, omoguäuje jednostavnije odrćavanje i nadgradnju, smanjuje zavisnost izmedju delova programa, itd. U svakoj knjizi o OOP-u bar 30% je ispunjeno prednostima nad klasiünim metodama. > Ovo lepo, zvuüi ali kakva je razlika izmeöu UNITa i > objekata? I u UNITima ima neka vrsta nasleöivanja (Uses), > imaë i procedure i promenljive u svakom UNITu, moćeë da > dodajeë nove, ... UNIT-i su napravljeni po analogiji sa modulima u Moduli i sluće da "izdele" tekst programa na razumljive i lake za odrćavanje celine. Pri tome UNIT koristi za komunikaciju sliüan sistem kao i objekti, zato ëto se radi o izuzetno efikasnoj i jednostavnoj komunikaciji. Skraäeno reüeno, UNIT se za vreme izvrëavanja zaista ponaëa kao statiüki objekat, ali nema sve osobine koje imaju objekti. Na primer, ne moće se dinamiüki kreirati i sl. Objekat se definiëe kao novi tip podataka (recimo, uopëteni slog), pa se kasnije mogu definisati promenljive (znaüi, viëe njih) tog tipa. Naravno, moće se naäi joë razlika. Mislim da je najvaćnije kod OOP-a da ljudi saznaju ëta je to. Jer, svi mi manje ili viëe zaziremo od raznih komplikacija, pa ma kakvu korist donosile. Treba reäi da OOP *nije* neka nadgradnja nad standardnim programima koja äe vam program u startu poveäati za X kb, a "dobiäete to i to". Radi se prvenstveno o novoj ORGANIZACIJI programa. Moram da priznam da sam i ja pripadao skepticima kad sam prvi put üuo za OOP. Sad kada sam provalio ëtos, mogu samo da vam kaćem: uüinite neëto za sebe - probajte OOP! Na teorijska razmatranja ne morate da obraäate paćnju: OOP je neëto izuzetno praktiüno i korisno. Mislim da je to najveäa revolucija u programiranju posle uvoöenja procedura. Pozdrav, Nenad
pascal.302 sslavko,
Zdravo, evo uz poruku jedan unit sa funkcijama za kontrolu miša u tekstualnom režimu. Za jednostavnije programe je izuzetno upotrebljiv. Na raspolaganju su vam sledeće procedure i funkcije: function mis_install:boolean; vraća TRUE ili FALSE u zavisnosti od toga da li je drajver za miša instaliran ili nije. procedure mis_granica(minx,miny,maxx,maxy:integer); ograničava kretanje kursora miša na prozor određen sa minx,miny (gornji levi ugao), maxx i maxy (donji desni ugao). function mis_taston(tast:byte):boolean; vraća TRUE ili FALSE u zavisnosti da li je pritisnut određeni taster na mišu. Tasteri su: 1:levi; 2:desni 3:levi i desni zajedno 4:srednji Dakle, if mis_taston(1) then... znači ako je pritisnut levi taster.... function mis_tastoff:boolean; vraća TRUE ili FALSE u zavisnosti da li su SVI tasteri otpušteni. procedure mis_kurson; aktivira text kursor miša. procedure mis_kursoff; gasi text kursor miša. procedure mis_xy(var x,y:integer); vraća trenutnu poziciju kursora miša u promenljivim x i y. procedure mis_set(x,y:integer); podešava poziciju kursora miša na koordinate x i y. procedure dos_kurson; uključuje standardni DOS text kursor. procedure dos_kursoff; isključuje standardni DOS text kursor. Nadam se da će vam ovaj UNIT biti dovoljna pomoć da ukrotite vašeg pacova. pozdrav Slavko. mouse.tpu
pascal.303 ssokorac,
:> Ma, ne mora ništa za herkules. Kako? Meni neće da radi ako ne stavim textmode(mono)?! :> program KojiMod; Hvala ti veliko!
pascal.304 ssokorac,
:> ClrScr, iz unita Crt. Eh, a ja u help-u tražio CLS, CLE..., DEL..., ERASE... :) Nisam tražio pod CLR... :( Hvala.
pascal.306 ppekovic,
>>> ->> pocinjem sa Turbo Visionom, a mislim kad postoji tema, ne >>> -> BTW, tema je PASCAL. >> >> Turbo Vision = objektni paskal (kao c++ i c, ne ?) Samo napred sa porukama o TV-u, niste pogrešili temu! Paya
pascal.309 ppekovic,
>> Ne tvrdim da je re{enje idealno, ali probaj sa >> kori{}enjem ANSI sekvenci! >> >> Veliko hvala! Ali...kahm...kako? ;) Na C-u bi to islo ovako: #include <stdio.h> main() { printf("NORMAL \033[7m INVERSE \033[0m NORMAL\n"); } Dakle, sekvenca je Esc[<attr>m gde je za inverzni prikaz attr 7 a za normal 0. Za ostale vrednosti atributa, potrazi po conf. ostavljene su na xx mesta ANSI Esc sekvence. Paya
pascal.310 ssokorac,
:> je to najveäa revolucija u programiranju posle uvoöenja :> procedura. Pa, izgleda da će morati da se proba...;) Šteta što ne postoje objekti za SET CODE...;)))
pascal.311 ssokorac,
:> Nadam se da će vam ovaj UNIT biti dovoljna pomoć da :> ukrotite vašeg Hej, pa ovo je super! To je upravo ono što mi je trebalo! Hvala!!! Stasha
pascal.312 ssokorac,
Kako se u konkretnom primeru izvršava komanda EXEC? <ne na Sezamu ;) >. Ja sam pokušavao gledajući help i primer u helpu da napravim kratak program koji startuje TETRIS, ali ne ide. Direktorijum je, recimo, c:ĐigreĐtetris.
pascal.313 ssokorac,
Hm, ako sam bio nejasan, kako s─e KORISTI komandč EXEC a ne kako se izvršava... :)
pascal.314 ssokorac,
Meni TP 6.0 jaf│lja incorect file format za mouse.tpu...:( Je l' to razlicita verzija TP-a, ili....? Ako jeste, ajde posalji source, pa da kompaj¤ŞŐ┤liram sam... OK?
pascal.315 nesavic,
Evo opet mene sa malo vremena, bilo bi mi drago da je sistem snimi moju poruku prethodnu kada me iskljucio, ali sto se tice TPUÚ filea nemozes nista jer ti upravo source i treba, mrzim PTT, ali sta da se radi, sto se tice EXEC funkcije bitno je na pocetku rezervisati memoriju sa direktivom š$M br,br,brć gde br predstavlja velicinu stacka, minimum heapa i maximum heapa koji startovani program moze da koristi, bez te direktive EXEC procedura nece raditi... Bitno je i navesti COMSPEC specifikaciju koja vraca vas komandni interpreter tj COMMAND.COM koji se mora izvrsiti po startovanju novog programa... Sad ovo pisem napamet ali mislim da je znam celu kako izgleda! EXEC(getenv('COMSPEC'),'/C' + Command); getenv... vraca COMMAND.COM, '/C' daje direktivu COMMANDu da se posle izvrsacvanja programa vrsi povratak u stari program tj. gubi se i napunjeni COMMAND.C#M, i na kraju Co▀mmand je KOMANDA kako joj ime kaze koja pretstavlja najobicniju komandu DOSa pa tako i poziv programu ce biti prepoznat...! Isto tako vazno je pre EXEC izvrsiti SwapVectors koja TPove INTove ustupa novom programu tj. komandi i kasnije ih vratiti na staro mesto opet sa procedurom SwapVectors... Za sve ove procedure i mnogo toga mozete da me pitate na Velcomu gde sam Úmoderator PASCAL ko_Ěferencije ovo ponavljam a mozda i ne jer me sistem proslog puta iskljucio pa neznam da li mi je snimio poruku, znaci na Velcomu postavite pitanje Nenadu Mijailovicu D▀octoru za Pascal, bice reci i o TVISIONu koji pretstavlja novi OOP vid proramiranja koji opet pretstavlja veliko poboljsanje a negde su i izgubljene neke stare dobre i lepe procedure najobicnijeg programiranja... NeŠa!
pascal.316 sslavko,
>> Hm, otkrio sam kako da dobijem highlighted text...:) >> Moram da stavim textmode(mono); ;)) Dovoljno ti je da staviš textcolor(15). Time ćeš imati beli highlighted boju slova. Za neku drugu boju probaj textcolor(16),(17)...
pascal.317 sslavko,
>> Kako da dobijem highlited tekst? Tj. kako da sa writeln >> ('Stasha'); ;) dobijem highlited ispisano Stasha? Probaj sledeće: uses crt; var i:integer; begin ClrScr; for i:=1 to 255 do begin textcolor(i); write('Stasha') end end. pa ćeš videti šta sve možeš da dobiješ. Pozdrav Slavko.
pascal.318 sslavko,
>> Recimo imam neki text fajl, recimo 'ss.txt' i u njemu >> tekst:'Bio jednom car' i hoću da ubacim izmedju 'jednom' >> i 'car' - 'jedan'. Kako to da izvedem u pascal programu. >> Takodje, recimo da upisujem u neki ss fajl: >> write(ss,'d'), zatim hoću da obrišem taj karakter 'd'. >> Kako? Nešto slično sam i ja skoro pitao. Pogledaj malo starije poruke( od pre mesec-dva) pa ćeš videti par veoma zanimljivih odgovora. Pozdrav Slavko.
pascal.319 sslavko,
>> Hej, pa ovo je super! To je upravo ono što mi je trebalo! >> Hvala!!! Nema na čemu. :)))) Pozdrav Slavko.
pascal.320 sslavko,
>> Meni TP 6.0 jaf│lja incorect file format za >> mouse.tpu...:( Je l' to razlicita verzija TP-a, ili....? >> Ako jeste, ajde posalji source, pa da kompaj¤ŞŐ┤liram TP 5.5. Niam probao na TP 6.0 ali ako ne radi oda ću poslati i source. Pozdrav Slavko. mouse.pas
pascal.321 ilazarevic,
█ Pozdrav, Nenad Molim te da staviš nekakav kod, poludeh od onih a sa kružićem i e sa tačkicama :)
pascal.322 hercog,
**> CGA,EGA i VGA. Ako ne uspeš javi da ti pošaljem primer. Uradio sam slededće Sa binobj sam sve bgi preveo u obj. Zatim sam pomoću driver.pas to preveo u driver.tpu, a zatim sam iskompajlirao moj program u koji sam ubacio deo iz bgilink.pas koji služi za inicijalizaciju grafike. Sve se lepo završilo, al kad startujem moj program na ekranu dobijem samo neke zbrljotine. Ako taj program startujem u direktorijumu gde se nalazi herc.bgi radi bez problema. Zato šalji primer. Hercog
pascal.323 dzakic,
>> Kako se u konkretnom primeru izvršava komanda EXEC? <ne na >> Sezamu ;) >. Ja sam pokušavao gledajući help i primer u helpu da >> napravim kratak program koji startuje TETRIS, ali ne ide. Pretpostavljam da nisi koristio $M direktivu... Pogledaj još jednom primer u helpu pa vidi da li si sve uradio kao tamo.. { $M 1024,0,0 } exec('d:\path\file.ext','parametri');
pascal.324 macak,
Ne secam se koja bese poruka... NijeÚ] ni vazno.Uglavnom na mono monitoru kad ubacis kombinaciju TEXTCOLOR(8);TEXTBACKGROUND(15); dobijes inverzna slova (crno na svetloj pozdini). Ne znam da li ce ovo da upali i na VGA.Probaj nesto trivijalno uses crt; begin textcolor(8); textbackground(15);Ú] writeln('bezveŚze'); end.
pascal.325 stomic,
Da li je neko pokušao da piše neki kraći (ASCII) tekst pomoću TVEDIT, (nalazi se u demo programima za Turbo Vision). Kucanje traje OK, posle nekog vremena mi se blokiraju neki tasteri (mislim par tastera sa brojevima, itd...). Jel' zna neko kako da se reši problem, jer je editor vrlo dobar, jedino što ima limit od 64Kb po tekstu. stomic
pascal.326 stomic,
$ u direktorijumu gde se nalazi herc.bgi radi bez problema. $ Zato šalji primer. Pogledaj primere BGILINK je glavni program i UNITi BGIDRIV (za kartice) i BGIFONT (za fontove), koji se uključuju u glavni program. Analiziraj ih trebalo bi da bude OK!. Za svaki slučaj ti ih šaljem uz ovu poruku. Tu je i .MAK (make) file sa kojim možeš da sklopiš automatski (sa MAKE.EXE) ceo program. Analiziraj sve to pa ako opet budeš imao problema javi. stomic bgilink.zip
pascal.327 ssokorac,
U vezi mouse.tpu-a...:) Kako da dobijem neki lepši kursor od one obične treptajuće crte...? Ako može, naravno... Stasha
pascal.328 ssokorac,
:> š $M 1024,0,0 ć Nisam ovo stavio... hvala, i tebi i sslavku. Jedno pitanje u vezi toga: Ako hoću da startujem Windows iz programa, pa mi treba sva raspoloživa memorija (skoro sva:), da li nekakko može da se program swap-uje, ili nešto srugo, tek da ne stoji svo vreme u memoriji? I ako može, naravno, kako?
pascal.329 dejanr,
>>da li nekakko može da se program swap-uje, ili nešto srugo, tek da ne >> stoji svo vreme u memoriji? I ako može, naravno, kako? Pogledaj datoteku uz poruku 9.24 u konferenciji PC.SOFT.
pascal.330 obren,
> Pogledaj datoteku uz poruku 9.24 u konferenciji PC.SOFT. Hvala na obaveštenju! I ja sam ovo odavno tražio, ali sam mislio da je štos upotreba nedokumentovane funkcije 4B04h. U stvari ono rešenje koje je poslao taj sa bix-a radi lepo, međutim mislim da može i kraće. Treba malo pogledati kako to radi Turbo C, on ima uz funkcije SPAWN mogućnost da novi program potpuno zameni stari, ali koliko se sećam, a odavno sam to gledao, poziva funkciju 4Bh podfunkciju 04 (nedokumentovana je, što pravi problem oko potrebnih parametara). P.S. U onoj konferenciji PC.SOFT, ima lepih stvari! Mogao bi neko ko se seća da napiše šta još ima tako lepo tamo. Bar neke krupnije probleme koji su rešavani, jer ne mogu da DL celu konferenciju da bih je pogledao.
pascal.331 ilazarevic,
█ Kako se u konkretnom primeru izvršava komanda EXEC? <ne na █ Sezamu ;) >. Ja sam pokušavao gledajući help i primer u helpu da Recimo, ovako: SwapVectors; Exec(getenv('COMSPEC'),'/C c:ĐigreĐtetris'); SwapVectors; Pre tog poziva mora da se pozove instrukcija $M koja odvaja definisanu količinu memorije za stek i definiše min i max za heap.
pascal.332 vvelisavljev,
Jel ima neko yu fontove (*.chr) za turbo pascal ? Ili još bolje ako ima neki font editor ili font konvertor pomoću koga se mogu dobiti yu fontovi. pozdrav, Viktor !
pascal.333 dzakic,
>> Pre tog poziva mora da se pozove instrukcija $M koja odvaja žisto terminologije radi: $M nije instrukcija već direktiva kopmpajleru kakav kod da generiše. Zato se i piše u vitičastim zagradama. Ako je nema u sorsu, može da se podesi preko menija u integrisanoj okolini.
pascal.334 dnikolic,
>> Ne! TVision je biblioteka objekata za Turbo Pascal, Postoji i TV za C++. dn
pascal.335 skoprivica,
Kako da iz programa vratim errorlevel ?
pascal.336 stomic,
$ Kako da iz programa vratim errorlevel ? Halt(B: Word); Gde je B broj ErrorLevel-a, ako se izostavi podrazumeva se ErrorLevel=0. Evo sada i jedno pitanje. Zašto u HELPu za TP piše da parametar HALTa je tipa Word (znači od 0..65535), a inače to je funkcija dos interrupta 21h (AH=4Ch), a u AL se stavlja ExitCode (odnosno ErrorLevel), AL je Byte (0..255)! Jel' to TP poziva neki drugi interrupt za prekid programa, ili je greška u HELPu (nedaj bože kompajleru)? stomic
pascal.337 dragisha,
ű> Pri tome UNIT koristi za komunikaciju sliüan sistem kao i ű> objekti, zato ëto se radi o izuzetno efikasnoj i ű> jednostavnoj komunikaciji. Skraäeno reüeno, UNIT se za ű> vreme izvrëavanja zaista ponaëa kao statiüki objekat, ali ű> nema sve osobine koje imaju objekti. Na primer, Ne bas. Navodjenje nekog Unit-a u Uses direktivi uvoze se svi njegovi elementi (da ne kazem objekti) i poslije toga lako dolazi do kolizija u davanju imena. Moduli u Moduli-2, a isto i objekti, koriste kvalifikovani pristup (analogno pristupu pojedinim poljima slogovne varijable). ű> obraäate paćnju: OOP je neëto izuzetno praktiüno i ű> korisno. Mislim da je to najveäa revolucija u ű> programiranju posle uvoöenja procedura. Objektno programiranje je, slicno strukturiranom programiranju u njegovo doba, ustvari samo novi vid organizacije koda. Ono sto je vazno u programiranju (za OOP pogotovu) je da se pojedini dijelovi prave tako da sto 'kontrolisanije' komuniciraju sa okolinom. To zovu 'slaba veza', a znaci da se pojedinom objektu (ili Modulu u Moduli-2) pristupa samo u strogo kontrolisanim tackama. ... dragisha
pascal.338 djnsnd,
> Recimo, ovako: > > > SwapVectors; > Exec(getenv('COMSPEC'),'/C c:ĐigreĐtetris'); > SwapVectors; > > Pre tog poziva mora da se pozove instrukcija $M koja > odvaja definisanu količinu memorije za stek i definiše min > i max za heap. Ako radiš u TV to nije dovoljno. Potrebno je nešto ovakvo: DoneSysError; DoneEvents; DoneVideo; DoneMemory; SetMemTop(HeapPtr); SwapVectors; Exec(Str1, Str2); SwapVectors; SetMemTop(HeapEnd); InitMemory; InitVideo; InitEvents; InitSysError; Redraw; Našao sam to u nekom listingu. DjnSnd
pascal.339 djnsnd,
Da li neko može da mi objasni ograničenja koja Borland uvodi korisnicima (copyright) pri upotrebi delova Demo programa. DjnSnd
pascal.341 predragd,
> Da li je neko pokusao da pise neki kraci (ASCII) tekst > pomocu TVEDIT, (nalazi se u demo programima za Turbo > Vision). Kucanje traje OK, posle nekog vremena mi se > blokiraju neki tasteri (mislim par tastera sa brojevima, > itd...). Da bi resio taj problem trebao bi da nabavis fajl EDITOR.PAT, koji se nazalost nalazi (koliko sam ja uspeo da razumem) na BIX-u. Ako uspes da dodjes do tog fajla ne bi bilo lose da ga posaljes. Ovo isto mozes da procitas u poruci 9.136 u staroj konferenciji PC.SOFT. Pedja.
pascal.342 predragd,
Zdravo Evo i jedno konkretno pitanje na temu TV. Zna li neko kako se radi sa TListBox objektom. Naime, ono sto mene interesuje je kako da dobijem na izlazu iz ovog dialog-a podatak u listi koji sam selektovao. Npr: u objektu TFileDialog selektojemo odredjeni fajl pritiskom na ENTER ili duplim klikom na misa. Na izlazu se dobije ime fajla koji smo izabrali. Kako doci do toga. U originalnom uputstvu, naravno, gotovo nista ne pise o TListBox objektu. Pozdrav, Pedja.
pascal.343 predragd,
> Jel ima neko yu fontove (*.chr) za turbo pascal ? > Ili jos bolje ako ima neki font editor ili font konvertor > pomocu koga se mogu dobiti yu fontovi. U prilogu ti saljem font editor za .CHR fontove. YU fontove bi mogao eventualno da nadjes u programu QUATRO PRO 3.01. Uz program se dobije i disketa sa nasim fontovima (8 fontova, uz napomenu da je program sigao direktno od MARAND-a). Mogao bih eventualno da ti posaljem te fontove, ali tek kroz dve nedelje. Pedja. bgifont.arj
pascal.344 djelovic,
> Postoji i TV za C++. Ima li ga ko?
pascal.345 djnsnd,
U uputstvima za TPas pise da je rad sa typed i untyped datotekama mnogo brzi nego rad sa tekstualnim datotekama. Da li neko ima prakticna iskustva kolika je razlika? Dejan
pascal.346 djnsnd,
U Programer's Guide i Library Reference uputstvima TP (uz par nedoslednosti) pise da se procedura Append (za nastavak upisivanja u datoteku) moze primenjivati samo na tekstualne, a ne i na ostale (typed i untyped ) datoteke. Da li postoji nacin da se nastavi sa upisivanjem u ranije formirane datoteke ova dva tipa? Dejan
pascal.347 djnsnd,
Da li neko zna ko je sada diler Borlanda za YU? Znam da je (pre rata) to bio Marand. Poslednju poruku od njih sam dobio pre par meseci. Posto mi ne odgovara da placam u tolarima, da komuniciram iskljucivo na slovenackom, da se maltretiram sa postanskim vezama sa Slovenijom i sl. predlazem da svi registrovani korisnici sa Sezama napisu pismo ili potpisu peticiju (dogovoricemo se naknadno) u kojoj bi trazili da se odredi novi zastupnik za YU (ili Srbiju). Posto ovo nije mesto za ovakve razgovore (tema je Pascal), pozivam sve zainteresovane, registrovane korisnike TP ili TP4Win da mi se jave pa da se prebacimo u grupu. Posto se mi korisnici TP dogovorimo izacicemo sa predlogom i pred ostale korisnike (BC++, TC, TA, Quatro, Paradox ...) DjnSnd Dejan
pascal.348 djnsnd,
Ja sam registrovani korisnik Turbo Pascala, pa imam svu literaturu koja se dobija u paketu. Ipak, voleo bih da nadjem jos neke specijalizovane knjige na engleskom (ili nasem jeziku) prvenstveno o Turbo Viziji i eventualno o objektnom programiranju u Turbo Pascalu. Da li neko ima ili je mozda video neku takvu knjigu?
pascal.349 hercog,
**> program. Analiziraj ih trebalo bi da bude OK!. Za svaki **> slučaj ti ih šaljem uz ovu poruku. Tu je i .MAK (make) **> file sa kojim možeš Ajd ti to pošalji još jednom jer ima grešku u zip fajlu Hercog
pascal.351 dejanr,
>> U uputstvima za TPas pise da je rad sa typed i untyped datotekama mnogo >> brzi nego rad sa tekstualnim datotekama. Moje iskustvo je da je rad sa tekst datotekama dovoljno brz (naročito ako koristiš settextbuf i dodeliš dovoljno memorije za bafer). Naravno, najbrži pristup je sa blockread/blockwrite pošto tako direktno zoveš DOS. Ono što je katastroflano sporo je, ako na primer treba da čitaš slovo po slovo, koristiš ime: file of byte; ... while not eof(ime) do read (ime, podatak;
pascal.352 dejanr,
>> Da li postoji nacin da se nastavi sa upisivanjem u ranije formirane >> datoteke ova dva tipa? Naravno! Ovako napamet, možeš da uradiš reset (ime,1), onda seek(ime,dužina) i onda prosto (block)write (ime, podatak...). Dužinu saznaš funkcijom koja se, mislim, zove filesize.
pascal.353 dejanr,
Zna li neko kako se na turbo paskalu može simulirati seek (datoteka, adresa) ako je datoteka tipa text? (pretpostavljam da ne može nikako, al' ko zna?
pascal.354 skoprivica,
>-> Da li neko moze da mi objasni ogranicenja koja Borland uvodi >-> korisnicima (copyright) pri upotrebi delova Demo programa. Mislim da nema ogranicenja, kao ni za .bgi i sl... Aje... CTEBO.
pascal.355 ilazarevic,
█ žisto terminologije radi: $M nije instrukcija već direktiva █ kopmpajleru kakav kod da generiše. Zato se i piše u vitičastim Eh, bože moj, teminologija mi nikad nije bila jača strana ;)
pascal.356 stomic,
$ Ne bas. Navodjenje nekog Unit-a u Uses direktivi uvoze se $ svi njegovi elementi (da ne kazem objekti) i poslije toga $ lako dolazi do kolizija u davanju imena. Moduli u $ Moduli-2, a isto i objekti, koriste kvalifikovani pristup $ (analogno pristupu pojedinim poljima slogovne varijable). Nisam siguran da li si mislio na ovo ali i TP omogućava npr. Crt.TextColor(Yellow) za postavljanje žite boje, ako imate istu proceduru u glavnom programu, ili nekom unitu, a želite da pozovete tu proceduru iz CRT unita, onda koristite ovo, a ako ne, onda samo TextColor stomic
pascal.357 stomic,
$ Da li neko može da mi objasni ograničenja koja Borland $ uvodi korisnicima (copyright) pri upotrebi delova Demo $ programa. Mislim da nepostoji nikakvo ograničenje prema korisnicama, jer su dali i izvorni kod (većine programa), i sada da nas ograniče nekim CopyR. U svakom slučaju možeš uzeti deo prepisati (malo izmeniti) da ne bude totalno prepisan. Nisam siguran ali smatram da nema smisla uvoditi neke zaštite (možda na cele demo programe, ali i to teško, kada su već davali source kod). stomic
pascal.358 stomic,
$ Da bi resio taj problem trebao bi da nabavis fajl $ EDITOR.PAT, koji se nazalost nalazi (koliko sam ja uspeo $ da razumem) na BIX-u. Ako uspes da dodjes do tog fajla ne $ bi bilo lose da ga posaljes. Ovo isto mozes da procitas u $ poruci 9.136 u staroj konferenciji PC.SOFT. Ako neko ima pristup BIXu (Dejane?), ako može da mi skine ovaj EDITOR.PAT, ili da li ga ima negde na exYU BBSovim? Uopšte šta radi taj file (malo čudna ekstenzija). Da li neko zna gde je greška u programu (pošto je dat izvorni kod, pa da ispravimo, video sam da ima dosta delova pisanih u asembleru)? stomic
pascal.359 stomic,
$ Zna li neko kako se na turbo paskalu može simulirati seek $ (datoteka, adresa) ako je datoteka tipa text? $ (pretpostavljam da ne može nikako, al' ko zna? Neverujem da ima šanse. Bilo bi lepo napraviti ASCII editor koji ne učitava tekst u memoriju, već radi sa diskom, liniju po liniju (neverujem da bi bilo suviše sporo), pa kako pomeraš kursor(gore/dole), čitaš i file pomoću SEEK/READ. Jedino što mi pada na pamet da se ASCII datoteka pretvori u File of Rec, gde je Rec = Record Text: String[LineLength]; End; Pa da iz ASCII datoteke prvo prepišemo sve u ovu, novu datoteku, pa posle nazad. Ali izgleda malo glupo, a i mislim da bi bilo sporo! OK? stomic
pascal.360 stomic,
$ Kako doci do toga. U originalnom uputstvu, $ naravno, gotovo nista ne pise o TListBox objektu. Nisam siguran da li ovo tražiš, ali pokušaj sa SetData(Ver Rec), gde je Rec varijabla (ili slog, Record), pa posle sa GetData(Ver Rec), uzmi izmenjene podatke. stomic
pascal.361 stomic,
$ Ajd ti to pošalji još jednom jer ima grešku u zip fajlu Evo stiže! žudime da je bilo grešaka u ZIP fileu. Ako budeš imao (još) problema javi. OK? stomic bgilink.zip
pascal.362 dejanr,
>> > Da li neko moze da mi objasni ogranicenja koja Borland uvodi >> > korisnicima (copyright) pri upotrebi delova Demo programa. >> >> Mislim da nema ogranicenja, kao ni za .bgi i sl... Ima ograničenja. Program uz koji isporučujete/u koji ugradite BGI, CHR i slične fajlove mora biti pod kopirajtom. Dakle, ili u njemu mora biti poruca (C) 199x Pera Perić, ili ako to iz nekog razloga ne želite, onda u njemu mora biti poruka "delovi ovog programa su (C) Borland inc)". Sve to je vrlo detaljno prožvakano u licenci koja ide uz Borlandove jezike
pascal.363 ognjan,
Ovdje je*e lud zbunjenog. Neka mi neko otkrije gdje je greška ili XRD TP. ( znam da je nešto glupo ali nekontam ... ) program space_to_tab; var ime:string[12]; buffer:string[80]; f1,f2:text; rc:char; pos,zpos,zbroj,i,j:integer; flag:boolean; procedure novo_ime; var t,l:Byte; imebak:string[12]; begin imebak:=ParamStr(1); t:=Pos ('.',imebak); l:=Length(imebak); if t>0 then begin Delete (imebak,t+1,l-t); Insert ('BAK',imebak,t+1); end else Insert ('.BAK',imebak,l+1); Assign(f,ParamStr(1)); Rename (f,imebak); WriteLn ('Rename ',ParamStr(1),' to ',imebak); end; begin if paramcount=0 then begin poruka; halt; end; novo_ime; {$I-} assign(f1,paramstr(1)); reset(f1); if ioresult<>0 then begin writeln('Trazena datoteka nije pronadjena '); halt; end; {$I+} assign(f2,ime); rewrite(f2); if paramcount>=2 then parametri else begin zpos:=1; zbroj:=2; end; repeat read(f1,rc); if ord(rc)=13 then pos:=1; if ord(rc)=32 then begin if pos>=zpos then begin flag:=true; i:=0; repeat i:=i+1; pos:=pos+1; read(f1,buffer[i]); if ord(buffer[i])<>32 then flag:=false; until((i<zbroj) and flag); end; end; if flag then write(f2,chr(7)) else begin for j:=1 to i do write(f2,buffer[j]); end; until EOF(f1); close(f1); close(f2); end.
pascal.364 dejanr,
>> > Zna li neko kako se na turbo paskalu može simulirati seek >> > (datoteka, adresa) ako je datoteka tipa text? >> > (pretpostavljam da ne može nikako, al' ko zna? >> >> Neverujem da ima šanse... Jedino što mi pada na pamet da se >> ASCII datoteka pretvori u File of Rec Da se razumemo, ja sam problem koji izlažem rešio tako što sam napravio nekakav unit FileOps koji radi sa "untyped" fajlovima (preko blockread/blockwrite) a simulira rad sa tekstom, dakle ima čitanje linija, baferiše čitanje i tako to. Radi onoliko brzo koliko rade tekst fajlovi (pa i nešto brže), može sve što i (katastrofalno spor) pristup sa file of byte uračunavajući i seek i tako to. Taj unit koristim već godinama kada mi treba rad sa velikim tekst datotekama, ali sve nešto računam, možda ima i neki "sistemski" način. Najzad, za DOS je i datoteka tipa text obična binarna datoteka, a na raspolaganju je njen handle... možda bi se nešto dalo "smutiti"? Ako ne, nema mi druge nego da jednom sednem i pišem FileOpsTheNextGeneration, jer sam valjda za ovih 5 godina otkad sam napisao stari FileOps ponešto naučio ;)
pascal.365 nboskovic,
*> program sigao direktno od MARAND-a). Mogao bih eventualno *> da ti posaljem te fontove, ali tek kroz dve nedelje. Ajde mejluj i mene a kada...pa čim ti se ukaže prilika. Unapred hvala. (c) klap nikola
pascal.366 skoprivica,
>-> Mislim da nepostoji nikakvo ogranicenje prema >-> korisnicama, jer su dali i izvorni kod (vecine programa), >-> i sada da nas ogranice nekim CopyR. U svakom slucaju mozes >-> uzeti deo prepisati (malo izmeniti) da ne bude totalno prepisan. A i onako TV programi lice jedan na drugog (Alt-x i slicne stvari) Aje... CTEBO.
pascal.367 vbole,
> Zna li neko kako se na turbo paskalu može simulirati seek (datoteka, > adresa) ako je datoteka tipa text? (pretpostavljam da ne može nikako, > al' ko zna? Eh, moj majstore, a ja tvoj umetak 'Turbo Pascal 4.0' držim na polici, zbog sintakse... Stvarno mi to nije nikad palo na pamet, zašto hoćeš da se na taj način šetaš po Text-datoteci ? U svakom slučaju, malo sam se igrao i evo ga program za testiranje i u njemu ( šta bi moglo biti ?? ) - procedura koja postavlja pointer na zadatu adresu u fajlu. Ako postaviš pointer iza kraja datoteke, nema greške, dobijaš - ništa. Isto to dobijaš ako se postaviš na CR.Ako se postaviš na LF, biće učitan LF i sledeći red.To važi za ovaj način učitavanja, ako na početku dekla- rišeš dužinu Linije, učitava se length(Linija) bajtova, ali opet najviše do kraja linije u fajlu.Uostalom, to i sam znaš, evo ga source ispod. Ako u CX:DX staviš 0, a u al 2, možeš da saznaš dužinu fajla, što je kod tipa text malo teže. Ajd' javi mi stvarno zašto ti to treba i kako računaš adresu a da ne pogodiš u CR. program filepntr; uses dos; var Infile : text; Imefajla, Linija : string; Regs : Registers; gde, poz : real; procedure setpointer(gde : real); begin reset(Infile); (* Pointer na početak fajla *) Regs.ah:=$42; (* MS-DOS funkcija 42h *) Regs.al:=0; (* Počni od početka + Offset *) Regs.bx:=5; (* Broj Handle ako je prvi fajl *) Regs.cx:=round(int(gde/65536)); (* Offset High *) Regs.dx:=trunc(gde-(Regs.cx*65536));(* Offset Low *) MsDos(Regs); (* Pozovi DOS-funkciju *) end; begin if paramcount>1 then begin writeln('Samo jedan parametar !'); halt; end; Imefajla:=paramstr(1); (* Imefajla:='double.pas'; *) š$I-ć assign (Infile,Imefajla); reset (Infile); if ioresult<>0 then begin writeln('Nema fajla sa tim imenom !!'); halt; end; repeat write('Na koju poziciju: '); Readln(poz); setpointer(poz-1); (* Prvi bajt je ustvari offset nula, zato -1 *) Read(Infile,Linija); writeln(Linija); until false; end. bye... vbole P.S. Kuku, zaboravih fotografiju na konju...
pascal.368 bulaja,
│Posto ovo nije mesto za ovakve razgovore (tema je Pascal), pozivam sve │zainteresovane, registrovane korisnike TP ili TP4Win da mi se jave pa da │se prebacimo u grupu. └─── Ovo mozda nije, ali postoji u PC.USER tema nabavka, namenjena upravo ovakvim stvarima.
pascal.369 macak,
Nesto sam ceprkao po ovom tvom fajlu (imas par nedefinisanih promenljivih i jos par stvari,ali to nije toliko vazno). Vazno je sto nece da "radi" funkcija POS. Da nije greska u Pascalu??? :))
pascal.370 dejanr,
>> Stvarno mi to nije nikad palo na pamet, zašto hoćeš da se na taj način >> šetaš po Text-datoteci ? Uopšte me ne zanima za tekst datoteke, ali uzmi u obzir da rad sa tekst fajlovima funkcioniše dobro, brz je i ima rešeno baferisano čitanje sa settextbuf... ovo bi bilo mnogo komfornije za rad sa binarnim datotekama kada postoji seek. Tvoj program ću probati, ali nisam ubeđen da će raditi dobro zbog settextbuf - bojim se da će, iako je DOS-om pointer "oteran" na drugo mesto, davati pogrešne podatke pri čitanju.
pascal.371 dzakic,
>> settextbuf - bojim se da će, iako je DOS-om pointer "oteran" na >> drugo mesto, davati pogrešne podatke pri čitanju. Neće čak ni pomeriti pointer. Problem je kod file handle-a uvek pet). Kako zapravo saznati handle nekog fajla? Zna li se organizacija strukture na koju ukazuje promenljiva tipa file?
pascal.372 stomic,
$ A i onako TV programi lice jedan na drugog (Alt-x i slicne $ stvari) To je samo još jedan primer nasleđivanja, mada sve može da se menje, ali smatram da nema svrhe, radna okolina je odlično postavljena. A i kada se navikneš da radiš sa TP, pri prelasku na neki drugi program rađen u TV pola stvari znaš kako se rade (F3-Open file, F2-Save, naravno i to može da se menja ali nema potrebe). stomic
pascal.373 stomic,
$ Ovdje je*e lud zbunjenog. Neka mi neko otkrije gdje je $ greška ili XRD TP. ( znam da je nešto glupo ali nekontam $ ... ) Kako si uopšte uspeo da prevedeš? Imaš definisanu promenljivu Pos, a koristiš i proceduru Pos. Prednost ima promenljiva. Možda je ovde problem? stomic
pascal.374 dragisha,
ű> Nisam siguran da li si mislio na ovo ali i TP omogucava ű> npr. Crt.TextColor(Yellow) za postavljanje zite boje, ako ű> imate Jah, upravo to. Sad cu da potrazim ostale mane... :) dragisha
pascal.375 djnsnd,
> Sve to je vrlo detaljno prožvakano u licenci koja ide uz > Borlandove jezike Jeste, razumeo sam sta pise, ali mnije bilo logicno. Odnosno, nije mi bilo jasno zbog cega je tako. Hvala. DjnSnd
pascal.376 djnsnd,
> Moje iskustvo je da je rad sa tekst datotekama dovoljno > brz (naročito ako koristiš settextbuf i dodeliš dovoljno > memorije za bafer). Naravno, najbrži pristup je sa > blockread/blockwrite pošto tako direktno zoveš DOS. Da li je dovoljno brz za rad sa datotekama duzine npr. 2,3,4 ili 5 Mb? ILi npr. da li bi SOR, da je pisan u pascalu mogao da bude kreiran sa tim datotekama ili bi mogao da radi sa text datotekama? Hvala.
pascal.377 macak,
Joooj...koji sam manijak! :) Nisam uopste video da ima i promenljiva POS. :))) Sorry! P.S.Izvinjavam se Borlandu sto sam posumnjao u njihov proizvod. ;)))))
pascal.378 djnsnd,
Osniva se grupa koja ce se baviti Turbo Vision-om Turbo Pascala 6.0 ************ Pozivam sve zainteresovana da mi se jave. Ima jos mesta. DjnSnd
pascal.379 dzakic,
>> Da li je dovoljno brz za rad sa datotekama duzine npr. 2,3,4 ili 5 Mb? Brz je koliko može da bude. Ako te interesuje da li pomeranje pointera sa početka na neko 'daleko' mesto zahteva čitanje svih tih nekoliko megabajta, dovoljno je da ti kažem da seek zapravo *izračuna* poziciju na disku i učita direktno traženi sektor. >> ILi npr. da li bi SOR, da je pisan u pascalu mogao da bude >> kreiran sa tim datotekama ili bi mogao da radi sa text datotekama? Mogao bi sor da bude i u paskalu sa untyped datotekama. I paskal i C pozivaju iste dosove rutine. Sa text datotekama, nikako.
pascal.380 obren,
> Neće čak ni pomeriti pointer. Problem je kod file handle-a uvek > pet). Kako zapravo saznati handle nekog fajla? Handle nekog fajla je na samom početku strukture na koju pokazuje file. To važi za sve vrste datoteka pa i text i netipizirane. Dakle može se tačno odrediti handle nekog fajla umesto da se kao u onom programu računa da je on uvek 5. Evo jednog od načina: var f : text; (* može i file of... ili samo file *) handle : integer; ptr : ^integer; begin assign(f, 'imefajla.ext'); reset(f); ptr:=addr(f); handle:=ptr^; . . . posle se može iskoristiti funkcija 42h da se pomeri pointer pošto je handle željene datoteke poznat. Inače nije loša ideja da se binarne datoteke otvore kao text da bi se iskoristilo settextbuf. To mi ne bi nikad palo na pamet. Jedino što se moraju pisati neke procedure u asembleru ali i to ide u korist brzine.
pascal.381 vbole,
> Tvoj program ću probati, ali nisam ubeđen da će raditi dobro zbog > settextbuf - bojim se da će, iako je DOS-om pointer "oteran" na drugo > mesto, davati pogrešne podatke pri čitanju. Ama, neće sigurno, baš zbog toga sam i stavio ono " reset(Infile); " na početak procedure. To radi pascal, a ne DOS. Znači, pointer se uvek postavi na početak fajla i očisti se buffer - bez resetovanja bi naravno davao pogrešne podatke. Ja ga isprobao sa buf od 1000 do 65000 Bajtova i uvek daje tačne podatke. bye... vbole
pascal.382 vbole,
> Neće čak ni pomeriti pointer. Auuu, al' si kategoričan... Da se kladimo da hoće ?? > Problem je kod file handle-a uvek pet). Ja napisah da to važi samo ako je fajl koji se obradjuje učitan kao prvi.DOS ima 5 predefinisanih HANDLE-a ( od 0 do 4 ), svaki sledeći fajl ( ili device ) dobija za 1 veći broj od prethodnog, prvi učitani je broj 5.Ne verujem da je toliki problem zapamtiti kako i koje fajlove otvaraš, pa im u programu davati iste brojeve kao DOS. bye... vbole
pascal.383 nbatocanin,
> Molim te da staviš nekakav kod, poludeh od onih a sa > kružićem i e sa tačkicama :) Veoma se izvinjavam svima. Koristim kodni raspored koga nema u SET CODE, pa često zaboravim da izvršim konverziju. Moraću stvar da automatizujem. Pozdrav, Nenad
pascal.384 nbatocanin,
> Objektno programiranje je, slicno strukturiranom > programiranju u njegovo doba, ustvari samo novi vid > organizacije koda. Ne znam da li si mislio u jako pozitivnom ili "osrednjem" značenju. Ako ovako gledaš, i procedure su "samo" novi vid organizacije koda.
pascal.385 dzakic,
>> Auuu, al' si kategoričan... Da se kladimo da hoće ?? >> Ne verujem da je toliki problem zapamtiti kako i koje >> fajlove otvaraš, pa im u programu davati iste brojeve kao DOS. Pa znam da hoće pomeriti pointera fajla sa handle-om pet, ali to ručno brojanje handle-a mi se ne sviđa jer program može da radi i u nekom multitaksing okruženju, pa tvoj program nije jedini koji otvara datoteke. Zanimalo me je ono što je obren napisao - prvi element u file strukturi.
pascal.386 dejanr,
>> Jeste, razumeo sam sta pise, ali mnije bilo logicno. Odnosno, nije mi >> bilo jasno zbog cega je tako. Vrlo je logično. Borland zadržava određena prava nad tim programima, ako ništa drugo moralna. Ako bi ti ugradio nešto od toga u neki program koji uopšte nije pod copyright-om (makar tvojim), onda sa njim može svako da radi šta 'oće. To je OK za onaj deo programa koji je tvoj (ako ti tako želiš) ali Borland želi da sačuva svoja prava na deo koji je njihov.
pascal.387 andrejl,
Kako u grafičkom režimu na Herculesu prikazati strelicu miša. Naime na VGA driver sam sve prepozna i radi, a na HGC ne konstatuje prelazak u grafički režim. bye, andrejl
pascal.388 djnsnd,
>>> Da li je dovoljno brz za rad sa datotekama duzine npr. > 2,3,4 ili 5 Mb? > > Brz je koliko može da bude. Ako te interesuje da li > pomeranje pointera sa početka na neko 'daleko' mesto > zahteva čitanje svih tih nekoliko megabajta, dovoljno je >* da ti kažem da seek zapravo izračuna* poziciju na disku i >* učita direktno traženi sektor. Izgleda, da se nismo razumeli. Da li su text fajlovi dovoljno brzi za rad sa datotekama duzine npr. 2, 5 ili 6 MB. Primer takve aplikacije bi bio Sor jer on radi sa tekstualnim datotekom. Problem je što na text datoteke ne može da se primeni SEEK, a na typed ili untyped APPEND. Nadam se da je sada jasnija moja dilema.
pascal.389 janko,
> Uopšte me ne zanima za tekst datoteke, ali uzmi u obzir da > rad sa tekst fajlovima funkcioniše dobro, brz je i ima > rešeno baferisano čitanje sa settextbuf... ovo bi bilo > mnogo komfornije za rad sa binarnim datotekama kada > postoji seek. Ne želim da popujem, ali C ima setbuf i setvbuf naredbe kojima se aktivira baferisanje bilo koje datoteke, i text i ne-text. Tu uopšte ne moraš da razvijaš svoje rutine za baferovanje, jer je to već ugrađeno u standardne biblioteke. A korišćenje text režima za ne-tekst datoteke u Pascal-u mi ne miriše na dobro -- dovoljno je da ima u datoteci chr(26) i...
pascal.390 vvelisavljev,
HVALA! Lepo radi. Jedino mi nije jasno kako da u TP koristim nove fontove? Jedino što sam uspeo da uradim je da menjam njegove standardne fontove i to zaista lepo radi. Ali mi nije jasno kako da nagovorim TP da mi piše na primer YUSANS.CHR fontom? pozdrav, Viktor !
pascal.391 dzakic,
>> Problem je što na text datoteke ne može da se primeni SEEK, a na >> typed ili untyped APPEND. Na typed i untyped može da se uradi seek(f,filesize(f)) i da se nastavi sa pisanjem. To je append, zar ne? Tvoja dilema mi nije jasna. Sor zapravo ne bi ni mogao da se napiše bez seek, prema tome text fajlovi otpadaju. Što se brzine tiče, nisam kompetentan kolika je razlika u brzini. Naravno da zavisi od "zalogaja" kojim uzimaš podatke iz datoteke. Dakle, kod text datoteka od onog bafera koji može da se podešava a kod typed i untyped od broja slogova koje uzimaš u jednom čitanju. Moja je procena da će dobar disk cache tu razliku smanjiti na razumnu meru.
pascal.392 vbole,
> Handle nekog fajla je na samom početku strukture na koju pokazuje file. > To važi za sve vrste datoteka pa i text i netipizirane. Dakle može se > tačno odrediti handle nekog fajla umesto da se kao u onom programu > računa da je on uvek 5. Ja sam probao da saznam broj sa FileRec.Handle i TextRec.Handle, ali sam dobijao neke leve podatke... Šta oni ustvari vraćaju ?? bye... vbole
pascal.393 ndragan,
/ Uopšte šta radi taj file (malo čudna ekstenzija). Da li neko .PATch - zakrpa, odnosno fajl u kome ima ono što ti treba da zakrpiš original.
pascal.394 dejanr,
>> A korišćenje text režima za ne-tekst datoteke u Pascal-u mi ne >> miriše na dobro -- dovoljno je da ima u datoteci chr(26) i... i... ništa. žita ga kao i svaki drugi bajt. Probaj ovaj program: var a: text; b: file; znak: char; fs, i: longint; begin writeln; writeln; assign (b,'a.txt'); reset(b,1); fs:=filesize(b); close(b); assign (a,'a.txt'); reset(a); for i:=1 to fs do begin read (a,znak); writeln (ord(znak)); end; end. Naravno, u a.txt ubaci i nekoliko EOF (1A) karaktera. žitaće ih sasvim normalno.
pascal.395 dragisha,
ű> Ne znam da li si mislio u jako pozitivnom ili "osrednjem" ű> znacenju. Ako ovako gledas, i procedure su "samo" novi ű> vid organizacije koda. Znacenje "u kom sam mislio" je vrlo POZITIVNO. Cinjenica je da mnogo ljudi prepoznaje neke elemente objektnog programiranja kao dijelove svojih dosadasnjih metoda. Ja sam u zadnjih nekoliko godina (od kada sam poceo raditi u M2) koristio ADT (Abstract Data Type) koji je vrlo blizak pojmu klase, a izvodiv je BEZ OO jezika. dragisha
pascal.396 dragisha,
ű> Ja napisah da to vazi samo ako je fajl koji se obradjuje ű> ucitan kao prvi.DOS ima 5 predefinisanih HANDLE-a ( od 0 ű> do 4 ), svaki sledeci fajl ( ili device ) dobija za 1 ű> veci broj od prethodnog, prvi ucitani je broj 5.Ne ű> verujem da je toliki problem zapamtiti kako i koje ű> fajlove otvaras, pa im u programu davati iste brojeve kao ű> DOS. File pri otvaranju ima jedan flag koji kaze da li je "inheritable". Ako program koji poziva tvoj program ima na taj nacin otvorene fajlove (npr, pozivas ga iz svog omiljenog editora) onda je lako moguce da prvi otvoreni fajl nema handle 5 nego neki veci. dragisha
pascal.397 ilazarevic,
U vezi onog unita za rad sa mišem: Kada se izađe iz programa koji koristi ovaj unit, kursor postaje tanka crta koja trepće iznad, a ne ispod slova?! Jel to mora tako?
pascal.398 obren,
> Ja sam probao da saznam broj sa FileRec.Handle i TextRec.Handle, ali > sam dobijao neke leve podatke... > Šta oni ustvari vraćaju ?? Ja probao i radi!?! Utoliko je bolje od onog mog rešenja jer je lepo dokumentovano (mada u help-u piše da se to koristi interno od strane turbo pascala). Samo napišeš handle:=filerec(f).handle. Jedino nisam siguran da li je ova struktura "novitet" šestice ili je bila dostupna i u ranijim verzijama. Ako neko koristi 5.5 neka vidi u helpu, jer handle je bio i kod 5.5 na samom početku file strukture, samo što su tu strukturu izgleda sada i dokumentovali (a možda je bila i ranije?). Dragan
pascal.399 adezelin,
>|#*}- Ako procedure vraca bajt, onda (nisam siguran, posle >|#*}- onog lapsusa sa RET 0 :-))) stavi izlaznu vrednost u >|#*}- AL, ako je izlaz word ili integer onda u AX. Za >|#*}- ostale tipove neznam. Nepravi neku funkciju u TP >|#*}- prevedi program, i pregledaj ga sa nekim debugom >|#*}- (najbolje TD, ukluci i source kod). Pokusaj da predes >|#*}- na TP 6.0, i asemblerske programe mozes glatko da >|#*}- pises u TPu. >|#*}- Pozdrav stomic >|#*}- ▀▀▀▀▀▀▀▀▀▀▀▀▀▀ Hvala ti mnoogooo! Usput imam za TP 6.0 neke rutine za rad sa spritovima pa ako ti treba, samo trazi!!!(skinuo sam ih sa nekog BBS-a PD su)
pascal.400 adezelin,
>|#*}- Nema za PCX, ali zato imam za GIF. >|#*}- pozdrav, VV Super stvar, ali steta, nije za TP 5.5(bar da ima source!). Da nemas kod sebe slucajno i source ili tako nesto(mozda bi pomogli i TPU-ovi za TP 5.5)?? Thanx unapred!!
pascal.401 vbole,
> Ja probao i radi!?! Utoliko je bolje od onog mog rešenja jer je lepo > dokumentovano (mada u help-u piše da se to koristi interno od strane Jel' se sećaš kad je Dejan poslao onaj program za ispis vremena i datuma nekog fajla, a nije uradio reset(f) ?? E pa, učlanih se i ja, doduše, ja zaboravio na ime fajla... Ajde ja kao provereni lapa, ali crnjak je što je Dejan još '88 u umetku za TP 4.0 napisao: "Samo povezivanje logičkog i fizičkog imena nije dovoljno; datoteku treba i otvoriti...". > handle je bio i kod 5.5 na samom početku file strukture, samo što su > tu strukturu izgleda sada i dokumentovali (a možda je bila i ranije?). Radi unazad do 4.5 ( starije nemam ). bye... vbole
pascal.402 bdm.,
## Kada se izade iz programa koji koristi ovaj unit, kursor ## postaje tanka crta koja trepce iznad, a ne ispod slova?! ## Jel to mora tako? Ne znam o kom je Unit-u rec ali probaj ovako nesto PROGRAM Prog(Input, Output) ; VAR CursorShape : Word ABSOLUTE $0040:$0060 ; MemoCursorShape : Word ; BEGIN MemoCursorShape:= CursorShape ; ... CursorShape:= MemoCursorShape ; WriteLn END. { Prog } BDM.
pascal.403 nesavic,
Pozdrav, e pa meni ONAJ dragi unit za misa ne radi u GRAFICKOM modu, tj. nema nikakve strelice, ni crossa nema nista nego na slepo... A text mod lepo radi...! NeŠa!
pascal.404 dzakic,
>> i... ništa. žita ga kao i svaki drugi bajt. Probaj ovaj program: Jako lepo, Dejane. Ali šta sa onim: var s:string; f:text; while not eof do readln(f,s); ?
pascal.405 ssokorac,
:> e pa meni ONAJ dragi unit za misa ne radi u GRAFICKOM :> modu, tj. nema nikakve Pa, unit je i bio za text mode!
pascal.406 ssokorac,
EVo unit-a pcx.tpu i ega.tpu. Prvi služi za rad za slikama pcx formata a drugi - nemam pojma! :) Shareware je, pa ako hoćete source, morate da pošaljete 1$ tamo negde...:) Ah, da, radi samo na TP 6.0. Stasha tppcx.arj
pascal.407 stomic,
$ Usput imam za TP 6.0 neke rutine za rad sa spritovima pa $ ako ti treba, samo trazi!!!(skinuo sam ih sa nekog BBS-a $ PD su) Nema na čemu. Što se tiče toga šalji, možda i nije loše. Baš me interesuje našta liči, jer već u TP imaju, na neki način, ugrađene procedure za sprajtove (GETIMAGE i PUTIMAGE). stomic
pascal.408 dejanr,
>> > i... ništa. žita ga kao i svaki drugi bajt. Probaj ovaj program: >> >> Jako lepo, Dejane. Ali šta sa onim: >> >> var s:string; f:text; >> while not eof do >> readln(f,s); ? Šta? I dalje ništa :) Bilo je reči o čitanju BINARNE datoteke kao tekstualne. U binarnoj datoteci READLN nema smisla, a EOF sam testirao kako piše u poruci 4.394
pascal.409 majkl,
> Lepo radi. Jedino mi nije jasno kako da u TP koristim nove > fontove? Jedino što sam uspeo da uradim je da menjam > njegove standardne fontove i to zaista lepo radi. Ali mi > nije jasno kako da nagovorim TP da mi piše na primer > YUSANS.CHR fontom? Tome služi funkcija InstallUserFont, a primer možeš pokupiti iz helpa. Koliko sam ja primetio na nekoliko stvari treba obratiti pažnju: - font YUSN.CHR instalira se pozivom InstallUserFont('YUSN') tj. bez .chr - ime font datoteke može imati maksimalno 4 slova. Ako je ime kraće pri pozivu funkcije mora se dopuniti blanko simbolima - u datoteci YUSN.CHR mora na odgovarajućem mestu biti upisano ime fonta - YUSN Pozdrav, Majkl
pascal.410 zddb,
Kao korisnik "Turbo Pascal"-a, zainteresovan sam za ostvarivanje prava korisnika, preko drugog centra, a ne preko Slovenaca. Molim vas da me ubacite u Grupu. Zoran D. Brkić
pascal.411 djnsnd,
Zahvaljujem na odgovorima i strpljenju. Djn
pascal.412 sslavko,
>> U vezi onog unita za rad sa mišem: >> >> Kada se izađe iz programa koji koristi ovaj unit, kursor >> postaje tanka crta koja trepće iznad, a ne ispod slova?! Jel to >> mora tako? Ne mora, naravno. Na različitim video-adapterima se dos_kurson procedura manifestuje na različite načine, što je potpuno razumljivo kada se ima u vidu način na koji ona radi. Ona samo definiše prvu i poslednju liniju kursora (regs.ch i regs.cl) koje su trenutno podešene na šestu i sedmu liniju. Ti ih možeš podesiti na koje god hoćeš linije promenom ove dve vrednosti u proceduri dos_kurson i tako dobijati razne oblike kursora, od linije na bilo kojoj visini do punog bloka. Pozdrav Slavko.
pascal.413 sslavko,
>> e pa meni ONAJ dragi unit za misa ne radi u GRAFICKOM >> modu, tj. nema nikakve strelice, ni crossa nema nista >> nego na slepo... A text mod lepo radi...! U poruci uz koju je prikačen .TPU fajl (ne .PAS) lepo piše da je to zbir funkcija i procedura za rad sa mišem u text modu. Pozdrav Slavko.
pascal.414 vvelisavljev,
To je sve što imam. :(
pascal.415 vvelisavljev,
Hvala, proradilo je ! Jedino mi nije jasno zašto mora naziv fonta da bude dugačak 4 karaktera?? (važno je da radi :)) )
pascal.416 janko,
>>> A korišćenje text režima za ne-tekst datoteke u Pascal-u >>> mi ne miriše na dobro -- dovoljno je da ima u datoteci chr(26) i... > > i... ništa. žita ga kao i svaki drugi bajt. Probaj ovaj > program: > Trik je divan. Svaka čast. Nisam probao, ali ima šanse da je ovime TP brži od C-a. :) žini mi se da se sa settextbuffer (ili tako nekako) u TP može postaviti bafer do 64K, a sa setvbuf (bar u BC) na manje od 32K. Ako neko meri razlike, neka javi.
pascal.418 skoprivica,
-> Hvala, proradilo je ! Jedino mi nije jasno zasto mora naziv fonta -> da bude dugacak 4 karaktera?? (vazno je da radi :)) ) Ako te ne mrzi, podeli fontove sa nama....
pascal.419 ilazarevic,
█ na šestu i sedmu liniju. Ti ih možeš podesiti na koje god hoćeš █ linije promenom ove dve vrednosti u proceduri dos_kurson i tako █ dobijati razne oblike kursora, od linije na bilo kojoj visini do █ punog bloka. Hvala, to mi je trebalo (tj, treba mi pun blok).
pascal.420 vvelisavljev,
> Ako te ne mrzi, podeli fontove sa nama.... Pa nisam ih još nacrtao. :( Imam samo ona 4 standardna fonta. Mislim da u jedan od njih ubacim naša slova. (Samo ne znam kada ću to da uradim, nije mi hitno.) žim ih nacrtam šaljem. Da nema neko slučajno tako nešto, da se ja ne patim da crtam? pozdrav, Viktor !
pascal.421 bearboy,
-=< Nema na cemu. Sto se tice toga salji, mozda i nije -=< lose. Bas me interesuje nasta lici, jer vec u TP imaju, na -=< neki nacin, ugradene procedure za sprajtove (GETIMAGE i -=< PUTIMAGE). Ako je u pitanju program za koji mislim da jeste, ondak je MNOGO bolje uradjen od put/getimage-a, posto radi i sa Autodesk Animatorom... (skida sprajtove iz njega)
pascal.422 miroslavn,
Zna li neko kako da se iz Tubro Paskala setuje Real time clock?
pascal.423 vvelisavljev,
Sets the current time in the operating system Syntax: SetTime(Hour, Minute, Second, Sec100: Word); Unit: Dos { Example for SetTime } uses Dos; begin { Set system clock to 12:01 AM } SetTime(0,1,0,0); end. Nadam se da će ovo iz help-a biti dovoljno. VV
pascal.424 djnsnd,
Osnovana je grupa koja se bavi Turbo Vision-om Turbo Pascala 6.0 Pozivam sve zainteresovana da mi se jave. Još uvek ima mesta. DjnSnd
pascal.425 bearboy,
-=<> Ako te ne mrzi, podeli fontove sa nama.... -=< Pa nisam ih jos nacrtao. :( Imam samo ona 4 standardna fonta. Mislim -=< da u jedan od njih ubacim nasa slova. (Samo ne znam kada cu to da uradim, -=< nije mi hitno.) Cim ih nacrtam saljem. -=< Da nema neko slucajno tako nesto, da se ja ne patim da crtam? -=< pozdrav, Viktor ! Ljudi, ja sam prebacio fontove iz Quattro-a !!! Sad imam 45 FONTOVA !!!!!
pascal.426 majkl,
Da li neko ima PD ili SW alat za formiranje indeksnih datoteka? Koristio sam TBTREE16 Copyright (c) 1988,1989 Dean H. Farwell II ( Turbo BTree version 1.6 ) pa me interesuje kako sada stoje stvari. Pozdrav, Majkl
pascal.427 tesloni,
Vozdra Narode ...... Ako je neko zainteresovan imam Original ZIP-ove Inside TP .... Tu se nalaze primeri u Turbo Pascal-u za razne stvarčice počev od objekata pa nadalje .... Datirani su iz Jan-Sep 1990 :( .... Malo stariji al ne mari. Izvinjavam se ako sam ponudio stvari koje su već bile ovde ( Mislim na SEZAMU ) .... I sto poruku ostavljam ovde a ne u PC.SOFT:turbo.pascal :) . ........... TESLONI
pascal.428 tesloni,
Poruka je Odgovor na PC.SOFT:9.246 Vozdra Jarane ... Problem je najverovatnije u tvojoj VGA kartici a bogami ni monitor nije baš nevinašce ....... Oprez sa SVGABGI Driver-ima i Modes-ima jer mogu oštetiti monitor jer su mogući samo na MultiSync verzijama istih ... Ako pročitaš *.DOC fajlove iz SVGABGI31.ZIP videćeš upozorenja na sve strane ! Da rezimiram za veće rezolucije sa više boja treba imati karticu sa bar 512k ! Zašto bi se inaće zvali SVGABGI Drivers ? :) ... Pozdrav TESLONI
pascal.429 vvelisavljev,
> Ljudi, ja sam prebacio fontove iz Quattro-a !!! Sad imam 45 FONTOVA !!!!! TO, ŠALJI ! VV
pascal.430 ivans,
* Ako je neko zainteresovan imam Original ZIP-ove * Inside TP .... Ja sam zainteresovan! Ivans.
pascal.431 djnsnd,
> Ljudi, ja sam prebacio fontove iz Quattro-a !!! Sad imam > 45 FONTOVA !!!!! Šalji.
pascal.432 djnsnd,
> Ako je neko zainteresovan imam Original ZIP-ove > Inside TP .... Tu se nalaze primeri u Turbo > Pascal-u za razne stvarčice počev od objekata > pa nadalje .... > Datirani su iz Jan-Sep 1990 :( .... Malo stariji > al ne mari. Možeš li malo detaljnije da objasniš? Mene interesuje sva moguća literatura za TV i OOP.
pascal.433 tesloni,
Vozdra raja Pošto ste zainteresirani ( Da ne kažem zaintrigirani ) uz poruku saljem INSIDETP.ARJ pa pogledajte ......... Tesloni insidetp.arj
pascal.434 ivans,
E, puno ti hvala! Pozdrav, Ivans.
pascal.435 predragd,
> Nisam siguran da li ovo trazis, ali pokusaj sa > SetData(Ver Rec), gde je Rec varijabla (ili slog, Record), > pa posle sa GetData(Ver Rec), uzmi izmenjene podatke. U potpunosti si u pravu. Ali da li znas kako bi trebao da izgleda dati slog. Pedja.
pascal.436 skoprivica,
-> Ako je neko zainteresovan imam Original ZIP-ove -> Inside TP .... Tu se nalaze primeri u Turbo -> Pascal-u za razne stvarcice pocev od objekata -> pa nadalje .... Bio bih ti zahvalan... -> Datirani su iz Jan-Sep 1990 :( .... Malo stariji -> al ne mari. Ne smeta, glavno da radi (i da omze da se nauci odatle)... Aje... CTEBO.
pascal.437 skoprivica,
-> Posto ste zainteresirani ( Da ne kazem zaintrigirani ) -> uz poruku saljem INSIDETP.ARJ pa pogledajte ......... Jel' to sve ?
pascal.438 dejanr,
The following patch fixes the problem of not being able to enter numbers 3 thru 6 into the editor of the EDITORS.PAS example shipped with Turbo Pascal 6.0. Open EDITORS.PAS in the TURBO editor and search for the EXISTING code. Once that is found change the EXISTING code to the CHANGE TO code. Save your changes and recompile EDITORS.PAS. EXISTING: EXISTING: LODSW var OR BL,BL Key: Word; JE @@2 CMP BL,DL CHANGE TO: CHANGE TO: var ShiftState: Byte absolute LODSW $40:$17; CMP BL,DL Key: Word; --------------------------------------------------- EXISTING: EXISTING: JE @@4 begin @@2: CMP BH,DH Key := Event.KeyCode; JE @@4 CHANGE TO: CHANGE TO: begin JE @@4 if (ShiftState and $03 <> 0) CMP BH,DH and (Event.ScanCode >= $47) JE @@4 and (Event.ScanCode <= $51) then -------------------------- Event.CharCode := #0; Key := Event.KeyCode;
pascal.439 stomic,
Thanx Dejane, ovo mi je baš trebalo. Nadam se da će biti OK. stomic
pascal.440 nesic,
Zamolio bih sve korisnike macintosh-a koji imaju iskustva sa nekim pascal compiler-om da mi se jave, jer razmisljam o tome da uskoro nabavim Quadru, a kako ogromnu vecinu programa pisem u pascalu zeleo bih da se konsultujem pre kupovine. Mozete mi ostaviti poruku ili me potraziti na sajmu tehnike u hali 10. Moje ime je Robert Aleksic, a ime firme je High Technologies. Pozdrav \ / Robb| p.s. Nadam se cu napokon reci zbogom 64K i PC :) p.p.s. Poruku mozete da ostavite na ime nesic, posto je meni poodavno istekla registracija, a Srba Nesic ratuje od Nove godine te ja kadkad pozovem u njegovo ime.
pascal.441 tesloni,
> -> Posto ste zainteresirani ( Da ne kazem zaintrigirani ) > -> uz poruku saljem INSIDETP.ARJ pa pogledajte ......... > > Jel' to sve ? Nažalost jeste a oni koji su ga downloadovali imaće problema sa nekim fajlovima jer su u nekom od ranijih izdanja ITP-a izašli potrebni moduli za kompiulaciju. Ovi primeri su čisto ilustrativni tj. nisu baš najpodesniji za neku jaču primenu... Tesloni !
pascal.442 predragd,
> Da li neko ima PD ili SW alat za formiranje indeksnih > datoteka? Koristio sam Negde pocetkom 1991. godine u casopisu Inside Turbo Pascal objavljene su kompletne rutine za rad sa .DBF fajlovima i DBase indeksima (.NDX). Koliko sam ja uspeo da vidim stvar radi odlicno. Ja konkretno indekse koristim nevezano za .DBF fajlove. Super je stvar sto je dat komplet source, pa moze da radi u bilo kom Paskalu. Ako te stvar interesuje javi pa da je saljem. Pedja.
pascal.443 dejanr,
>> Super je stvar sto je dat komplet source, pa moze da radi u bilo kom >> Paskalu. Ako te stvar interesuje javi pa da je saljem. Ako nekim čudom ne interesuje njega, interesuje mene :)
pascal.444 majkl,
> Ako nekim čudom ne interesuje njega, interesuje mene :) Eh, čuda se ipak nešto redje dešavaju. Šalji! Posebno me interesuje da li je podržan kompletan rad sa indeksima. Pozdrav, Majkl
pascal.445 tesloni,
>> Da li neko ima PD ili SW alat za formiranje indeksnih >> datoteka? Koristio sam > > Negde pocetkom 1991. godine u casopisu Inside Turbo Pascal > objavljene su kompletne rutine za rad sa .DBF fajlovima i > DBase indeksima (.NDX). Koliko sam ja uspeo da vidim stvar > radi odlicno. Ja konkretno indekse koristim nevezano za > .DBF fajlove. Super je stvar sto je dat komplet source, pa > moze da radi u bilo kom Paskalu. Ako te stvar interesuje > javi pa da je saljem. > > Pedja. > Vozdra Raja .... Koliko sam shvatio vi niste ni pogledali moju poruku 4.333 ili slićno , proverite i datoteku uz nju ... Tamo je baš ono što vam treba .... ......... Tesloni
pascal.446 majkl,
>> Negde pocetkom 1991. godine u casopisu Inside Turbo >> Pascal objavljene su kompletne rutine za rad sa .DBF >> fajlovima i DBase indeksima (.NDX). Koliko sam ja uspeo ======================== >> da vidim stvar > Vozdra Raja .... > > Koliko sam shvatio vi niste ni pogledali moju > poruku 4.333 ili slićno , proverite i datoteku > uz nju ... Tamo je baš ono što vam treba .... Ovde se nešto ne slaže. Ako je u pitanju poruka 4.433 i uz nju priložena datoteka, tamo nisam našao ništa o indeksima (.NTX) i samo minimalno o bazama (.DBF). To je sve iz 1990. godine, a ovde se pominje '91. Kako sam u dva navrata bio mobilisan, moguće je da sam nešto propustio, pa budi precizniji. A čovek neka šalje, ako ništa drugo bar da uporedimo :))) Pozdrav, Majkl
pascal.447 bulaja,
│Negde pocetkom 1991. godine u casopisu Inside Turbo Pascal objavljene su │kompletne rutine za rad sa .DBF fajlovima i DBase indeksima (.NDX). └─── Salji!
pascal.448 bdm.,
## objavljene su kompletne rutine za rad sa .DBF fajlovima i DBase ## indeksima (.NDX). Koliko sam ja uspeo da vidim stvar radi odlicno. Ja PLEASE Send. BDM.
pascal.449 drpr,
Evo ja čeprkao po tricklu pa ima tamo u turbopas directorijum u kome ima svašta pa reko ako imate nekog na vax-u da vam ponešto i skine.Ima i za TV i za sve verzije tp od 4.x do 6.0! cope turbopas.arj
pascal.450 hacker,
<+>## objavljene su kompletne rutine za rad sa .DBF fajlovima i DBase <+>## indeksima (.NDX). Koliko sam ja uspeo da vidim stvar radi odlicno. Ja Ajde, ba, šalji već jednom... ili ko već treba da šalje...
pascal.451 predragd,
Zdravo Izvinjavam se zbog kasnjenja, jer sam bio na frontu. No greskicu sada ispravljam. Nadam se da ce vam se programcici dopasti. Pozdrav, Pedja. itpdbase.arj
pascal.452 predragd,
Zdravo Pokusavam da napisem FilePos funkciju za Text fajlove, ali mi ne polazi bas nesto najbolje za rukom. Naime, ako je rezultujuca vrednost tipa BYTE ili WORD sve je u redu, ali ake je u pitanju LONGINT onda dobijam neke leve vrednosti. Ja bih eventualno mogao da koristim prve dve gore navedene promenljive, ali bi one bile odgovarajuce samo za fajlove duzine 256 ili 65536 bajtova. Evo kako izgleda moja procedurica, pa ako neko zna u cemu je problem... function FilePosTextFile (var F: Text): LongInt; var Position: LongInt; Error: Word; begin FillChar (Regs, Sizeof (Regs), 0); regs.ah:=$42; regs.al:=1; regs.bx:=TextRec (F).Handle; regs.cx:=0; regs.dx:=0; MsDos (Regs); if (regs.flags and 1) = 1 then begin Position:=0; Error:=lo (regs.ax) end else begin Position:=MemL [Seg (regs.DX):Ofs (regs.AX)]; Error:=0; end; FilePosTextFile:=Position; end; Pozdrav, Pedja.
pascal.453 vbole,
> else > begin > Position:=MemL ŠSeg (regs.DX):Ofs (regs.AX)Ć; ĘĘĘĘ A odakle ti to čitaš poziciju u fajlu ?? Funkcija ti vraća poziciju u fajlu u obliku: A X - D X LL LH HL HH AX:=Low word / DX:=High word Znači, Position:=Regs.dx*65536+Regs.ax;
pascal.454 predragd,
>> Position:=MemL [Seg (regs.DX):Ofs (regs.AX)]; > ĘĘĘĘ > > A odakle ti to citas poziciju u fajlu ?? > Funkcija ti vraca poziciju u fajlu u obliku: > A X - D X > LL LH HL HH AX:=Low word / DX:=High word > Znaci, > Position:=Regs.dx*65536+Regs.ax; Hvala ti na pomoci, procedurica sada radi odlicno. No je i dalje imam problema oko ocitavanja vrednosti trenutne pozicije fajla. Otvorim fajl, snimam nesto u njega i posle pokusam da odredim poziciju pointera u fajlu, no kao rezultat dobijem nulu. Onda moram da zatvorim fajl i otvorim ga sa Append naredbom i sve radi odlicno, samo malo sporije. Medjutim meni ipak nesto nije jasno. Ako bih umesto onog MemL stavio MemW ili Mem procedura bi radila. Nije mi jasno zasto nece da radi za LongInt. Pozdrav, Pedja.
pascal.455 bojanp,
>>> Position:=MemL [Seg (regs.DX):Ofs (regs.AX)]; > > Medjutim meni ipak nesto nije jasno. Ako bih umesto onog MemL > stavio MemW ili Mem procedura bi radila. Nije mi jasno zasto nece da > radi za LongInt. Neće da radi zato što pogrešno upotrebljavaš "funkciju" tj. niz MemL! Niz MemL se koristi za čitanje/pisanje vrednosti tipa longint sa/na određenu memorijsku adresu, a ne za kreiranje longint vrednosti kao što si ti hteo da koristiš. U gore navedenom primeru moga si da napišeš umesto Seg(regs.DX), Seg(regs.AX) i dobio bi istu vrednost jer je funkcija Seg(regs.??) vraća segmentni deo adrese promenljive regs! U gore navedenom slučaju promenljiva position je uzimala vrednost longint-a koja se nalazio na adresi regs.AX tj. obzirom na raspored promenljivih u recordu tipa Registers dobija su regs.BX*65536+regs.AX!! Zašto je radilo kada si koristi Mem odnosno MemW nadam se da nije teško da zaključiš. > Hvala ti na pomoci, procedurica sada radi odlicno. No je i dalje > imam problema oko ocitavanja vrednosti trenutne pozicije fajla. > Otvorim fajl, snimam nesto u njega i posle pokusam da odredim poziciju > pointera u fajlu, no kao rezultat dobijem nulu. Onda moram da zatvorim > fajl i otvorim ga sa Append naredbom i sve radi odlicno, samo malo > sporije. Funkcija ni sada ne radi kako treba! Svaki file koji je tipa text ima interni buffer čija se veličina može menjati. Tvoja funkcija uopšte ne uzima u obzir da li je iz tog buffer već nešto pročitano ili nije. Dakle da bi funkcija radila potrebne su sledeće izmene: Position := regs.DX * 65536 +regs.AX; Position := Position + TextRec(F).BufPos; Pozdrav, Bojan
pascal.456 bojanp,
Poznato je da proizvođač compiler i sličnih programerskih "stvarčica" ne rado objavljuju bugove svojih proizvoda. Međutim to nije nikakva prepreka da korisnici istih prave svoje liste bugova koje su uspeli da otkriju. Uz poruku je arhiva koja sadrži *NE*zvaničnu listu svih bugova vašeg omiljenog ;) compilera TurboPascal Version 6.0 i način na koji se mogu zaobići ili ispraviti. Pozdrav, Bojan tp6bugs6.zip
pascal.457 predragd,
> Position := regs.DX * 65536 +regs.AX; > Position := Position + TextRec(F).BufPos; Kako sve izgleda jednostavno kada ti to neko drugi objasni. Hvala ti najlepse na pomoci. Pozdrav, Pedja.
pascal.458 vbole,
Danas sam izludeo sa jednim programom u pascalu, zato što sam iz jedne procedure pozivao drugu, a obe su imale u sebi deklarisan array od 50KB. Posle povratka iz druge procedure, array u prvoj proceduri je imao neke sasvim leve vrednosti, odnosno procedura B je jednostavno svoje vrednosti upisivala preko array u proceduri A. DEBUG pokazuje da se oba array nalaze na SSEG:ofset. Šta sad ?
pascal.459 dejanr,
Možeš li da pošalješ taj deo programa, nije mi baš jasno kako su to obe imale po 50 k? Parametar ili šta?
pascal.460 prvul,
ŮDanas sam izludeo sa jednim programom u pascalu, zato što sam iz jedne Ůprocedure pozivao drugu, a obe su imale u sebi deklarisan array od 50KB. Ů▄▄▄ A stack checking je bio isključen? Stek mora biti smešten ceo u jedan segment, pa kada se pređe granica segmenta, stek pointer krene opet od početka segmenta. Kako se lokalni podaci u procedurama alociraju na steku, posle upisivanja prvih 50k, nema mesta za drugi, pa se drugi prepišu preko prvih. Zbog ovakvih slučajeva je preporučljivo ostavljati u toku razvoja programa Stack checking uključen. Inače, jedno od rešenja za ovaj problem je da se po ulasku u proceduru alocira potrebna memorija, a pre izlaska dealocira. Prvul.
pascal.461 markma,
Nalazim se u velikom skripcu i molim nekoga da mi pomogne. Naime radi se o tome da imam zadatak iz programiranja i nemam pojma da ga resim. Zadatak treba da se uradi u PASCAL-u i ide ovako: Neka se iz datoteke ULAZ ucitavaju realni brojevi recimo x=1,...xn Izracunati: (x1+x2+2xn)(x2+x3+2xn-1)...(xn-1+xn+2x2) | | | | | ||| ||| | | Brojevi i slova obelezeno sa | su u indeksu. Primedba: Nije unapred poznato koliko ima brojeva u datoteci. UPUTSTVO: Koristiti dvostruko povezanu listu
pascal.462 vbole,
> Možeš li da pošalješ taj deo programa, nije mi baš jasno kako su to obe > imale po 50 k? Parametar ili šta? procedure SortPor(Nacin : byte; Low,High : word); type SOR_Arr = record Broj_fajla : byte; Poc_adr : longint; Duzina : word; end; var Poruke : ArrayŠ1..7000Ć of SOR_Arr; procedure Prebaci(Nacin : byte; ofset,my_adr,kol_byt : word); var MyDta : ArrayŠ0..53500Ć of byte; Evo ti deklaracije obe procedure.Kad pozovem Prebaci iz SortPor, on jedno- stavno upisuje svoje podatke preko Array-a u SortPor.
pascal.463 vbole,
> programa Stack checking uključen. Inače, jedno od rešenja za ovaj > problem je da se po ulasku u proceduru alocira potrebna memorija, a pre > izlaska dealocira. Pa bih ja, ali mi ti podaci trebaju i između poziva procedura...
pascal.464 markma,
Zar je takva situacija da niko nemoze ili nezeli da mi pomogne oko ovoga. Ovo je drugi put da ostavljam ovu poruku. Dajte ljudi molim vas. Naime radi se o tome da imam zadatak iz programiranja i nemam pojma da ga resim. Zadatak treba da se uradi u PASCAL-u i ide ovako: Neka se iz datoteke ULAZ ucitavaju realni brojevi recimo x=1,...xn Izracunati: (x1+x2+2xn)(x2+x3+2xn-1)...(xn-1+xn+2x2) | | | | | ||| ||| | | Brojevi i slova obelezeno sa | su u indeksu. Primedba: Nije unapred poznato koliko ima brojeva u datoteci. UPUTSTVO: Koristiti dvostruko povezanu listu
pascal.465 janko,
> Danas sam izludeo sa jednim programom u pascalu, zato što > sam iz jedne procedure pozivao drugu, a obe su imale u > sebi deklarisan array od 50KB. Da li je reč o Turbo Paskalu? Zar u njemu nije ograničenje statiče memorije na 64K? Ili je to MS-Pascal? Ili nova verzija Turbo Pascala? Ili...?
pascal.466 vvelisavljev,
> Zar je takva situacija da niko nemoze ili nezeli > da mi pomogne oko ovoga. Ovo je drugi put da > ostavljam ovu poruku. > Dajte ljudi molim vas. Ne znam šta da kažem na ovo. Možda da pokušam da odbranim SEZAMOVCE i kažem da većina njih ne zove svaki dan tako da nisu mogli ni da ti odgovore. Sa druge strane mislim da nije fer od tebe što si samo napisao zadatak i ništa više. Kaži u čemu je problem pa ćemo videti. Verovatno imaš problema što do sada nisi radio sa pointerima. Uz poruku ti šaljem tri programčića koji postupno "objašnjavaju" rad sa pointerima do upotrebe liste. Dvostruko ulančanu listu ćeš dobiti sva dva pointera od kojih jedan pokazuje na sledeći a jedan na predhodni podatak. Ukoliko ni ovo nije jasno kaži pa da pišem detaljnije. Viktor
pascal.467 vvelisavljev,
A evo i fajla, nešto sam z* kada sam slao prošlu poruku. Viktor pointeri.zip
pascal.468 markma,
Dali mozes samo da mi kazes cemu sluze ovi programi posto nemam kod kuce pascal na racunaru tako da neznam cemu sluze, ali da znam kada odem na faks sta im nosim. Molim te objasni mi. Znam da te mozda maltretiram ali mi je jako bitno. Hvala.
pascal.469 hacker,
E pa ako ih hoces tokom celog programa onda na pocetku ih deklarises kao kao dinamicke nizove. Prvo uvedes jedan tip type niz:arrayŠ...Ć of ...; pniz:žniz; Ovime si postigao da ti se sada svi elementi niza upisuju u heap, ali pre upisivanja, znaci na delu na kom su ti potrebni nizovi NEW(pniz); .... .... upisujes vrednosti sa pnizžŠ..Ć:=...; DISPOSE(pniz); Nadam se da sam ti pomogao...
pascal.470 vbole,
> E pa ako ih hoces tokom celog programa onda na pocetku ih deklarises kao > kao dinamicke nizove. Prvo uvedes jedan tip > type > niz:arrayŠ...Ć of ...; > pniz:žniz; Prebacio sam array(MyDta) u glavni program i oslobodio memoriju za njega sa GetMem, tako je najjednostavnije, ali niz Poruke ne mogu da deklarišem kao dinamički zbog brzine i zato što se sortira po dužini poruka i po početnim adresama. > Nadam se da sam ti pomogao... Hvala ti u svakom slučaju, znam ja za dinamičke nizove, ali sa njima se ne bih usrećio ( u ovom slučaju )...
pascal.471 vbole,
> Da li je reč o Turbo Paskalu? Zar u njemu nije ograničenje > statiče memorije na 64K? Jeste, za program 64KB, i svaka procedura po 64KB, s tim što svaka procedura vuče svoje lokalne promenljive na stack, a stack se vrti u krug.Ako imaš dve procedure sa po 60Kb koje pozivaju jedna drugu, podaci će se upisivati jedni preko drugih. ( Hvala prvulu na prosvetljenju ).
pascal.472 prvul,
Ů Naime radi se o tome da imam zadatak iz programiranja Ůi nemam pojma da ga resim. Ů▄▄▄ A šta je konkretno problem? Treba da učitavaš broj po broj iz datoteke i da ga dodaješ u dvostruko povezanu listu koja je na početku bila prazna. Zatim postaviš pointere na prvi element liste (obeležimo taj pointer sa P1), drugi element (P2) i poslednji element (PZ). Zatim postaviš promenljivu npr. REZULTAT na 1, pa onda radiš REZULTAT:=REZULTAT*(P1^.BROJ+P2^.BROJ+2*PZ^.BROJ); P1:=P2; P2:=P2^.DESNI; PZ:=PZ^.LEVI; dokle treba. Zatim obrišeš celu listu i štampaš rezultat. E, da, pretpostavka je da je u listi BROJ vrednost koja je učitana, LEVI pokazuje na prethodni član liste, a DESNI na sledeći.
pascal.473 prvul,
ŮDali mozes samo da mi kazes cemu sluze ovi programi posto nemam Ůkod kuce pascal na racunaru tako da neznam cemu sluze, Ůali da znam kada odem na faks sta im nosim. Ů▄▄ Pa čovek je već rekao, služe zato da pojasne kako se radi sa pointerima, pa da možeš sam da napišeš program.
pascal.474 vvelisavljev,
> Molim te objasni mi. > Znam da te mozda maltretiram ali mi je jako bitno. Ti programčići NE rešavaju problem. Mislio sam da će ti pomoći kod rešavanja problema. Poslednji od ta tri sorsa kreira listu u Pascalu. Prvi i drugi koristi pointere na najprostijim primerima sa dve tri promenljive tek da pokaže kako stvar radi. Hteo sam na brzinu da pomognem, a nisam imao vremena da rešavam kompletan problem. :(( pozdrav, Viktor !
pascal.476 vilic,
hi, da li neko ima neki programcic koji bilo koji format za slike (.gif .tif ...) pretvara u binarni oblik za dalji rad sa paskalom. unapred zahvalan \bye
pascal.477 inesic,
Imam dve molbe. Prva je za moderatora: nemoj da brišeš ovu poruku dok je ne pročita neko ko je voljan da mi pomogne. Druga je za sve one koji imaju instalacionu verziju TurboPascala 6.0 - molim da mi neko pošalje u mail file koji se zove INLINE.ZIP. Oštetila mi se disketa na tom mestu, ato su sve nekakvi .DOC fajlovi i mislio sam da ću moći bez njih, ali eto... sad me je stiglo. Thanx in advens. inesic P.S. Na eventualna pitanja da li je moj TP60 PD - ne odgovaram.
pascal.478 inesic,
Hi 2 all. Obaška zafaljivam svima koji su se javili da mi pomognu. Naravno, glupi ja je napisao da se file zove INLINE.ZIP umesto ONLINE.ZIP, ali vi ste to provalili. inesic
pascal.480 toma,
Pozdrav ! Molim vas pomozite ! Pisao sam nekada na Atarijevom pascalu program za izracunavanje determinanti matrica. Sada sam to preneo na PC i nece da radi. Daje mi gresku : Runtime error 202, Stack owerflow. Program koristi malo rekurzije ali se greska javlja pri prvom pozivu funkcije 'd',i editor mi postavlja kursor na liniju u kojoj je begin za tu funkciju Probao sam kompajliranje i linkovanje na disk pa onda startujem, ali ista stvar. H E L P ! prikacen fajl determ.pas determ.pas
pascal.481 dejanr,
Tražiš naprosto previše mesta na steku. Kada sam na početak programa dodao {$M 64000,0,0}, proradio je, bar za 3*3 matricu.
pascal.482 bearboy,
Mali problemcic: Imam jedan rezidentni program, koji bi trebao da pruza neke usluge drugim programima. Kad se instalise, kaze da je instalisan na funkcije &8220-6, na interaptu &2F. Pitanja - 1) Da li se on MORA pozivati iz inline-asemblera, ili moze i drugacije ? 2) Kako da ga pozovem ? (koje registre treba da popunim, itd.)
pascal.483 bearboy,
Imam ja mali programcic, rezidentni, koji kad se instalira, zauzme interapt 2Fh i funkcije oko 8220h. E sad, ako bilo kako pozovem taj interapt iz paskala, ne desava se nista ?! Ima li ko kakve ideje ? (koji registri, flegovi, itd.)
pascal.484 couch,
Zamolio bih za resenje ovog 'velikog' problema. Na TP 5.5 sam napisao rezidentan progam koji treba da pozove drugi izvrsni program (konkretno EPSON.COM za kontrolu stampaca). Ali nece da radi tj., javlja DOSERROR=8 (memorija zar ne?)
pascal.485 ndragan,
/ Tražiš naprosto previše mesta na steku. Kada sam na početak programa Elem, što bi rekao Lanik, 'No sane....'
pascal.486 vitez.koja,
Pretpostvljam da si to pozivanje obavio sa Exec... Posto pascal u startu alocira SVU raspolozivu memoriju, treba je ograniciti sa direktivom {$M STACK,HEAPMIN,HEAPMAX}, gde je STACK velicina steka (2048 min), HEAPMIN najmanja kolicina heap memorije, a HEAPMAX najveca. dakle, probaj {$M 16384,0,0) na pocetku programa i trebalo bi da radi vladimir
pascal.487 bearboy,
˙¨:> da li neko ima neki programcic koji bilo koji format za slike (.gif .tif ˙¨:> ...) pretvara u binarni oblik za dalji rad sa paskalom. Stvaro, kakav je on format koji naprai THEDRAW kad mu se kaze OUTPUT TYPE pascal ?
pascal.488 vitez.koja,
Zanimljiv bug integrisane okoline Turbo Pascala 6.0 : Ako pomenutu okolinu strtujemo sa TURBO ime, odmah se ucitava program ime.pas. Ako je startujemo sa dir\ime, gde je dir ime direktorijuma koji NE POSTOJI, IDE ce ispisati neku poruku o gresci i nastaviti. Medjutim, taj prozor (dir\ime.pas) vise ne moze da se zatvori, ne radi ni ALT+X ni izlazak iz menija, a moze da se izadje u shell... jednom recju, reboot obavezan :( vladimir
pascal.489 stomic,
$ dakle, probaj {$M 16384,0,0) na pocetku programa $ i trebalo bi da radi Ne verujem da će raditi (pogledaj poruke pre jedno 2 meseca). Pokušavao sam isto ali neće. Ako neko uspe neka javi. Pozdrav, stomic.
pascal.490 stomic,
$ Zanimljiv bug integrisane okoline Turbo Pascala 6.0 : Jesi li siguran da je tvoj TP ok? Kod mene je sve uredu. Pozdrav, stomic.
pascal.491 couch,
Zahvalan sam za ponudjeno resenje, ali pokusavao sam i sa tim prekidacem ali nece da radi , iako sam stavljao i ponudjeno resenje. Da li da probam sa New ili nesto slicno Pozdrav couch
pascal.492 ndragan,
/ izvrsni program (konkretno EPSON.COM za kontrolu stampaca). Zar nije lakše da te iste kontrolne znake šalješ pravo iz programa na štampač ili da ih ubaciš u fajl koji se štampa? Ako ih ne znaš, pošalji ih iz Epson.com jednog po jednog pomoću spulera u fajlove (ima tu nekih spulera na sezamovom disku)(na onom novom :), pa raščitaj, ili još bolje, RTFM za kontrolne kodove za ESC/P (epson kompatibilce). Bue_ Ndragan
pascal.493 couch,
Onaj deo poruke gde govoris da u txt file ubacim kon. kodove je neizvodljiv, zbog toga sto se izvestaji stampaju direktno iz baza, a jos plus program jej exe a ja nemam listing da bi nesto mutio. Sto se II dela poruke tice, zamolio bih da mi je malo pojasnis. CINIMI SE DA SAM NEGDE CITAO KAKO NA PASCAL-u DIREKTNO SWITCH-ovati STAMPAC, ALI NEMOGU DA SE SETIM GDE. Glavna fora je u tome sto je potrebno stampati izvestaje iz knjigovodstva na A3, a firma ima A4 stampac, pa je potreban switch na cond. stampu. E sada da nebi stalno isli u dos pa startovali EPSON, jednostavno nesto poput Ctrl+Alt+Shift bi resilo stvar. Pozdrav
pascal.494 vbole,
> Glavna fora je u tome sto je potrebno stampati izvestaje iz knjigovodstva > na A3, a firma ima A4 stampac, pa je potreban switch na cond. stampu. > E sada da nebi stalno isli u dos pa startovali EPSON, jednostavno nesto > poput Ctrl+Alt+Shift bi resilo stvar. Probaj sa priloženim programom, on preuzima int_05 (PrtScr) i pri prvom pritisku na PrtScr prelazi na Condensed, kod ponovnog pritiska na PrtScr prebacuje na Pica i vraća stari int_05. Jedino ne vraća alociranu memoriju, ali zato imaš source u pascalu, pa možeš da dodaš i to. condens.zip
pascal.495 dmiric,
Ćao svima! Pre neki dan silom prilika morao sam da instaliram tp6.0 (dosad sam radio na 5.5) pa me zanima da li neko ima da mi da ljudski customizovane, boje. Ovako kako sam 6-cu dobio u mnogim dialog box-evima se foreground i background boje poklapaju, a i sve skupa boje mi se ne sviđaju... Znam da može da se ručno našteluje ali tih boja ima toliko mnogoo....:(( Btw zna li neko da li 6-cin editor može da customizuje kao onaj u 5.5-ci... Navikao sam se WP komande, pa mi je sad jako teško da se vratim u WS Mislim da ke neko reko da se to može postići jedino razbijanjem samog programa... pa ako je neko to već uradio bio bi mu jaaaaako zahvalan Hvala unapred.. (md)
pascal.496 dejanr,
>> Btw zna li neko da li 6-cin editor može da customizuje kao onaj u >> 5.5-ci... Navikao sam se WP komande, pa mi je sad jako teško da se >> vratim u WS I može i ne može. Ne može na onaj lepi logični način zvani TINST. Umesto toga, pogledaj među doc fajlovima uputstvo za nekakav makro jezik (zaboravio sam ime), treba kreirati tekst fajl sa makroima i nekako ga prevesti. Sve se to može uraditi dosta lako, *ali* i se nikako (bar koliko sam uspeo da shvatim) ne može definisati da, recimo, HOME LEFT bude početak reda, dakle može se samo *jednom* tasteru dodeliti *jedna* funkcija. Ja zato ostado' na TP5.5 iako sam platio TP6.0 original ;(. Jedino za čim žalim od verzije 6.0 je ugrađeni asembler.
pascal.497 vitez.koja,
Imam ja manje-vise prilagodjene boje. Samo, ja sam prilogodjavao one stvari koje cesto koristim, a ne neke dialog-boxove (npr. ono za podesavanje misa) koje koristim jednom godisnje. Ako te zanima javi se... vladimir
pascal.498 ndragan,
/ na A3, a firma ima A4 stampac, pa je potreban switch na cond. stampu. Ako se štampa u fajl, napraviš dva fajla, naprimer set_it.txt i reset.txt, pa štampaš sa copy set_t.txt+stampa.txt+reset.txt prn gde onaj prvi sadrži samo chr(15) ili još nešto ako treba, a potonji ESC č (tj ASCII 27 64). Ako ovaj radi direktno sa štampačem, druga varijanta je da ga zoveš iz beča: copy set_it.txt prn tvoj_program copy reset.txt prn Ako ovo ne upali, tek onda se isplati petljati se sa pisanjem TSR programa koji bi trebalo da skenira tastaturu da bi povremeno poslao jedan ili dva bajta štampaču. To se čak i ne isplati - opet kažem, eno ti spuleri, sve što ištampaš bači u nekakav fajl (ona stampa.txt), pa sa njim postupi kao u prvoj varijanti. Najmanja petljavina.
pascal.499 couch,
Zahvalan sam za resenje. Uz malu preradu sve ce raditi ko sat. Puno pozdrava
pascal.500 dmiric,
> Sve se to može uraditi dosta lako, *ali* i se nikako (bar > koliko sam uspeo da shvatim) ne može definisati da, > recimo, HOME LEFT bude početak reda, dakle može se samo > *jednom* tasteru dodeliti *jedna* funkcija. Da, u međuvremenu sam pogledao utilitije i našao taj TEMC ili kako se već zove. Samo sam ga nabrzinu pogledao... ali ako se ne mogu napraviti home sekvence... Onda bi to bio težak mazohizam... pošto mi sve ne računaru, od tp, preko qedita do wp radi tako. Probaću da nešto zbudžim, ako uspem javiću. Thanx. (md)
pascal.501 dmiric,
Hi! Imam problem. Kad god u Tp6 runujem neki program, a zatim se vratim u IDE miš nestane.. tj ne vidi se na ekranu, iako IDE čita njegovu poziciju ne ekranu, i sa njim je moguće, onako na slepo otvarati prozore... Bug ili feature i ima li pomoći? Thanx, (md)
pascal.502 obren,
> Bug ili feature i ima li pomoći? Drajver za miša ti je bajat. Nabavi noviji i biće sve OK.
pascal.503 dmiric,
> Drajver za miša ti je bajat. Nabavi noviji i biće sve OK. Hm, pa to baš i nije tako lako firma nije jedna od poznatih, nego Facile Mouse Version 5.10 Copyright (C) National Computer 1988 - 1990 All Rights Reserved. Ako neko ima noviju verziju... bio bih jako zahvalan, ili bilo koji drajver koji može da radi i sa mouse i microsoft modom... (md)
pascal.504 ppekovic,
>> Ako neko ima noviju verziju... bio bih jako zahvalan, ili bilo koji drajver >> koji može da radi i sa mouse i microsoft modom... Zašto ne probaš sa nekim od drajvera koje možeš naći ovde na sezamu? Paya
pascal.505 dmiric,
> Zašto ne probaš sa nekim od drajvera koje možeš naći ovde > na sezamu? Evo skinuo sam ih, sad ću da probam, međutim ne verujem da ima šanse... ali ko zna :)) btw, thanx for the suggestion. (md)
pascal.506 dmiric,
> Zašto ne probaš sa nekim od drajvera koje možeš naći ovde > na sezamu? Probao. I genius drajver radi... Samo jedna sitna stvarčica... Kad se com verzija instalira u autoexec posle toga pozivanje qedita ruši sistem !!! sa druge strane ako se taj gmouse.com pozove sa komandne linije, sve radi kako treba. Ako se pak instalira sys verzija, sve radi ok. ZAŠTO??? u autoexecu i config nema ničeg što bi moglo da smeta: autoexec: path c:\util\misc;d:\;c:\util\zip;d:\pcshell;c:\util\shez;c:\util\nc;d:\graph\util;c :\dos;d:\dtp\qedit;c:\util\ptr batchenv -q path=c:\util\antivir;c:\yu\keyb;c:\util\analysis;c:\yu\uyu;d:\games\bio;d:\lang \tp6\utils;c:\util\video+ batchenv -q path=c:\mouse;c:\llink3;c:\modem\tr+ prompt $p$g verify on c:\dos\dosed config.sys; device=mmc.sys ............................. (ems drajver) shell=c:\command.com /e:400 /p buffers=15 files=25 break=on device=ansi.sys device=c:\mouse\gmouse.sys +0 ...............(ovo je finalna verzija u kojoj sve radi) (md)
pascal.507 cacxa,
> Ako neko ima noviju verziju... bio bih jako zahvalan, ili > bilo koji drajver koji može da radi i sa mouse i microsoft > modom... Imaš na Sezamu Genius drajver koji radi u oba moda i Logitech koji radi samo u Microsoft modu.
pascal.508 isekulovic,
>> Imaš na Sezamu Genius drajver koji radi u oba moda i >> Logitech koji radi samo u Microsoft modu. Ako koristis norton commander bolje umesto genius 9.06 pronadji genius 9.04 ili mi se javi da ti emaljiram. ivan
pascal.509 lucas,
++> Imam problem. Kad god u Tp6 runujem neki program, a zatim se vratim ++> nestane.. tj ne vidi se na ekranu, iako IDE čita njegovu poziciju ne ++> sa njim je moguće, onako na slepo otvarati prozore... "Turbo Pascal 6.0 also suports a mouse.Thought the mouse isn't required,if you have one,you must have one of the following for full compatibility: - Microsoft Mouse version 6.1 or later,or any mouse compatible with this mouse - Logitech Mouse version 3.4 or later - Mouse System'PC Mouse version 6.22 or later - IMSI Mouse version 6.11 or later - Genius Mouse version 9.00 or later" Ovo je iz uputstva pa sada vidi koji ćeš drajver da koristiš. Moj savet ti je da iz direktorijuma MISC uzmeš fajl gm906.zip,to ti je drajver za Genis mouse version 9.06 i da ga instaliraš. Trebalo bi da bude sve ok.
pascal.510 wizard,
>> Ako koristis norton commander bolje umesto genius 9.06 >> pronadji genius 9.04 (...) Zašto? Meni radi. <<nenad<<
pascal.511 adzem,
> - Genius Mouse version 9.00 or later" > > Ovo je iz uputstva pa sada vidi koji ces drajver da > koristis. Ja koristim Genius drajver verziju 8.20 . TP6 radi bez ikakvih problema, sto znaci da uputstvu ne treba uvek verovati.
pascal.513 dmiric,
>>> Ako koristis norton commander bolje umesto genius 9.06 >>> pronadji genius 9.04 (...) > Zašto? Meni radi. Meni ne radi. Kad malo pomeraš mouse po commanderu pojavljuju se strlice na dole koje ostaju na mestu gde je bio mouse... (md)
pascal.514 dmiric,
> Moj savet ti je da iz direktorijuma MISC uzmeš fajl > gm906.zip,to ti je drajver za Genis mouse version 9.06 i > da ga instaliraš. Trebalo bi da bude sve ok. gm906 sa TP6 radi OK. ali pravi probleme sa NC, i Qeditom. Naći ću neku raniju verziju, za koju ljudi tvrde da ne prave probleme. Hvala na odgovoru. (md)
pascal.515 isekulovic,
>> Zašto? Meni radi. Meni ostavlja strelice preko ekrana kad god prodjem preko dve odredjene linije (prve iznad i ispod spiska datoteka), a cuo sam to isto jos od nekih.
pascal.516 ilazarevic,
█ Meni ne radi. Kad malo pomeraš mouse po commanderu pojavljuju se █ strlice na dole koje ostaju na mestu gde je bio mouse... Potpuno isti slučaj je i kod mene. Da li je verzija 9.04 rešenje? Ako jeste.... TRAčI SE! :)
pascal.517 dmiric,
subj: Tp6, OOP Kakva je funkcija sl. reči PRIVATE u definiciji objekta... Recimo deklaracija ide ovako: type xyz = object ... ... PRIVATE ... I tome slično. koliko sam shvatio ova direktiva omogućava encapsulation. Ali kako se ogleda njeno dejstvo na promenljive, a kako na procedure. Meni bi bilo logično da se promenljive deklarisane posle PRIVATE mogu samo očitavati (ili čak ni to), a procedure se ne mogu izvršavati... I ukoliko se prekrši ova zabrana sa kojom greškom će reagovati compiler... Što je najveći štos u HELP nema ni pomena o ovome, ja sam naišao na ovo u nekom unitu, a kolko se sećam u nekom fajlu pročitah da tp6 omogućava encapsulation. Pa jel to to? (md)
pascal.518 dmiric,
Zna li neko sa kojim bi se programom za crtanje mogle izraditi sličice koje bi se zatim pomoću PutImage i GetImage prikazvati na ekranu... Kolko sam shvatio to je običan bitmapirani format, al pošto se slabo razumem u grafičke formate ne znam sa kojim programom bi to mogao da uradim... thanx (md)
pascal.519 vitez.koja,
PRIVATE deklaracija oznacava pocetak internog podrucja nekog objekta. Sve procedure i funkcije iza PRIVATE mogu se pozivati samo iz drugih procedura tog objekta, a promenljive su takodje dostupne samo u tom objektu... Prinpic je isti kao kod modula - sve sto je deklarisano ispod IMPLEMENTATION ne vidi se nigde sem u procedurama tog modula... vladimir
pascal.520 vitez.koja,
NIJE obican bmp ;)
pascal.521 wizard,
>> █ Meni ne radi. Kad malo pomeraš mouse po commanderu pojavljuju se >> █ strlice na dole koje ostaju na mestu gde je bio mouse... >> >> Potpuno isti slučaj je i kod mene. Da li je verzija 9.04 rešenje? >> Ako jeste.... TRAčI SE! :) Ja sam tu verziju dobio na disketama, ali sam je zamenio novom. Na žalost, jedno vreme se neću moći javljati. :( <<nenad<<
pascal.522 dmiric,
> Potpuno isti slučaj je i kod mene. Da li je verzija 9.04 > rešenje? Ako jeste.... TRAčI SE! :) Jeste rešenje je. Ako se isekulovic slaže poslaću ti u mail.... (md)
pascal.523 dmiric,
> Prinpic je isti kao kod modula - sve sto je deklarisano > ispod IMPLEMENTATION ne vidi se nigde sem u procedurama > tog modula... Jasno! Hvala na odgovoru.... :) (md)
pascal.524 dmiric,
> NIJE obican bmp ;) Nego kakav. Ima li neko opis formata... Ili neki util sa kojim bi se lakše radilo... (md)
pascal.525 ndragan,
/ žalost, jedno vreme se neću moći javljati. :( Iz ovog zaključujem da će trik sa nestajanjem proraditi, a da će onda na redu biti vežbe iz vraćanja.
pascal.526 isekulovic,
>> Jeste rešenje je. Ako se isekulovic slaže poslaću ti u >> mail.... Nema potreba, vec sam mu poslao:))) Il, zaviri u grupu herc.
pascal.527 bearboy,
˙¨:> se zatim pomocu PutImage i GetImage prikazvati na ekranu... Kolko sam ˙¨:> shvatio to je obican bitmapirani format, al posto se slabo razumem u ˙¨:> graficke formate ne znam sa kojim programom bi to mogao da uradim... Evo sta ja radim - bio je tu u okolini neki unit za manipulaciju sa PCX slikama, s njim ucitam PCX sliku, ostavim je na skrinu, i lepo skinem delic sa getimage. Najbolje je da ovo ne radis na active page-u, jer to izgleda malo blesavo..
pascal.528 dmiric,
> Il, zaviri u grupu herc. A kako to da izvedem.? Obijanjem sistemskog softvera?:) Ili je to novi feature za koji ne znam :)))) (md)
pascal.529 dmiric,
> Evo sta ja radim - bio je tu u okolini neki unit za > manipulaciju sa PCX slikama, s njim ucitam PCX sliku, > ostavim je na skrinu, i lepo skinem delic sa getimage. > Najbolje je da ovo ne radis na active page-u, jer to > izgleda malo blesavo.. Da, to je i meni palo napamet... U suštini kad nema boljeg rešenja i to nije loše... (md)
pascal.530 ilazarevic,
█ Jeste rešenje je. Ako se isekulovic slaže poslaću ti u mail.... Hvala, slom mi je već poslao :)
pascal.531 isekulovic,
>> A kako to da izvedem.? Obijanjem sistemskog softvera?:) Ili >> je to novi feature za koji ne znam :)) Rekoh Il, mislio sam na ilazarevica posto sam mu poslao u grupu herc:) Ako hoces mogu da te ubacim u grupu herc2. ivan
pascal.532 dmiric,
Ćao! Da li neko zna da li je moguće korsititi metod kao proceduralnu varjablu? Probao sam nešto poput ovog, ali neće da radi. program Tst; TYPE HandlerTYPE = procedure; CDiskOBJ = object procedure Handler; end; {$F+} procedure CDiskOBJ.handler; Begin writeln ('/ Procedure CDISKOBJ.Handler \'); End; {$F-} VAR Cdisk :CDiskOBJ; CurrHandle:handlerTYPE; BEGIN CurrHandle:=CDisk.handler; <---Error Invalid procedure or function reference CurrHandle; END. Postoji li način da ovo proradi? U suštini ne vidim zašto ne bi proradilo. Metod je procedura a ovde je čak i statička, mada i da ja virtual ne bi trebalo da se jave problemi, jer se assign vrši tek u run-timeu. (md) PS. Sada mi pade na pamet da ovo može da se reši u specijalnom slučaju, kad se koriste objekti koji imaju zajedničkog pretka, pa pomoću kompatibilnosti pointera... ali to radi samo u slučaju zajedničkog pretka :)
pascal.533 dmiric,
> Rekoh Il, mislio sam na ilazarevica posto sam mu poslao u > grupu herc:) Sorry, sorru :) Ja sam ono Il, shvatio kako ili :)))) (md)
pascal.534 dmiric,
Koja je poslednja verzija TurboDebuggera? Zadnja za koju ja znam je 1.5? (md)
pascal.535 dmiric,
subj: WP komande u TP6 Za one koji su u TP6 ludeli zbog WS like komandi evo rešenja, koje možda nije preterano elegantno, ali što je najvažnije radi... Iako na žalost turbov integrisani editor ne dopušta da se definišu komande kao u WP, postoji način da se on prevari. Rešenje je krajnje prosto, treba koristiti sjajan dzakicev ZKEY drajver za tastaturu, koji omogućava da se na niskom nivou izvrši proizvoljno premapiranje ascii/scan koda... Pošavši od toga, dovoljno je izmeniti vrednosti za Cursor Up/left/right/down u ctrl-e,ctrl-s,ctrl-d,ctrl-x respektivno. Ovo se postiže pravljenjem .kbd fajla: tp6.kbd: ================================= >> $4800 $1205 ; UpAr -> Ctrl-E $4b00 $1f13 ; LfAr -> Ctrl-S $4d00 $2004 ; RgAr -> Ctrl-D $5000 $2d18 ; DnAr -> Ctrl-X >> >> >> ================================= zatim treba napraviti fajl za TEMC, turbo editor Macro compiler... wp.tem ================================= Script WP; Alt-F4 : SetBlockBeg; Ctrl-End : DeleteToEol; Alt-F2 : Replace; Ctrl-U : RestoreLine; Ctrl-Home : MoveToPrevPos; ctrl-PgUp : MatchPairBackward; Ctrl-Pgdn : MatchPairForward; DnAr : CursorDown; /* Kada ZKEY ne radi */ UpAr : CursorUp; LfAr : CursorCharLeft; RgAr : CursorCharRight; ctrl-e : CursorUp; /* Kada ZKEY radi */ ctrl-s : CursorCharLeft; ctrl-d : CursorCharRight; ctrl-x : CursorDown; home+ctrl-S : LeftOfLine; End : RightOfLine; home+ctrl-D : RightOfline; home+ctrl-X : EndCursor; home+ctrl-E : HomeCursor; ============================= TEMC će prihvatiti kombinacije home+ctrl-S i sl dok home-CrLf neće. Zašto je to tako,ostaje tajna koju znaju oni u Borlandu... Zatim ovakav script fajl treba komapjlirati, sa komandne linije: TEMC wp turbo.tp i stvari su gotove. Još treba napraviti mali batch: @echo off d: c:\yu\keyb\zkey tp6 -a0 <--- uključuje zkey sa tp6.kbd cd d:\lang\tp6 %1 %2 %3 %4 %5 %6 turbo c:\yu\keyb\zkey -u <----deinstalira zkey. i stvari će da rade! Kretanje kroz IDE menije ide bez problema, jer su podržane i ctrl-s,... dakle ws komande, naravno ako vam je potreban stari raspored tastature (recimo kad runujete svoj program ) dovoljno je stisnuti ctrl-alt-f1 i zkey prestaje premapiranje tastature, dakle sve je kao da ga nema... Naravno na ponovno premapiranje tastature vraćate se sa ctrl-alt-f2. Eto. Možda je bilo zgodno izabrati neke druge komande, ali s obzirom da TEMC podržava jako malo kombinacija, učinilo mi se da je ova najbolja... Uz poruku je vezan fajl u kome su svi fajlovi potrebni da se posao obavi.. (md) tp6_wp.zip
pascal.536 ssokorac,
Da li se, recimo, slovo 'z', moze preneti modemom ovako: onaj sto salje: assign (modem, 'COM1'); rewrite(modem); write(modem,'z') onaj sto prima: assign(modem,'COM1'); reset(modem); read(modem,slovo) ili to ide mnogo komplikovanije...?
pascal.537 dejanr,
Bravo! Možda ovim povodom skinep taj TP6.0 sa police :)
pascal.538 ilazarevic,
█ Rekoh Il, mislio sam na ilazarevica posto sam mu poslao u grupu █ herc:) Jah, jah... GM904 sam već dobio :) Problem je rešen - pre dva dana sam greškom izbrisao (nepovratno) Norton Commander :)))
pascal.539 mjova,
> Koja je poslednja verzija TurboDebuggera? Zadnja za koju > ja znam je 1.5? POSLEDNJA (ne zadnja) verzija je 3.0 (čini mi se) iz BC++ v3.0, ali ja radim sa TD v2.5 SY
pascal.540 cacxa,
Ide komplikovanije...
pascal.541 ilazarevic,
█ Sorry, sorru :) Ja sam ono Il, shvatio kako ili :)))) Nemoj da me neko ovde shvata kao Bulovu operaciju :)))
pascal.542 dmiric,
> POSLEDNJA (ne zadnja) verzija je 3.0 (čini mi se) iz BC++ > v3.0, ali ja radim sa TD v2.5 Thanx. (md)
pascal.543 dmiric,
> Bravo! Možda ovim povodom skinep taj TP6.0 sa police :) To bi bilo baš nice! Jeste da je 6-ca i bugovita i svojeglava, al kad se navikneš na nju nije tako loša :) (md)
pascal.544 agobovic,
Zna li neko za Pascal kompajler za DOS koji prihvata funkciju kao formalni (pa i stvarni) parametar procedure? Meni Turbo Pascal 5.0 pravi problem u liniji gde je deklaracija procedure b i kada u listi formalnih argumenata naiđe na reč "function" - TP traži "identifier". Pogledao sam "Pascal User Manual and Report" - Wirth & co. i našao da je dozvoljeno prosleđivati funkciju (pa i proceduru) kao parametar. VAX Pascal V3.4-114 mi lepo prevodi i daje ispravan rezultat: 2 0 ali je meni to potrebno na PC-ju. Možda je kod TP 5.5 ili 6.0 ovo ispravljeno? ----------------- Odavde iseći (makazama?) ----------------------------- (* Pascal program - primer za simuliranje staticke alokacije nelokalnih promenljivih na promenljivoj m *) program pass ( input, output ); var m: integer; function f ( n : integer ) : integer; begin f := m + n end; function g ( n : integer ) : integer; begin g := m * n end; procedure b ( function h ( n : integer ) : integer ); begin write ( h ( 2 ) ) end; begin m := 0; b ( f ); b ( g ); writeln end.
pascal.545 janko,
(* Nije tako teško kao što izgleda *) program pass ( input, output ); var m: integer; (* moj dodatak *) type f_func= function (n: integer) : integer; (* tvoja priča *) function f ( n : integer ) : integer; begin f := m + n end; function g ( n : integer ) : integer; begin g := m * n end; procedure b ( h: f_func ); (* i ovo sam promenio *) begin write ( h ( 2 ) ) end; begin m := 0; b ( f ); b ( g ); writeln end. Pozdrav, Janko.
pascal.546 bearboy,
˙¨:> onaj sto salje: ˙¨:> onaj sto prima: ˙¨:> ili to ide mnogo komplikovanije...? Ide malo drugacije, jer ovako ne mozes 100% da uskladis citanje sa slanjem.
pascal.547 djnsnd,
U majskom broju Racunara u Bajtovima lične prirode (476) je napisano da Turbo Pascal ne može da odredi na uobičajen način dužinu tekst fajla. To naravno, nije tačno. Iako bi nekom možda, na prvi pogled, izgledalo da tim poslom treba da se bavi procedura FileSize iz System unit, za ovu namenu treba upotrebiti proceduru FindFirst (ili FindNext) iz Dos unit-a. Rezultat rada ove procedure je promenljiva tipa SearchRecord sa poljima: Fill, Attr, Time, Size i Name. Dakle: uses Dos; type S: SearchRec; ... FindFirst(ImeTextFajla, AnyFile, S); Duzina:=S.Size; ... Eto, šta se desi kad se ne(ma) čita uputstvo. ;) end. (***** Djn *****)
pascal.548 bojanp,
Da samo dodam par napomena: Procedure i funkcije koje se koriste na ovaj način moraju ispunjavati sledeće zahteve: - moraju biri deklarisane kao far (znači {$F+}) - ne smeju biti standardne procedure i funkcije - ne smeju biti ugnježdene procedure i funkcije - ne smeju biti inline procedure i funkcije - ne smeju biti interrupt procedure i funkcije Pozdrav, Bojan
pascal.549 vbole,
> U majskom broju Racunara u Bajtovima licne prirode (476) je napisano da > Turbo Pascal ne moze da odredi na uobicajen nacin duzinu tekst fajla. > To naravno, nije tacno. To je, naravno, tacno, jer tvoj postupak nije uobicajen, tj. ne odre- djujes duzinu **otvorenog tekst-fajla**, nego bilo kog fajla.Slican postupak upotrebljava i dejanr, samo sto on otvori fajl kao binarni, procita duzinu pa ga zatvori - otprilike isto to. > Eto, sta se desi kad se ne(ma) cita uputstvo. ;) Ja nemam uputstvo, ali ne verujem da je Borland bas to naveo kao resenje za odredjivanje duzine tekst-fajlova...
pascal.550 dejanr,
>> U majskom broju Racunara u Bajtovima lične prirode (476) je napisano da >> Turbo Pascal ne može da odredi na uobičajen način dužinu tekst fajla. >> To naravno, nije tačno. Po meni je tačno. Uobičajen način da radim sa fajlom je assign (fvar, 'name'); reset (fvar); ... close (fvar); E sad, ako je fajl tipa tekst, ne može se između reset i close napisati ll:=filesize(fvar) što je jedini uobičajen način da se odredi dužina. Neuobičajenih načina ima raznih, volj ti to sa findfirst, volj ti da (što ja obično radim) otvoriš file kao netipiziran pa iščitaš dužinu. No sve je to "pomoću konca i kanapa". >> Eto, šta se desi kad se ne(ma) čita uputstvo. ;) U Uputstvu piše da se funkcija filesize ne može primeniti na text fajlove i to je sve o tome. Ne pominje se eksplicitno nikakav drugi način, što znači da Borland smatra da nema potrebe za određivanjem dužine text fajla.
pascal.553 agobovic,
Hvala za ideju. Turbo Pascal ovo ipak nije hteo da prevede - pri pozivu b ( f ) ispiše poruku "Invalid procedure or function reference", ali sam malo čačkao help i uspeo da prevedem uz direktivu $F+. P.S. pišem on-line i sada videh da je i u poruci 4.548 to već napomenuto.
pascal.554 ndragan,
/ ----------------- Odavde iseći (makazama?) ----------------------------- Probao sam, al' lete staklići od mo(g)nitora na sve strane... :)
pascal.555 djnsnd,
> U Uputstvu piše da se funkcija filesize ne može primeniti > na text fajlove i to je sve o tome. Ne pominje se > eksplicitno nikakav drugi način, što znači da Borland > smatra da nema potrebe za određivanjem dužine text fajla. Ne. Borland smatra da nema potrebe da se dužina tekst fajla odredjuje procedurom FileSize. Ta procedura daje rezultat u najmanjim jedinicama koje se mogu upisati(blok ili record). Kod tekst fajlova je najmanja jedinica karakter, a to je jedinica koja se koristi i u Dos-u. U svakom slučaju nema potrebe za muvanje sa registrima. Djn
pascal.556 djnsnd,
> Ja nemam uputstvo, ali ne verujem da je Borland bas to > naveo kao resenje za odredjivanje duzine tekst-fajlova... Tamo gde se govori o radu sa datotekama i gde se kaže da se FileSize koristi za typed i untyped datoteke to ne kaže. To je navedeno u sledežem poglavlju (Dos unit).
pascal.557 dejanr,
>> Ne. Borland smatra da nema potrebe da se dužina tekst fajla odredjuje >> procedurom FileSize. Ta procedura daje rezultat u najmanjim jedinicama >> koje se mogu upisati(blok ili record). Kod tekst fajlova je najmanja jedinica >> karakter, a to je jedinica koja se koristi i u Dos-u. Obzirom da je ovo praktično isto što sam i ja rekao, nije mi baš jasno šta znači ono "ne" na početku. Inače, što se toga tiče, smatram da Borland nije u pravu i da je određivanje dužine tekst fajla itekako potrebno. Makar pomoću trikova (opisanih).
pascal.558 dmiric,
> - moraju biri deklarisane kao far (znači {$F+}) > - ne smeju biti standardne procedure i funkcije > - ne smeju biti ugnježdene procedure i funkcije > - ne smeju biti inline procedure i funkcije > - ne smeju biti interrupt procedure i funkcije Kolko sam ja experimentisao ne mogu biti ni metodi. Ili možda grešim? (md)
pascal.559 dragisha,
ű>> - moraju biri deklarisane kao far (znači {$F+}) ű>> - ne smeju biti standardne procedure i funkcije ű>> - ne smeju biti ugnježdene procedure i funkcije ű>> - ne smeju biti inline procedure i funkcije ű>> - ne smeju biti interrupt procedure i funkcije ű> Kolko sam ja experimentisao ne mogu biti ni metodi. Ili ű> možda grešim? (md) Ne griješiš. Razlog je to što svaki metod osim onih parametara koje si pobrojao u deklaraciji ima i SELF koji je skriven, tj. podrazumijeva se jedno WITH unutar tijela metoda. dragisha
pascal.560 isekulovic,
Da nije neko slucajno skinuo pre blokade sledece fajlove sa tricklea? -stay42.arc ('How to write a TSR program in Turbo Pascal') -tp55tsr.zip ('TSR units for Turbo Pascal 5.5 applications') -tppop16.arc ('TPUs and ASM for popup and TSR programs')
pascal.561 bojanp,
> Kolko sam ja experimentisao ne mogu biti ni metodi. Ili možda grešim? Otkud metodi u TP 5.0???? Pozdrav, Bojan
pascal.562 mensi,
>> Da nije neko slucajno skinuo pre blokade sledece fajlove >> sa tricklea? >> -stay42.arc ('How to write a TSR program in Turbo Pascal') Imam samo ovaj, nadam se da ces imati srece i sa ostalima. mensi stay42.arc
pascal.563 dmiric,
> Otkud metodi u TP 5.0???? Nema ih. Ja sam mislio na verzije 5.5 / 6.0. (md)
pascal.564 dmiric,
> Ne griješiš. Razlog je to što svaki metod osim onih > parametara koje si pobrojao u deklaraciji ima i SELF koji > je skriven, tj. podrazumijeva se jedno WITH unutar tijela > metoda. Šteta. Zna li neko neki trik da se evo prenebregne? (md)
pascal.565 dragisha,
ű> Šteta. Zna li neko neki trik da se evo prenebregne? Teži slučaj. Mislim da bi moglo kada bi bilo moguće deklarisati proceduralne tipove unutar deklaracije klase, ali... dragisha
pascal.566 drpr,
Pošto mi je fajl moderator pre jedno mesec dana skidao neke fajlove sa trickla mislio je da ja imam one koji se traže ali nemam :(( Ali se javljam tj. pitam da li nekom trebaju sledeći fajlovi za tp koje sam uz njegovu pomoć i sam skinuo a vezani su za tp : Pull55.arc Pulldown menus for TP5.5, uses QWIK55,WNDW55 Qwik55.arc Quick screen utilities v5.5 for TP5.5 (w/scr) Wndw55.arc Popup widows for TP5.5,needs QWIK55.arc Tpw60 .arc Windows for Turbo Pascal Eto to je to pa ako nekom treba ja ću poslati. cope PS Jedno pitanje za Fajl moderatora.Pošto koristim zip i arj arhivere ja sam ove fajlove spakovao u arj.Da li sam time narušio prava autora ili ne.Naravno sačuvao sam sve doc. koji govore o pd ili sw verziji a i licenece.arc fajlove koji idu uz ove datoteke.
pascal.567 nenadp,
Jel zna neko gde ima kod nas da se kupi dobra knjiga za rad u Turbo Pascal - u 6.0. Sa objasnjenjem objektnog programiranja. Pozdrav, Nenad
pascal.568 bojanp,
> Jedno pitanje za Fajl moderatora.Pošto koristim zip i arj > arhivere ja sam ove fajlove spakovao u arj.Da li sam time > narušio prava autora ili ne.Naravno sačuvao sam sve doc. koji > govore o pd ili sw verziji a i licenece.arc fajlove koji idu uz > ove datoteke. Ukoliko si *sve* datoteke koje su bili u originalnoj arhivi stavio u novu arhivu nisi narušio prava autora. Pozdrav, Bojan
pascal.569 isekulovic,
>> Imam samo ovaj, nadam se da ces imati srece i sa ostalima. Hvala, ovaj mi je ponajvise trebao!:)
pascal.570 dmiric,
> Teži slučaj. Mislim da bi moglo kada bi bilo moguće > deklarisati proceduralne tipove unutar deklaracije klase, > ali... Ma ustvari nije bitno, tu gde treba odstupi se od objekata ... i sve je ok.
pascal.573 dmiric,
Nešto sam njuškao po OBJECTS.TPU (5.5) i ispada da je constructor po svojoj prirodi procedura, tj moguće je nešto poput: if Obj.Init then ... Sad se postavlja pitanje u kojim slučajevima je vrednost obj.init false. Kad se unutar Init-a izvrši FAIL? Btw da li fail radi i exit? I zašto ista šema ne važi za Done? (md)
pascal.574 drpr,
TPW60.ARJ Arhiva koja je zakačena uz poruku sadrži unit namenjen radu a prozorima.Dovoljno je poznavanje osnova programiranja da bi se ovladalo u radu sa prozorima koji ovaj unit omogućuje.Uz pomoć njega će te biti u stanju da napravite svoju sopstvenu aplikaciju koja će raditi za prozorima menijima ali koja neče biti nekog moćnog izgleda.Ipak dobar je u smislu ako ne želite da uđete u srž programiranja sa prozorima a oni su vam na neki način potrebni! cope tpw60.arj
pascal.575 drpr,
QWIK55.arj Unit koji zajedno sa sledeća dva čini moćnu alatku za rad sa prozorima I kontrolu ekrana ....Procedure su dosta dobro podeljene i obrađene u documentu koji ide uz arhivu a jedan isečak imate i sami priliku da vidite, i osetite da je rad uz pomoć doc-a veoma lak.F-je i procedure su napisane (dosta ih ima i u asm kodu (koji nije dat)) veoma čitljivo a i imena su im lako pamtljiva.Moje iskustvo se sastoji u sledećem:Veoma brzo jako i efikasno.Posle nekoliko dana sam ovladao sa dosta funkcija i procedura,a takođe postoje i neki utilites za stringove ,kursor itd.U sadejstvu sa sledeća dva programa rad sa prozorima je postao lak i zanimljiv.U arhivi je i demo program koji je mene zapanjio i u potpunosti prikazuje mogućnosti koda. Toplo ga preporučujem jer mislim da za većom brzinom nećete imati potrebe. T A B L E O F C O N T E N T S 1. INTRODUCTION . . . . . . . . . . . . . . . . . . . . . 3 Features . . . . . . . . . . . . . . . . . . . . . . 3 Using the Manuals . . . . . . . . . . . . . . . . . . 3 Licensing . . . . . . . . . . . . . . . . . . . . . . 4 Customer Service . . . . . . . . . . . . . . . . . . 4 ASP . . . . . . . . . . . . . . . . . . . . . . . . . 5 2. GETTING STARTED . . . . . . . . . . . . . . . . . . . . 6 Distribution Files . . . . . . . . . . . . . . . . . 6 Demonstration . . . . . . . . . . . . . . . . . . . . 6 Simple Programming . . . . . . . . . . . . . . . . . 6 Procedures and Functions . . . . . . . . . . . . . . 8 3. BASIC TECHNIQUES . . . . . . . . . . . . . . . . . . . 11 Number to String Conversion . . . . . . . . . . . . . 11 Cursor Mode Routines . . . . . . . . . . . . . . . . 11 Cursor Location Routines . . . . . . . . . . . . . . 13 EOS Marker . . . . . . . . . . . . . . . . . . . . . 13 Scrolling . . . . . . . . . . . . . . . . . . . . . . 14 Pop-Up Windows . . . . . . . . . . . . . . . . . . . 15 4. ADVANCED TECHNIQUES . . . . . . . . . . . . . . . . . . 17 Virtual Screens . . . . . . . . . . . . . . . . . . . 17 Video Pages . . . . . . . . . . . . . . . . . . . . . 18 Video Modes . . . . . . . . . . . . . . . . . . . . . 19 Multi-tasking Environments . . . . . . . . . . . . . 20 Interrupts . . . . . . . . . . . . . . . . . . . . . 20 5. HARDWARE DETECTION . . . . . . . . . . . . . . . . . . 21 Display Combination Code . . . . . . . . . . . . . . 21 Snow Checking . . . . . . . . . . . . . . . . . . . . 22 System Hardware . . . . . . . . . . . . . . . . . . . 23 Tips . . . . . . . . . . . . . . . . . . . . . . . . 23 APPENDIX A: Video Mode Table . . . . . . . . . . . . . . . 24 APPENDIX B: Cursor Mode Data . . . . . . . . . . . . . . . 26 Cursor Mode Tables . . . . . . . . . . . . . . . . . 26 Cursor Emulation . . . . . . . . . . . . . . . . . . 26 APPENDIX C: Performance . . . . . . . . . . . . . . . . . 29 Code Size . . . . . . . . . . . . . . . . . . . . . . 29 Speed . . . . . . . . . . . . . . . . . . . . . . . . 29 TP4 Usage . . . . . . . . . . . . . . . . . . . . . . 30 APPENDIX D: Application Products . . . . . . . . . . . . . 31 APPENDIX E: Revision History . . . . . . . . . . . . . . . 34 APPENDIX F: References and Credits . . . . . . . . . . . . 37 2 QWIK Screen Utilities User's Guide, Version 5.5 1. I N T R O D U C T I O N FEATURES Welcome to QWIK Screen Utilities! You have just obtained a copy of the highest performance screen writing tools available today for Turbo Pascal 5.5 (TP5). Both novice and professional programmers will appreciate these simple and very powerful utilities that gives you absolute control over your CRT displays in all text modes. Here are some of the features you will discover: . Writes on all IBM compatible computers, displays and adapters including the new PS/2 systems and Hercules. . Superior video detection routine. . Eliminates snow and flicker. . Writes directly to the screen in absolute coordinates. . Writes in all text modes and column modes. . Writes on all video pages. . Writes on virtual screens in RAM. . Writes text and attribute, text only, or attribute only. . Reads strings, characters and attributes. . Uses End-Of-String (EOS) marker for quick string chaining. . Provides standardized cursor control for all adapters. . Enhanced cursor movement. . 650+% faster than TP5 direct screen writing. . Works in multi-tasking environments. . Only 2.7k bytes of code if all 45 utilities are used. . Optimized by the compiler and drops unused code. . Used in all other Eagle products. cope qwik55.arj
pascal.576 drpr,
WNDW55.ARj Nastavak skupa od tri unita a ovaj je vezan a razliku od predhodnog samo za prozore dok je predhodni "radio" na screen utilities.Opažanja su ista kao i za pedhodni unit doc je opširan..... cope PS Popup windows for TP5.5 needs QWIK55.arc Jedna mala napomena zaone koji koriste tp6.0.Svi juniti imaju i sors uz sebe tako da aako dođe do nekompatibilnosti sa 5.5 treba ih samo kompajlirati pod 6.0.Ima i caka koja se pojavljuje uz sve a to je da u docu treba nađete koje junite trebada preimenujete iz dosa da bi oni mogli da rade recimo wndw55.tpu -> wndw.tpu wndw55.arj
pascal.577 drpr,
PULL55.ARJ Pull downmenus for TP5.5, uses QWIK55.arj WNDW55.arj Ovo je poslenji unit.Ispodimate sadržaj arhive u kojoj vidite i pullshell.pas tj program uz pomoć koga će te moći da napravite svoju aplikaciju,sa pulldown menijima.Sve što je važilo za prošla tdv važi i zaovaj treći.Uz pomoć shell-a ja sam počeo da pišem svoj programčić i ide veoma lako !Mislim da sam vam (uz pomoć nboskovica koji je bio ljubazan da sve ovo baci na sezam) bio od pomoći i da su neki našli baš ono što im je dugo trealo! ARJ 2.30 Copyright (c) 1990-92 Robert K Jung. Jan 19 1992 Registered to [Drljaca Predrag R#100000] Processing archive: PULL55.ARJ Archive date : 1992-05-20 04:30:38 Filename Original Compressed Ratio DateTime modified CRC-32 AttrBTPMGVX ------------ ---------- ---------- ----- ----------------- -------- ----------- GOOF.PAS 2391 1055 0.441 89-08-24 00:00:00 82C3BFC6 A--W B 1 P55-VAR.INC 9236 2892 0.313 89-08-24 00:00:00 2276A177 A--W B 1 PULL55-.PAS 1973 765 0.388 89-08-24 00:00:00 53B34281 A--W B 1 PULL55.DOC 175488 47746 0.272 89-08-24 00:00:00 0FBB21F9 A--W B 1 PULL55.TPU 29312 12915 0.441 89-08-24 00:00:00 2D405975 A--W B 1 PULLDATA.PAS 19584 4567 0.233 89-08-24 00:00:00 CCCE1027 A--W B 1 PULLDEMO.PAS 2231 1066 0.478 89-08-24 00:00:00 C3231F26 A--W B 1 PULLDIR-.PAS 1249 533 0.427 89-08-24 00:00:00 96B028B7 A--W B 1 PULLDIR.TPU 6256 3107 0.497 89-08-24 00:00:00 65EC726D A--W B 1 PULLREF.DOC 82176 16331 0.199 89-08-24 00:00:00 83AB26FF A--W B 1 PULLSTAT.PAS 29693 7841 0.264 89-08-24 00:00:00 1D4A805A A--W B 1 PULLWORK.PAS 3867 1446 0.374 89-08-24 00:00:00 46346B7F A--W B 1 QWIK55.TPU 8256 4241 0.514 89-08-24 00:00:00 ED0B74C1 A--W B 1 READ.ME 1411 589 0.417 89-08-24 00:00:00 70B9F7BF A--W B 1 STRS.TPU 1408 540 0.384 89-08-24 00:00:00 7EC69DA0 A--W B 1 WNDWP55.TPU 33072 13567 0.410 89-08-24 00:00:00 E3D7D0CD A--W B 1 WUTIL.TPU 1008 423 0.420 89-08-24 00:00:00 769F7467 A--W B 1 PULLSHEL.ARJ 9122 9088 0.996 89-08-24 00:00:00 BDA61C6C A--W B 1 LICENSE.ARJ 5067 5037 0.994 89-09-18 22:23:46 0EE4B955 A--W B 1 ------------ ---------- ---------- ----- 19 files 422800 133749 0.316 cope pull55.arj
pascal.578 ppekovic,
Hvala drpr-u na prilozima! Paya
pascal.580 duduk,
> Jedna mala napomena zaone koji koriste tp6.0.Svi juniti > imaju i sors uz sebe tako da aako dode do > nekompatibilnosti sa 5.5 treba ih samo kompajlirati pod > 6.0.Ima i caka koja se ......... Ali, aman, kako?! Ja sam u šestici uspeo da prevedem samo "strs". Svi tpu-ovi su neupotrebljivi (unit file format error, tako valjda). Pogledam malo pas-ove (pse?) i vidim u svim sorsovima uses qwik. Ja pogledaj qwik(55).pas, ono lepo, nema nigde uses. Ali, ne lezi vraže, ima gomila učitavanja obj-ova, a od njih u arhivama ni traga ni glasa. A jurio sam ih po sve tri... I šta biva? Not found, eto šta biva! Jes' da nisam mnogo zagledao, ali da obj-ovi padaju s neba, ne izgleda mi moguće. Dakle, kako do upotrebljivih tpu-ova za v6.0?!!!
pascal.581 drpr,
-> Svi tpu-ovi su neupotrebljivi (unit file -> format error, tako valjda). Pogledam malo -> pas-ove (pse?) i vidim u svim sorsovima -> uses qwik. Ja pogledaj qwik(55).pas, ono lepo, -> nema nigde uses. Ali, ne lezi vraže, ima -> gomila učitavanja obj-ova, a od njih u arhivama -> ni traga ni glasa. A jurio sam ih po sve tri... -> I šta biva? Not found, eto šta biva! Evo sta ja imam i nadam se da imaš i ti u arhivama prvi je tpw60.pas unit TPW60; interface uses crt; ............... to je unit od tog programa dalje { =========================================================================== } { QWIK55.PAS - Unit for direct/virtual screen writing ver 5.5, 08-24-89 } { Copyright (c) 1986-1989 James H. LeMay, Eagle Performance Software } { For documentation on this file see QWIK55.DOC and QWIKREF.DOC. } { Only 46 bytes of global data is used. } { =========================================================================== } { R-,S-,I-,D-,T-,F-,V-,B-,N-,L+ } { TP4 directives } {$A-,B-,D-,E-,F-,I-,L-,N-,O-,R-,S-,V-} { TP5 directives } UNIT Qwik; INTERFACE var .......................... ovo je od qwik.tpu Mislim da je to što trebaš da prevedeš a ako neće nemam pojma možda je zbog kompajler direktiva ali ja se u to baš ne razumem pa nek neko drugi odgovori ako i dalje budeš imao problema ( ja radim sa TP5.5 i nikakvih posebnoh problema nisam imao) cope
pascal.582 ilotina,
HI! Zna li neko kako mogu da dobijem vrednost Zero flag-a nakon npr funkcije 01h interapt 16h? Pozdrav Ivan! P.S. Taj interapt daje status tastature, zero flag=0 ako je buffer prazan, a =1 ako nije
pascal.583 drakce,
│kako mogu da dobijem vrednost Zero flag-a nakon npr funkcije 01h interapt 16h └───── program zeroflag; Uses Dos; var regs: registers; begin regs.ah:=1; intr($16,regs); if (regs.flags and FZero)<>0 then writeln('Zero flag is set') else writeln('Zero flag is reset'); end. Registers je tip definisam u Dos unit-u i sadrži sve registre, a FZero je konstanta (takođe iz Dos-a) i ima vrednost 64. Sa logičkim AND ispitaš da li je 6. bit (Zero flag) setovan ili ne. Pozdrav
pascal.584 duduk,
> UNIT Qwik; > ... > INTERFACE > ... Baš tako, u interface sekciji nema uses ..., dakle ovaj Qwik je, kako bih rekao, "glavni" unit, na koji se ostali "pozivaju". ALI, ne mogu da ga prevedem jer se u njemu traži komila obj-ova, neki init, pa neki scroll, ima ih desetak možda, a u arhivama ni traga ni glasa kako od "gotovih" obj-ova, tako ni od bilo čega što bi dovelo do obj-a, nekog asm-a, recimo. Ovako kako je, izgleda da source nije kompletan, možda nije ni predviđeno da bude u "SW rel."? BTW, da li postoji neki 'TPU koverter' koji bi prebacio TPU iz v5.5 u formu iz v6.0? To bi moglo da bude spasonosno rešenje.
pascal.585 ilotina,
Hvala!
pascal.586 vvelisavljev,
I kod mene radi samo TPW60. Stvar je strašna, mislim da mi ni nije potrebno ništa više za prozore i menije u Pascalu. HVALA. Svima ih preporučujem. Naročito mi se sviđa što mogu lako da menjam onu proceduru za meni. (potrebno mi je da se "odaziva" na još neke tastere osim ESC) A što se tiče ostala tri paketa: sva sreća što nisam uspeo da prenesem sva tri, žali bože vremena i para. Zato PAčNJA za sve one koji koriste TP 6.0, i ne nameravaju da se vrate na 5.5, da ne prenose ova tri paketa koja u svom nazivu imaju "55". Viktor
pascal.587 drpr,
-> A što se tiče ostala tri paketa: sva sreća što -> nisam uspeo da prenesem sva tri, žali bože -> vremena i para. Zato PAčNJA za sve one koji -> koriste TP 6.0, i ne nameravaju da se vrate na -> 5.5, da ne prenose ova tri paketa koja u svom -> nazivu imaju "55". Ja se svima izvinjavam ali sam mislio da Borland nije toliko zasr** u vezi tih tpu-ova :(((>JA koristim tp5.5 i ako negde vidite ova tri sledeća fajla shavtićete da oni mnogo bolje rade od tpw60.Ako neko ima pristup trickleu(na neki volšeban način) neka pogleda da li su stigle 60 verzije.U mom listingu od 4 maja '92 tih verzija nema :(( cope
pascal.588 vvelisavljev,
> Ja se svima izvinjavam ali sam mislio da Borland nije toliko Prihvaćeno, nema ljutim. ( ko mi kriv kad žurim sa DLom :) ) Još jednom, hvala na trudu!
pascal.589 lucas,
Na disketi gde mi je bio turbo pascal 4.0 oštetili su mi se 4 fajla pa ako ih n neko ima neka mi pošalje na mail. To su sledeći fajlovi: BINOBJ.EXE BINOBJ.DOC CPASDEMO.PAS CPASDEMO.C Unapred zahvalan LUCAS .... p.s.Fajlovi su sa druge diskete koja se zove GRAPHICS/MICROCALC p.s.s.Poruka za moderatora - Imam original tp 4.0 nebrini ovo nije piratisanje samo mi se oštetila disketa
pascal.590 jtitov,
Dobio sam neku SW zamenu za korisnike TPascal-a. S obzirom da ne pratim konferenciju pascal, saljem izvod je ovde, pa ako ste zainteresovani da saljem na Sezam. Welcome to SYS60 replacement unit for Turbo Pascal 6.0! How would you like to speed up your Turbo Pascal 6.0 programs without changing a single line of code? You have just found the easiest way to do it! SYS60 replaces the SYSTEM.TPU in your TURBO.TPL library with our unit which has much faster algorithms for over 32 built-in procedures and functions like Pos and Div. See as much as 800% increase in speed!
pascal.591 dmiric,
Juče me je ortak ubeđivao da se kod koji se u tp6 generiše sa ASM naredbom sporije izvršava nego ako se isto to napiše u TASMu i zatim linkuje. Ima li realnog osnova za ovo i ako ima zašto je to tako... (md)
pascal.592 vbole,
> Juce me je ortak ubedivao da se kod koji se u tp6 generise sa ASM > naredbom sporije izvrsava nego ako se isto to napise u TASMu i zatim > linkuje. Ima li realnog osnova za ovo i ako ima zasto je to tako... Onaj deo izmedju 'asm' i 'end' se prevodi u isti kod kao i sa TASM-om. Sad, sto TP uradi jos mali milion stvari pre i posle tog koda, to je druga stvar, ali kod kao takav je isti u oba slucaja.
pascal.593 dmiric,
> Onaj deo izmedju 'asm' i 'end' se prevodi u isti kod kao i > sa TASM-om. Sad, sto TP uradi jos mali milion stvari pre i > posle tog koda, to je druga stvar, ali kod kao takav je > isti u oba slucaja. To je i meni bilo logično i pokušao sam da ga ubedim, ali on je toliko zapeo da me ubeđuje da me je na kraju pokolebao :) thanx, (md)
pascal.594 ssokorac,
Neko je ovda skoro pitao da koja je najbolja knjiga za objektno programiranje u TP 6.0, ali niko nije odgovorio... Zar niko ne zna ni jednu dobru knjigu??
pascal.595 ppekovic,
>> Neko je ovda skoro pitao da koja je najbolja knjiga za objektno >> programiranje u TP 6.0, ali niko nije odgovorio... Zar niko ne zna ni >> jednu dobru knjigu?? Ja imam jednu knjigu o pascal OOP-u ali za TP 5.5. Knjigu je napisao Ivan Papeš, izdanje Naučna knjiga. Video sam i neke knjige autora Duška Savića (dsavic) o OOP-u, možda u njima ima nešto vezano za TP 6.0. Uostalom, skoči do palate Albanija, tj. knjižare Jugoslovenska knjiga, pa pogledaj, ako tamo nema, neznam gde ćeš naći. Paya
pascal.596 dmiric,
> Neko je ovda skoro pitao da koja je najbolja knjiga za > objektno programiranje u TP 6.0, ali niko nije > odgovorio... Zar niko ne zna ni jednu dobru knjigu?? Ja imam "Object Oriented Programming in Turbo Pascal 5.5" by Ben Ezzel published by Addison-Wesley. Sve u svemu knjiga daje jedan programerski pristup svemu tome, kroz razvoj nekoliko programa. Nema suvoparnog teoretisanja koje se često sreće u onom što pišu neki domaći autori. Jedina zamerka je možda što nema silaženja u potpalublje, mada je dosta toga napisano i o VMT i o nekim drugim podzemnim stvarima. Ah,da knjigu sam ko što reče ppekovic kupio u juggoslovenskoj knjizi kod (u) Albanije pre jedno godinu dana... (md) PS. ako te još nešto zanima slobodno pitaj :)
pascal.597 ssokorac,
:> Ah,da knjigu sam ko sto rece ppekovic kupio u :> juggoslovenskoj knjizi kod (u) Albanije pre jedno godinu :> dana... Hvala ppekovicu i tebi, skoknucu do (u:) Albanije pa cu pogledati... Stasha
pascal.598 dmiric,
> Hvala ppekovicu i tebi, skoknucu do (u:) Albanije pa cu > pogledati... Mada nisam nešto ubeđen sa ćeš naći nešto. Ja sam bio par puta i nikada nije bilo ničeg o pascalu :((( (md)
pascal.599 ssokorac,
:> Mada nisam nesto ubeden sa ces naci nesto. Ja sam bio :> par puta i nikada nije bilo niceg o pascalu :((( Pa, cekaj, malopre rece da si tamo kupio knjigu?
pascal.600 dmiric,
> :> Mada nisam nesto ubeden sa ces naci nesto. Ja sam bio > :> par puta i nikada nije bilo niceg o pascalu :((( > > Pa, cekaj, malopre rece da si tamo kupio knjigu? Da al to je bilo pre rata :) Uostalom možda nađeš nešto. Javi rezultate. (md)
pascal.601 drpr,
Zanima me jedno objašnjenje u vezi unita. Kada se izvršava deo koji se nalazi između begin i end. u unitu Da li samim tim što sam postavio uses imeunita ili kada se poziva bilo koja procedura definisana u implementation? cope
pascal.602 ssokorac,
:> Da al to je bilo pre rata :) Uostalom mozda nades nesto. :> Javi rezultate. :) OK. Javicu...
pascal.603 sslavko,
>> Dobio sam neku SW zamenu za korisnike TPascal-a. S >> obzirom da ne pratim konferenciju pascal, saljem izvod je >> ovde, pa ako ste zainteresovani da saljem na Sezam. Ja sam zainteresovan. Ako stvarno 8 puta ubrzava izvrsni program i još ako je 100% kompatibilna sa SYSTEM.TPU onda zašto da ne? Pozdrav Slavko.
pascal.604 dejanr,
>> Kada se izvršava deo koji se nalazi između begin i end. Onoga momenta kada startuješ program, izvršavaju se prvo ti segmenti begin...end u svim unit-ima koje program poziva. Ako ti unit-i pozivaju neke druge unit-e, izvršava se i taj kod u njima. Tek se onda prelazi na glavni program. Ako te zanima tačan redosled (koji zavisi od redosleda navođenja unit-a, ali se dalje komplikuje kada ti unit-i pozivaju druge, pritiskaj F7 (debugger) i posmatraj.
pascal.605 sslavko,
Dragi moji SEZAM-ovci, šaljem Vam Demo verziju svog programa BUGI (BUssines GuIde) na testiranje. Nije veliki ali može da bude veoma koristan. Rado ću primiti sve dobronamerne kritike i primedbe. Voleo bih da Vas što više pogleda ovaj program kako bi što pre bio razvijen i doteran do ozbiljne i pre svega korisne aplikacije. Program šaljem ovde jer je napisan u Turbo Pascalu. Pozdrav Slavko. bugidemo.zip
pascal.606 ssokorac,
:> primiti sve dobronamerne kritike i primedbe. Voleo bih :> da Vas sto vise pogleda ovaj program kako bi sto pre bio :> razvijen i doteran do Evo jedne. Kod pretrazivanja po, recimo, imenu, kaze unesi ime ili deo imena, kada unesem ejan, nikad ne nadje Dejana Ristanovica, jer samo trazi imena sa takvim pocetkom (kao sto i napise posle '...nema vise imena koji pocinju sa " ejan "'). Tu bi trebalo to izmeniti da trazi i samo deo imena. Takodje, bila bi korisna i opcija koja izbacuje sve podatke, a ne da ih trazi po nekom kriterijumu... Stasha
pascal.607 drpr,
-> Ako te zanima tačan redosled (koji zavisi od -> redosleda navođenja unit-a, ali se dalje -> komplikuje kada ti unit-i pozivaju druge, -> pritiskaj F7 (debugger) i posmatraj. Sad me znima da li je moguće nekako promeniti taj redosled jer bih zeleo recimo da ispitam neki uslov pa ako je sve to ispunjeno da se ne radi pozivanje unita vec nesto drugo.Moze recimo da sve delove koji se nalaze između begin i end bacim u jednu proceduru pa ako je uslov ispunjen da je pozivam ali da li postoji neko rešenje.Da vam kažem u čemu je problem.U programu koji radim se crta neka "po-up" okolina sve je u prozorima ali ako recimo koriznik navede neki svič želeo bih da se sve to ne crta već da se ode na neke druge strukture.Mislm da sam bio dovoljno jasan :) cope PS Program radim u tp5.5 a program je veliki tako da je jedino rešenje u radu sa uniti-ma.Tako da predlozi o trpanju svega u jedan program ne vredi,program je duži biće bar od 64k.O prelasku na 6.0 opet nema govora jer koristim unite iz 5.5(one koje sam vam poslao a neće da se prevedu)
pascal.608 drpr,
-> šaljem Vam Demo verziju svog programa BUGI -> (BUssines GuIde) na testiranje. Nije veliki ali -> može da bude veoma koristan. Rado ću Prvo pravi razliku između "Dejan" i "dejan" što može veoma da smeta.Drugo se opcije biraju samo kursorima što neko kome to smeta može da zameri,znači trebalo bi da može da se bira sa početnim slovom opcije.Ako budete koristila yu slova sve poruke treba da strpate u jednu datoteku da bi mogle da se konvertuju u kodni raspored korisnika.Ostalo ne izgleda loše možda još jedna stvar :).Trebalo bi da dozvolite definisanje sloga korisniku,hoću da kažem da nekoga ne zanima predstavnik firme ili nešto drugo to i ne upisuje ,to i "ne vidi", po tome i neželi da traži;tako da umesto za takve stvari stalno kuca enter vi mu okolinu namestite hendi :)) cope Ps nadam se da su kritike bile konstruktivne
pascal.609 isekulovic,
>> Ja sam zainteresovan. Ako stvarno 8 puta ubrzava izvrsni program i još >> ako je 100% kompatibilna sa SYSTEM.TPU onda zašto da ne? I ja sam zainteresovan. ivan
pascal.610 dusanp,
Ex moj sslavko... Video sam i boljih i lepsih telefonskih imenika. O nekom biznis gajdu nema ni govora. Ne znam koliko imaš godina, ali programerski staž ti je dosta kratak ili te pisanje mrzi... A cenu bi mogao da izracunas MaThAssistant-om (mala crna kutija, ima tastere sa brojevima i zna 4 racunske operacije) ;>. Bez uvrede.
pascal.611 sslavko,
>> Evo jedne. Kod pretrazivanja po, recimo, imenu, kaze >> unesi ime ili deo imena, kada unesem ejan, nikad ne nadje >> Dejana Ristanovica, jer samo trazi imena sa takvim >> pocetkom Da znam. Pretraživanje po *delu* imena još nije urađeno ali je u planu. Pozdrav Slavko.
pascal.612 sslavko,
>> Prvo pravi razliku između "Dejan" i "dejan" što može >> veoma da smeta. Tek sada vidim da uopšte nisam obratio pažnju na taj detalj :)) Kako to da mi se desi? :))) Biće ispravljeno veoma brzo. >> Drugo se opcije biraju samo kursorima što neko kome to >> smeta može da zameri,znači trebalo bi da može da se bira >> sa početnim slovom opcije. Biće, biće... >> Ako budete koristila yu slova sve poruke treba da strpate >> u jednu datoteku da bi mogle da se konvertuju u kodni raspored >> korisnika. Ovo je ideja koja mi se veoma dopada i sigurno će biti uskoro primenjena. >> Ps >> nadam se da su kritike bile konstruktivne Svakako. E da ih je više... :)))) Pozdrav Slavko.
pascal.613 bearboy,
Imam DOS programcic koji ima svoje parametre, a ja sam, genije, zagubio sors. Problem je u tome, sto sad hocu da integrisem taj program u jedan drugi, i ne znam kako da mu dostavim parametre potrebne za rad. Ako probam sa parametrom tipa string, nece.... (radi se o .OBJ-u)
pascal.614 ppekovic,
>> Ex moj sslavko... >> Video sam i boljih i lepsih telefonskih imenika. >> O nekom biznis gajdu nema ni govora. Ne znam koliko >> imaš godina, ali programerski staž ti je dosta kratak >> ili te pisanje mrzi... Konferencija PC.PROG, kao uostalom i ostale konferencije na Sezamu su širom otvorene ne samo za iskusne programere već i za sve one koji nemaju mnogo iskustva u programiranju. Ovakvim diskvalifikacijama nećeš učiniti nikom dobro, ni sebi, ni sslavko-u. I ne zaboravi da postoje i oni koji znaju više od tebe koliko ti znaš (?) više od sslavka. Paya
pascal.615 ssokorac,
:> Da znam. Pretrazivanje po *delu* imena jos nije uradeno :> ali je u planu. Ih, bre, ko da za to treba godinu dana pa pravite plan... Ubaci ta tri reda pa salji...:)
pascal.616 ssokorac,
Moze li neko da napise (u konferenciju) dobru proceduru za kopiranje fajlova. Ona iz help-a (repeat blockread blockwrite until kraj_datoteke) je suvise spora... Hvala unapred, Stasha.
pascal.617 stomic,
$>> Ako budete koristila yu slova sve poruke treba da $>> strpate u jednu datoteku da bi mogle da se konvertuju u $>> kodni raspored korisnika. $ $ Ovo je ideja koja mi se veoma dopada i sigurno će biti $ uskoro primenjena. Procitaj malo o UKRASu u YU.KOD, imaš i UNIT u TP sa izvornim kodom koji ti sve ovo obavlja ( pogodi ko je autor :) ), a i nije potrebno da sve poruke držiš u jednoj datoteci. Pozdrav, STomic.
pascal.618 dusanp,
=> iskustva u programiranju. Ovakvim diskvalifikacijama => nećeš učiniti nikom dobro, ni sebi, ni sslavko-u. I ne => zaboravi da postoje i oni koji znaju više od tebe Ok, priznajem da sam se malo zaboravio - izvinjenje i sslavku i svima koji su se osetili pogodjenima. Vec duze vreme se ljutim na "programere" koji urade posao ili dva ali pri tome rapidno obaraju cene... Naravno, ni na kraj pameti mi nije da je sslavko jedan od njih, on je samo natrcao kada sam bio isprovociran:((
pascal.619 dmiric,
> Procitaj malo o UKRASu u YU.KOD, imaš i UNIT u TP sa > izvornim kodom koji ti sve ovo obavlja ( pogodi ko je > autor :) ), a i nije potrebno da sve poruke držiš u jednoj > datoteci. Izvini što upadam :), jel se taj unit nalazi na sezamu? (md)
pascal.620 spantic,
> Bez uvrede. Izvini, ali kako možeš to da kažeš posle teksta u kome si ocrnio čoveka? On se potrudio i nije tvrdio nigde da je napisao najbolji program na svetu već jednostavno je izložio program primedbama. E pa, ne vidim da tvoja zakeranja spadaju u to.
pascal.621 janko,
> Izvini što upadam :), jel se taj unit nalazi na sezamu? > (md) Samo ti upadaj. :) Naravo da da, i u javnom je vlasništvu, što će reći, možeš ga koristiti bez naknade u svojim programima. Nisi obavezan, ali po programerskom bontonu je da u dokumentaciji ili samom programu u kome iskoristiš taj junit pomeneš i autora. A ako junit usavršiš da bude još bolji, (u kom smeru treba da se usavršava? I to piše u SEZAM.2:yu.kod!) i priložiš sors, onda ćeš i ti biti pominjan kao autor u tuđim programima. :) Konkretno, ima tu šta da radi, ko hoće da radi. Naravno, postoji i modul na C-u, koji radi istu stvar, za one koji pišu na C-u. Svima koje tematika interesuje toplo preporučujem da uđu u SEZAM.2 i lepo skinu CELU temu yu.kod, dakle i tekstove, i fajlove, i sve lepo prouče. Sami fajlovi vam verovatno neće biti dovoljni da potpuno iskoristite sve što se može iskoristiti -- pa ne želite truda. U početku se tema bavila standardizacijom ćirilice (relevantni su, naravno, poslednji rezultati, a ne i početni predlozi) a zatim se, negde od sredine maja, ako se sećam, tema bavi upravo podrškom RAZLIžITIH rasporeda, sa komentarima koji su potrebni da bi se razumeli programi koje želiš da koristiš. Naime, ti programi su nastali upravo tako što je puno toga isplanirano još pre no što je napisana ijedna linija koda. Posle se podrazumevalo da svi znaju šta se događa. A, usto, ti programi mogu biti i bolji, a kako da ih učiniš boljima, i to piše u SEZAM.2:yu.kod.
pascal.622 janko,
> $>> Ako budete koristila yu slova sve poruke treba da > $>> strpate u jednu datoteku da bi mogle da se konvertuju > u $>> kodni raspored korisnika. > $ > $ Ovo je ideja koja mi se veoma dopada i sigurno će biti > $ uskoro primenjena. Da i ja dodam: Kao što je S.Tomić rekao, ideja je malo zastarela, postoji bolje rešenje. O detaljima rešenja je pisano u SEZAM.2:yu.kod, pa zainteresovanima preporučujem da pregledaju tekstove CELE teme, gde će naći još detalja. žini mi se da nije dovoljno samo skinuti tu datoteku, za pravo razumevanje svih njenih mogućnosti, koje nisu male. Dakle, odnosi se na SEZAM.2:yu.kod: > Procitaj malo o UKRASu u YU.KOD, imaš i UNIT u TP sa > izvornim kodom koji ti sve ovo obavlja ( pogodi ko je > autor :) ), a i Da ostale rešim muke pogađanja, prvi ko je uopšte napisao program koji radi (skoro) 'po UKRASU' je upravo Slobodan Tomić, čovek koji je pisao poruku kojoj dodajem ovu. Junit je pisan u Turbo Paskalu, u arhivi je i sors i samog junita i demo programa koji koristi junit, kao i izvršna verzija demo programa.
pascal.623 sslavko,
>> Video sam i boljih i lepsih telefonskih imenika. Ne sumnjam. >> O nekom biznis gajdu nema ni govora. Ne znam koliko >> imaš godina, ali programerski staž ti je dosta kratak žini mi se da sam napomenuo da je to samo osnova jednog malog programčića koji bi mogao da bude koristan i koji je ovde stavljen da bi se skupili utisci ostalih kako bi taj programčić eventualno prerastao u neku ozbiljniju aplikaciju. Dakle, niko ne treba na osnovu njega da ocenjuje koliko autor ima godina (apsurd) ili koliki mu je programerski staž. >> A cenu bi mogao da izracunas MaThAssistant-om (mala >> crna kutija, ima tastere sa brojevima i zna 4 racunske >> operacije) ;>. Jesam li negde pominjao cenu??? Hajde pogledajte da li je negde pomenuta cena! Ponavljam da se program našao ovde da bi se ocenili i na osnovu komentara poboljšali njegovi kvaliteti a ne da bi mu se odredila cena. Kad postane upotrebljiv i iole vredan onda ću mu već odrediti cenu i sigurno mi neće biti potrebna "mala crna kutija" sa tasterima i sl. jer moj trud i rad samo ja mogu da ocenim, a korisnost programa će već oceniti tržište. >> Bez uvrede. Daj i daće ti se, učini nekome nažao i vratiće ti se. Pozdrav Slavko.
pascal.624 sslavko,
>> Ok, priznajem da sam se malo zaboravio - izvinjenje >> i sslavku i svima koji su se osetili pogodjenima. "Grešiti je ljudski a praštati božanski" >> Naravno, ni na kraj pameti mi nije da je sslavko jedan od >> njih, on je samo natrcao kada sam bio isprovociran:(( Utešno nema šta. Ali dobro. Svakome se to dešava pa nešemo da se ljutimo ali stvarno nema smisla nekome se obraćati na taj način a da se prethodno nema nikakve predstave o njegovom radu i sposobnostima. Ovde ne želim da se pomisli da hoću da kažem da sam ja neki bog_zna_kakav talenat i programer. Naravno da nisam ali iza sebe imam par vrlo ozbiljnih aplikacija i ne smatram se početnikom. Ovo je bio jedan od mojih prvih dodira sa bazama podataka (do sada sam se gadio na samu reč "baza podataka"). Pozdrav Slavko.
pascal.625 sslavko,
Evo je verzija 1.1 programa BUGI. Ispravljene su neke sitne stvari oko pretraživanja. Pozdrav Slavko. bugidemo.zip
pascal.626 bearboy,
˙¨:> Sad me znima da li je moguce nekako promeniti taj redosled jer ˙¨:> bih zeleo recimo da ispitam neki uslov pa ako je sve to ˙¨:> ispunjeno da se ne radi pozivanje unita vec nesto drugo.Moze Nisam siguran da ovo ono sto trazis, ali probaj. U prvi unit pogledas taj tvoj IF, pa ako je true, opalis $DEFINE TAKOJEBOGAMU, npr., a u sledecem unitu na pocetku kazes $IFDEF TAKOJEBOGAMU, i on ce izvrsiti deo tog drugog unita do sledeceg $ELSE-a ili $ENDIF-a. Primer (nisam probao :) Unit jedan; blablablablabla if a>=15 begin {$DEFINE ISTINAJESTOPODSTO} end; blablablablablablabla end. Unit dva; blablablabla {$IFDEF ISTINAJESTOPODSTO} blablablablablabla {$ELSE} blablablablablabla {$ENDIF} {$UNDEF ISTINAJESTOPODSTO} end. Program glavni uses jedan,dva; blablabla end. Tako nesto, valjda... Nemojte me vuci za jezik, nisam siguran !
pascal.627 dmiric,
> Samo ti upadaj. :) Naravo da da, i u javnom je > vlasništvu, što će reći, možeš ga koristiti bez naknade u > svojim programima. Nisi obavezan, ali po programerskom > bontonu je da u Puno hvala... Sad ću skinuti Sezam2:yu.kod pa ću da vidim o čemu je reč. :) (md)
pascal.628 bearboy,
˙¨:> Moze li neko da napise (u konferenciju) dobru proceduru za kopiranje ˙¨:> fajlova. Ona iz help-a (repeat blockread blockwrite until kraj_datoteke) je ˙¨:> spora... Pazi ovo genijalno resenje ;) procedure kopiraj(a,b :string); begin swapvectors; exec(getenv('COMSPEC'),'/C'+' COPY '+a+' '+b); swapvectors; end; :)))))))) Originalno resenje :)))))))
pascal.629 ssokorac,
:> exec(getenv('COMSPEC'),'/C'+' COPY '+a+' '+b); Super pomogao si mi, ne znam kako da mti se oduzim. Posalji ovo kao prilog u FIZIKON. Ma, da l; je moguce da niko nece (ne zna(?)) da napise proceduru za kopiranje fajlova? :(
pascal.630 dejanr,
>> Ma, da l; je moguce da niko nece (ne zna(?)) da >> napise proceduru za kopiranje fajlova? :( Vidi, to sa BLOCKREAD/BLOCKWRITE nije baš tako sporo, koliko znam ni DOS funkcijama se ne može čitati više od 64K "u komadu". Prosto napravi što veći blok, ali na heap-u da ne bi trošio osnovnu memoriju. Ako treba primer, mogu da ga napišem.
pascal.631 stomic,
$ Super pomogao si mi, ne znam kako da mti se oduzim. $ Posalji ovo kao prilog u FIZIKON. Ma, da l; je moguce da $ niko nece (ne zna(?)) da napise proceduru za kopiranje $ fajlova? :( Neznam kako ti je sporo sa BlockRead i BlockWrite. Odvoji više prostora za buffer (od 30-60KB). Sa ovim procedurama napravio sam program koji radi na fazon XCOPY (isti je), i ista je brzina (mozda +/-1%). Pozdrav, STomic.
pascal.632 stomic,
Da li je moguće presresti Run-Time Error u TP, tako da se izvrši neka korisnička procedura umesto ispisa ove poruke. Pozdrav, STomic.
pascal.633 dejanr,
>> Da li je moguće presresti Run-Time Error u TP, tako da >> se izvrši neka korisnička procedura umesto ispisa ove poruke. Da! Pogledaj u uputstvu, pod exitproc. Jako ukratko, radi se to ovako: var exitsave: pointer; procedure myexitproc; begin exitproc:=exitsave; { ... } end; begin exitsave:=exitproc; exitproc:=@myexitproc; ... end. Kada program završava rad, bilo zbog greške ili halt-a, doći će u proceduru myexitproc, pa tamo može uraditi šta treba. Mislim da ima i neka promenljiva koja čuva kod greške, ali je ne znam napamet, treba pogledati u uputstvo. Može se napraviti i exit procedura posebno za svaki unit, to sam u svoje vreme radio i sjajno je funkcionisalo. Mislim da RIND i VOTE takođe imaju exit procedure, a bogami i ova nova igrica što je upravo testiramo :)
pascal.634 dmiric,
> Može se napraviti i exit procedura posebno za svaki unit, > to sam u svoje vreme radio i sjajno je funkcionisalo. Kako to exit procedura za svaki unit? Koja se od njih izvršava kad dođe do greške? Da li se izvršavaju sve i ako je tako kojim redosledom? Ili se možda izvršava samo ona definisana za deo programa (unit ) u kome je došlo do greške? Prosvetli me :) (md)
pascal.635 drpr,
-> -> Unit jedan; -> blablablablabla -> if a>=15 begin -> {$DEFINE ISTINAJESTOPODSTO} -> end; -> blablablablablablabla Hvala na pomoći ovo za sad nemam vremena da probam ali u svakom slučaju hvala pa kad budem probao javitću cope
pascal.636 ssokorac,
:> Vidi, to sa BLOCKREAD/BLOCKWRITE nije bas tako sporo, :> koliko znam ni DOS funkcijama se ne moze citati vise od :> 64K "u komadu". Prosto napravi Pa, u onom primeru se cita u buf koji je array [1..2048] of char, da li to znaci da ga samo treba povecati na od 1 do 64*1024 i radice normalno, ili ne? Jer, ovako on cita samo blokove od 2K, a to jeste sporije, i to osetno. :> Ako treba primer, mogu da ga napisem. Ako ne radi ono sa 64*1024, onda bi ti bio zahvalan, ako radi, onda nema potrebe. Stasha P.S. Evo, stavio sam na 30*1024, i radi, i to brzo :) Thanx!
pascal.637 ssokorac,
:> Neznam kako ti je sporo sa BlockRead i BlockWrite. :> Odvoji vise prostora za buffer (od 30-60KB). Sa ovim :> procedurama Aha, u tome je bio stos. Stavio sam za buffer 30Kb, i radi odlicno (i brzo). Hvala. Stasha
pascal.638 ssokorac,
:> takode imaju exit procedure, a bogami i ova nova igrica :> sto je upravo testiramo :) Kad smo vec kod toga, ima jedna igrica PIT. E, sad nije vazno o cemu se u njoj radi, tek ako pukne veza u sred borbe, sledeci put te doceka porukom tipa 'Sram te bilo, prekidas vezu u sred borbe, puko si sve sto si imao!'. E, sve, samo to da ne bude i u vasoj igrici...:)
pascal.639 dejanr,
>> Kako to exit procedura za svaki unit? Koja se od njih izvršava kad dođe >> do greške? Da li se izvršavaju sve i ako je tako kojim redosledom? Uh, bojim se da je to malo preveliki test za moje pamćenje, ali mi se čini da to radi otprilike ovako: rutina za završetak programa u RTL-u poziva exit proceduru čija je adresa u exitproc sve dok u toj promenljivoj ne nađe nil. Da bi se izbegle mrtve petlje, pre svakog poziva RTL stavi da je exitproc:=nil. Ako svaku exit proceduru definišeš na način koji sam opisao, ona će sama vratiti u exitproc kod PRETHODNE exitproc sa nekog, da tako kažem, implicitnog steka koji si formirao. U zbiru, prvo će se pozvati poslednja exit procedura, pa pretposlednja i tako dalje, sve do prve. Ako u toku same exit procedure nastupi greška, ista se NE poziva ponovo. Sve to piše u uputstvu TP5.5 na strani 229-230. Tamo videh i nešto što sam zaboravio, a to je da ako se radi sa exit procedurama u više unit-a obavezno treba u svaki staviti {$F+} - force far calls
pascal.640 zddb,
Ako instalirate neki "Borlandov" program i javlja vam se poruka "problem with unzip.exe C)ontinue or A)bort" evo o čemu se radi. Sa instalacione diskete program za instalaciju prebacuje na hard disk prvo sam sebe, zatim read.com, te unzip.exe, a onda sve *.zip fajlove, zatim ih raspakuje, pozivajući unzip.exe sa HARD-DISKA, te ide na novu disketu, itd. Ako ste dobili programe od nekog pacera koji živi u uvjerenju "da su Borlandovi programi jeftini da bi imali zaštitu", te nema potrebe za DISKCOPY,a uz to je "Prase" pa kopira fajlove uz pomoć nekog od onih stupidnih "tools"-ova koji fajlove na novoj disketi SORTIRAJU po nazivu - imaćete sat-dva grdnog belaja. Treba disketu da preuredite tako da prvi bude install.exe, read.com a onda unzip.exe! Ostalo nije bitno. Sva je suština da instalacioni program nije dovoljno inteligentan da fajlove prebacuje prema imenu, nego đuture, kako su naslagani na disketu. Eto suštine čuvenog "bug"-a sa instalacijom "Turbo C++ 2.0" i "Turbo Pascal 6.0". I pirati treba da imaju bar trun poštovanja prema nekim pravilima. Ne muče se ljudi džabe milione godina (mislim na Srbe i Jevreje, pa poslije amebe), da otkriju neke regule unutar svekolikog haosa. ZDDB P.S. Nemojte stvarno misliti da sam ja to stvarno ukapirao za sat-dva!* S
pascal.641 bojanp,
> Sve to piše u uputstvu TP5.5 na strani 229-230. Tamo videh i nešto što > sam zaboravio, a to je da ako se radi sa exit procedurama u više unit-a > obavezno treba u svaki staviti {$F+} - force far calls Hm, koliko mi je poznato to nije neophodno. Jedino što je neophodno je da procedura koja se poziva bide deklarisana kao far. Pozdrav, Bojan
pascal.642 stomic,
Imam problema pri povezivanju DSZa i TP programa (koji je dugačak negde oko 120KB). Pre startovanja DSZa ostaje oko 420KB slobodnog prostora, ali on javlja: Need more memory to run DSZ ili tako već nešto. Kada sam izbacio par TSR programa uspevam da ga startujem ali pri prenosu npr. PKZ110.EXE on javlja: PKZ110.EXE: Not enoght core. Napominjem da sam stavio direktivu {$M $4000,0,0}, i startujem preko command.com-a: SwapVectors; Exec(Getenv('COMSPEC'),'/C DSZ.COM...'); SwapVectors; U uputstvu za DSZ piše da mu je dovoljno 64KB (?). U čemu je problem. BTW stvar je prilično hitna. Inače DSZ radi ok sa TM. Pozdrav, STomic.
pascal.643 dejanr,
>> Imam problema pri povezivanju DSZa i TP programa (koji je >> dugačak negde oko 120KB). Pre startovanja DSZa ostaje oko 420KB >> slobodnog prostora, ali on javlja: Need more memory to run DSZ >> ili tako već nešto. Stavi na početak programa {$M 32000,0,0}
pascal.644 bojanp,
Da li neko ima Turbo Pascal for Windows 1.5 i koristi li ga? Interesuju me razlike u odnosu na verziju 1.0, kao i prilagođenost rada za Windows 3.1. Pozdrav, Bojan
pascal.645 stomic,
$ Stavi na početak programa {$M 32000,0,0} Probao sam sve, i više i manje i tačno toliko (dobro ne baš tačno nego $8000, ali neverujem da ima neke razlike). Na kraju sam izdelio program na overlay-e i sada radi OK. Ipak hvala na pomoći. Pozdrav, STomic.
pascal.646 dmiric,
Ok hvaal puno... (md)
pascal.647 edge,
Pa, covek zvani Stephen O'Brien kaze da je takva procedura sporija nego tasemblirana, uostalom koga interesuje neka tdebugira i tprofilira pa neka uporedi rezultate (licno se nisam bavio ovom analizijom) Ticma
pascal.648 bearboy,
˙¨:> {$M $4000,0,0}, i startujem preko command.com-a: Probaj da das malo vise za stek... Recimo 16k, pa 32k i tako dok ne proradi... ˙¨:> U uputstvu za DSZ pise da mu je dovoljno 64KB (?). U cemu ˙¨:> je problem. BTW stvar je prilicno hitna. Da li pozivas program iz IDE, ili iz DOS-a ? IDE pojede dosta toga...
pascal.649 stomic,
$ Probaj da das malo vise za stek... Recimo 16k, pa 32k i $ tako dok ne proradi... Probao sam sve. Nije vredelo. $ Da li pozivas program iz IDE, ili iz DOS-a ? IDE pojede $ dosta toga... Iz DOSa naravno, skidao sam TSRe i sve što je jelo mem., ali nije htelo. Na kraju se problem rešio totalno ludački, kada sam pisao dalje program i samim tim povećao kod za 10-20KB, DSZ je proradio i normalno još uvek radi !?!?!?! Pozdrav, STomic.
pascal.650 vitez.koja,
#=> tasemblirana, uostalom koga interesuje neka tdebugira i #=> tprofilira pa neka thvala na tsavetu ;>
pascal.651 predragd,
> Moze li neko da napise (u konferenciju) dobru proceduru za > kopiranje fajlova. Ona iz help-a (repeat blockread > blockwrite until kraj_datoteke) je suvise spora... program CopyFile; { Simple copy program w/NO error checking } var FromF, ToF: file; NumRead, NumWritten: Word; buf: array[1..2048] of Char; ... ... Mogao bi recimo da buf definises na sledeci nacin Buf: Array [1..65530] of Byte; Pozdrav, Pedja.
pascal.652 ssokorac,
:> Mogao bi recimo da buf definises na sledeci nacin Hvala, ali već je bilo rešeno...
pascal.653 mmarkov,
Kako u TPu ucitati vecu kolicinu teksta u memoriju ? Blisko pameti je da se napravi dvostruko ulancana lista, nesto poput ovog: red = record sledeci :^red; predhodni:^red; tekst :string[duzina]; end; pa da se zatim pravi lista na heapu. Medjutim, problem je u sto ovaj string uvek zauzima isti broj bajtova bez obzira na stvarnu duzinu reda. Znaci, ako je duzina:=80; a ucitamo prazan red, ovo i dalje zauzima 80 bajta+ rezijski prostor. Znaci, da li postoji nacin da se ovo uradi tako da zauzima samo onoliko prostora koliko je stvarno neophodno ?
pascal.654 edge,
Pa pokusaj da to izvedes kao u C-u -- nadjes blok memorije - zauzmes ga, kazes da ti pointer pokazuje na njega, i onda sa adresnom aritmetikom ga napunis dokle mozes.... Mislim da bi ovo trebalo da radi, ali je pitanje sta raditi kada je memorija iseckana (kao sto jeste) na male blokcice koji su razbacani -- mozda primeniti trick sa Unixa - poslednja x bajta su recimo pointer na sledeci blok.... pozdrav, Ticma
pascal.655 mmarkov,
Verovatno bi i moglo tako kao sto ti kazes, ali me je interesovalo da li postoji neki regularan nacin da se to uradi. Na C-u je to ( ako se ne varam ) i standardni nacin, jer su stringovi zapravo pokazivaci na niz karaktera, a ovo u poredjenju s tim lici na Bozju kaznu, jer C kompajler sve radi automatski. U svakom slucaju, pitanje ostaje otvoreno dok se ne nadje neko resenje koje je makar priblizno tako elegantno kao ono iz C-a.
pascal.656 predragd,
U TP 6.0 postoji PString deklaracija. Nista posebno, pointer na string. Medjutim ja sa njim ladno citao fajlove preko 200K. Prakticno ogranicen si samo slobodnom memorijom. Pedja.
pascal.657 mmarkov,
Bas u tome je fora. I sa gore opisanom metodom mozes da ucitavas dugacke tekstove. Ali, ako na heapu imas 300K, a tekst ima 40K ali su linije dugacke po 10 slova, neces moci da ga ucitas ni po razno, jer TP rezervise za svaku liniju 80 karaktera + rezijske potrebe...
pascal.658 dejanr,
>> U TP 6.0 postoji PString deklaracija. Nisam baš siguran, ali čini mi se da je ovo uvedeno u Turbo Pascalu for Windows a ne u 6.0? Inače, vrlo zgodna mogućnost, mada dosta odudara od paskalovog standardnog kontrolisanja granica, prijavljivanja greški itd.
pascal.659 k.sasa,
PString se nalazi i u TP4WIN i TP60. Izvod iz maticne knjige HELPa: ----------------------------------- ŢPString (type)Ů Defines a pointer to a string. Syntax: PString = ^String; Unit: Objects ----------------------------------- Pozdrav, B&S Ú
pascal.660 dejanr,
Hvala. Hmmm... nije taj TP6.0 loš kako sam mislio :)
pascal.661 predragd,
> Ali, ako na heapu imas 300K, a tekst ima 40K ali > su linije dugacke po 10 slova, neces moci da ga ucitas ni > po razno, jer TP rezervise za svaku liniju 80 karaktera + > rezijske potrebe... Ako koristis deklaraciju PString neminovno je koristiti i NewStr proceduru. Ona ce za promenljivu, tipa PString, odvojiti OTPRILIKE onoliko memorije koliko iznosi duzina stringa. Koliko ce to "otprilike" iznositi ne znam tacno, uvek je za nekoliko bajtova vece od duzine samog stringa. U svakom slucaju bolje je koristiti, PString nego String deklaraciju, naravno kad je to moguce. Usput koristi li neko mozda procedure za rad sa .DBF i .NDX fajlovima koje su objavljene u casopisu "Inside Turbo Pascal", pre izvesnog vremena sam ih preneo na SEZAM. Ako ih neko koristi molio bih ga da mi se javi sto pre. Pedja.
pascal.662 pedjam,
Da li ovde ima nekog ko bi bio voljan da drži časove Pascal-a učeniku srednje škole ? Ako ima, neka mi se javi na mail. (Možda ovo nije konferencija za ovakve stvari, ali mi ništa pametnije nije palo na pamet...) Unapred hvala, / / Pedja Milicevic
pascal.663 asrdjan,
Pozdrav svima. Imam jedan problem koji me muči već neko vreme.Da bi lakše ilustrovao problem napisaću program u kojem se taj problem javlja.Dakle,ovde je dat program koji bi trebalo da izračunava aritmetičku sredinu za onoliko brojeva koliko se unese preko tastature.E sad,ja ne znam kako da napravim tip podataka koji bi bio u opsegu 1..Max (Max je promenljiva u koju se smešta broj brojeva koje treba uneti).Pokušao sam da rešim preko procedura ali ne ide.Molim sve koji znaju rešenje da mi ga dostave na mail ili kao poruku u ovoj konferenciji. ******************************************************************************* Program AritmetickaSredina; uses Crt; Procedure PrvaProc(Var Max:Integer); Const Min=1; Type Tabela=Array(.Min..Max.) of real;<--Ovde kompjaler javlja grešku pošto nije definisana promenljiva Max; Var I:integer;(*Brojac petlje*) A:Tabela;(*Ulazna velicina*) Zbir:Real;(*Zbir 5 ulaznih velicina*) AritSredina:Real; BEGIN ClrScr; Writeln('Za koliko brojeva tražite aritmetičku sredinu'); Readln(Max); Zbir:=0; For I:=Min To Max Do Begin; Writeln('Unesite ',i,' broj'); Readln(a(.i.)); Zbir:=Zbir+a(.i.); END; AritSredina:=Zbir/Max; Writeln('Aritmeticka sredina ovog niza je ',AritSredina); END; Begin Writeln('Za koliko brojeva tražite aritmetičku sredinu'); Readln(Max);<--Ovde bi trebalo da se definiše promenljiva Max; PrvaProc(Max); End. *******************************************************************************
pascal.664 bulaja,
│E sad,ja ne znam kako da napravim tip podataka koji bi bio u opsegu 1..Max │(Max je promenljiva u koju se smesta broj brojeva koje treba uneti). └─── U Pascalu nema dinamickih nizova, prema tome mozes jedino staviti max kao const ili koristiti listu umesto niza. Ali u ovom tvom programu ni jedno od toga ti nije potrebno, jer nema svrhe cuvati sve unete brojeve vec samo njihov broj i ukupni zbir. program sredina; const min=1; max=100; var i, a :integer; b, c, d : real { a - koliko brojeva b - njihov zbir c - aritmeticka sredina d - tmp var za unos broja } begin writeln('Za koliko brojeva trazite aritmeticku sredinu'); readln(a); b=0; c=0; d=0; for i=1 to a do begin writeln('Unesite ',i,' broj'); readln(d); b=b+d end; c=b/a; writeln('Aritmeticka sredina ovog niza je ', c); end.
pascal.665 bulaja,
│ writeln('Aritmeticka sredina ovog niza je ', c); │end. └─── ^ Pardon, jedno ; viska. Nije bitno :).
pascal.666 dejanr,
>> Ovde kompjaler javlja grešku pošto >> nije definisana promenljiva Max; U trenutku prevođenja moraju se znati veličine statičkih nizova. Ukratko, treba da definišeš neki maksimalni broj do koga niz može ići, npr. maxmax i da toliki niz definišeš. Ako ti ovo ne odgovara, možeš da koristiš dinamičke strukture podataka sa getmem, ali je to dosta složenije. Za problem koji rešavaš ti uopšte nije potreban niz. Može to i ovako: begin nb:=0; zbir:=0; repeat nb:=nb+1; write ('Unesi podatak ', nb, ': '); readln (broj); zbir:=zbir+broj; until broj=0; writeln ('Aritmetička sredina ja: ', zbir/(nb-1):16:8); end. Unosiš brojeve i kada završiš, uneseš nulu (ako i nula sme da bude element niza, program možeš prepraviti na neki drugi izlazni kriterijum).
pascal.667 ssokorac,
:> const :> min=1; :> max=100; A sta ce ti tu ovo? :)
pascal.668 vvelisavljev,
Da li je neophodno da pamtiš te podatke? Ako nije neophodno onda samo pamti broj unetih podataka. Ako je neophodno onda je najbolje to uraditi pointerima. Javi ako treba primer za kreiranje liste. pozdrav, Viktor!
pascal.669 dusanp,
=> writeln ('Aritmetička sredina ja: ', zbir/(nb-1):16:8); ^^ Oooopppps, lapsus ;)))
pascal.670 asrdjan,
Hvala svima na rešenjima.
pascal.671 ilazarevic,
█ :> const █ :> min=1; █ :> max=100; █ █ A sta ce ti tu ovo? :) Sasvim je isto i da je stavio: type niz=arrayŠ1..100Ć of real; Ovim min i max samo zbunjuje protivnika ;)
pascal.672 ssokorac,
:> type niz=arrayŠ1..100Ć of real; :> Ovim min i max samo zbunjuje protivnika ;) Jasno, ali u njegovom programu nema nizova...:)
pascal.673 boco,
Kako u TP (konkretno 4.0, 5.0) otvoriti fajl za Read/Write, poput otvaranja u C-u u modu "r+", "w+" ili "a+"? Potrebno mi je da mogu da zamenim slog u fajlu, neko mi nekad reče da je to radio ali se ne sećam kako. Megu i da prepisujem fajl u ažurirani pa onda Delete stari i Rename novi, ali šta kada mi fajl malkice poraste? Ima li rešenja, ili da pišem to parče u C-u?
pascal.674 ssokorac,
:> Kako u TP (konkretno 4.0, 5.0) otvoriti fajl za :> Read/Write, poput otvaranja u C-u u modu "r+", "w+" ili :> "a+"? Potrebno mi je da mogu da zamenim slog u Ne znam da li ima neke razlike u 4.0, ali ovako ide u 5.0: var slog,trazeni:slogovi; ime:string; datoteka:file of slogovi; begin write('Ime fajla :'); readln(ime); assign(datoteka, ime); reset(datoteka); repeat read(datoteka, slog) until (eof(datoteka)) or (slog=trazeni); š gde je trazeni onaj koji ć if slog=trazeni š hoces da promenis ć then begin seek(datoteka, filepos(datoteka)-1); izmeni_slog; š menjaj slog u onaj koji hoces ć write(datoteka,slog) end else writeln('Nema trazenog sloga.') end.
pascal.675 ilazarevic,
█ Kako u TP (konkretno 4.0, 5.0) otvoriti fajl za Read/Write, poput █ otvaranja u C-u u modu "r+", "w+" ili "a+"? Potrebno mi je da mogu █ da zamenim slog u fajlu, neko mi nekad reče da je to radio ali se ne █ sećam kako. Meni se čini da naredba za istovremeni read/write ne postoji, ali.... vredi pokušati!
pascal.676 ivans,
* Meni se čini da naredba za istovremeni read/write ne * postoji, ali.... vredi pokušati! Postoji! I zove se - reset. Reset ne briše datoteku kao rewrite, i baš toj datoteci možeš da pristupaš po slogovima (onako kako čoveku treba). Pozdrav, Ivans.
pascal.677 ssokorac,
:> Meni se čini da naredba za istovremeni read/write ne :> postoji, ali.... Kako? Pa posle assign samo reset(fajl) i mozes i da citas i da pises.
pascal.678 boco,
Svašta. Znači, posle ASSIGN/RESET file mi je otvoren kao Read/Write? žika Wirth kaže samo za read... hmmmm... turbo.
pascal.679 ilazarevic,
█ Postoji! I zove se - reset. Reset ne briše datoteku kao rewrite, i █ baš toj datoteci možeš da pristupaš po slogovima (onako kako čoveku █ treba). Eto.... Što ti je čovek :( Radio sam to milion (ako ne i više) puta, i opet...
pascal.680 ilazarevic,
█ Kako? Pa posle assign samo reset(fajl) i mozes i da citas i da █ pises. Da da da.... Radio sam ja to n puta, ali stane mozak ponekad :(
pascal.681 vitez.koja,
Da li neko zna kako da napravim dve kopije istog objektau memoriji, tako da se procedure ne dupliraju, tj. da na jednom mestu u memoriji stoji procedura koja ce se primenjivati na polja sa podacima oba objekta. fala unapred vladimir
pascal.682 ssokorac,
:> Da da da.... Radio sam ja to n puta, ali stane mozak :> ponekad :( Da, to se sete samo iskusni programeri...;)
pascal.683 spece,
> BTW, da li postoji neki 'TPU koverter' koji bi prebacio TPU iz v5.5 > u formu iz v6.0? To bi moglo da bude spasonosno resenje. Kad smo vec kod unita... Postoji na sezamu unit za TP koji bi trebalo da omogucava koriscenje GIF slicica. Dali postoji mogucnost nekakve prepravke TPU-a, da bi ga prihvatio TP5.5 - pisani su za ranije verzije, a kriju i sors. Ili mi ne gine ranija verzija TP-a?
pascal.684 ssokorac,
Kako u TP da ubacim još neke fontove osim ovih 4-5 postojećih? I ima li ih neko? :) Mislim, je l' ima neke druge fontove? Stasha
pascal.685 bearboy,
˙¨:> => writeln ('Aritmetička sredina ja: ', zbir/(nb-1):16:8); ˙¨:> žž ˙¨:> Oooopppps, lapsus ;))) Kakav lapsus, on i jeste aritmetička sredina :)))
pascal.686 ssokorac,
:> Kako u TP da ubacim još neke fontove osim ovih 4-5 :> postojećih? I ima li ih neko? :) Mislim, je l' ima neke :> druge fontove? Eto, niko ne odgovori :(. Nasao sam u helpu InstallUserFont komandu, sa kojom se instaliraju ti fontovi... Ali, kakvog oblika treba da budu, i gde da ih nadjem? Hajte, odgovarajte :). Stasha
pascal.687 predragd,
> Da li neko zna kako da napravim dve kopije istog objektau > memoriji, tako da se procedure ne dupliraju, tj. da na > jednom mestu u memoriji stoji procedura koja ce se > primenjivati na polja sa podacima oba objekta. Nisam bas siguran da sam te najbolje razumeo, ali to bi moglo ovako. type PrimerObjekta = Object X, Y: Integer; end; var Objekat1, Objekat2: PrimerObjekta; Na ovaj nacin se dobijaju dva identicna objekta u memoriji, a napisana je samo jedna procedura. Ako sam te pogresno razumeo, izvini. Pozdrav, Pedja.
pascal.688 predragd,
> Postoji! I zove se - reset. Reset ne brise datoteku kao > rewrite, i bas toj datoteci mozes da pristupas po > slogovima (onako kako coveku treba). Zna li neko kako da se to uradi kod tekstualnih datoteka. Posto se naredbom RESET, tekstualna datoteka otvara samo za citanje, a naredbom REWRITE samo za pisanje. Posto sam vec kod datoteka da nesto upitam. var Dat1, Dat2: File; begin ... ... Dat1:=Dat2; Ovo TP ne poznaje. Doduse moze se napisati nesto kao Move (Dat1, Dat2, Sizeof (Dat1); i to odlicno radi, ali nije lepo. Zna li neko legalniji nacin da se ovo izvede. Pozdrav, Pedja.
pascal.689 bulaja,
│Eto, niko ne odgovori :(. Nasao sam u helpu InstallUserFont komandu, │sa kojom se instaliraju ti fontovi... Ali, kakvog oblika treba da │budu, i gde da ih nadjem? └─── Cini mi se da sam svojevremeno dovukao sa Trickl-a editor tih Borland-ovih .CHR fileova, al' se ispostavilo da je to sto su oni drzali bio (valjda) deo starog Borland-ovog TP Graphic Toolkit-a (koji naravno nije PD), pa nisam ni bacio taj editor na Sezam. Nazalost, mislim da sam taj file obrisao :( (ipak, provericu na disketama).
pascal.690 fric,
> Eto, niko ne odgovori :(. Nasao sam u helpu > InstallUserFont komandu, sa kojom se instaliraju ti > fontovi... Ali, kakvog oblika treba da budu, i gde da ih > nadjem? Function Installs a new font than is not built-in to the BGI system. Declaration InstallUserFont(FontFileName : string) Result type integer Remarks FontFileName is the file name of a stroked font. InstallUserFont returns the font ID number that can be passed to SetTextStle to select this font. If the internal font table is full, a value of 0 (DefaultFont) will be returned. A similar routine exists in Turbo C 2.0. See also SetTextStyle Ovo sam prepisao iz TP 5.0 Reference guide-a. E sada - gde naći još fontova ? Ima nešto u Quattro pro-u: osim goth, litt, sans i trip fontova koje imam u TP 5.0, tamo ima i: euro, lcom, scri, simp, tscr. Javi ako si zainteresovan. Imam i yu fontove za Quattro, ali ih još nisam instalirao, a koliko vidim tamo nema nijednog .chr fajla, tako da i dalje ostaje otvoreno pitanje gde naći yu fontove za TP ili kako editovati postojeće fontove. fric
pascal.691 ssokorac,
:> fontova koje imam u TP 5.0, tamo ima i: euro, lcom, :> scri, simp, tscr. Javi ako si zainteresovan. Nravno! Kao i za onaj bulajin editor, ako ga je našao?
pascal.692 janko,
> Hajte, odgovarajte :). Uz stare verzije Quatro Pro-a (ne znam šta je sa novima jer ih nisam gledao) išlo je više fontova nego uz TP, a 'ladno sam ih koristio u TP-u. Uz novi BC++ 3.0 su takođe dodali još tih pet fontova koji su išli uz Quatro. Glavni problem je što pomenuti nemaju naša slova. Na Sezamu postoji i Font Editor za CHR-BGI fontove, ali radi samo na >= EGA. Niko nije javio da ga je iskoristio.
pascal.693 asrdjan,
Jel može neko da mi pošalje help za TP 6.0.Naime kod mene imam i help i sve ali ništa ne radi.Kada izaberem opciju help iz menija on me ponovo vrati u editor.Napominjem da imam help fajl ali ne znam kako da ga instaliram.
pascal.694 ilazarevic,
█ Eto, niko ne odgovori :(. Nasao sam u helpu InstallUserFont komandu, █ sa kojom se instaliraju ti fontovi... Ali, kakvog oblika treba da █ budu, i gde da ih nadjem? Meni se čini da su u pitanju .CHR fajlovi, ali nemam pojma gde bi ih našao. Možeš da probaš u Quattro Pro, tamo su isto CHR i BGI fajlovi za grafiku. Ne kažem da će to raditi, čak mi se čini da neće, ali... vredi pokušati!
pascal.696 asrdjan,
Jel ima neko možda program ili unit za TP 6.0 koja iscrtava karte na ekran.Ovo bi mi bilo od velike pomoći ako neko ima.Poruke šaljite na mail.
pascal.697 ilazarevic,
Evo problema: U glavnom delu programa učitavam string. Zatim pozivam proceduru koja taj string rastavi na reči, tražeći gde su spejsovi u stringu, i svaku reč dodeli jednom elementu niza stringova. Problem je u tome što mi procedura vrati prazan niz, iako u samoj proceduri taj niz dobije odgovarajuće reči. Evo na šta to liči: type nizreci:arrayŠ1..3Ć of string; var rec:nizreci; recenica:string; procedure podeli(recenica:string;var rec:nizreci); var i,n:integer; begin for i:=1 to length(recenica) do begin if recenicaŠiĆ=' ' then if recenicaŠi+1Ć<>' ' then n:=n+1; if recenicaŠiĆ<>' ' then recŠnĆ:=recŠnĆ+recenicaŠiĆ; end; end; begin ... ... ... readln(recenica); podeli(recenica,rec); ... ... ... end. Daklem, kada pozovem proceduru podeli, "rec" postane potpuno prazna, iako je tokom rada procedure sadržala odgovarajuće reči. Da, postoje i sve moguće inicijalizacione i kontrolne operacije za promenljive ali ih nisam navodio zato što sve radi ok sem dela koji se odnosi na vraćanje podataka. Da li nešto ne valja u programu ili treba da se vratim na TP 5.5?
pascal.698 dejanr,
Za početak, probaj da na početak procedure podeli dodaš jedno n:=1;
pascal.699 fric,
> Nravno! Kao i za onaj bulajin editor, ako ga je našao? Pogledaj u poštansko sanduče ;) Javi ako nađeš negde editor za .chr fajlove.
pascal.700 ssokorac,
:> begin :> for i:=1 to length(recenica) do begin :> if recenicaŠiĆ=' ' then :> if recenicaŠi+1Ć<>' ' then n:=n+1; :> if recenicaŠiĆ<>' ' then recŠnĆ:=recŠnĆ+recenicaŠiĆ; :> end; :> end; To za marathonce, a? :) Fali ti jedno n:=1; posle begin :). I brisi one ; ispred end-ova, ruzno izgleda ;).Dalje, mada i tako radi, umesto da pises trece if, zar nije bolje jedno else? :)
pascal.701 bearboy,
˙¨:>> BTW, da li postoji neki 'TPU koverter' koji bi prebacio TPU iz v5.5 ˙¨:>> u formu iz v6.0? To bi moglo da bude spasonosno resenje. Ima rešenja, ali je VEOMA komplikovano, i ne radi uvek (ali opet, nekad radi, a to je važno :). Uradiš sledeće - napraviš prazan program, kompajliraš ga bez linkovanja (da dobiješ .OBJ), ili ako to ne ide, SOURCER-om. E sad, napišes unit za TP6, gde sa $L uključiš .OBJ, i definišes procedure i funkcije kao externe. Kompajliraš unit, i eto TPU-a za TP6...
pascal.702 bearboy,
˙¨:> Kako u TP da ubacim još neke fontove osim ovih 4-5 postojećih? I ˙¨:> ima li ih neko? :) Mislim, je l' ima neke druge fontove? Nabavi QUATTRO, bilo koji, raspakuj u njemu fontove, a pošto du i oni od Borlanda, i oni su .CHR, a da ih i TP prepozna, moras da ih uljučis. Kako ide ? Prvo iskopiraš .CHR-ove u dir gde su prvih 4-5, pa ih sa bin2obj konvertuješ u .OBJ, i prijaviš is u FONTS.TPU Evo primera (mislim da graph unit koristi ovaj) - unit Fonts; interface procedure GothicFontProc; procedure SansSerifFontProc; procedure SmallFontProc; procedure TriplexFontProc; procedure EuroFontProc; procedure BoldFontProc; procedure LcomFontProc; procedure TscrFontProc; procedure ScriFontProc; implementation procedure GothicFontProc; external; š$L GOTH.OBJ ć procedure SansSerifFontProc; external; š$L SANS.OBJ ć procedure SmallFontProc; external; š$L LITT.OBJ ć procedure TriplexFontProc; external; š$L TRIP.OBJ ć procedure EuroFontProc; external; š$L EURO.OBJ ć procedure BoldFontProc; external; š$L BOLD.OBJ ć procedure TscrFontProc; external; š$L TSCR.OBJ ć procedure LcomFontProc; external; š$L LCOM.OBJ ć procedure ScriFontProc; external; š$L SCRI.OBJ ć end. PS. Hvala, ne treba spomenik :))))) PPS. Molim citat zbog IGNORE-a...
pascal.703 ilazarevic,
█ Za početak, probaj da na početak procedure podeli dodaš jedno n:=1; Ovo već postoji u proceduri, jednostavno ga nisam pisao da bih smanjio problematičan kod... Inače, rešenje je stiglo u međuvremenu (hvala Stasha :) Problem je bio u tome što u zaglavlju procedure nisam stavio var i za onaj niz u koji stavljam odvojene reci... Logika: kad staviš jedan, što bi stavljao još jedan posle? Na žalost, moja i Borlandova logika se ne slažu baš najbolje...
pascal.704 ssokorac,
:> PPS. Molim citat zbog IGNORE-a... Pa, ja te ipak ne ignorišem :). Hvala!
pascal.705 tesloni,
­Ú-> : Glavni problem je što pomenuti nemaju naša slova. Na ­Ú-> : Sezamu postoji i Font Editor za CHR-BGI fontove, ali ­Ú-> : radi samo na >= EGA. Niko nije javio da ga je ­Ú-> : iskoristio. A gde tačno ? ... ­Ú-> Tesloni <-Ú­
pascal.706 predragd,
Zdravo Jel cuo neko, ili jos bolje, jel ima neko Stony Brook Pascal+. Kako pise u reklami ovaj Paskal je sto posto kompatibilan sa TP 6.0, nije potrebno izmeniti nijednu liniju koda. Zatim brzi je takodje sto posto (?) od TP 6.0. Duzina izvrsnog koda je smanjena za trideset posto. Podrzava, kao i C, vise moemorijskih modela. Moze se, bez problema, interfejsovati sa drugim jezicima. Takodje mogu se pisati i Windows aplikacije. Suvise lepo da bi bila istina. No, tako stoji u reklami. Pozdrav, Pedja.
pascal.707 glisin,
ŢŢŢI brisi one ; ispred end-ova, ruzno izgleda ;) Bravo! ŢŢŢDalje, mada i tako radi, umesto da pises trece if, zar nije bolje ŢŢŢjedno else? :) Toooooo! Pravi čovek. Oš u grupu OBERON? ŢŢŢIGGYŮŮŮ
pascal.708 ssokorac,
:> Bravo! :> Toooooo! Pravi čovek. Oš u grupu OBERON? Pa, ne piše SUPI-ja bilo ko O;). Može, ubaci me da vidim šta je to izbliza, pa ako mi se svidi - ostajem :).
pascal.709 janko,
> ­ Ú-> : Glavni problem je što pomenuti nemaju naša slova. > ­ Na Ú-> : Sezamu postoji i Font Editor za CHR-BGI > ­ fontove, ali Ú-> : radi samo na >= EGA. Niko nije javio > ­ da ga je Ú-> : iskoristio. > > A gde tačno ? > Eeee, vide li da se u međuvremenu se javio i Bulaja. On je moderator, i kad on kaže da nema na Sezamu, onda nema. Ja se sećam da sam je svojevremeno skinuo... bila je uz neku poruku... (ako je Bulaja nije još obrisao, i ti budeš brži od njega, možda ćeš je se dokopati. Ja sam je probao pa obrisao, ali možda će ti neko baciti u poštu, ako ništa drugo... Ne kloni duhom. BTW gle kako grozno izgleda kad citiram tvoj citat. :( phi.
pascal.710 predragd,
> radi, a to je vazno :). Uradis sledece - napravis prazan > program, kompajliras ga bez linkovanja (da dobijes .OBJ), > ili ako to ne ide, Izvini, da li bi bio ljubazan da ovo malo podrobnije objasnis. Nije mi jasno kako dobijes .OBJ fajl. Koju verziju SOURCER-a koristis. Pozdrav, Pedja.
pascal.711 ilazarevic,
█ ŢŢŢI brisi one ; ispred end-ova, ruzno izgleda ;) █ █ Bravo! Ma šta "Bravo!" ? Semicolon ispred enda mi je zaštitni znak - po tome se prepoznaju moji programi... Pokušavali su mene u školi da nauče da ne pišem ; ispred end, ali neće oni majci... :)
pascal.712 ssokorac,
:> Ma šta "Bravo!" ? Semicolon ispred enda mi je zaštitni :> znak - po tome se prepoznaju moji programi... Pokušavali :> su mene u školi da nauče da ne pišem ; ispred end, ali :> neće oni majci... :) Eto, nikad ti nećeš naučIti kako se programira. Važno je da program bude što kraći i lepši za oko, a ne da li radi! :)) Posle, ako je sve kratko i pregledno, onda ako nešto ne radi - lako se ispravi. Ovako, kad tražiš end, moraš da tražiš samo end, a ja mogu da tržim ili end ili red bez ;. ;))
pascal.713 dzakic,
>> Ma šta "Bravo!" ? Semicolon ispred enda mi je zaštitni znak - po >> tome se prepoznaju moji programi... Pokušavali su mene u školi da >> nauče da ne pišem ; ispred end, ali neće oni majci... :) Aj za zaštitini znak manje više. Ja ; redovno stavljam ispred enda u redu iznad njega. Tako kad nešto hoću da dodam pre njega, ne moram da jurim gore dole i dopisujem i sklanjam tačkazareze (a najčešće zaboravim). Ako pišem sve u istom redu onda pre enda, normalno, ne stavljam ništa.
pascal.715 bearboy,
˙¨:>> radi, a to je vazno :). Uradis sledece - napravis prazan ˙¨:>> program, kompajliras ga bez linkovanja (da dobijes .OBJ), ˙¨:>> ili ako to ne ide, ˙¨:> ˙¨:> Izvini, da li bi bio ljubazan da ovo malo podrobnije objasnis. Nije ˙¨:> mi jasno kako dobijes .OBJ fajl. Koju verziju SOURCER-a koristis. Pa Sourcerom dobiješ .ASM, njega kopajliraš, ali NE linkuješ, i eto .OBJ-a
pascal.716 bearboy,
˙¨:>> radi, a to je vazno :). Uradis sledece - napravis prazan ˙¨:>> program, kompajliras ga bez linkovanja (da dobijes .OBJ), ˙¨:>> ili ako to ne ide, ˙¨:> ˙¨:> Izvini, da li bi bio ljubazan da ovo malo podrobnije objasnis. Nije ˙¨:> mi jasno kako dobijes .OBJ fajl. Koju verziju SOURCER-a koristis. Pa Sourcerom dobiješ .ASM, njega kopajliraš, ali NE linkuješ, i eto .OBJ-a
pascal.717 ilazarevic,
█ Aj za zaštitini znak manje više. Ja ; redovno stavljam ispred █ enda u redu iznad njega. Tako kad nešto hoću da dodam pre njega, Ja ja... Tu smo negde. Meni je prosto ušlo u prstiće :) tako da ne mislim da li je end ili nije, odmah kucam ; pa šta bude ;)
pascal.718 dejanr,
[Odgovor na 2.207, asrdjan] >> Kako da u TP 6.0 saznam da li na direktorijumu postoji neki fajl >> npr blabla.txt i kako da smestim naziv tog fajla u promenljivu. uses dos; function fexists (ime: string): Boolean; var srec: searchrec; begin findfirst (ime, 0, srec); fexists:=doserror=0; end;
pascal.719 djnsnd,
Da li neko moze da mi objasni kako da napravim okvir za dijalog u kome cu imati i ListBox? UPOMOC !!! Elementi ListBox-a nisu imena datoteka (za to postoji unit i odlicno resenje), vec npr. string-ovi, record-i ili objekti. Vrlo mi je hitno i bitno. Dejan Sunderic
pascal.720 ssokorac,
Telemate u tm.cfg zapise: AlarmSong1="t125msl4o3fg#l8fl16fl8a#l8fd#l4fl4o4cl8o3fl16fl8o4c#co3g#fo4cl8fo3l 16fl8d#l16d#l8cl8gl4fp2" AlarmSong2="t125msl4o3fg#l8fl16fl8a#l8fd#l4fl4o4cl8o3fl16fl8o4c#co3g#fo4cl8fo3l 16fl8d#l16d#l8cl8gl4fp2" AlarmSong3="o1l4ffl8d#l16d#l8d#l8cd#l4ffp8l16fl8fcfl4c#c#l8d#l16d#l8d#d#d#fp2l8 fco0l8a#g#l4f" AlarmSong4="o1l4fl8d#l16d#l8d#l8cd#l4ffp8l16fl8fcfl4c#c#l8d#l16d#l8d#d#d#fp2" Zna li neko kako se to moze 'reprodukovati'? Mislim, da iskoristim u programu tu melodiju, jer su ovo, očigledno, note.
pascal.721 drakce,
│ AlarmSong4="o1l4fl8d#l16d#l8d#l8cd#l4ffp8l16fl8fcfl4c#c#l8d │ Zna li neko kako se to moze 'reprodukovati'? └─────── U Basic-u vrlo jednostavno. U pitanju su parametri PLAY naredbe. Samo ubaci po jedno $ posle imena promenjlivih i dodaj 4 PLAY ime$. U ovom slučaju bi bilo: AlarmSong1$ = "t125msl4o3fg#l8fl16fl8a#l8fd#l4fl4o4cl8o3fl16fl8o4c#co3g#fo4cl8 fo3l16fl8d#l16d#l8cl8gl4fp2" AlarmSong2$ = "t125msl4o3fg#l8fl16fl8a#l8fd#l4fl4o4cl8o3fl16fl8o4c#co3g#fo4cl8 fo3l16fl8d#l16d#l8cl8gl4fp2" AlarmSong3$ = "o1l4ffl8d#l16d#l8d#l8cd#l4ffp8l16fl8fcfl4c#c#l8d#l16d#l8d#d#d#f p2l8fco0l8a#g#l4f" AlarmSong4$ = "o1l4fl8d#l16d#l8d#l8cd#l4ffp8l16fl8fcfl4c#c#l8d#l16d#l8d#d#d#fp 2" PLAY AlarmSong1$ PLAY AlarmSong2$ PLAY AlarmSong3$ PLAY AlarmSong4$ END Ako hoćeš u Pascalu, prevedi ovo u OBJ, pa ubaci u TP. Valjda će da radi :) Pozdrav
pascal.722 ssokorac,
:> Ako hoćeš u Pascalu, prevedi ovo u OBJ, pa ubaci u TP. :> Valjda će da radi :) Pa, valjda, ali meni treba postupak bas u paskalu... :) Thanks, u svakom slucaju, bolje ista nego nista, mada se nadam da jos neko ima nesto? :)
pascal.723 vvelisavljev,
Evo unita koji radi nešto što otprilike tebi treba. Nije kao BASIC naredba PLAY ali može da posluži, naročito u igrama. tones.arj
pascal.724 boka,
Zdravo, mozda cu sada pitati nesto sto je vec proslo ali nisam mogao da skidam celu temu. Da li je moguce napraviti com datoteku iz TP-a verzija 5.0+. Znam da je to radjeno u 3.0, ali ko ce da se vraca u to? boka...73, 88. Kako za koga ;) btw, nemojte mi raci da to radim u C-u, jer da ga znam ne bi pitao u temi pascal...
pascal.725 dejanr,
>> Da li je moguce napraviti com datoteku iz TP-a verzija 5.0+. Znam >> da je to radjeno u 3.0, ali ko ce da se vraca u to? Koliko znam, nije moguće. Turbo Pascal od verzije 4 ne radi u small modelu tj. svaki unit sada koristi svoj code segment, svi koriste zajednički data segment, a postoji i stek segment. Da bi se mogao napraviti .COM, moralo bi sve biti u istom segmentu, dakle ništa od toga.
pascal.726 janko,
> nisam mogao da skidam celu temu. Da li je moguce napraviti > com datoteku iz TP-a verzija 5.0+. Znam da je to radjeno u Ne može. > 3.0, ali ko ce da se vraca u to? 3.0 ti daje COM, ali minimalno 15K veliku. 5.0 ti daje .EXE, ali je min. veličnina oko 2K. Pa ti vidi...
pascal.727 ssokorac,
:> Evo unita koji radi nešto što otprilike tebi treba. Nije :> kao BASIC naredba PLAY ali može da posluži, naročito u Thanks, sad ću da probam.
pascal.728 ssokorac,
:> Thanks, sad ću da probam. Nije loše imam interesantih zvukova :), ali sa time se ne može odsvirati one pesmice iz telematea :(.
pascal.729 obren,
Treba li još uvek nekome onaj editor .CHR fontova? Našao sam ga na nekim "zaturenim" disketama?
pascal.730 mjova,
> Treba li još uvek nekome onaj editor .CHR fontova? Našao > sam ga na nekim "zaturenim" disketama? imam ja neki editor tih fontova (više datoteka) sa triklea, ali čini mi se da je bulaja reko da nisu pd. u svakom slučaju taj koji ja imam ne može da editiuje fontove koji idu uz qpro. ove koji idu uz turbo nisam ni probao. tako, ako možeš lepo da edituješ qpro chr onda daj daj daj daj :)
pascal.731 fric,
> Treba li još uvek nekome onaj editor .CHR fontova? Našao > sam ga na nekim "zaturenim" disketama? Ako je sw ili pd & ako ti nije problem, šiljni ga u konferenciju. Meni trenutno ne treba, ali možda će, pa neka se nađe.
pascal.732 ssokorac,
:> Treba li još uvek nekome onaj editor .CHR fontova? Našao :> sam ga na nekim "zaturenim" disketama? Šalji! Thanks unapred :).
pascal.733 drpr,
Neki klinci pravili program (btw iz mg-a) koji se kači na vremenski interrupt i tako broji neko vreme.Pitanje je da li postoji neki interrupt koji nije time a koji se javlja na određeno vreme jer ne bi želeo da mi se menja sistemsko vreme? cope
pascal.734 sarpop,
>> Treba li još uvek nekome onaj editor .CHR fontova? Našao >> sam ga na nekim "zaturenim" disketama? Naravno ! ! Molim te pošalji ga što pre.
pascal.735 bearboy,
Dragi moji pascalovci. Napisah ja program, ali opet, neće on tako kakoo ja hoću ;) :( Evo problematičnog dela, da vidite u čemu je problem: var data :file; begin assign(data,'pic.gii'); rewrite(data); blockwrite(data,memŠ$a000:$0000Ć,16384); close(data); end; E sad, moj problem je u tome, što fajl PIC.GII, koji bi trebao da bude dug 16Kb, NIJE toliki, već oko 40K. Ako zadam koji drugi broj, onda se dužina kreiranog fajla menja 'random'. Jel' sam ja to nešto zabrljao ili je opet kriv Borland ? ;))))
pascal.736 dejanr,
>> assign(data,'pic.gii'); >> rewrite(data); Stavi rewrite (data,1);
pascal.737 ssokorac,
Kako u jednu datoteku zapisati podatke razlicitog tipa? Recimo hocu da zapisem 10 booleanova, 2 integera i 32 real-a. Valjda ne moram da pravim 3 datoteke?
pascal.738 dzakic,
>> Kako u jednu datoteku zapisati podatke razlicitog tipa? Recimo >> hocu da zapisem 10 booleanova, 2 integera i 32 real-a. var f:file; p:array[1..10] of boolean; i,j:integer; r:array[1..32] of real; begin assign(f,'file.dat'); rewrite(f,1); blockwrite(f,p,sizeof(p)); blockwrite(f,i,sizeof(i)); blockwrite(f,j,sizeof(j)); blockwrite(f,r,sizeof(r)); close(f) end. Sorry ako ima grešaka, pisao sam napamet. Ove boolean i real promenljive možeš da upisuješ i pojedinačno (kao i integere, normalno), ne moraju biti u nizu. Onda ti treba po blockwrite za svaku. Kasnije ih čitaš sa blockread. Jel to za supi_3? Reci nam, reci nam... :)
pascal.739 bearboy,
˙¨:>>> rewrite(data); ˙¨:> ˙¨:> Stavi rewrite (data,1); Hvala, proradilo je ! A zašto mu smeta ako je recsize 128 ? (to je valjda default) I zašto kreira 'random size' datoteke ?
pascal.740 dejanr,
>> Kako u jednu datoteku zapisati podatke razlicitog tipa? Recimo hocu >> da zapisem 10 booleanova, 2 integera i 32 real-a. Valjda ne moram da >> pravim 3 datoteke? Otprilike ovako: type slogt = record logicke: array[1..10] of Boolean; celi: array[1..2] of integer; racion: array[1..32] of real; end; slogf = file of slogt; Onda otvoriš fajl sa RESET i čitaš/pišeš/krećeš se po njemu sa read/write/seek
pascal.741 glisin,
ŢŢKako u jednu datoteku zapisati podatke razlicitog tipa? ... ŢŢ... Valjda ne moram da pravim 3 datoteke? Auf! Ti k'o da si se sa BASIC-a svukao. Videh odgovore. Prihvati ono što ti savetuje DR, a one hakerice od bata Zaka za sada zaboravi (bez uvrede). Naime, DR-ova verzija je paskalski normalnija, a DZ-ova je C-ovskija. Silne 'blockwrite' lepo zameniš jednim jedinim 'write'. Mnogo lepše. Ako ti zafali nešto u onom RECORD-u, lepo samo tamo dodaš i ćao. Ne dodaješ nove 'blockwrite'. Mnogo lakse. Dalje, ne razmisljas o 'sizeof', sve je na višem nivou apstrakcije. Mnogo elegantnije. I na kraju, to će da radi na svim Pascal kompajlerima na svim mašinama, što će reći portabilno je. Mnogo upotrebljivije. :-) ŢŢŢIGGYŮŮŮ
pascal.742 vitez.koja,
#=> Kako u jednu datoteku zapisati podatke razlicitog tipa? To nije nikakav problem. Lepo otvoris je prvo za jednu vrstu podataka, upises, zatvoris, pa tako dok ti se ne smuci. Problem nastaje kad treba tu papazjaniju da procitas ;))))
pascal.743 dzakic,
>> Auf! Ti k'o da si se sa BASIC-a svukao. Videh odgovore. Prihvati >> ono što ti savetuje DR, a one hakerice od bata Zaka za sada >> zaboravi (bez uvrede). Bez uvrede, samo nemoj ga savetuješ da ih baš zaboravi. ;) Zamisli situaciju: treba ti neka vrsta 'hedera' na početku fajla u kome čuvaš neke važne podatke a da posle njega ide *gomila* recorda koja ne može (!) da stane odjednom u memoriju. A čovek hoće da mu sve lepo bude u jednom fajlu. Moje rešenje dozvoljava da se čak pozicioniraš na odeđeni slog i pročitaš ga ili zapišeš. Mene je pitanje asociralo na takvu situaciju pa sam ponudio onakvo rešenje smatrajući da je zapisivanje recorda suviše poznata stvar. Naravno slažem se da blockread/write treba izbegavati kad god je moguće. Primer samo ilustruje njihovu upotrebu, on neka sam odluči koje mu je rešenje prihvatljivije za konkretan problem.
pascal.744 ssokorac,
:> svaku. Kasnije ih čitaš sa blockread. Thanx. Ja sam se mučio i pravio recorde, pa onda njih pisao...bezveze :). :> Jel to za supi_3? Reci nam, reci nam... :) Pa, recimo :). Dobro dodje za snimanje pozicije. Bolje da ne znaš kako sam to pre radio O:).
pascal.745 ssokorac,
:> Otprilike ovako: Thanks. A ja pravio reecord sa po jednim integerom, realom i booleanom, pa ih pisao 32 puta, a one koje mi ne trebaju punim nulama. Eh :).
pascal.746 ssokorac,
:> Auf! Ti k'o da si se sa BASIC-a svukao. Videh odgovore. :> Prihvati ono što ti Kako si pogodio? :) Pre Pascala, znao sam samo spectrumov BASIC :).
pascal.747 ssokorac,
:> upises, zatvoris, pa tako dok ti se ne smuci. Problem :> nastaje kad treba tu papazjaniju da procitas ;)))) Ovo mi je najviše pomoglo :)).
pascal.748 ssokorac,
:> upotrebu, on neka sam odluči koje mu je rešenje :> prihvatljivije za konkretan problem. Dobro, možete uvući mačeve :). Meni je u stvari trebalo upravo ovo što ti reče - par booleanova na početku a onda 'gomila':) recorda. Isprobaću i jedan i drugi način - pa šta bude bolje :).
pascal.749 bearboy,
˙¨:> blockwrite(f,p,sizeof(p)); Ok, samo može da pravi probleme sa VMT (Virtual Method Table), da sizeof da pogrešne podatke, mada ne verujem da ovo treba Stashi :)
pascal.752 dejanr,
>> Meni je u stvari trebalo upravo ovo što ti reče - par booleanova >> na početku a onda 'gomila':) recorda. Isprobaću i jedan i drugi >> način - pa šta bude bolje :). Vidi, način koji sam ti ja predložio je "u duhu paskala". Pogodno je ako se snimaju i čitaju slogovi, dakle zapisi kod kojih se uvek javlja svaki od tipova. Dobra strana je što je prilično "otporan" na greške. DZakicev metod je specifičan za turbo pascal, i vrlo efikasan ako se ZAISTA smeštaju podaci raznih tipova koji nemaju mnogo veze jedan sa drugim, dakle nisu slogovi nego nešto "divlje". U tom je slučaju dosta brži. Mana je što kod čitanja moraš biti jako pažljiv, da čitaš tačno onoliko koliko si zapisao i istim redom. Inače dobijaš sasvim "leve" rezultate, bez poruke o grešci.
pascal.753 hacker,
Ne razumem kako misliš nećeš da diraš sistemsko vreme, jer kad se priÁ+ačiš na interapt 08 tvoj deo procedure može da se izvršava pre samog interapta ili posle... zavisno od toga šta ti treba... Možeš da probaš i sa int 1c koji 08 inače poziva...
pascal.754 glisin,
ŢŢ...otvoris je prvo za jednu vrstu podataka, upises, zatvoris, pa tako dok... E dakle, motkom bih ja vas jurio!!! :-((( ŢŢŢIGGYŮŮŮ
pascal.755 glisin,
ŢŢBez uvrede, samo nemoj ga savetuješ da ih baš zaboravi. ;) Naravno Zak, mislio sam samo na konkretan primer. Ono za headere i slične manipulacije je ok, ali kada ima niz istih blokova, onda je RECORD mnogo bolje rešenje. Ako nema, e onda blockwrite, šta da se radi. ŢŢŢIGGYŮŮŮ
pascal.756 glisin,
ŢŢThanx. Ja sam se mučio i pravio recorde, pa onda njih pisao...bezveze :). ^^^^^^^^^^^^^^^^^^^^^^ Gde mi je ta motka? ;-) ŢŢŢIGGYŮŮŮ
pascal.757 glisin,
ŢŢKako si pogodio? :) Pre Pascala, znao sam samo spectrumov BASIC :). Kako? Lako! Šest (6) godina iskustva u Petnici, BIS-u i slično sa takvima. Počev od GOTO, GOTO svaki čas u Pascalu, pisanja celog programa u prvoj koloni, kukanja tipa "zašto stalno mora ovaj BEGIN ili PROGRAM", pa preko pisanja procedura koje sve parametre uzimaju kao globalne (GOSUB tehnika ;-), pa do dosta skrivenih, ali "tipičnih" rešenja koja su posledica nestrukturiranih tipova koji postoje u BASIC-u (kao što je ova tvoja dilema), i tako redom... Dakle, na kraju si liste, još malo se potrudi (pročitaj recimo Algorithms + Data Structures = Programs (N.Wirth naravno)) i bićeš dobar! :-) ŢŢŢIGGYŮŮŮ
pascal.758 ssokorac,
:> Dakle, na kraju si liste, još malo se potrudi (pročitaj :> recimo Algorithms + Ne rekoh da radim bilo šta od onoga što si nabrojao, pa nema potrebe da se trudim da to ispravljam, jer nemam šta :). Samo rekoh da sam ranije znao BASIC. žak šta više, već posle mesec dana sam batalio pola nabrojanog, sintaksu GOTO-a čak i ne znam, a programe uredno 'nazubljujem' :) još od prve nedelje pascaliranja :). Baš sam napredan? O:)
pascal.759 predragd,
Jos ranije je bilo reci o proceduri koja pomera pointer tekst fajla. Sve bi bilo u redu da ta procedura ne koristi Reset naredbu. Naime ako ste ranije otvorili fajl sa ReWrite, naredba Reset ce vam totalno pokvariti posao, necete vise nista moci upisati u taj fajl jer naredba Reset otvara fajl samo za citanje. Zna li neko kako pomeriti pointer tekst fajla na pocetak bez koriscenja naredbe Reset. Pedja.
pascal.760 d.petrovic,
Ă> batalio pola nabrojanog, sintaksu GOTO-a čak i ne znam, a programe Pa to je bar prosto, recimo : GOTO 1000 O;)))))
pascal.761 dejanr,
>> Pa to je bar prosto, recimo : GOTO 1000 Neće ići u paskalu!
pascal.762 d.petrovic,
Ă> Neće ići u paskalu! To se odnosilo na basic (i to za spectrum commodore, etc :)))) )
pascal.763 umajstorovic,
Jel neko zna u kojoj se conf, temi, etc. nalazi opis borlandovih .chr fontova? Ranije sam video tako nešto, ali sad ne mogu da se setim tačno gde :(.
pascal.764 dzakic,
Mislim da se opis strukture .chr fajlova nalazi upravo u onom editoru što je okačen u neku od conf, verovatno pc.user.
pascal.765 dzakic,
Evo ga ovde, uz poruku 4.343 - bgifont.arj.
pascal.766 ssokorac,
:> To se odnosilo na basic (i to za spectrum commodore, etc :> :)))) ) Pa znam ja spectrumov goto, ono je bilo spomenuto za Pascal :). Ko bi pisao program u spec. basicu bez goto?? :)
pascal.767 ssokorac,
:> fajl jer naredba Reset otvara fajl samo za citanje. Zna Zar? Ne znam, možda je text fajl izuzetak, ali reset ne otvara samo za citanje, vec i za citanje i za pisanje. Kako bi inače menjao fajl bez da ga obrišeš? Rewrite osim što otvara za pisanje i briše ceo fajl.
pascal.768 vitez.koja,
#=> Nece ici u paskalu! Oce, nego kako... .............. label 1000; begin .............. 1000: .............. goto 1000; Ide, pa rastura
pascal.769 drmarke,
Jel ima neko ideju kako simulirati pritisak i puštanje kombinacije Alt-Shift? Treba mi da prebacim Vkeyb da pri boot-u ne bude u yu-setu već samo prema izričitoj želji. Ako postoji drugi način javite! Pozdrav drmarke
pascal.770 drpr,
Kad smo već kod datoteka imam jedan mali problem. Imam jedan program koji se koristi datotekama i želeo bih da ga mogu pozivati odakle god hoću (recimo da napravim bač fajl) ali bez menjanja trenutnog dira.Kada program pozove datoteku on je ne nađe jer datoteka nije u diru odakle je "poziv došao".Pravljenje neke datoteke koja će nositi informaciju o diru gde se nalazi fajl pa da je bacim recimo u c:\ ne izgleda mi baš elegatno a i šta će se desiti ako korisnik slučajno izbriše tu datoteku sa informacijom.Da li ima neko rešenje? cope
pascal.771 dzakic,
> Ako postoji drugi način javite! Postoji, pređi na zkey ;)
pascal.772 dzakic,
Ako sam razumeo, program snima neke svoje podatke u datoteku. Ti si stavio da se snima u tekući direktorijum pa pravi probleme... Jedno rešenje je da se ta datoteka snima 'u direktorijum iz kog je učitan program'. Naziv programa koji se izvršava dobijaš sa ParamStr(0). Onda taj string propustiš kroz proceduru FSplit koja će to da 'isecka' na direktorijum i filename. Ti uzmi direktorijum, nakalemi '\' i naziv datoteke i tamo je snimi, kasnije odatle učitaj. Jednostavno.
pascal.773 darone,
>> Ako postoji drugi način javite! Postoji, ali je Boga pitaj gde u konferencijama... Neko je ostavio peč za vkeyb koji tera drajver da se budi u us ili yu setu, šta je potrebno već. žini mi se u SEZAM.2, ali ko će ga znati :( darone
pascal.774 drpr,
-> Jel ima neko ideju kako simulirati pritisak i -> puštanje kombinacije Alt-Shift? Treba mi da -> prebacim Vkeyb da pri boot-u ne bude u yu-setu -> već samo prema izričitoj želji. Ako postoji -> drugi način javite! Boot sys? Možeš svičem /t da staviš vreme pa ako ne ptitisneš bilo koje dugme on butuje po defoltu,elem bolje pređi na zkey :)) cope
pascal.775 drpr,
-> Ako sam razumeo, program snima neke svoje -> podatke u datoteku. Ti si stavio da se snima u -> tekući direktorijum pa pravi probleme... Sjajno si razumeo hvala na odgovoru :))) cope
pascal.776 d.petrovic,
Ă> goto 1000; Ă> Ă> Ide, pa rastura :)))))))))))))))))
pascal.777 janko,
> Jel ima neko ideju kako simulirati pritisak i puštanje > kombinacije Alt-Shift? Treba mi da prebacim Vkeyb da pri > boot-u ne bude u yu-setu već samo prema izričitoj želji. > Ako postoji drugi način javite! Ima peč, ja sam ga stavio još ohoho... samo se jedan bajt zameni u rezultujućem fajlu, i onda se budi u USA rasporedu... E sad, koji je to bajt... Prvo, pečuje se onaj mlai fajl, od 2 Kb, a ne onaj od 20. Nemam pri ruci taj peč, ali se sećam da među prvih 16 bajtova (tačnije, od trećeg do šesnaestog) jedan samo treba umesto 0 da postane FF ili obratno. Probaj: zameni neku 0 sa FF pa probaj. Ili, neku FF sa 0. Uspećeš relativno brzo.
pascal.778 toma,
■■>> Ako postoji drugi način javite! Postoji. "Otvori" vkey.com nekim disk editorom i tamo negde oko 15-tog byta stoji FF. Samo to zameni sa 00 i radi baš to što ti hožeš. Ovo pišem iz glave pa ako ne proradi javi da nadjem tačnu poziciju tog byta. Pozdrav from Toma.
pascal.779 ssokorac,
Kako se može (ako se može:) u TP-u pisati nešto u exe fajl iz istog exe fajla a da se to može posle pročitati. Recimo, negde u programu je potrebno korisnikovo ime, a hocu samo jednom da ga pitam za ime, i da se onda upise to ime u exe, pa da sledeći put ne mora program da pita već može da pročita iz exe-a. Uh, samo sam iskomplikovao ovim primerom :) ali nadam se da ste shvatili.
pascal.780 mjova,
> pita već može da pročita iz exe-a. Uh, samo sam > iskomplikovao ovim primerom :) ali nadam se da ste > shvatili. da je u C-u, mogao bih da ti kažem vrlo lako, ali što se paskala tiče nisam baš u toku ;). mogu da ti preporučim da napraviš cfg datoteku, pa u nju smesti ime/username... to si naučio iz prošlog pitanja? ;)
pascal.781 predragd,
> Zar? Ne znam, možda je text fajl izuzetak, ali reset ne > otvara samo za citanje, vec i za citanje i za pisanje. > Kako bi inače menjao fajl Ako sam ja dobro video, TEXT fajl je izuzetak. Naredba RESET otvara ove fajlove samo za čitanje, a naredba REWRITE samo za upis. U postojeći TEXT fajl nešto možeš upisati samo sa APPEND naredbom. No, ipak se ovo da prevazići uz pomoć DOS-a. DOS funkcija $40 služi za upis u fajl, i sasvim zadovoljava moje potrebe. žini mi se da je samo potrebno uz pomoć funkcije za otvaranje fajla - $3D reći da je vrsta pristupa ovom fajlu READ/WRITE i sve radi bez problema. Malo komplikovano, ali radi. Peđa.
pascal.782 predragd,
Zdravo Ima li neko mozda sledece fajlove sa TRICKLE-a <MSDOS.TURBOPAS>TVG102_S.ZIP, TVGRAPH 1.02: TURBO VISION In EGA/VGA: sources <MSDOS.TURBOPAS>TPU6.ZIP, Docs & dumper/disassembler for TP6.0 TPU files Pedja.
pascal.783 predragd,
> Kako se može (ako se može:) u TP-u pisati nešto u exe fajl > iz istog exe fajla a da se to može posle pročitati. > Recimo, negde u programu Svojevremeno je, mislim, Zoran čivotić u "Računarima" pisao o tome i sličnim stvarima. Fazon je bio u tome da u programu staviš neki marker const Marker = 'Perica'; NazivKorisnika: String Š10Ć = ' '; Ovo 'Perica' ce biti nepromenjeno i u .EXE fajlu. Znači napišeš funkciju koja će u tvom .EXE programu naći marker, i kad ga neđeš našao si i mesto gde da usnimiš podatke o korisniku... Najbolje bi ti bilo da pronađeš taj članak u "Računarima" i sve lepo natenane proučiš. Peđa.
pascal.784 dzakic,
Pored pomenutog načina sa merkerom, možeš da probaš i sledeće: recimo de imaš record koji hoćeš da zapišeš u exe. Predlažem da podatke snimiš na sam kraj, prvi put zapravo produžujući exe. Otvoriš ga sa reset(f,1), onda seek(f, filesize(f)) i blockwrite(f,rec,sizeof(rec)). Kasnije, kad treba da pročitaš, seek(f,filesize(f)-sizeof(rec)), blockread(f,rec,sizeof(rec)). Naravno, ovako 'ispravljen' exe neće ništa smetati pri njegovom izvršavanju.
pascal.785 drmarke,
> Postoji, pređi na zkey ;) Ma nikako da ga skinem, a ovaj je već bio tu. No problem je i dalje otvoren. Dakle kako simulirati pritisak tastera koji nemaju ASCII. Nešto ovako radi: x:= mem[$0000:$0417]; mem[$0000:$ 417]:= mem[$0000:$0417] or 10; ch:=readkey; mem[$0000:$0417]:=x ali tu je nezgodno što mora da se pritisne nešto. Pokušao sam da upišem nešto u bafer tastature, uvećam buf-counter, i to očitam ali nije hteo da prevrne slova, tj. nije baš kao da je Alt-Shift sa tastature. Vkeyb više služi kao test primer. :) U svakom slučaju hvala na svim savetima i hakerisanjima...:)) Pozdrav drmarke
pascal.786 drmarke,
Uzgred gde je taj zkey ? :(((( Pozdrav drmarke
pascal.787 dejanr,
Mali problem sa svim ovim tehnikama može da bude što "okidaju" razni anti-virus softver osetljiv na promene u .EXE datotekama. Ali, ako je potrebno... time je sve rečeno.
pascal.788 ilotina,
HI! Evo stize,ali je za TP4.0, nisam probao da li radi sa TP6.0 Pozdrav Ivan! tpclone.zip
pascal.789 dzakic,
Ne možeš simulirati pritisak alt-shift bilo kakvom manipulacijom sa kbd baferom, jer pomenuti tasteri ništa i ne stavljaju u bafer. Vlada je sigurno stavio da int 9, koji je ionako preuzeo, čita sa porta koji je zadnji pritisnuti taster pa po scan kodu prepoznaje alt i desni shift. Pomenute adrese se usput ažuriraju, ali ne verujem da su signal vkey-u da promeni stanje. Možda može ručnim pozivanjem int 9 ali ne vidim kako 'staviti' na port 60h scan kod... Lakše je debagirati vkey i naći gde čuva status. Zkey je u PC.USER, poruka 10.270.
pascal.790 almi,
postovani drmarke na tvoj problem sa ALT+SHIFT mislim da sam nasao resenje ono se nalazi u datoteci SHIFTALT.PAS ako ne radi javi nam Pozdrav ALeksandra & MIsel shiftalt.pas
pascal.791 ssokorac,
:> nisam baš u toku ;). mogu da ti preporučim da napraviš :> cfg datoteku, pa u nju smesti ime/username... to si :> naučio iz prošlog pitanja? ;) Ih, pa to sam znao pre pola godine :), ali meni treba baš u exe...
pascal.792 ssokorac,
:> bilo da pronađeš taj članak u "Računarima" i sve lepo :> natenane proučiš. Znaš li možda kako se zvao, bar otprilike, taj članak, da ga nadjem u rind-u :).
pascal.793 ssokorac,
:> Mali problem sa svim ovim tehnikama može da bude što :> "okidaju" razni anti-virus softver osetljiv na promene u :> .EXE datotekama. Ali, ako Dakle, ako startujem mjovin FDS /w sa VSHIELD-om u memoriji - bibibibip :). Thanks svima na tehnikama... Nego, šta rade onda programi koji treba da upišu nešto u sebe, a da ne 'probude' antivirus?
pascal.794 dejanr,
>> Nego, šta rade onda programi koji treba da upišu nešto u sebe, >> a da ne 'probude' antivirus? Pa, kada bi mogli nešto da urade da to zaobiđu, onda bi to isto mogao da uradi i virus pa od tog antivirusa ne bi bilo mnogo vajde. Ustanovićeš da je jako malo programa koji nešto upisuju "u sebe". Jedan od takvih je bio i Turbo Pascal odnosno njegov TINST (on, doduše, nije upisivao baš "u sebe" ali jeste u TURBO.EXE), sve negde do verzije 5.0 ili 5.5.
pascal.795 mjova,
> :> cfg datoteku, pa u nju smesti ime/username... to si > Ih, pa to sam znao pre pola godine :), ali meni treba baš > u exe... hoćeš li kompletno rešenje u c-u, pa ti prevedi na paskal? ako ti paše, pogledaj izvorni kod fds-a. još jedan primer (u c-u) možeš da nađeš u snip*.* koji je negde na sezamu. treće, kad mi prođe malo šugavog perioda na faksu, imam već jedno obećanje da napišem tako nešto na paskalu, pa sačekaj malo ;). četvrto, što se tiče dužih programa moj predlog je da se SVI podaci postave tamo, pa da se odande čitaju. ti podaci mogu lepo da se upišu bilo kojim ascii editorom ili nekakvom instalacijom. možeš da uradiš to kao što je uradio junak koji je pisao telemate: čak je i registracija gotivna tako, iz cfg-a. za potrebe jednog programa koji sam pisao, a možda će biti u javnosti za neki mesec ;), napravio sam baš to (opet u c-u), s tim da se parametri iz cfg-a mogu menjati i sa komandne linije (naravno, samo neki). time se u stvari default vrednosti postavljaju u neku cfg datoteku, a i dalje su parametri komandne linije aktivni. volim živahne programe, koji prihvataju svaku saradnju (pa te uvek iznenade svojim rezultatom ;).
pascal.796 ssokorac,
:> Pa, kada bi mogli nešto da urade da to zaobiđu, onda bi :> to isto mogao da uradi i virus pa od tog antivirusa ne :> bi bilo mnogo To i meni pade na pamet :). Sta onda rade svi shareware programi koji treba da se registruju? Ne svi, ali vecina pise u sebe... Znam, upisuju - pa sta bude :). Ok, hvala u svakom slucaju, korisno je barem znati, a mozda mi i zatreba 'po kuci' :).
pascal.797 dejanr,
>> Sta onda rade svi shareware programi koji treba da se registruju? >> Ne svi, ali vecina pise u sebe... U stvari, ne baš. Obično je u pitanju neki program tipa DSZREG koji piše u fajl DSZ.COM ili nešto slično.
pascal.798 predragd,
> Znaš li možda kako se zvao, bar otprilike, taj članak, da > ga nadjem u rind-u :). Znam. "Računari" - 75, članak "Potpiši se i .. počni", strana 54. Naravno, funkcija za pronalaženje markera je u C-u, ali mislim da ti to neće predstavljati problem. Peđa.
pascal.799 ssokorac,
:> četvrto, što se tiče dužih programa moj predlog je da se :> SVI podaci postave tamo, pa da se odande čitaju. ti :> podaci mogu lepo da se upišu Naravno, slžem se da je to boje kod dugih programa, ali meni je trebala jedna 'neizmenljiva od strane korisnika' sitnica :). Sto bi najbolje išlo u sam .exe, naravno. Kad budeš pisao taj deo za pascal, ti okači to i ovde :), ako se razlikuje od nabrojanih.
pascal.800 almi,
Pascalovci evo malog programa za komunikaciju.Radi sa com1 i preuzet je iz knjige PASCAL 6.0 The complete reference. Pozdrav ALeksandra & MIsel commx.zip
pascal.801 drmarke,
Ma jasno mi je da treba sve to uraditi ali zašto ovo radi > x:= mem[$0000:$0417]; > mem[$0000:$ 417]:= mem[$0000:$0417] or 10; > ch:=readkey; > mem[$0000:$0417]:=x a kad stavim u bafer neku glupost da bi readkey imao šta da očita i da ne stane, on ne prevrne....:(( Uostalom nema veze, uzeo sam zkey. ;) Inače svaka čast na ideji sa R-Alt! Pozdrav drmarke
pascal.802 isekulovic,
>> Znaš li možda kako se zvao, bar otprilike, taj članak, da ga nadjem >> u rind-u :). R75 str. 54-55
pascal.803 bearboy,
˙¨:>>> Pa to je bar prosto, recimo : GOTO 1000 ˙¨:> ˙¨:> Neće ići u paskalu! MOčE !!!! Što ne bi išlo ? program evo_ti_goto; label 1000; begin ... if x>y then begin goto 1000 š=========ć ... end; eto :)))))
pascal.804 bearboy,
˙¨:> :> fajl jer naredba Reset otvara fajl samo za citanje. Zna ˙¨:> ˙¨:> Zar? Ne znam, možda je text fajl izuzetak, ali reset ne otvara samo ˙¨:> za citanje, vec i za citanje i za pisanje. Kako bi inače menjao fajl ˙¨:> bez da ga obrišeš? Rewrite osim što otvara za pisanje i briše ceo ˙¨:> fajl. Pa imaš i APPEND. Može i to za pisanje...
pascal.805 bearboy,
Help ! Napisao sam program koji se kači na vremenski interapt ($1C) i sve radi lepo, dok ne pokušam nešto upisati u neki fajl. Onda crkne. Rewrite uradi, i posle kod prve write ili blockwrite komande zapne...
pascal.806 almi,
Kako u tp-u da detektujem polozaj mlaza monitora za vga-kartia svgakarticu Pozdrav Aleksandra & MIsel
pascal.807 vitez.koja,
#=> Napisao sam program koji se kaci na vremenski interapt #=> ($1C) i sve radi Mozda bi treboa da prvo dozvolis dalje interapte (PUSHF, pozoves strari $1C), napravis jedan fleg (boolean) na pocetku da ne dozvolis visestruko pozivanje, i onda radis sta oces... To bi trebalo da radi...
pascal.808 .sima,
> Mali problem sa svim ovim tehnikama može da bude što > "okidaju" razni anti-virus softver osetljiv na promene u > .EXE datotekama. Ali, ako je potrebno... time je sve > rečeno. onda pre nego što ga postaviš na sistem uradi ono sa blockread i blockwrite i dodaj record (prazan) onda u toku korištenja programa ako sve stane u jedan record (koji si dodao neće biti problema sa virusima nadam se da sam razumeo dobro problem Ovo sam već probao i radi Sam TP 6.0 radi na isti fazon ako ima problema javi se .sima
pascal.810 edge,
Yo! > Pascalovci evo malog programa za komunikaciju.Radi sa Yo! > com1 i preuzet je Yo! Super sto radi samo na COM1...meni je samo on riknuo:(((. Jel imas verziju koja radi i sa COM2? Ica.
pascal.811 .sima,
> Pa imaš i APPEND. Može i to za pisanje... APPEND se koristi SAMO na tekstualnim fajlama i posle njegovog poziva fajla postaje write-only isto kao i kada koristiš rewrite na tekstualnom fajlu pozdrav :)))) .sima
pascal.813 ssokorac,
─┼┤ record (koji si dodao neće biti problema sa virusima ─┼┤ nadam se da sam razumeo dobro problem Jesi, thanks :).
pascal.814 almi,
Slušaj imaš na početku definiciju konstanti tamo promeni port definiciju itd.... Pozdrav ALeksandra & MIš H
pascal.815 .sima,
> Pascalovci evo malog programa za komunikaciju.Radi sa com1 > i preuzet je iz knjige PASCAL 6.0 The complete reference. > > Pozdrav ALeksandra & MIsel Preuzeo sam taj fajl, ali moj unzip ima problema sa raspakivanjem daje mi za metod nepoznat.
pascal.816 drpr,
Zanima me jedna stvar? Kako da neku sličicu recimo pcx bacim na štampač,ako je lakše keko recimo nešto nacrtano u tp-u da bacim na štampač.Molio bih ako nekom nije teško da mi podrobnije objasni , a ne "pročitaš iz memorije itd.." pošto nisam baš najveći stručnjak za programiranje . cope Use idm.
pascal.817 darone,
>> Preuzeo sam taj fajl, ali moj unzip ima problema >> sa raspakivanjem daje mi za metod nepoznat. pkunzip 1.93ß (valjda je beta). darone p.s. nisam probao, pretpostavljam
pascal.818 bearboy,
˙¨:># => Napisao sam program koji se kaci na vremenski interapt ˙¨:># => ($1C) i sve radi ˙¨:> ˙¨:> Mozda bi treboa da prvo dozvolis dalje interapte (PUSHF, pozoves strari ˙¨:> $1C), napravis jedan fleg (boolean) na pocetku da ne dozvolis visestruko ˙¨:> pozivanje, i onda radis sta oces... To bi trebalo da radi... Ko zna :) Fora je u tome da ako izostavim liniju sa pisanjem na disk, program lepo radi. (Mada onda postaje totalno nepotreban :)
pascal.819 dejanr,
>> Ko zna :) Fora je u tome da ako izostavim liniju sa pisanjem na disk, >> program lepo radi. (Mada onda postaje totalno nepotreban :) Takvo ponašanje potiče od toga što DOS nije reentrant. Dakle, legalno ne možeš iz interapta da pozivaš DOS funkcije. Dosta programa to rade preko dos busy flag-a, što je postala polulegalna metoda. Probaj da download-uješ odavde one fajlove o svim interaptima, možda tamo nađeš neke informacije koje ti trebaju.
pascal.820 gbiocic,
> Takvo ponašanje potiče od toga što DOS nije reentrant. Dakle, legalno > ne možeš iz interapta da pozivaš DOS funkcije. Dosta programa to rade > preko dos busy flag-a, što je postala polulegalna metoda. Probaj da U zz-ovom članku je dat primer kako to raditi (mislim u c-u). I savet: U fazi testiranja zabataliti pisanje na disk, nego uzeti neku benignu DOS f-ju, recimo "zvonce" na ekran. gb
pascal.821 dgrbic,
:: Ko zna :) Fora je u tome da ako izostavim liniju sa :: pisanjem na disk, program lepo radi. (Mada onda postaje :: totalno nepotreban :) Skini lptx??? sa Sezama, tu imas .ASM source sa puno komentara i tu je lepo opisano kako se iz interapt rutine pise u fajl. Ne treba ti poznavanje asemblera bas puno, jer su komentari vrlo opsirni... A imas i drugo resenje: Pustis lptx da hvata recimo lpt3 a ti iz svog programa umesto da pises u fajl, stampas ono sto vec treba da saljes na taj lpt3 "stampac". I nadas se da nece da zapne zato sto se predugo zadrzavas u Int. rutini :)
pascal.822 almi,
korišćen je pkzip v1.93alfa Pozdrav almi
pascal.823 .sima,
Imam jedno pitanjce Kako se startuje TD386 TD286 se normalno startuje i zauzme manje mesta nego TD to je ok ali TD386 bi trebao da se ceo digne i ne zauzme ni bajta E kad ja pokrenem TD386 dobijem poruku Processor is already in V86 mode U cemu je greska pozdrav Srdjan
pascal.824 bearboy,
Skinuh onah COMMX (od almija, valjda) i nešto mi ne radi. Naime, kad pokuša da setuje interapt vektor ($0C ?), lepo ode da 'spava'. Zaglavi se. PS. Isto kao kod mog malog programčića koji se kači na $1C. BTW. Taj ni dalje ne radi :( Ni sa onim prosleđivanjem. Jednostavno se zaglavi kod pisanja. Tačnije POžNE nešto da piše (po mojoj proceni oko 2-3 puta više nego što bi trebao) i kad prestane sa pisanjem, zaglavi comp. E sad, fajl u koji bi trebao da piše, i dalje ima dužinu 0. Kaj sad ?
pascal.825 ilazarevic,
█ preko dos busy flag-a, što je postala polulegalna metoda. Probaj da █ download-uješ odavde one fajlove o svim interaptima, možda tamo █ nađeš neke informacije koje ti trebaju. Da li su ti fajlovi u nekom diru ili su zakačeni na poruke?
pascal.826 janko,
> E kad ja pokrenem TD386 dobijem poruku > Processor is already in V86 mode Koristiš neki memori menadžer ili nešto slično, što TD386 ne voli (ne može više programa da bude 'gazda'). Zavisi od verzije TD386, ili moraš da digneš sisitem 'na suvo,' ili, za novije verzije TD386 da dodaš i neki .SYS itd...
pascal.827 dusanp,
Da bi startovao td386 moras da imas 386:))) Ako je taj uslov ispunjen idemo dalje... 1.Ne smes da koristis nijedan od 386 memory managera (qemm ili max), mozda moze jedino himem.sys (nisam probao) 2.U config.sys moras da uneses DEVICE=(path do drajvera)\tdh386.sys Da li imas tdh386.sys? 3.Ako tdh pri instalaciji prijavi greske, na primer "nedevoljno mesta za envirovment", uz DEVICE=... se mora navesti i nesto dodatnih parametara za podesavanje, al to vidi iz uputstva, ne znam napamet. Ona greska mi mirise na neki memory manager ili na nepostojanje 386ice.
pascal.828 ssokorac,
Šta se radi kada tp (6.0) javi code segment too large? žini mi se da je neko spomenuo overlay-e, ali nemam pojma sta s njima :), pa ako neko može da mi objasni. Thanks unapred. P.S. Ako neke procedure prebacim u unitove, pretpostavljam da ce i dalje javljati istu poruku?
pascal.829 prvul,
ŮE kad ja pokrenem TD386 dobijem poruku ŮProcessor is already in V86 mode Ů▄▄▄ Probaj da startuješ TD iz "golog" DOS-a, znači bez QEMM i sličnih zezalica (a naročito nemoj da ti padne na pamet da startuješ TD386 iz DOS prozora u WINDOWSima ;).
pascal.830 vitez.koja,
#=> P.S. Ako neke procedure prebacim u unitove, #=> pretpostavljam da ce i dalje javljati istu poruku? Nisam probao, ali ne bi trebalo.
pascal.831 dejanr,
>> Da li su ti fajlovi u nekom diru ili su zakačeni na poruke? Nalaze se u direktorijumu INFO
pascal.833 dejanr,
>> Šta se radi kada tp (6.0) javi code segment too large? žini mi se >> da je neko spomenuo overlay-e, ali nemam pojma sta s njima :), pa ako >> neko može da mi objasni. Thanks unapred. TP radi u memorijskom modelu koji obezbeđuje više kodnih segmenata (po jedan za svaki unit) i jedan segment za podatke. Svaki segment je ograničen na 64 K. Dakle, ostaje ti da neke od procedura odvojiš u poseban unit ili više unit-a.
pascal.834 almi,
Kod nas taj program radi kako treba i nismo primetili da se glavi. Pozdrav, ALMI
pascal.835 bearboy,
│ download-uješ odavde one fajlove o svim interaptima, možda tamo nađeš │ neke informacije koje ti trebaju. Po tom sam textu pisao program :) │ preko dos busy flag-a, što je postala polulegalna metoda. Probaj da Kako se to radi ?
pascal.836 bearboy,
│ I savet: U fazi testiranja zabataliti pisanje na disk, nego uzeti │ neku benignu DOS f-ju, recimo "zvonce" na ekran. Pazi ovo - program piše na ekran, port, stampac, etc. pisti, muzicira, sve sve sve, dok mu ne kažem da takne disk. PS. E da, zaboravih da kažem. Sa Print Screen interaptom radi k'o san, ali to ne služi svrsi jer ga pojedini programi isključuju (interapt :).
pascal.837 bearboy,
│ Skini lptx??? sa Sezama, tu imas .ASM source sa puno komentara i tu je lepo │ opisano kako se iz interapt rutine pise u fajl. │ Ne treba ti poznavanje asemblera bas puno, jer su komentari vrlo opsirni... Pa ni ne znam mnogo :) Ceo program je pisan u Paskalu (zato je u ovoj temi :) │ Pustis lptx da hvata recimo lpt3 a ti iz svog programa umesto da pises u fajl, │ stampas ono sto vec treba da saljes na taj lpt3 "stampac". │ I nadas se da nece da zapne zato sto se predugo zadrzavas u Int. rutini :) Pa može i to, šta više, to bi bilo najfunkcionalnije, ali kako da pišem neki samostalni program koji se oslanja na neki drugi ? :)
pascal.838 .sima,
> Da bi startovao td386 moras da imas 386:))) > Ako je taj uslov ispunjen idemo dalje... > 1.Ne smes da koristis nijedan od 386 memory > 2.U config.sys moras da uneses > 3.Ako tdh pri instalaciji prijavi greske, na OK radi hvala puno Startovao sam bez qemm-a i radi samo ja koristim stacker i on mi uzme 50k kada ga ne smestim u umb; da li bi radio sa EMM386.exe. Nego ja nemam himem.sys :(( obrisao ga kao to sr*** mi neće trebati da li neko meže da mi ga pošalje himem.sys i emm386.exe da probam sa njima kako bih mogao da dignem dos i da li onda mogu da dignem driver za miš i stacker. Nemam nikakvo uputstvo za TD386 tražio ali nigde našao Da li neko imam možda to Hvala puno na odgovorima Srđan
pascal.839 miroslavn,
Kako da TPU koji je kompajliran sa TP 5.5, koristim i sa TP 6.0 , ali da ga ne rekompajliram (tj. nemam source code tog TPU-a) ? Da li postoji neki konvertor formata TPU-a?
pascal.840 dejanr,
>> Da li postoji neki konvertor formata TPU-a? Koliko znam, ne postoji. To je velika mana Turbo Pascala
pascal.841 broker,
> Kad smo već kod datoteka imam jedan mali problem. > Imam jedan program koji se koristi datotekama i želeo bih > da ga mogu pozivati odakle god hoću (recimo da napravim > bač fajl) ali bez menjanja trenutnog dira.Kada program > pozove datoteku on je ne nađe jer datoteka nije u diru > odakle je "poziv došao".Pravljenje neke datoteke koja će > nositi informaciju o diru gde se nalazi fajl pa da je >ć bacim recimo u c:Đ ne izgleda mi baš elegatno a i šta e > se desiti ako korisnik slučajno izbriše tu datoteku sa > informacijom.Da li ima neko rešenje? Ja obično takve datoteke držim gde i sam program, a u TP pozivom ParamStr(0) dobijaš stazu na kojoj se nalazi sam program. I lepo na toj istoj stazi uzmeš datoteku koja ti treba. Program možeš da pokrenš i preko PATH-a, uvek će da pronađe datoteke...
pascal.842 broker,
>>> Nego, šta rade onda programi koji treba da upišu nešto u >>> sebe, a da ne 'probude' antivirus? > > Pa, kada bi mogli nešto da urade da to zaobiđu, onda bi to > isto mogao da uradi i virus pa od tog antivirusa ne bi > bilo mnogo vajde. Ustanovićeš da je jako malo programa > koji nešto upisuju "u sebe". Jedan od takvih je bio i > Turbo Pascal odnosno njegov TINST (on, doduše, nije > upisivao baš "u sebe" ali jeste u TURBO.EXE), sve negde do > verzije 5.0 ili 5.5. KOristim TP5.5 i njegov TINST upisuje stvari u TURBO.EXE. Imam instaliran Vshield i on se na tu operaciju ne buni. Mozda zto sto se ne 'patchuje' program koji je trenutno pokrenut?
pascal.843 bearboy,
│ Kod nas taj program radi kako treba i nismo primetili da se glavi. A kod mene se glavi... Kad setuje int $0C, i završi proceduru, ode u večna lovišta.
pascal.844 bearboy,
│ Šta se radi kada tp (6.0) javi code segment too large? žini mi se Izbaciš ono VAR A :ARRAYŠ0..64000Ć of byte; (ili nedajbože string ;) │ P.S. Ako neke procedure prebacim u unitove, pretpostavljam da ce i │ dalje javljati istu poruku? Ma bacaj sve u junitove, i posle nema da boli glava. I ja radim to :) A kad završiš program, unit lepo linkuješ zajedno sa, recimo, .BGI, .CHR i ostalim zezalicama u EXE... I tako ti EXE poraste za kojih 50-300K za tren okceta :)
pascal.845 drpr,
-> Koliko znam, ne postoji. To je velika mana Turbo Pascala Ja bih rekao ogromna jer stvarno nema smisla :( cope PS Imam neke utility tpu-ove (neke sam i bacao ovdi) zbog kojih mi se ne prelazi na tp6.0 jedino ako su napravili neke nove verzije (većina je skinuta sa trickle-a)
pascal.846 drpr,
-> Ja obično takve datoteke držim gde i sam program, a u TP -> pozivom ParamStr(0) dobijaš stazu na kojoj se nalazi sam -> program. I lepo na toj istoj stazi uzmeš datoteku koja ti -> treba. Program možeš da pokrenš i preko PATH-a, uvek će da -> pronađe datoteke... Hvala na odgovoru ali istu stvar mi je rekao dzakic pre 10-ak dana :).Ali nema veze sve jedno hvala. cope
pascal.847 almi,
Imam problem u pascalu,tj. napisao sam ovaj mali program koji otvara prozore tj.crta pravougaonik dok je pritisnuto dugme na mišu.Ali ako se miš kružno kreće ostaju zbrljovi na ekrano (dugme je pritisnuto).Preuzmite ovaj kratak program i pomozite mi. Unapred zahvalan Mišel. opwin.pas
pascal.848 ssokorac,
─┼┤ Izbaciš ono VAR A :ARRAYŠ0..64000Ć of byte; (ili ─┼┤ nedajbože string ;) Mm? Odakle?!
pascal.849 dejanr,
>> KOristim TP5.5 i njegov TINST upisuje stvari u TURBO.EXE. >> Imam instaliran Vshield i on se na tu operaciju ne buni. >> Mozda zto sto se ne 'patchuje' program koji je trenutno pokrenut? Da, on očito smatra TURBO.EXE "običnom" datotekom. Međutim, ima dosta antivirus programa koji se startuju pri butovanju računara i proveravaju checksum svih relevantnih fajlova, sa posebnim osvrtom na EXE, COM, SYS... Takav bi se garant bunio, mada od tog "bunjenja" nema štete ako korisnik zna o čemu je reč. Nema, kažem, štete ali je ipak neprijatan trenutak kada računar počne da prijavljuje sumnjive stvari koje "mirišu" na viruse.
pascal.850 vitez.koja,
#=> Imam problem u pascalu,tj. napisao sam ovaj mali program #=> koji otvara prozore Nisam skinuo fajl pored poruke i ne znam sta si radio, ali u principu kad se ispod misevog kursora nesto desava (tj. menjas izgled ekrana) najpozeljnije je da iskljucis pacova za momenat... Desavalo se to i meni :))
pascal.851 obren,
> Imam problem u pascalu,tj. napisao sam ovaj mali program koji otvara > prozore tj.crta pravougaonik dok je pritisnuto dugme na mišu.Ali ako > se miš kružno kreće ostaju zbrljovi na ekrano (dugme je pritisnuto). Ukratko, brljotine se javljaju zato što ne sakrivaš mišji kursor za vreme crtanja po ekranu. Pre onih reštangli treba da sakriješ miša, a posle njih da ga vratiš.
pascal.852 adzem,
Kako da proverim koji diskovi postoje u sistemu ? Zna se da su A i C uvek tu, ali kako ispitati da li postoje i B,D,E,... i koliki im je kapacitet ?
pascal.853 drpr,
-> dosta antivirus programa koji se startuju pri butovanju -> računara i proveravaju checksum svih relevantnih fajlova, sa -> posebnim osvrtom na EXE, COM, SYS... Takav bi se garant -> bunio, mada od Ja sam se malko time bavio i nisam imao nikakvih problema.Elem radio sam tako što bih negde u programu imao recimo reg:='Registration trte mrte...' a to ostaje u originalu u exe fileu zatim bi (napravio sam kratki programčić) hendlovao taj exe fajl kao bilo koju datoteku ,sa malim problemom u pojavljivanju više ctrl-z u fajlu.Zatom bih trte mrte promenio sa nečim drugim i to je bilo sve.Samo treba voditi računa da string ostane iste dužine jer ako se to promeni program zaglavi.Sve sam probao i pod všildom (ima na sezamu) i ništa se nije desilo (kuc. kuc.!) a mislim i da nije trebalo da se desi zato što program pre i posle prepravke ostaje iste dužine. cope
pascal.854 almi,
hvala puno Mišel.
pascal.855 nnedovic,
>> Kako da proverim koji diskovi postoje u sistemu ? >> Zna se da su A i C uvek tu, ali kako ispitati da li postoje i >> B,D,E,... i koliki im je kapacitet ? Za to se koristi funkcija DiskSize iz Dos junita. Sintaksa: Function Disksize(Drive: byte): Longint; Ako staviš za drive 0, dobiješ veličinu difolt drajva, 1 za A:, 2 za B: itd. Ako disk ne postoji, funkcija vraća -1
pascal.856 isekulovic,
>> prozore tj.crta pravougaonik dok je pritisnuto dugme na mišu.Ali ako >> se miš kružno kreće ostaju zbrljovi na ekrano (dugme je Probaj da ugasiš miša pre crtanja (pisanja) i da ga upališ kad završiš. Trebalo bi da onda bude sve ok, odnosno bar je meni bilo kad sam pre jedno 2 meseca ima isti problem, zašto je tako ne pitaj to sam otkrio metodom dodaj&izbaci.:) ivan ps zaboravih da kažem, nisam skinuo program tako da ne znam u kom režimu radi, ali ja sam radio u text
pascal.857 adzem,
> Ako staviš za drive 0, dobiješ veličinu difolt drajva, > 1 za A:, 2 za B: itd. Ako disk ne postoji, funkcija vraća > -1 Ako, recimo, ispitujem disk B (ili A) bez umetnute diskete, računar će da zavrišti i tražiće da ubacim disketu. Mene zanima kako da ut- vrdim kapacitet drajva, a ne same diskete, tu DiskSize ne daje od- govor. Znači pitanje je kako ispitati prisustvo diska B, bez obraćanja disketi (da ne drči disk svaki put kad startujem program).
pascal.858 d.petrovic,
Ă> Znači pitanje je kako ispitati prisustvo diska B, bez obraćanja Ă> disketi (da ne drči disk svaki put kad startujem program). O pacalu znam koliko i o vožnji konkorda, ali ako ne nađeš "paskalovsko rešenje" : INT 11H žitaš iz registra AX, bitovi 6 i 7 su broj instaliranih flopi-disk drajvova. 00=1 01=2 10=3 11=4 Pažnja ! Ukoliko ne postoji ni A, on će prijaviti da postoji, valjda su računali da makina mora da ima bar jedan flopi. Pozdrav, Dejan
pascal.860 ssokorac,
─┼┤ Kako da proverim koji diskovi postoje u sistemu ? Možeš da ideš da proveravaš za svaki disk od c: do z: i za svaki koji je free=-1 => ne postoji.
pascal.861 dzakic,
> Kako da proverim koji diskovi postoje u sistemu ? A kako da proverim koji je drajv SUBSTovan, ili još bolje, koji direktoijum na kom disku on zamenjuje?
pascal.862 bearboy,
║ Znači pitanje je kako ispitati prisustvo diska B, bez obraćanja ║ disketi (da ne drči disk svaki put kad startujem program). Najlakše preko interapta.
pascal.863 adzem,
> INT 11H > žitaš iz registra AX, bitovi 6 i 7 su broj instaliranih > flopi-disk drajvova. Danke. :)
pascal.864 adzem,
> Možeš da ideš da proveravaš za svaki disk od c: do z: i za > svaki koji je free=-1 => ne postoji. To sam i radio. Problem mi je bio disk B, a rešenje za to je dao d.petrovic.
pascal.865 hacker,
Moze li neko da baci onaj CHR editor fontova ovde, thanx
pascal.866 hacker,
Hmmm, ovo pitanje mozda moze i negde drugde da se postavi ali kako pisem program u pascalu tj pokusavam da ga napisem... Problem je u sledecoj stvari, imao sam Herculesa za koji sam napisao procedure i f-je za rad sa pacovom, sada na VGA on ne radi a ja neznam zasto...? Kao prvo radim u grafickom modu, pokusao sam sve jos mi je preostalo da menjam strane na kojima prikazujem misa ali nisam siguran koja je f-ja u dosu za to... Help
pascal.867 janko,
> Problem je u sledecoj stvari, imao sam Herculesa za koji > sam napisao procedure i f-je za rad sa pacovom, sada na > VGA on ne radi a ja neznam zasto...? Kao prvo radim u > grafickom modu, pokusao sam sve jos mi je preostalo Vozač (drajver) miša ne zna kada si u grafičkom modu na H. Zato preračunavanje pozicija, koje vozač radi na 'normalnim' :) grafičkim kartama daje druge podatke o položaju miša... Zatim, na 'normalnim' kartama se drugačije i iscrtava strelica (ili objekat koji pomeraš mišem) itd. itd. Sve u svemu, nije baš trivijalno prepraviti program koji si naštelovao za H. jer H. jednostavno gnjusni stranci malo uzimaju u obzir... vozači se pišu za ono što oni zovu normalne karte :) Savet: pročitaj ponovo dokumentaciju o interaptima koje razume mišev 'vozač' pa rutine za miša razvijaj ispočetka... Kada uspeš, uporedi sa onima pre, pa napiši ovde da rezime da znamo i mi...
pascal.868 skoprivica,
╠╣M oze li neko da baci onaj CHR editor fontova ovde, thanx Vec je ovde. potrazi sa list 4 /a/t
pascal.869 vitez.koja,
Je'l ima neko da zna nesto vise o procedurama Mar i Release ? Bio bih zahvalan za objasnjenje.
pascal.870 spantic,
> Je'l ima neko da zna nesto vise o procedurama Mar i > Release ? Bio bih zahvalan Ako se dobro sećam Release briše sve dinamičke promenljive tipa ukazivač od specificirane adrese ( Mark procedura ) pa sve do kraja heapa. Sintaksa je: Release ( Ptr: pointer); Dok MArk markira memorijsku lokaciju na heapu pomoću dinamičke promenljive. Sintaksa je: Mark ( Var Ptr: pointer); Naravno koriste se zajedno. Sumnjam da je ovo više, dakle šta te detaljnije zanima?
pascal.871 nboskovic,
*> Je'l ima neko da zna nesto vise o procedurama Mar i *> Release ? Bio bih zahvalan za objasnjenje. Ako ti znači nešto u diru R:\IBMPC\PROGRAM imaš arhivu TSRSRC34.ZIP u kojoj se nalaze source-ovi za te dve funkcije u TP6 i asembleru. (c) klap nikola
pascal.872 broker,
Radim na programu koji koristi fossil drajver za rad sa COM portom. Drajver mi izmedju ostalog od podataka daje adresu na kojoj počinje njegovo ime u obliku C stringa (završava sa nulom). Da bih to pročitao upotrebio sam pointer na string i sa malo manipulacije uspeo da pročitam sadržaj. Ali mi se zato pojavio vrlo čudan problem.... Da bih pozivao fossil koristim jedan OBJ (napisan u asembleru, prilagodjen TP-u) koji sadrži jednu funkciju namenjenu da se fossilu obraćam preko nje a ne preko interapta 14 direktno. To sve da bi se omogućio normalan rad i pod DesqView-om i sl. sistemima. E sad. Kad pre onog gore navedenog čitanja stringa u prg ubacim punjenje stringa na koji pokazuje gore navedeni pointer sa #32, prvo pozivanje funkcije iz OBJ dovodi do resetovanja računara. Vrlo čudna okolnost je što se deo programa koji punu string i ne izvrši, već se samo pojavi u izvršnom kodu. Kada izbacim to punjenje stringa sa spaces sve radi OK. Ne znam kako funkcioniše TP na tom nivou. Da li on pri definiciji promenljive tipa string odmah odvaja memoriju za eventualnih 255 karaktera ili naknadno, zavisno od sadržaja promenljive? Meni sada pointer pokazuje na prazan string (dužine nula), i za sada to radi kada u njega upisujem nekih 50-tak znakova. Da li će raditi i ako se pojavi eventualnih 255 znakova? Ovo mi je prvi put da koristim pointere za nešto od čega će čak i biti koristi..... hvala, broker
pascal.873 broker,
Još jedno pitanje za sve. Treba mi bilo kakav info na šta da obratim pažnju kad pišem program koji treba da radi u multitasking-u ili u nekoj mreži? Kako da izvedem zaključavanje zapisa i celih datoteka? Da li je to ko uopšte radio u Tp? broker
pascal.874 dzakic,
> Ne znam kako funkcioniše TP na tom nivou. Da li on pri > definiciji promenljive tipa string odmah odvaja memoriju za > eventualnih 255 karaktera ili naknadno, zavisno od sadržaja > promenljive? Ako je deklarisana kao string, onda uvek odvaja 256, ako se deklariše se "string[n]" onda n+1 bajtova jer se u prvom, odnosno nultom, članu uvek čuva njegova dužina. žak se može i pročitati sa s[0] ako je s string.
pascal.875 dzakic,
> Kako da izvedem zaključavanje zapisa i celih datoteka? Deklarišeš: const readonly = 0; writeonly = 1; readwrite = 2; compatibility = 0; exclusive = 16; denywrite = 32; denyread = 48; permitall = 64; i onda pre svakog reset(file) staviš recimo: filemode:=readwrite+denywrite; Važno je da uvek uzmeš jedan iz prve grupe i iz druge grupe. Dakle, saopštiš šta ćeš ti (tvoj task, nod) da radiš sa datotekom, a šta dozvoljavaš ili zabranjuješ drugima. Takođe je važno da ako nakon reset, dobiješ ioresult=5 (ako se dobro sećam), znači da je datoteka zauzeta od strane drugog programa i moraš da čekaš da se ona oslobodi, povremeno pokušavajući da je otvoriš na isti način. Poželjno je da to ne bude previše često da se mreža ne zaguši, već praviti neke pauzice između pokušaja. Ako sa svim tim eksperimentišeš u DesqView-u, na jednoj mašini, moraš da učitaš SHARE.
pascal.876 kenza,
[:> Je'l ima neko da zna nesto vise o procedurama Mar i [:> Release ? Bio bih zahvalan za objasnjenje. Ja mislim da MARK i RELEASE kada ih koristis,ne ostavljaju razne rupe po dinamickoj memoriji(kao NEW i DISPOSE),vec izdvajaju jedan deo dinamicke memorije od nekog mesta pa nadalje. p.s. nemoj da koristis i RELEASE i DISPOSE u istom programu,nisu potpuno kompatibilne
pascal.877 broker,
> Je'l ima neko da zna nesto vise o procedurama Mar i > Release ? Bio bih zahvalan za objasnjenje. Naredbom MARK (ime pointera) označiš tu lokaciju u memoriji. Posle toga možeš da alociraš još memorije za neke druge pointere, a sa RELEASE (ime pointera) oslobađaš svu alociranu memoriju od trenutka kada je označena sa MARK do trenutka kada je oslobađaš sa RELEASE. RELEASE kao parametar ima ime istog onog pointera upotrebljenog u MARK.
pascal.878 broker,
> Ako je deklarisana kao string, onda uvek odvaja 256, Hvala. To mi je trebalo da neko potvrdi. Broker
pascal.879 broker,
O zaključavanju datoteka iz TP.... Hvala na rešenju problema. broker
pascal.880 vitez.koja,
#=> p.s. nemoj da koristis i RELEASE i DISPOSE u istom #=> programu,nisu potpuno kompatibilne U istom programu ? ili samo da ih ne kombinujem unitar programa ? je'l sme ovo : new(x); mark(y); ...... release(y); dispose(x);
pascal.881 asrdjan,
Hi Da li neko zna kako da u TP 6.0 iskljucim i Ctrl-Break i Ctrl-C i sve ostale kombinacije tastera koje mogu da prekinu program.
pascal.882 drakce,
│ Da li neko zna kako da u TP 6.0 iskljucim i Ctrl-Break i Ctrl-C └───── Uses Dos, Crt; begin SetCBreak(False); CheckBreak:=False; end.
pascal.883 hacker,
AKO IKO IMADE UNIT ili nesto sl. za rad sa misem na VGA neka ga posalje, jer sam prosao kroz skoro sve graficke registre kartice i nisam nista uspeo da uradim, hvala unapred... ...
pascal.884 vitez.koja,
#=> SetCBreak(False); #=> CheckBreak:=False; Jedan ili drugi... Moze i oba, ali ne sluzi nicemu. SetCBreak je zapravo obezbedjivanje kompatibilnosti sa TP 3.0, dok je nov (i preporucen) nacin kontorla promenljive CheckBreak
pascal.885 drakce,
││ SetCBreak(False); CheckBreak:=False; │└───── │ Jedan ili drugi... Moze i oba, ali ne sluzi nicemu. └───── Apsolutno. Mislio sam da je to očigledno svakom ko pogleda Help, pa nisam komentarisao. Rade istu stvar, uz malu razliku. Prva i po izlasku iz programa ostavlja BREAK=OFF, a druga vraća staru vrednost. U svakom slučaju, u pravu si. Pozdrav
pascal.886 goxx,
■ AKO IKO IMADE UNIT ili nesto sl. za rad sa misem na VGA neka ga posalje, ■ jer sam prosao kroz skoro sve graficke registre kartice i nisam nista ■ uspeo da uradim, hvala unapred... Evo ja imam neki unit koji sam pisao pre dve godine. U stvari preveo sam funkcije iz neke knjige o C-u na pascal. Unit sam samo isprobao ali ga nisam baš koristio jer sam tada završio sa pascalom. Funkcije za menjanje kurzora nisam preveo. U grafičkom modu vidi se strelica kao u Windows-u. Pogledaj, unit bi mogao da Ti koristi. Pozdrav, Goran. mouse.zip
pascal.887 dejanr,
>> > > SetCBreak(False); CheckBreak:=False; >> > >> > Jedan ili drugi... Moze i oba, ali ne sluzi nicemu. >> >> Apsolutno. Mislio sam da je to očigledno svakom ko pogleda Help, pa >> nisam komentarisao. Rade istu stvar, uz malu razliku. Prva i po >> izlasku iz programa ostavlja BREAK=OFF, a druga vraća staru vrednost. >> U svakom slučaju, u pravu si. Meni se čini da niste u pravu ni jedan ni drugi. Ako se dobro sećam, SetCBreak(False) je isto što i BREAK OFF iz DOS-a, a to *ne* znači da se Ctrl C neće testirati, nego samo znači da će se testirati jedino pri pozivu DOS funkcija za upis/čitanje konzole, štampač i com portove, dok BREAK ON znači da se ctrl c testira pri pozivu *bilo koje* DOS funkcije. Znači, ako u TP programu izvršiš SetCBreak(false) pa posle pozoveš bilo koju funkciju sa prethodnog spiska (Turbo Pascal može pisati na ekran i preko DOS-a, i preko BIOS-a, i direktno zavisi kako korisnik reši), program će biti prekinut. Nisam probao pa ne mogu baš da budem siguran, ali mislim da je otprilike tako. Dakle, za onemogućavanje Ctrl C treba koristiti checkbreak:=false
pascal.888 drakce,
│││ SetCBreak(False); CheckBreak:=False; ││└───── ││ Rade istu stvar, uz malu razliku. Prva i po izlasku iz programa ostavlja │└───── │ Dakle, za onemogućavanje Ctrl C treba koristiti checkbreak:=false └───── Nećeš mi verovati, u pravu si :). Probao sam da dok u petlji pišem po ekranu, prekinem program i sa SetCBreak sam uspeo, dok sam na CheckBreak morao da sačekam kraj. Mada se i tome može doskočiti. Ima jedno crveno dugmence ... :) Pozdrav
pascal.889 hacker,
Zahvaljujem, sacu da ga pogledam, NAJVECI biser je sledeci pisanje programa sa misem mi je postala prava nocna mora od kada imam vga "????" sada sam uspeo da "izvucem" misa na 640x350 i ispod ali s tim da mi je ekran "povecen" u levo, tako da ni nasta ne lici!
pascal.890 bulaja,
**** new file **** \ibmpc\program tpfast40.arj Skup brzih funkcija za Turbo Pascal 6.0 (ASM source) TPFAST 4.0 ('FAST Turbo Pascal library') je zbirka raznih funkcija za Turbo Pascal 6.0 (ili druge verzije). Pisane su u asembleru i trebalo bi da rade dosta brzo, a dat je i .ASM izvorni kod. Funkcije obuhvataju sledece oblasti: manipulacija sa bit-ovima, datotekama, grafikom & crt, tastaturom, ekranom i stringovima.
pascal.891 mjova,
> vga "????" sada sam uspeo da "izvucem" misa na 640x350 i > ispod ali s tim da mi je ekran "povecen" u levo, tako da > ni nasta ne lici! koliko sam primetio, moraćeš sam da napišeš rutine za rad sa kurzorom. treba da isključiš interni kurzor koji obezbeđuje pacov driver, a onda sam da raiš preko event rutine. upravo sam tako rešio problem pojavljivanja kurzora u svim rezolucijama, a i druge prednosti se mogu primetiti. pogledaj funkcije 0x0c, 0x14 i 0x18. na ovaj način pacov driver koristiš samo za LL rutine: status tastera i relativan pomeraj u pixelima.
pascal.892 ssokorac,
Kako u tp-u mogu da dobijem .obj fajl?
pascal.893 dejanr,
>> Kako u tp-u mogu da dobijem .obj fajl? Nema načina :(
pascal.894 bojanp,
> Kako u tp-u mogu da dobijem .obj fajl? Ako si mislio da prevođenjem izvornog koda kompajlerom dobiješ .obj onda je odgovor, na žalost, nikako. To je, koliko je meni poznato jedna od najviše kritikovanih stvari kod tp-a. Postoji neki program koji .tpu konvertuje u .asm ili .obj, ali je on pisan za ranije verzije tp-a, a i predviđen je samo kao mogućnost da se delovi programa pisani u tp-u linkuju s programima pisanim u Turbo Prologu. Pozdrav, Bojan
pascal.895 dejanr,
Izgleda da je izašao Turbo Pascal 7.0. Zna li neko nešto više o njemu od ovoga: ========== borland/turbo.pascal #6456, from abailey, 326 chars, Fri Oct 30 18:25:54 1992 Comment(s). ---------- TITLE: BORLAND PASCAL 7.0 If you haven't heard BORLAND Pascal 7.0 has just been released. Be nice if Borland would let it's conferences know. I found out through the grapevine, which to be fair has a faster than light propagation rate. :) To order 1-800-252-5547 24hrs, 7 days a week. Further details I know not. >>>ALB<<< ========== borland/turbo.pascal #6457, from larryjudy, 172 chars, Fri Oct 30 21:11:49 1992 Comment to 6456. Comment(s). ---------- Funny you should mention that. I got a postcard announcing the Borland Pascal 7 in the mail today. Other than the number you posted, there is NO more on the card. --Larry ========== borland/turbo.pascal #6458, from abailey, 161 chars, Fri Oct 30 22:11:26 1992 Comment to 6457. More refs to 6457. ---------- One reason I blink through Borland is to get the latest greatest about new products. It's frustrating to find that the US Snail has beaten E-Mail. :[ >>>ALB<<< ========== borland/turbo.pascal #6459, from wobrien, 85 chars, Sat Oct 31 05:09:07 1992 Comment to 6457. Comment(s). ---------- If you got the same card I did it says that more information is coming in a few days ========== borland/turbo.pascal #6460, from bhofkin, 490 chars, Sat Oct 31 11:04:04 1992 Comment to 6459. ---------- I got that post card yesterday, too, and started to wonder how much it raised the cost of the upgrade. A few black thoughts crossed my mind about how things have changed since I put TP 1 on my CP/M box. This morning I called: the upgrade is $149.95, and we should see the detailed letter in about a week. The card says this is a 70% discount, so list price looks like $499.95. More black thoughts wishing *MY* salary had increased anything like an order of magnitude in a decade. --Bob
pascal.896 hacker,
Bi li pojasnio kako to da uradim? To vec neznam ( da li mislis da pisem novi drajver za pacova ili sta? Kako se iskljucuje interni mis i sl.) Da li mozda mogu da pomognu one EGA funkcije koje su objasnjene u MIS.NG koje koriste registre adaptera...? Danke...