PCPROG.6

25 Sep 1995 - 24 Dec 1999

Topics

  1. algoritmi (449)
  2. baze.podataka (309)
  3. ms.dos (17)
  4. windows (294)
  5. asembler (553)
  6. basic (458)
  7. jezici (42)
  8. pascal (1297)
  9. cccc (522)
  10. cpp (299)
  11. clipper (601)
  12. fox (70)
  13. cavo (14)
  14. delphi (1130)
  15. java (100)
  16. razno (776)
  17. unknown (127)

Messages - pascal

pascal.1037 vector, -> #1036, duskos
> Da li neko ima komunikacione rutine za modem za BP 7. > Ako postoji na Sezamu, recite mi gde. Poruka broj 8.1026 u ovoj konferenciji.
pascal.1038 ognjen, -> #1035, nbjvsb
)-> je ok, ako nije, izlazi iz programa. E sad, ja hocu da mu, )-> cim pozove int $13 odmah u es:bx strpam taj podatak, bez da )-> on proverava disketu. Pa lako je. Preuzmi interapt za citanje. I umesto da ti odradis posao pa pozoves originalni interapt, prvo pozovi originalni interapt, pa promeni procitani sadrzaj.
pascal.1039 nenad, -> #1036, duskos
> Da li neko ima komunikacione rutine za modem za BP 7. > Ako postoji na Sezamu, recite mi gde. SWAG - najveća kolekcija korisnih Pascal rutina i programa. Ovo je ALLSWAGS od avgusta ove godine, noviji još nije izašao. SWAG packets are available in 60 different catagories as follows : ANSI ARCHIVES CHARS CMDLINE COLOR COMM COPYMOVE CRC CRT CURSOR DATATYPE DATETIME DELPHI DESQVIEW DIRS DOS DRIVES EGAVGA ENCRYPT ENTRY EXEC FAQ FILES FINDREPL GRAPHICS HARDWARE INTERRUP ISR JOYSTICK KEYBOARD MAIL MATH MEMORY MENU MISC MOUSE NETWORK NUMBERS OOP PARSING POINTERS PRINTING RECORDS REDIRECT SAVESCRN SCREEN SCROLL SORTING SOUND STREAMS STRINGS TEXTEDIT TEXTFILE TEXTWNDW TIMING TSR UNITINFO WIN-OS2 TURTLE TUTOR The SWAG Reader and *.SWG files are contained in various archives (ZIP204) : SWAG.ZIP - Contains READER.EXE and Information files. SWAGA-C.ZIP - Contains ANSI through CURSOR SWAGD-F.ZIP - Contains DATATYPE through FINDREPL SWAGG-M.ZIP - Contains GRAPHICS through MOUSE SWAGN-R.ZIP - Contains NETWORK through REDIRECT SWAGS-Z.ZIP - Contains SAVESCRN through WIN-OS2 ALLSWAGS.ZIP - Contains ALL SWAG packets PLUS READER.EXE (LOTS of bytes !!) These packages will updated approximately every 90 days, as more "snipetts" are collected. Each update will be provided in a "stand-alone" EXE file that will automatically insert the new material to the existing libraries. These update packages will be distributed the LAST week of each of the following months, and will be named as : FEBRUARY - SWAGYY02.ZIP MAY - SWAGYY05.ZIP AUGUST - SWAGYY08.ZIP NOVEMBER - SWAGYY11.ZIP Each file will be named using the year (YY) and month (2,5,8,11) of distribution. We estimate that there eventually will be over 3000 of these covering EVERY POSSIBLE aspect of PASCAL. Enjoy and GOOD PROGRAMMING !!! SWAG Support Team - Internet Addresses: Gayle Davis GDSoft gdavis@gdsoft.com Jeff Fanjoy (Micky) MatrixSoft(tm) jfanjoy@interlog.com
pascal.1040 nenad, -> #1038, ognjen
> Ovo je ALLSWAGS od avgusta ove godine, noviji još nije izašao. Zaboravih... Dakle - OVO je allswags od avgusta ove godine: dos\prog\pascal\*.* ------------------ allswags.zip 8408k ű SWAG 8/97: velika zbirka korisnih Pascal rutina i progr. U datoteci je i program za pretraživanje i "browsing" kroz bazu.
pascal.1041 duskos, -> #1040, nenad
>> Ovo je ALLSWAGS od avgusta ove godine, noviji jos nije izasao. > > Zaboravih... Dakle - OVO je allswags od avgusta ove godine: > dos\prog\pascal\*.* > ------------------ > allswags.zip 8408k ű SWAG 8/97: velika zbirka korisnih Pascal rutina i > progr. > U datoteci je i program za pretrazivanje i "browsing" kroz bazu. Hvala very much! Nadam se da ce mi ovo pomoci. Pozdrav, duskos!
pascal.1042 duskos, -> #1037, vector
>> Da li neko ima komunikacione rutine za modem za BP 7. > > Poruka broj 8.1026 u ovoj konferenciji. Thanks you takodje. Pozdrav, duskos!
pascal.1043 nbjvsb, -> #1038, ognjen
>> Pa lako je. Preuzmi interapt za citanje. I umesto da ti >> odradis posao pa pozoves originalni interapt, prvo pozovi >> originalni interapt, pa promeni procitani sadrzaj. Tacno, al' ja pojma nemam kako to da uradim, a da radi :) Evo ga kod, pa ono, sta tu ne valja, i slicno? :) program Koznasta; {$M $8000,0,0 } uses Crt,Dos; type pod = array[0..511] of byte; var Int13Save: procedure; p: pod; f: file of pod; {F+, S-, W-} procedure Menjaj(Flags,CS,IP,AX,BX,CX,DX,SI,DI,DS,ES,BP: word); interrupt; begin Int13Save; ES:=Seg(p); BX:=Ofs(p) end; {F-} begin Assign(f,'Podaci.dat'); Reset(f); Read(f,p); Close(f); GetIntVec($13,@Int13Save); SetIntVec($13,Addr(Menjaj)); Keep(0) end.
pascal.1044 zuleika,
Pitanje od druga. 1) Postoji li 32-bitni compiler za Pascal (ne Delphi, ne BP). Treba mi za NT! 2) Postoji li stand-alone biblioteka za Turbo Vision - prenosiva na dru8ge compiler-e? Hvala unapred!
pascal.1045 emajsijuen,
Postoji li neki nacin da se napravi niz veci od 64k ? Pozdrav, Vlada...
pascal.1046 kojai, -> #1045, emajsijuen
>> Postoji li neki nacin da se napravi niz veci od 64k ? Postoji nacin da se napravi niz dugacak onoliko koliko imas rama! Nekada sam pravio program, ali ga na zalost vise nemam... Naime program pravi platformu u protected modu i onda nastavljas da pises malo u pascalu, malo u assembleru! :) Postoji jos jedan nacin, a to je pomocu $M svica, ali ne znam kako se to radi! :))) U glavnom nisam ti bas puno pomogao... :) Pozdrav!
pascal.1047 nitugard, -> #1045, emajsijuen
> Postoji li neki nacin da se napravi niz veci od 64k ? > Pozdrav, Vlada... Svakako. ------------- HASAN SECKATI ---------------- program PrimerNiza; (* Ako je sve što želiš da niz zauzme više od 64K to možeš postići na ovaj način. Ali, ako želiš da niz ima više od 16383 članova, onda moraš da spajaš više podnizova od po 16383 ili već koliko odabereš članova. *) const MaxClanovaNiza = 16383; Nesto: string = 'Trla baba lan...'; type PClanNiza = ^TClanNiza; TClanNiza = string [19]; { recimo } PNiz = ^TNiz; TNiz = array [1..MaxClanovaNiza] of PClanNIza; var Niz: PNiz; Brojac: word; i: word; KolkoTreba: longint; begin WriteLn ('Slobodna memorija: ', MaxAvail); WriteLn ('Enter za pocetak.'); ReadLn; (* proveravamo može li se napraviti *) KolkoTreba:= longint(MaxClanovaNiza) * (SizeOf (TClanNiza) + 4) + 4; if MaxAvail < 65535 then begin WriteLn ('Nema dovoljno velikog bloka za pointere.'); Halt (1); end; if MemAvail < KolkoTreba then begin WriteLn ('Nema dovoljno memorije za niz.'); Halt (2); end; (* sada pravimo niz pointera *) Niz:= nil; New (Niz); Writeln ('Pointeri alocirani.'); (* zatim pravimo članove niza *) for i:= 1 to MaxClanovaNiza do begin Niz^[i]:= nil; New (Niz^[i]); WriteLn ('Alociran clan ', i); end; (* sada možemo da koristimo niz *) for i:= 1 to MaxClanovaNiza do Niz^[i]^:= Nesto; for i:= 1 to MaxClanovaNiza do WriteLn (i, ' : ', Niz^[i]^); (* i da na kraju počistimo za sobom *) for i:= 1 to MaxClanovaNiza do Dispose (Niz^[i]); WriteLn ('Clanovi niza uklonjeni.'); Dispose (Niz); WriteLn ('Niz uklonjen.'); WriteLn ('Slobodna memorija: ', MaxAvail); end. ------------ HASAN JOPET SECKATI --------------------- Ovo je pisano za TP 6. S obzirom na DPMI, u TP 7 možda postoji i neki kulturniji (čitaj "bolje osmišljen") sistem. Svejedno, ako malo budeš eksperimentisao sa veličinom stringa otkrićeš koliko je 640K u stvari malo i kako se lako napuni... ... u današnje vreme i sa današnjim zahtevima.
pascal.1048 emajsijuen, -> #1047, nitugard
10x! :) Resio sam problem, zahvaljujuci primeru...
pascal.1049 emajsijuen,
Jel zna neko zasto mi program prijavljuje Run-time error 216 (GP fault), pri upisivanju direktno u video memoriju ? Inace, ovo se desava samo kad program kompajliram u protected modu. Heeeelp! Pozdrav, Vlada...
pascal.1050 kojai, -> #1047, nitugard
>> (* Ako je sve sto zelis da niz zauzme vise od 64K >> to mozes postici na ovaj nacin. Sta da radim ako mi treba array[1..10000] of string[100]...? Da li postoji jos neki nacin osim protected moda da se pise po ramu? DOS4GVM bi trebalo to da omoguci ali on radi sam pod C aplikacijama... Video sam program za CD-Klub koji koristi DOS4GV, pise pri startovanju pro- grama, a mene zanima da li ima nesto slicno za pascal?! Pozdrav, Ivan
pascal.1051 nbjvsb, -> #1045, emajsijuen
>> Postoji li neki nacin da se napravi niz veci od 64k ? Predji na liste :) Malo usporava, malo komplikuje, ali je vrlo prakticno kad je memorija u pitanju :)
pascal.1052 speedy, -> #1049, emajsijuen
> Jel zna neko zasto mi program prijavljuje Run-time error 216 (GP fault), > pri upisivanju direktno u video memoriju ? Inace, ovo se desava samo kad > program kompajliram u protected modu. Heeeelp! > > Pozdrav, Vlada... Iz protected moda (ako je flat model) video memorija se nalazi na a0000! ^ jedna nula vise nego u real modu (naravno ako ne koristis VESA linear framebuffer). Takodje pogledaj u manualu kako pascal setuje segmentne registre, zato sto GP fault verovatno znaci da prekoracujes segment limit.
pascal.1053 nitugard, -> #1050, kojai
> Sta da radim ako mi treba array[1..10000] of string[100]...? > Da li postoji jos neki nacin osim protected moda da se pise po ramu? Pretpostavljam da misliš na "gornji" RAM, preko 1M. Postoji, ali Bog neka je na pomoći onima koji reše to da rade. Nije nemoguće, ali je prokleto zametno. Uz poruku je unit koji omogućava pisanje po gornjoj memoriji. Može da posluži za prvu pomoć i neke sitnije stvari. Glavni problem koji se sa njim javlja je da se sve svodi na prebacivanje velikih blokova u i iz XMS-a, što je za većinu potreba (pomenuti niz, na primer) nezgodno i stvara masu problema... Za neku "komotniju" upotrebu gornjeg RAMa, kakva se ne može ostvariti upotrebom ovog unita, potrebno je poznavanje A20 adresne linije (to se valjda beše nazivaše tako?) i asemblera. U stvari i ovaj unit je asemler "umotan" u paskal. So... kao i uvek, sve zavisi od toga šta zaista želiš da uradiš. Ako ti je jedini cilj da strpaš knjigu od 400 strana u RAM (da, to je otprilike 10.000x100 slova B) to uz malo muke možeš izvesti pomoću ovog unita. Ako hoćeš da praviš neku animaciju ili nešto slično, gde je brzina kritična, izbor je prost: ili asembler ili ovaj (ili sličan) unit. Ako pak želiš da sortiraš redove one knjige... Razmisli o tome da hard disk i nije tako spora naprava B) mnogo je lakše nego sa XMS-om. xms.zip
pascal.1054 emajsijuen,
Evo nekoliko primera za "fire" screensaver. Sve je dato u source-u... fire.arj
pascal.1055 emajsijuen,
"Smooth" scroll u text modu... scroll.arj
pascal.1056 kojai, -> #1053, nitugard
Pa jel ne moze da se upisuje u protected modu?! Ili nekako da se koristi onaj DOS4GVM?
pascal.1057 jujo,
Nesecam se kad sam zadnji put programirao u pascalu pa sam potpuno smetnuo sa uma da pascal programeri nemaju ili imaju ocajne mogucnosti za rad sa protected modom. Ja u C-u koristim pmodew 32-bit DOS extender. Nekakav jadan 32-bit DOS extender za pascal sam nasao na ftp.cdrom.com i kako pise u readme.txt, tvrdi da je u stanju da pokrene Delphi 2.0 programe pod DOS-om. Naravno....pise i to da se ne smeju koristiti nikakvi Windows API pozivi. Cisto omogucava da koristite DCC32 iz Delphi-ja 2.0 i generisete 32-kod. yooyo: pm_pas.zip
pascal.1058 nitugard, -> #1056, kojai
> Pa jel ne moze da se upisuje u protected modu?! > Ili nekako da se koristi onaj DOS4GVM? Ne znam - ja nisam "porastao" do BP 7. Za ono što meni treba TP 6 (programi koji rade na, za današnje pojmove, zastarelom hardveru) je više nego dovoljan. Za stvari koje treba da rade u DPMI modu... Na mašinama na kojima zaista ima smisla pokretati DPMI u većini slučajeva ima smisla i instalirati Windows... A time je, u doba RAD alata, sve rečeno.
pascal.1059 popovics,
Početnik sam u učenju Pascal-a, pa bi mi stoga trebao neki kompajler ( za početnike ). Ako ga neko ima i nije dug ( do 1 mega ) neka mi ga baci na mail ili ovde...
pascal.1060 milosh.zorica, -> #1059, popovics
Popoviću imam ja TP 6 i TP 7,oba su odlčni i nisu veliki.Pozovi me voice da se dogovorimo oko slanja istih mailom.TP 6 je oko 1.4 Mb sa primerima i helpom,TP 7 je oko 1,7 Mb sa istim stvarima kao TP 6. Svima koj rade u pascalu i c-u preporučujem da pozovu exotica bbs,njihov tel je 556-855.
pascal.1061 milosh.zorica,
Da li neko zna naredbu u paskalu,kojom se prelazi u grafički mod.?
pascal.1062 emajsijuen, -> #1061, milosh.zorica
│ Da li neko zna naredbu u paskalu,kojom se prelazi u graficki mod.? └────────────────────────────────────────── Naredba za to je Initgraph (graph unit), a koristi se na sledeci nacin: Program test; uses graph, crt; var grdriver, grmode, errcode :Integer; Begin Grdriver:=detect; InitGraph(grdriver, grmode, 'c:\util\prog\bp70\bgi\'); Errcode:=Graphresult; If errcode <> GrOk Then Begin {Greska prilikom inicijalizacije} Writeln(Grapherrormsg(Errcode)); Halt; End Else Begin cleardevice; setcolor(white); line(0,0,getmaxX, getmaxY); End; repeat until keypressed; end.
pascal.1063 kojai,
Kad ostanem rezidentan u memoriji kako da preuzmem dosov interapt i da posaljem svoju naredbu na izvrsavanje, a posle da nastavim sa izvrsavanjem dosove naredbe ili neke druge koju sam prekinuo! Ovo mi treba posto sam napravio programcic koji belezi u fajl sve sto je kuckano na tastaturi... Problem je sto ako sam hteo to sa snimim na hard sa npr PrnScr tasterom ono bi mi nebulozilo... Tako da sam morao da napravim dva programa! Pozdrav!
pascal.1064 stameni, -> #1026, emajsijuen
Nabavio sam neki fenomenalan unit za komunikacije. Glavne funkcije i procedure su napisane u assemleru radi brzeg izvrsavanja (valjda). Ocitavanje /Slanje podataka na modem se vrsi preko interaptova i sve ide kroz input/ output bafer, koji je promenljive velicine. Mislim da je unit odlican, i da necete zazaliti ako ga preuzmete... *********** Malo sam gledao ovu biblioteku i nikako da uspem da je nateram da proradi. Mislim da u njoj ima najmanje jedan bug čija je posledica nefunkcionisanje. U 78. redu, koji glasi: C_PortAddr : Array[1..C_MaxPort] Of Word = ($03F8,$02F8,$02E8,$02E8); ^^^^^ vrlo verovatno umesto prvog $02E8 treba da stoji $03E8 (IRQ za COM3; naravno, po Marfijevim zakonima, meni je modem na COM3, pa nije radilo). However, i posle gornje izmene nema rezultata. Sumnjiv je i sledeći, 79. red: C_PortInt : Array[1..C_MaxPort] Of Byte = (4,3,3,3); Mislio sam da interrupti idu redom 2, 3, 4 i 5, bar je tako u komunikacionim programima. Pokušao sam da ovu biblioteku nađem u allswagsu -- bezuspešno, mada postoji (najmanje) jedna slična (dosta oskudnija) biblioteka, koja funkcioniše. Međutim, ova Async biblioteka mi deluje profesionalnije, mada ne radi. Možeš li (ti ili neko drugi) doći do novije verzije ove biblioteke? Sigurno postoji, ova koju sam isprobao je 1.1 iz 1989. (!), a u komentarima se pominju i .ASM i .DOC fajlovi kojih ovde nema :(
pascal.1065 emajsijuen, -> #1064, stameni
│ Pokusao sam da ovu biblioteku nadem u allswagsu -- bezuspesno, │ mada postoji (najmanje) jedna slicna (dosta oskudnija) biblioteka, │ koja funkcionise. Medutim, ova Async biblioteka mi deluje │ profesionalnije, mada ne radi. └──────────────────────────────────────────── Biblioteka se nalazi u comm.swg fajlu. Nemam pojma zasto je nema u allswags-u. Stvari koje si pomenuo su i meni delovale sumnjivo ;) Inace, unit mi lepo radi, a modem je na com-u 4. Pozdrav, Vlada...
pascal.1066 tomak, -> #1063, kojai
> Ovo mi treba posto sam napravio programcic koji belezi u fajl sve sto je > kuckano na tastaturi... Problem je sto ako sam hteo to sa snimim na hard > sa npr PrnScr tasterom ono bi mi nebulozilo... Tako da sam morao da > napravim dva programa! Okačio sam u PCUTIL.4:razno.968 arhivu MAKRO.ARJ u kojoj ima: > SNIMI > > SNIMI snima scan i ascii kod pritisnutog tatera, maksimum 500, u fajl > SNIMI.LOG. Startuje se bez parametara a izlazi se iz njega, odnosno > COMMAND.COM-a kojeg pokrene, sa "EXIT". On snima scan i ascii kod ako bi hteo da snimaš ono što se pojavljuje na ekranu onda bi trebalo kontrolisanjem INT10, pa ako bi to trebalo u kontinuitetu zapisivati onda bi trebalo kontolisati INT13, INT25 i INT26. Inače SNIMI ne koristi te prekide jer zapisuje tek kad mu se vrati potpuna kontrola (zato i ima maksimum jer 'pamti').
pascal.1067 stameni, -> #1065, emajsijuen
>> Biblioteka se nalazi u comm.swg fajlu. Ima li tamo sourcea za async.obj i datoteke async.doc? Molim te, pogledaj, pa ako ima, a ti baci ovamo :) Verovatno se u uputstvu može naći e-mail adresa autora, koga bih rado priupitao nekoliko stvari :)
pascal.1068 emajsijuen, -> #1067, stameni
│ Ima li tamo sourcea za async.obj i datoteke async.doc? Molim te, │ pogledaj, pa ako ima, a ti baci ovamo :) Verovatno se u uputstvu │ moze naci e-mail adresa autora, koga bih rado priupitao nekoliko │ stvari :) └───────────────────────────────────────────────── Zavirio sam ponovo u comm.swg. Nasao sam tamo jos neki async.bak fajl, koji je u stvari async.pas (!?!). U njemu se nalaze tacno one izmene u vezi com port adresa, i prekida o kojima si ti pricao... Takodje sam nasao i .asm fajl (verovatno od onog .obj fajla, nisam gledao jer se ne razumem puno u assembler). Inace, nasao sam jos neki source na istu temu, pa sve to zajedno saljem uz poruku. Pozdrav, Vlada... modem.arj
pascal.1069 stameni, -> #1065, emajsijuen
>> Biblioteka se nalazi u comm.swg fajlu. Nemam pojma zasto je nema u >> allswags-u. Ono čega ima u comm.swg (iz allswags sa Sezama) je neka referenca na Async 1.2 (a ono što si ti poslao je Async 1.1, dakle postoji novija verzija, sa možda ispravljenim bugom (bugovima?)): {---------------------------------------------------------} { Project : Async12 for Windows } { By : Ir. G.W van der Vegt } {---------------------------------------------------------} { Based on the following TP product : } { } { ASYNC12 - Interrupt-driven asyncronous } { communications for Turbo Pascal. } { } { Version 1.2 - Wedensday June 14, 1989 } { Copyright (C) 1989, Rising Edge Data Services} { } { Permission is granted for non-commercial } { use and distribution. } { } { Author : Mark Schultz } { } {---------------------------------------------------------} To i dalje nije ono što mi treba -- meni treba Async 1.2 (by Mark Schultz) ili novija verzija. Molio bih one koji su u situaciji da pogledaju na Internetu može li se naći ova biblioteka (ja tražio i ne nađoh, ali nisam baš vičan pretraživanju). Bilo bi lepo ako bi neko imao e-mail adresu Marka Schultza (takođe izostavljenu u allswags), da pišem čoveku. Inače, source za asinhronu komunikaciju za Windows nalazi se u comm.swg pod brojem 0046; ako treba, mogu da šaljem. Gornji isečak je odatle. ---- (posle preuzimanja modem.arj) Ni sada nisam uspeo da nateram "stvar" da radi. Bilo bi lepo kad bi se moglo naći Async 1.2. Ipak, puno hvala na pomoći oko ove biblioteke :)
pascal.1070 strider,
pozdrav svima mislio sam da ovo nikada necu uraditi ali evo nuzda me naterala potrebna mi je pomoc (HITNO:)) u vezi sa jednim zadatkom iz skole sam program nije tezak ali je matematicko resenje tesko zadatak glasi... napisati prog. za stampanje cele funkcije y=ax*x*x + b*x*x + c*x + d na intervalu [-n,n] n pripada R sa korakom "k" koliko celih 0 je na datom intervalu za stampanje zaglavlja i vrednosti funkcije koristiti procedure na ulazu su date vrednosti a,b,c,d (a verovatno i n i k) ljudi pomazite kako da resim jednacinu treceg stepena jer onako kako je ja resavam nemoze i kompjuter :) unapred zahvalan STRiDeR!
pascal.1071 emajsijuen,
Jel nekom treba parce koda za onesposobljavanje sifre BIOS-a ? Nasao sam nesto u SWAG-u, pa ako nekome treba...
pascal.1072 jujo, -> #1071, emajsijuen
# Jel nekom treba parce koda za onesposobljavanje sifre BIOS-a ? Nasao sam # nesto u SWAG-u, pa ako nekome treba... ili mozda: xor ax, ax l1: out 70h, ax inc al jmp l1 posle ovog resetuj masinu i CMOS je popunjen sa 0 pa ce masina verovatno sama uci u SETUP. yooyo:
pascal.1073 jjerry,
Kako i da li mogu sa ulaza Crt-ovom f-jom Readkey da detektujem pritisak F1..12 dugmica,kao i Alt i Ctrl-a ? Koje su ASCII vrednosti za njih ? E da..i kako da detektujem pritisak,na primer, Alt + F1 ili mozhda 3 : Alt+Ctrl+F1 ?
pascal.1074 emajsijuen, -> #1073, jjerry
│ Kako i da li mogu sa ulaza Crt-ovom f-jom Readkey da detektujem │ pritisak F1..12 dugmica,kao i Alt i Ctrl-a ? Koje su ASCII │ vrednosti za njih ? E da..i kako da detektujem pritisak,na primer, │ Alt + F1 ili mozhda 3 : Alt+Ctrl+F1 ? └────────────────────────────────────────────────── Sa funkcijom readkey ne mozes da detektujes pritisak F11 i F12. Na pritisak specijalnih tastera funkcija readkey ce da vrati 2 koda: prvi je 0, a preko drugog mozes da odredis koji taster je pritisnut. Za Alt i Ctr, ces morati sam da napravis rutine. (nije problem, treba samo procitati vrednost keyboard status flag-a)... Uz poruku ti saljem program koji ce da ispise na ekran kodove nekog tastera. Primer: Uses Crt; Var Ch1, Ch2 :Char; Begin Repeat Repeat Until Keypressed; Ch1:=Readkey; If Ch1=#0 Then Begin Ch2:=Readkey; Case Ch2 Of #59: Begin {F1} Sound(5500); Delay(100); NoSound; End; #60: Begin {F2} Sound(3000); Delay(100); NoSound; End; #61: Begin {F3} Sound(1500); Delay(100); NoSound; End; {...} End; {CasE} End; Until Ch1=#27; End; Pozdrav, Vlada... ord.arj
pascal.1075 popovics,
Kako da obrišem ekran u Paskalu? ( ništa posebno, samo obično CLS ), i kako da radim sa grafikom u njemu ( treba mi prebacivanje karte u gr. mod, i prostije komandice, ekvivalenti QBASIC komandama line, color i draw ). Kojom komandom se otvara fajl? Kako se pravi rezidentan program? Kojom se komandom učitavanju fontovi ( mislim da je nešto tipa Install user font, ali nisam siguran, treba mi tačna sintaksa, kao i koji su unit-i potrebni za rad sa fontovima ), da l će fontovi ovako učitani, ostati i posle izlzka iz programa? Vredi li čemu knjiga 'Pascal za srednje škole' sa obzirom da sam totalni početnik? Koji se znaci koriste za deljenje, množenje i kvadriranje ( probao sam / za deljenje, ali se Pascal zbuni, i prijavi grešku... )? P.S Ne zamerite na ovim stupid pitanjima, ali tek sam počeo da učim Pascal, a nešto se ne snalazim najbolje u njegovom helpu, so odgovorite, molim vas...
pascal.1076 emajsijuen, -> #1075, popovics
>> Kako da obrisem ekran u Paskalu? ( nista posebno, samo obicno CLS Program clrscreen; uses crt; begin clrscr; end. >> ), i kako da radim sa grafikom u njemu ( treba mi prebacivanje >> karte u gr. mod, i prostije komandice, ekvivalenti QBASIC komandama >> line, color i draw ). Program graphdemo; uses crt, graph; var Errcode, Grdriver, Grmode :Integer; Begin GrDriver:=Detect; InitGraph(Grdriver, grmode, 'C:\util\prog\bp70\bgi\'); Errcode:=GraphResult; If ErrCode <> GrOk Then Begin Writeln('Greska prilikom inicijalizacije grafike.'); Writeln(Grapherrormsg(ErrCode)); Halt; End; ClearDevice; {Brise ceo ekran} SetColor(Red); Line(0, 0, GetMaxX, GetMaxY); PutPixel((GetMaxX div 2), (GetMaxY Div 2), Yellow); SetTextStyle(SansserifFont, HorizDir, 2); { ~~~~~~~~~~~~~ ++++++++ === ~~~~ - Fontovi koji ce se koristiti za ispis na ekran ++++ - Fontovi se ispisuju normalno (s' leva na desno) ==== - Velicina slova} SetColor(White); OutTextXY(50, 150, 'SansSerifFont'); SetTextStyle(SmallFont, HorizDir, 4); SetColor(Yellow); OutTextXY(50, 200, 'SmallFont'); Circle(250, 100, 20); SetFillStyle(SolidFill, Red); Bar(10, 230, 50, 260); Rectangle(10, 270, 50, 300); Repeat until keypressed; CloseGraph; End. >> Kojom komandom se otvara fajl? Program OpenFile; Var Fajl :Text; {u fajl moze sve da se upisuje, inace ovde mozes da navedes i tip, npr. File Of Integer} Tekst :String; Begin Assign(Fajl, 'Temp.Txt'); Rewrite(Fajl); {Moze i append(file), ako hoces da dopises nesto u vec postojeci fajl} Tekst:='Ovo je obican tekst fajl'; Writeln(Fajl, Tekst); Write(Fajl, 'a sada malo brojeva...',356, '... dosta?'); Writeln(Fajl); Close(Fajl); End. >> Kako se pravi rezidentan program? Prvo ti nauci kako se obicni programi prave, pa cemo lako za rezidentne... >> Kojom se komandom ucitavanju fontovi ( mislim da je nesto tipa Install user font, ali nisam siguran, treba mi tacna sintaksa, kao i koji su unit-i potrebni za rad sa fontovima ), da l ce fontovi ovako ucitani, ostati i posle izlzka iz programa? Fontovi za Text ili graficki mod ? Za graficki ti posao obavlja SetTextStyle, a za text mod ne postoji standardna komanda. Ako ti treba unit za to, ja sam napravio za sebe jedan (za 8 x 16 fontove), pa cu ti poslati. To sam upotrebio u onom imeniku, jel si na to mislio ? >> Vredi li cemu knjiga 'Pascal za srednje skole' sa obzirom da sam totalni >> pocetnik? Ako si totalni pocetnik, onda sigurno vredi. ;) Knjigu nisam video, pa nisam u mogucnosti da ti kazem da li je dobra. Imam ja 2 knjige za TP, jednu na srpskom, a drugu na engleskom. Ovu na srpskom treba da dam Milosu (Milosh.zorica). Ako dobro znas engleski, onda ce ti ova 2. sasvim odgovarati. >> Koji se znaci koriste za deljenje, mnozenje i kvadriranje ( probao sam / za deljenje, ali se Pascal zbuni, i prijavi gresku... )? Za deljenje celih brojeva (integer, byte, word...) koristi se DIV. Znaci, npr. A:=13 div 5; Naravno posle ovoga, promenljiva A ce dobiti vrednost 2, a ostatak pri deljenju mozes da izracunas sa MOD: B:=13 MOD 5; ---> B=3; Za deljenje realnih (REAL) brojeva, koristi se "/". Za mnozenje se koristi "*". Kvadrat nekog broja izracunava funkcija "SQR", a koren funkcija "SQRT". Pr. A:=SQR(5); Pozdrav, Vlada...
pascal.1077 kojai, -> #1075, popovics
>> Kako da obrisem ekran u Paskalu? ( nista posebno, samo obicno CLS >> ), i kako da radim sa grafikom u njemu ( treba mi prebacivanje ClrScr to radi... U SVGA iz pascala nikako ne mozes da prebacis, ali mozes da kucas nesto tipa: asm mov ah,4f02h mov al,105h int 10h end; i da dobijes rezoluciju 1024x768... >> karte u gr. mod, i prostije komandice, ekvivalenti QBASIC komandama >> line, color i draw ). Kojom komandom se otvara fajl? Kako se pravi Fajl otvaras sa Assign(file,ime), Reset/Rewrite... >> rezidentan program? Kojom se komandom ucitavanju fontovi ( mislim >> da je nesto tipa Install user font, ali nisam siguran, treba mi >> tacna sintaksa, kao i koji su unit-i potrebni za rad sa fontovima >> ), da l ce fontovi ovako ucitani, ostati i posle izlzka iz Naredba Keep drzi program rezidentan, pogledaj primer... Fontove se ne trudi da promenis, treba malo vise znanja! Ako te ne mrzi to ti je BIOSov int(10h) i ah=11h... >> programa? Vredi li cemu knjiga 'Pascal za srednje skole' sa obzirom >> da sam totalni pocetnik? Koji se znaci koriste za deljenje, >> mnozenje i kvadriranje ( probao sam / za deljenje, ali se Pascal >> zbuni, i prijavi gresku... )? Nabavi knjigu... :)
pascal.1078 popovics, -> #1076, emajsijuen
▄- u onom imeniku, jel si na to mislio ? Baš na tako nešto! ▄- jednu na srpskom, a drugu na engleskom. Ovu na srpskom treba ▄- da dam Milosu (Milosh.zorica). Ako dobro znas engleski, onda ▄- ce ti ova 2. sasvim Jel knjiga već kod Miloša? Ako jeste, ja bih i ovako-onako trebao da odem kod njega u sledeću subotu, pa da je fotokopiram, ako ti ne smeta... ▄- Pozdrav, Vlada... Hvala mnogo...
pascal.1079 popovics, -> #1077, kojai
▄- asm ▄- mov ah,4f02h ▄- mov al,105h ▄- int 10h ▄- end; ▄- i da dobijes rezoluciju 1024x768... Ja bi radije 800x600, ako nije problem... ▄- Naredba Keep drzi program rezidentan, pogledaj primer... OK, videćemo... ▄- Fontove se ne trudi da promenis, treba malo vise znanja! Ne bih rekao, uspeo sam sa InstallUserFont. ▄- Nabavi knjigu... :) To se podrazumeva, ali kad sam već ovde, da pitam...
pascal.1080 kojai, -> #1079, popovics
>> Ja bi radije 800x600, ako nije problem... Stavi mov al,103h(ili 101h, ne znam tacno)! >> Ne bih rekao, uspeo sam sa InstallUserFont. Ma nisam mislio na to... Nema veze! :)
pascal.1081 nbjvsb, -> #1079, popovics
>> ▄- Fontove se ne trudi da promenis, treba malo vise znanja! >> >> Ne bih rekao, uspeo sam sa InstallUserFont. InstallUserFont radi samo u grafičkom režimu, učitava .chr fajlove koji se ne isporučuju standardno uz Pascal (naravno, možeš da učitaš i jedan od tih fontova na takav način, ali to nema smisla), tako da možeš da ih koristiš na isti način kao i standardne. Čovek koji ti je odgovorio je očigledno mislio da želiš sistemski da promeniš font (ono, u tekst režimu ubaciš svoje fontove ukoliko ti se standardni ne sviđaju), a za to definitivno treba malo više znanja :)
pascal.1082 supers, -> #1075, popovics
>> programa? Vredi li čemu knjiga 'Pascal za srednje škole' sa obzirom >> da sam totalni početnik? Koji se znaci koriste za deljenje, Ne znam kakva je to knjiga i ko je autor. Bolje ti je da nabaviš knjigu za svoju verziju Pascala, nego da učiš iz suvoparne školske knjige. Specijalizovana knjiga će da te nauči da koristiš sve korisne opcije svog kompajlera. Ja sam Turbo Pascal 6 naučio iz Stephen O'Brianove knjige, kod nas izdala Mikroknjiga.
pascal.1083 emajsijuen, -> #1078, popovics
│ Bas na tako nesto! └──────────────────────────────────────────── Stize unit uz poruku. Ako ti nesto ne bude jasno, slobodno me pitaj. │ Jel knjiga vec kod Milosa? Ako jeste, ja bih i ovako-onako trebao da odem │ kod njega u sledecu subotu, pa da je fotokopiram, ako ti ne smeta... └──────────────────────────────────────────── Nije jos. Trebao sam pre neki dan da mu je odnesem, medjutim nisam nasao dovoljno vremena da jurim po Zemunu, sve zbog glupe skole... :( unit.arj
pascal.1084 emajsijuen, -> #1079, popovics
│ Ne bih rekao, uspeo sam sa InstallUserFont. └────────────────────────────────────────────── To je za graficki mod. Zar ti nije trebalo za text mod ???
pascal.1085 popovics, -> #1080, kojai
▄- Ma nisam mislio na to... Nema veze! :) Nema veze? Nema veze? Sve ima veze, ukapirao sam začkoljicu ( razliku između InstallUserFont i SetTextStyle ) i da rade u graf. modu. Ne znam zašto bi mi to smetalo ( što rade u graf. modu ), kad u 99% slučajeva, i ovako i onako moram da učitam biblioteke crt i graph... Ali iz čite radoznalosti ( i obožavanja text moda ) voleo bih da znam kako se fontovi učitavaju u text mod ( bar da budu u nekom standardnom formatu tj. .FNT, .FON, .RAW... ) Inače, da li postoji komanda ( naredba ) kojom iz Pascal programa, pozivam neki drugi program ( .COM ili .EXE ) tj. da bude ekvivalent Qbasic komande RUN... CU
pascal.1086 popovics, -> #1081, nbjvsb
▄- standardni ne sviđaju), a za to definitivno treba malo više ▄- znanja :) Slažem se, čak šta više sa tim, ali kako misliš da naučim ako ne probam, napiši postupak, a i primer je poželjan... Koje je tačno korišćenje KEEP-a?
pascal.1087 kojai, -> #1085, popovics
To sa fontovima sto ti kazes da si uspeo to ti je pod grafickim modom! Ide valjda preko BGI-a... U textualnom modu nije problem inicijalizovati font koji hoces samo ti je potrebno malo znanja assemblera ili dobro poznavanje input/output-a! Skini helppc pa pogledaj koji interrupt sluzi za ovo... Ja mislim da je otprilike al=11h, naravno int 10h, a ostalo ne mogu napamet! Kao sto rekoh procitaj! :)
pascal.1088 popovics, -> #1084, emajsijuen
▄- To je za graficki mod. Zar ti nije trebalo za text mod ??? Ljudi, treba mi za OBA! Za grafički sam već apsolvirao, ali za text nemam pojma. Valjda ću uspeti uz pomoć onog tvog unit-a ( nisam ga još ni otpakovao, zbog school-e ).
pascal.1089 jjerry,
Jel' zna neko kako da pishem & crtam neshto preko Bar3D-a ? (Ne mislim na "ruchno" pisanje,nego nekom f-jom.)
pascal.1090 nbjvsb, -> #1085, popovics
>> tj. .FNT, .FON, .RAW... ) ^^^^ ? btw. Ako imas neke fontove za pascal, tj. .chr fajlove, baci slobodno ovde :) Dobro bi mi dosao i editor, ako ga ima, i ako dobro radi.
pascal.1091 stameni, -> #1090, nbjvsb
>> Dobro bi mi dosao i editor, ako ga ima, i ako dobro radi. Ima nešto, mada se nisam previše petljao njime: dos\graph\ ------------------ sfe.zip 49k Stroked Font Editor, editovanje .CHR fontova (BGI)
pascal.1092 nbjvsb, -> #1091, stameni
>> Ima nešto, mada se nisam previše petljao njime: >> >> dos\graph\ >> ------------------ >> sfe.zip 49k Stroked Font Editor, editovanje .CHR fontova (BGI) Staro... ne svidja mu se moj EGAVGA.BGI drajver. Valjda trazi drajver iz TP6.0 (ja imam BP7.0)
pascal.1093 jujo, -> #1088, popovics
# # ▄- To je za graficki mod. Zar ti nije trebalo za text mod ??? # # Ljudi, treba mi za OBA! Za graficki sam vec apsolvirao, ali za text # nemam pojma. Valjda cu uspeti uz pomoc onog tvog unit-a ( nisam ga jos # ni otpakovao, zbog school-e ). Imas fonter.zip u konfu razno. Tu se nalazi i C source za isti. U stvari ima vise ASM-a nego C-a, a ceo listing staje na 25 redova ekrana...pa mislim da ces se snaci... yooyo:
pascal.1094 popovics, -> #1092, nbjvsb
▄- Staro... ne svidja mu se moj EGAVGA.BGI drajver. Valjda trazi ▄- drajver iz TP6.0 (ja imam BP7.0) Ni kod mene ne radi, tj, prijavi kao da nemože da ga nađe, ajde, ako je neko dobre volje da okači .BGI fajlove iz starije ver. TP-a, bio bih mu zahvalan ( a verovatno i ne samo ja )...
pascal.1095 bokir, -> #1077, kojai
> >> Kako da obrisem ekran u Paskalu? ( nista posebno, samo obicno CLS > >> ), i kako da radim sa grafikom u njemu ( treba mi prebacivanje > > ClrScr to radi... > U SVGA iz pascala nikako ne mozes da prebacis, ali mozes da kucas nesto > tipa: Možeš, uz BGI drajvere za SVGA mod. Drajvera ima i u Sezamovom direktorijumu.
pascal.1096 jjerry,
Kako da napravim da u textwindow stavljam vishe od jednog i po reda...Sigurno znate da,bilo odakle ne mozhete pisati vishe od jednog i po reda.(uglavnom pochne da pishti)E poshto mi treba "malo" vishe od jednog i po reda,da li mozhe nekako to da se zaobidje ? (Pokushavao sam npr. sa ovim if wherex = 79 then gotoxy(2,lnum+1) {lnum je broj linije} Ali to ne radi,ne znam zashto,jer f-ja wherex daje 100% tachan rezultat. Josh neshto,da li sa procedurama GetImage i PutImage mogu da obuhvatim i tekst tj. da tekst bude tretiran kao bili koji deo grafike ?
pascal.1097 emajsijuen, -> #1096, jjerry
>> Kako da napravim da u textwindow stavljam vishe od jednog i po >> reda...Sigurno znate da,bilo odakle ne mozhete pisati vishe od >> jednog i po reda.(uglavnom pochne da pishti)E poshto mi treba >> "malo" vishe od jednog i po reda,da li mozhe nekako to da se >> zaobidje ? (Pokushavao sam npr. sa ovim >> >> if wherex = 79 then gotoxy(2,lnum+1) {lnum je broj linije} >> Ali to ne radi,ne znam zashto,jer f-ja wherex daje 100% tachan >> rezultat. Nista te nisam razumeo. Probaj da mi pojasnis sta ti treba.. Jel ti treba neka funkcija za unos nekog string, koji je n slova dogacak, ili sta ? Ako je ovo, imam pravu stvar za tebe. >> Josh neshto,da li sa procedurama GetImage i PutImage mogu da >> obuhvatim i tekst tj. da tekst bude tretiran kao bili koji deo >> grafike ? Mislis na tekst koji je ispisan na ekranu ? Naravno..., samo tako i moze da bude tretiran.
pascal.1098 epson,
Kada pozivam eksterni program sa Exec kojom komandom mogu da omo- gućim da se ne pojavi ispis na ekranu ? Da li neko ima unit za rad sa configuracionim (ini,cfg...) datote- kama ? Uopšte kako se koriste uniti ? (uses imeunita; i posle se u toku programiranja koriste njegove komande ?) Na koji način mogu da proverim da li postoji već fajl ?
pascal.1099 jujo, -> #1098, epson
# # Kada pozivam eksterni program sa Exec kojom komandom mogu da omo- # gucim da se ne pojavi ispis na ekranu ? Pa probaj npr... exec('dir > nul'); i neces dobiti nista.....:)))) yooyo:
pascal.1100 obren, -> #1098, epson
> Kada pozivam eksterni program sa Exec kojom komandom mogu da omo- > gućim da se ne pojavi ispis na ekranu ? Ne znam koliko će ti "recept" biti jasan ako nemaš iskustva sa funkcionisanjem DOS uređaja (stdin, stdout, stderr...) Uglavnom, preusmeriš hendlove standardnih uređaja na koje ide ispis (stdout i ako hoćeš stderr) na hendl od NUL-a. E sad, ne pamtim kad sam uzeo Pascal u ruke niti ga imam trenutno instaliranog, ali evo ti fragment iz Seniora za uključivanje odnosno isključivanje redirekcije ispisa. Sve relevantne funkcije koje se koriste (_open i dup2) su u stvari DOS servisi i mogu se pozvati i na nižem nivou (inline ASM) ukoliko ih Turbo Pascal, ili šta već koristiš, ne podržava. ---------------------- cut here ------------------------ ... int hnul, hcon; // hendlovi koji se koriste za redirekciju ispisa ... // preusmeri stdout i stderr na NUL void redirectOutput(void) { if ((hnul = _open("NUL", O_RDWR)) == -1) return; dup2(hnul, 1); // stdout dup2(hnul, 2); // stderr } // vrati stdout i stderr na CON void restoreOutput(void) { if ((hcon = _open("CON", O_RDWR)) == -1) return; _close(hnul); dup2(hcon, 1); dup2(hcon, 2); _close(hcon); } ---------------------- cut here -------------------- Znam da ti nisam baš konkretno pomogao pošto si pitao u temi "pascal" ali valjda ćeš se snaći...
pascal.1101 kojai, -> #1098, epson
>> Na koji nacin mogu da proverim da li postoji vec fajl ? U Dosovom unitu imas naredbe FindFirst i FindNext... Ako se dobro secam ovo bi trebalo to da radi: FindFirst('mika.pas',dirinfo,anyfile); If DosError=0 then Halt; Mozda nije DosError, ali pogledaj kako se zove naredba za prijavu gresaka... Ako nenadje fajl mislim da vraca 2! Pozdrav!
pascal.1102 epson, -> #1099, jujo
│ exec('dir > nul'); │ │ i neces dobiti nista.....:)))) └───────────────────────────────────────────────── To sam prvo probao i neće da radi, tj. program koji pozivam to po- grešno protumači i prijavi error.
pascal.1103 epson, -> #1100, obren
│ u stvari DOS servisi i mogu se pozvati i na nižem nivou (inline ASM) │ ukoliko ih Turbo Pascal, ili šta već koristiš, ne podržava. └───────────────────────────────────────────────── Šta znači "inline ASM" ? TP 7.0 podržava asembler, ali mi se čini da je ovo C. │ Znam da ti nisam baš konkretno pomogao pošto si pitao u temi "pascal" ali │ valjda ćeš se snaći... └───────────────────────────────────────────────── Koliko sam razumeo ovo je za C ?
pascal.1104 epson, -> #1101, kojai
│ U Dosovom unitu imas naredbe FindFirst i FindNext... │ Ako se dobro secam ovo bi trebalo to da radi: │ FindFirst('mika.pas',dirinfo,anyfile); │ If DosError=0 then Halt; └───────────────────────────────────────────────── Hvala.
pascal.1105 stameni, -> #1098, epson
>> Na koji način mogu da proverim da li postoji već fajl ? var f: file; procedure ima; ... procedure nema; ... begin assign(f, 'imanema.krk'); {$I-} reset(f); {$I+} if IOResult = 0 then ima else nema; close(f) end.
pascal.1106 popovics,
Ako neko ima volju neka mi objasni ( ako može i neki primer ) korišćenje Pascal komandi KEEP i EXEC. Unapred hvala...
pascal.1107 epson, -> #1105, stameni
│ assign(f, 'imanema.krk'); │ {$I-} │ reset(f); │ {$I+} │ if IOResult = 0 then └───────────────────────────────────────────────── Hvala.
pascal.1108 emajsijuen, -> #1102, epson
>> │ exec('dir > nul'); >> │ >> │ i neces dobiti nista.....:)))) >> └───────────────────────────────────────────────── >> >> To sam prvo probao i nece da radi, tj. program koji pozivam to po- >> gresno protumaci i prijavi error. Probaj da napises >nul (spojeno). BTW, output nekih programa se uopste ne moze preusmeriti. Takav je slucaj sa svim programima koji su pravljeni u TP-u, a koriste crt unit. Pozdrav, Vlada...
pascal.1109 emajsijuen, -> #1098, epson
>> Na koji nacin mogu da proverim da li postoji vec fajl ? Ima dosta nacina... Evo jednog od njih... Uses Dos; Begin If FSearch('tekst.txt', 'C:\;C:\dos;C:\windows') = 'tekst.txt' Then Write('Fajl je pronadjen') Else Write('Fajl nije pronadjen'); End. Naravno kao drugi parametar, prilikom poziva funkcije FSearch, navodis string promenljivu, u koju redjas direktorijume u kojoj fajl treba da se trazi. Imena direktorijuma treba da budu odvojena sa ";". Ako fajl trazis u tekucem dir-u, onda stavi samo ''. Pozdrav, Vlada...
pascal.1110 obren, -> #1103, epson
> Šta znači "inline ASM" ? TP 7.0 podržava asembler, ali mi se čini > da je ovo C. Inline ASM je upravo to "podržavanje asemblera" :) Drugim rečima, možeš da ubacuješ AMS kôd direktno u .PAS fajlove, bez potrebe da ih pišeš odvojeno, prevodiš i linkuješ sa Pascal projektom. > Koliko sam razumeo ovo je za C ? To jeste primer konkretno za C, ali na potpuno isti način se radi i na Pascalu (čak i bez direktne upotrebe "inline ASM-a" ;) ---------------------- cut here --------------------- Program Dup; Uses DOS; Var F:file; Procedure DupHandle(NewH, OldH:Word); Var Regs:Registers; Begin Regs.ah:=$46; Regs.bx:=NewH; Regs.cx:=OldH; MsDos(Regs); End; (* Preusmeri stdout i stderr na NUL *) Procedure RedirectOutput; Begin Assign(F, 'NUL'); { Može bilo koji dos file } Rewrite(F); If IOResult<>0 then Exit; DupHandle(FileRec(F).Handle, 1); { stdout } DupHandle(FileRec(F).Handle, 2); { stderr } End; (* Vrati stdout i stderr na CON *) Procedure RestoreOutput; Begin Close(F); Assign(F, 'CON'); Rewrite(F); if IOResult<>0 then Exit; DupHandle(FileRec(F).Handle, 1); { stdout } DupHandle(FileRec(F).Handle, 2); { stderr } End; Begin Writeln('Ovo se vidi'); RedirectOutput; Writeln('Ovo se NE vidi'); RestoreOutput; Writeln('Ovo se OPET vidi'); End. ----------------------------- cut here -----------------------------
pascal.1111 epson, -> #1108, emajsijuen
│ Probaj da napises >nul (spojeno). BTW, output nekih programa se uopste │ ne moze preusmeriti. Takav je slucaj sa svim programima koji su pravljeni │ u TP-u, a koriste crt unit. └───────────────────────────────────────────────── Probao sam i to :).
pascal.1112 epson, -> #1110, obren
│ To jeste primer konkretno za C, ali na potpuno isti način se radi i na │ Pascalu (čak i bez direktne upotrebe "inline ASM-a" ;) └───────────────────────────────────────────────── Hvala puno.
pascal.1113 epson, -> #1109, emajsijuen
│ Ima dosta nacina... Evo jednog od njih... └───────────────────────────────────────────────── Hvala.
pascal.1114 epson, -> #1109, emajsijuen
│ >> Na koji nacin mogu da proverim da li postoji vec fajl ? │ │ Ima dosta nacina... Evo jednog od njih... └───────────────────────────────────────────────── A direktorijum ?
pascal.1115 emajsijuen, -> #1114, epson
│ A direktorijum ? └────────────────────────────────────── Moraces da koristis FindFirst i FindNext. Tu negde ima da se podesi tacno atribute fajlova koje ce da izlistava. Tu mu lepo stavis da izlistava samo dirove, i to je to. Ne znam tacno napamet sintaksu za koriscenje, pa pogledaj help. Pozdrav, Vlada... P.S. mozes i na sl. nacin, mada je to budzenje: Program dir; Var Fajl :Text; Begin Assign(Fajl, 'dirname'); {$I-} Reset(Fajl); {$I+} If IoResult <> 0 Then Begin {dir postoji} Halt; End; Close(Fajl); End. A mozes i preko CHDIR, pa da pratis Ioresult... Pozdrav, Vlada...
pascal.1116 epson,
Kako se neki string koji sadrži velika i mala slova "konvertuje" u string sa sve malim ili sve velikim slovima ?
pascal.1117 emajsijuen, -> #1116, epson
│ Kako se neki string koji sadrzi velika i mala slova "konvertuje" u │ string sa sve malim ili sve velikim slovima ? └────────────────────────────────────────── Program tekst; Var Tekst :String; Function LCase(Ch :Char): Char; Begin If (Ch > #64) and (Ch < #91) Then LCase:=Chr(Ord(Ch)+32) Else LCase:=Ch; End; Procedure UpperCase(Var S: String); Var Br: Byte; Begin For Br:=1 to Ord(S[0]) Do S[Br]:=UpCase(S[Br]); {Ord(S[0]) == Length(S)} End; Procedure LowerCase(Var S: String); Var Br: Byte; Begin For Br:=1 to Ord(S[0]) Do S[Br]:=LCase(S[Br]); End; Begin Tekst:='OvO jE oBiCaN sTrInG'; Writeln('Normalno: ', Tekst); UpperCase(Tekst); Writeln('Velika slova: ',Tekst); LowerCase(Tekst); Writeln('Mala slova: ',Tekst); Halt; End. Pozdrav, Vlada...
pascal.1118 dzakic, -> #1117, emajsijuen
> {Ord(S[0]) == Length(S)} Ono što iz iskustva mogu da kažem, jeste da se ovakve 'vragolije' uopšte ne isplate iz više razloga. Zašto kažem isplate, zato što pretpostavljam da je ideja upotrebe ord(s[0]) bila da se ubrza izvršavanje funkcije, jer se ne 'poziva' funckija Length. Ono jes ako se tako gleda i ord je f-ja ;). Ako se iz dibagera pogleda generisani kod, može se lako videti da je potpuno svejedno da li se koristi length(s) ili ord(s[0]), kao što je isto da li pišete i:=i+1, ili inc(i). Paskal istina nema neznamkakvu optimizaciju, ali za toliko nije lud ;). Zašto onda length(s), a ne ord, ako je već isto? Zato što ćete sutra, hteli ili ne, doći u priliku da svoj kod portujete na neki drugi os, ili neku drugu platformu. Svaki budući paskal kompajler će razumeti length, a ord nije sigurno. Evo, već u delfiju se dužina stringa pamti kao 16-bitna vrednost. Ko je pisao Length, program će se prevesti bez intervencija. Čak i recimo s[0]:=#4 - delfi će odbiti da prevede. Preporučiće upotrebu SetLength procedure, upravo zbog kompatibilnosti. Pozdrav, Zak
pascal.1119 sivek,
Hi people, ja bih nesto da pitam pa ako neko zna odgovor i ne mrzi ga da pise nega mi odgovori. Hteo bi da napravim program koji ce da vodi fudbalsku tabelu. Znaci hteo bih da upisem podatke o nekim timovima u neki fajl,i posle da procitem te iste podatke ali za svaki od klubova posebno. Kako to da izvedem? I ima li neko ideju kako da ih sortiram posle svakog od kola? aj molim vas odgovorite mi. Pozdrav.
pascal.1120 kojai, -> #1119, sivek
>> Znaci hteo bih da upisem podatke o nekim timovima >> u neki fajl,i posle da procitem te iste podatke >> ali za svaki od klubova posebno. Moze ovako, a mozes i drugacije... :) Type Timovi=Record PostignutoGolova: Word; {kod partizana je ovo smallint } PrimljenoGolova: Word; {ali zato je ovde longint :))} Plasman: Byte; ... end; Klubovi=Record Zvezda: Timovi; Partizan: Timovi; Obilic: Timovi; ... end; Var f: File of Klubovi; a: Klubovi; begin Assign(f, 'Klubovi.dat'); Rewrite(f); Write(f, a); {Upisujes} Read(f, a); {Citas} Write(a.Zvezda.PrimljenoGolova); {Koristis :)} Close(f); end.
pascal.1121 epson,
Kako da od PAS fajla napravim TPU ?
pascal.1122 zdravkod,
Jel ima neko neki program koji bi radio ono sto radi i DIR /S. Dakle treba mi source koji ce da radi jako brzo i koji ce da mi izlista sve fajlove iz svih direktorijuma na disku, zajedno sa njihovom duzinom itd... Zdravko
pascal.1123 stameni, -> #1121, epson
>> Kako da od PAS fajla napravim TPU ? Iz komandne linije unit prevodiš sa tpc nekilevi.pas, a iz IDE prvo promeniš Compile / Destination na "disk", pa zatim to iskompajliraš najobičnijim Compile / Compile (ili pritisneš Alt- F9).
pascal.1125 nbjvsb, -> #1121, epson
>> Kako da od PAS fajla napravim TPU ? unit ImeUnita; { ime datoteke i ImeUnita mora da bude isto! } interface { ova rezervisana rec kaze da se od nje pa do rezervisane reci implementation vrsi definicija tipova, konstanti, procedura, funkcija i promenljivih koje ce se sve videti iz programa koji poziva ovaj unit } ... implementation { odavde pa do kraja idu same procedure } ... end. { obavezno je end. na kraju unita } Evo ti i jedan primer: unit Nizovi; interface const Max = 50; type Niz = array[1..Max] of integer; procedure PromeniMesta(var a1,a2: integer); procedure SortNiz(n: byte; var f: Niz); { n - duzina niza, f - sam niz } implementation procedure PromeniMesta; var pom: integer; begin pom:=a1; a1:=a2; a2:=pom end; procedure SortNiz; var i,j: byte; begin for i:=1 to n-1 do for j:=i+1 to n do if f[i]>f[j] then PromeniMesta(f[i],f[j]) end; end. U glavnom programu ubacis uses ImeUnita; i koristis deklaraciju niza odavde, znaci nesto kao: var f: Niz; Kada ubacis sve elemente u niz, uradis jedno SortNiz(n,f), i imas sortiran niz :)
pascal.1126 epson,
Utilitys Na početku da se zahvalim svima koji su odgovarali na moja pitanja bilo u konferenciji/mailu/pageu! Uz poruku sam prikačio dva utilitya napisana za dva dana. Fast (FastExtract) i Disk (DiskMake). FastExtract traži sve arhive (npr. sezam.rar) u tekućem direktori- ju i otpakuje ih u istoimene poddirektorijume (npr. \sezam). Opcije su -/+ O (overwrite) ili D (delete). U FAST.INI fajlu se definiše ar- hiver (Arh=), njegove opcije pri otpakivanju (Prm=), overwrite para- metar (Ovr=) i ekstenzija arhive (Ext=) kojih može biti više (npr. Ext=*.ARJ;*.A01) i parametri programa (Swi=) koji mogu biti +O/D (npr. Swi=+O+D) - parametri iz komandne linije imaju prednost. DiskMake je jednostavan program čiji je jedini parametar broj, ko- jim kreira direktorijume od DISK1 do DISKbroj. Ukoliko naiđete na neki baga ili imate želja za unapređenjem pro- grama napišite ih - svaki komentar je koristan. utils.rar
pascal.1127 kojai,
Sivek, evo ti ono za tabelu, u slucaju da nisi primio na mil! Posto puno zeza slanje! tabela.arj
pascal.1128 vlarad,
Posto sam pocetnik koju knjigu mi preporucujete za TP 7.0? Hvala. C U
pascal.1129 epson,
Pozicija za upis u fajl Kako da navedem poziciju (reda,karakter u redu npr. 2,5) pri upisu u fajl ? Koristim write(ln) komandu.
pascal.1130 jujo, -> #1129, epson
# Pozicija za upis u fajl # # Kako da navedem poziciju (reda,karakter u redu npr. 2,5) pri upisu # u fajl ? Koristim write(ln) komandu. Nikako..probaj da prvo formiras "ekran" u memoriji, u njemu ispisi sve sto ti treba, pa onda ga snimi u fajl. yooyo:
pascal.1131 kojai, -> #1130, jujo
>> # Pozicija za upis u fajl >> # >> # Kako da navedem poziciju (reda,karakter u redu npr. 2,5) pri upisu >> # u fajl ? Koristim write(ln) komandu. >> >> Nikako..probaj da prvo formiras "ekran" u memoriji, u njemu >> ispisi sve sto ti treba, pa onda ga snimi u fajl. Nije bas nikako... Nisam bas upucen sta ti treba ali sa naredbom seek pristupas poziciji fajla! Treda da prvo odredis koliko ima redova fajl tj. koliko se puta ponavlja enter, znaci #13 i onda da snimis ili u memoriju ili direktno status, a mozes i da odmah skines sa diska 20-30 kilobajta i da trazis npr 5 red(peto ponavljanje entera) i 4 karakter i da sracunas gde se to nalazi i da ga postavis na tu poziciju... Inace ovo se tako ne radi, vec se otvori oko 600 kb memorije i u nju se stavi sadrzaj fajla, po kome kasnije pises! Znaci samo preko pointera... Mozes da napravis ovako budjavu proceduricu za samo upis na poziciju: Procedure Upisi(Pos: LongInt; Char: Chr(ili Byte)); begin Seek(f, Pos); Write(f, Char); end; Ako si to trazio to ti je to...
pascal.1132 emajsijuen, -> #1131, kojai
│ Nije bas nikako... Nisam bas upucen sta ti treba ali sa naredbom seek │ pristupas poziciji fajla! Treda da prvo odredis koliko ima redova fajl tj. │ koliko se puta ponavlja enter, znaci #13 i onda da snimis ili u memoriju ili │ direktno status, a mozes i da odmah skines sa diska 20-30 kilobajta i da │ trazis npr 5 red(peto ponavljanje entera) i 4 karakter i da sracunas gde se │ to nalazi i da ga postavis na tu poziciju... └────────────────────────────────────────────── Zao mi je, ali to nece moci ovako da se uradi. Komanda seek, kao sto i pise u helpu, ne moze da radi sa text fajlovima, a njemu bas to treba. Znaci, neka ipak formira "ekran" u memoriji... :) Pozdrav, Vlada...
pascal.1133 kojai, -> #1132, emajsijuen
>> Zao mi je, ali to nece moci ovako da se uradi. Komanda seek, kao sto >> i pise u helpu, ne moze da radi sa text fajlovima, a njemu bas to treba. >> Znaci, neka ipak formira "ekran" u memoriji... :) Naravno da ce moci... Otvori variablu File of Byte i uradi! Naravno da ne postoji naredba za pozicioniranje reda, itd ali lako se pravi... Meni nije jasno kako radi BP editor posto moze da ucita fajl n velicine i da ga obradjuje...
pascal.1134 epson, -> #1131, kojai
│ Ako si to trazio to ti je to... └───────────────────────────────────────────────── Hvala svima, probaću.
pascal.1135 emajsijuen, -> #1133, kojai
│ Naravno da ce moci... Otvori variablu File of Byte i uradi! └────────────────────────────────────────────── Sledeci put procitaj poruku do kraja, pa tek onda odgovaraj - ovo se odnosi na poruku na koju si prvi put odgovorio, a ne na moju. Covek je rekao da mu trebaju Write i Writeln komande. Ako otvori fajl kao File Of Byte, onda je ogranicen samo na Write komandu... Pozdrav, Vlada...
pascal.1136 kojai, -> #1135, emajsijuen
> Sledeci put procitaj poruku do kraja, pa tek onda odgovaraj - ovo se odnosi > na poruku na koju si prvi put odgovorio, a ne na moju. Covek je rekao da mu Ok, ok! :)
pascal.1137 bokir, -> #1135, emajsijuen
> Sledeci put procitaj poruku do kraja, pa tek onda odgovaraj - ovo se > odnosi na poruku na koju si prvi put odgovorio, a ne na moju. Covek je > rekao da mu trebaju Write i Writeln komande. Ako otvori fajl kao File Of > Byte, onda je ogranicen samo na Write komandu... S tim što je WriteLn isto što i Write(13, 10).