pascal.621janko,
-> #619, dmiric> 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.622janko,
-> #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.
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.623sslavko,
-> #610, dusanp>> 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.624sslavko,
-> #618, dusanp>> 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.625sslavko,
Evo je verzija 1.1 programa BUGI. Ispravljene su neke sitne stvari
oko pretraživanja.
Pozdrav
Slavko.
bugidemo.zippascal.626bearboy,
-> #607, drpr˙¨:> 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.627dmiric,
-> #621, janko> 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.628bearboy,
-> #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
˙¨:> spora...
Pazi ovo genijalno resenje ;)
procedure kopiraj(a,b :string);
begin
swapvectors;
exec(getenv('COMSPEC'),'/C'+' COPY '+a+' '+b);
swapvectors;
end;
:)))))))) Originalno resenje :)))))))
pascal.629ssokorac,
-> #628, bearboy :> 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.630dejanr,
-> #629, ssokorac>> 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.631stomic,
-> #629, ssokorac$ 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.632stomic,
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.633dejanr,
-> #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.
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.634dmiric,
-> #633, dejanr> 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.635drpr,
-> #626, bearboy->
-> 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.636ssokorac,
-> #630, dejanr :> 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.637ssokorac,
-> #631, stomic :> 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.638ssokorac,
-> #633, dejanr :> 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.639dejanr,
-> #634, dmiric>> 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.640zddb,
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.641bojanp,
-> #639, dejanr> 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.642stomic,
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.643dejanr,
-> #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.
Stavi na početak programa {$M 32000,0,0}
pascal.644bojanp,
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.645stomic,
-> #643, dejanr$ 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.646dmiric,
-> #639, dejanrOk hvaal puno...
(md)
pascal.647edge,
-> #593, dmiricPa, 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.648bearboy,
-> #642, stomic˙¨:> {$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.649stomic,
-> #648, bearboy$ 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.650vitez.koja,
-> #647, edge#=> tasemblirana, uostalom koga interesuje neka tdebugira i
#=> tprofilira pa neka
thvala na tsavetu ;>
pascal.651predragd,
-> #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...
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.652ssokorac,
-> #651, predragd :> Mogao bi recimo da buf definises na sledeci nacin
Hvala, ali već je bilo rešeno...
pascal.653mmarkov,
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.654edge,
-> #653, mmarkovPa 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.655mmarkov,
-> #654, edgeVerovatno 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.656predragd,
-> #653, mmarkov 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.657mmarkov,
-> #656, predragdBas 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.658dejanr,
-> #656, predragd>> 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.659k.sasa,
-> #658, dejanrPString 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.660dejanr,
-> #659, k.sasaHvala. Hmmm... nije taj TP6.0 loš kako sam mislio :)
pascal.661predragd,
-> #657, mmarkov> 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.662pedjam,
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.663asrdjan,
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.664bulaja,
-> #663, asrdjan│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.665bulaja,
-> #664, bulaja│ writeln('Aritmeticka sredina ovog niza je ', c);
│end.
└─── ^
Pardon, jedno ; viska. Nije bitno :).
pascal.666dejanr,
-> #663, asrdjan>> 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.667ssokorac,
-> #664, bulaja :> const
:> min=1;
:> max=100;
A sta ce ti tu ovo? :)
pascal.668vvelisavljev,
-> #663, asrdjan 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.669dusanp,
-> #666, dejanr=> writeln ('Aritmetička sredina ja: ', zbir/(nb-1):16:8);
^^
Oooopppps, lapsus ;)))
pascal.670asrdjan,
Hvala svima na rešenjima.
pascal.671ilazarevic,
-> #667, ssokorac█ :> 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.672ssokorac,
-> #671, ilazarevic :> type niz=arrayŠ1..100Ć of real;
:> Ovim min i max samo zbunjuje protivnika ;)
Jasno, ali u njegovom programu nema nizova...:)
pascal.673boco,
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.674ssokorac,
-> #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
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.675ilazarevic,
-> #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.
Meni se čini da naredba za istovremeni read/write ne postoji, ali....
vredi pokušati!
pascal.676ivans,
-> #675, ilazarevic* 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.677ssokorac,
-> #675, ilazarevic :> 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.678boco,
Svašta. Znači, posle ASSIGN/RESET file mi je otvoren kao Read/Write?
žika Wirth kaže samo za read... hmmmm... turbo.
pascal.679ilazarevic,
-> #676, ivans█ 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.680ilazarevic,
-> #677, ssokorac█ 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.681vitez.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.682ssokorac,
-> #680, ilazarevic :> Da da da.... Radio sam ja to n puta, ali stane mozak
:> ponekad :(
Da, to se sete samo iskusni programeri...;)
pascal.683spece,
-> #584, duduk> 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.684ssokorac,
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.685bearboy,
-> #669, dusanp˙¨:> => writeln ('Aritmetička sredina ja: ', zbir/(nb-1):16:8);
˙¨:> žž
˙¨:> Oooopppps, lapsus ;)))
Kakav lapsus, on i jeste aritmetička sredina :)))
pascal.686ssokorac,
-> #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?
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.687predragd,
-> #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.
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.688predragd,
-> #676, ivans> 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.689bulaja,
-> #686, ssokorac│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.690fric,
-> #686, ssokorac> 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.691ssokorac,
-> #690, fric :> 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.692janko,
-> #686, ssokorac> 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.693asrdjan,
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.694ilazarevic,
-> #686, ssokorac█ 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.696asrdjan,
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.697ilazarevic,
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.698dejanr,
-> #697, ilazarevicZa početak, probaj da na početak procedure podeli dodaš jedno n:=1;
pascal.699fric,
-> #691, ssokorac> 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.700ssokorac,
-> #697, ilazarevic :> 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.701bearboy,
-> #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.
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.702bearboy,
-> #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?
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.703ilazarevic,
-> #698, dejanr█ 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.704ssokorac,
-> #702, bearboy :> PPS. Molim citat zbog IGNORE-a...
Pa, ja te ipak ne ignorišem :).
Hvala!
pascal.705tesloni,
-> #692, 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 ?
... Ú-> Tesloni <-Ú
pascal.706predragd,
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.707glisin,
-> #700, ssokorac
ŢŢŢ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.708ssokorac,
-> #707, glisin :> 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.709janko,
-> #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 ?
>
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.710predragd,
-> #701, 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.
Pozdrav, Pedja.
pascal.711ilazarevic,
-> #707, glisin█ ŢŢŢ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.712ssokorac,
-> #711, ilazarevic :> 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.713dzakic,
-> #711, ilazarevic>> 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.715bearboy,
-> #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.
Pa Sourcerom dobiješ .ASM, njega kopajliraš, ali NE linkuješ, i eto .OBJ-a
pascal.716bearboy,
-> #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.
Pa Sourcerom dobiješ .ASM, njega kopajliraš, ali NE linkuješ, i eto .OBJ-a
pascal.717ilazarevic,
-> #713, dzakic█ 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.718dejanr,
[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.719djnsnd,
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.720ssokorac,
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.721drakce,
-> #720, ssokorac
│ 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.722ssokorac,
-> #721, drakce :> 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? :)