pascal.324todorp,
-> #307, krissSubject: Re: unit za multitaskere
> Jel nije tesko onom ko ovo sve desifruje i sredi da zakaci ovde obican
> name.TPU i sta vec ide uz to. Hvala.
Evo ide :)
tpmul310.arjpascal.325mmitrovic,
-> #319, omegaŮ█▀█Ţ pomeramo vreme u martu i septembru za sat vremena. Ali da li to vazi/
Mislim da oni pomeraju časovnike u aprilu i oktobru.
Reference: Sky News's clock. Neko vreme nakon što mi pomerimo
satove englezi imaju isto vreme kao mi.
pascal.326omega,
Da li neko zna na koji nacin se pisu asm delovi za protected mod u
BP-u, posto nijedan koji radi za realni mod ne funkcionise :(
I drugo, zasto SetMemTop ne postoji u MEMORY.TPP, vec samo u MEMORY.TPU?
Mozda postoji neki njegov ekvivalent za protected mod?
pascal.327omega,
E sad je vec ovo pocelo da me nervira :(( BP ne podnosi cak ni
writeln(mem[$B800:0]) u protected modu. Zasto!? Izgleda da je
takav problem i sa onim asemblerskim delovima - naime i oni
rade direktno sa memorijom...
pascal.328bearboy,
-> #327, omega> E sad je vec ovo pocelo da me nervira :(( BP ne podnosi cak ni
> writeln(mem[$B800:0]) u protected modu. Zasto!? Izgleda da je
> takav problem i sa onim asemblerskim delovima - naime i oni
> rade direktno sa memorijom...
Zato što u slučaju da se radi u protected modu ono $B800 gubi smisao. Adresa
video memorije za tvoj program nije više ono $B000, kao što nijedna adresa
nije ona koja je bila (mislim na ostale adaptere u 640k-1m).
pascal.329omega,
-> #328, bearboyŢ Zato sto u slucaju da se radi u protected modu ono $B800 gubi smisao.
Ko trazi, taj i nadje. Umesto writeln(mem[$B800:0]) treba
writeln(mem[SegB800:0]); i to je to! Moram da priznam da pored ogromnog
nedostatka (nema step by step :(( ), u protected modu neverovatno
efikasno pronalazim bagove za koje obican (real) uopste i nije cuo :)
Samo se pojavi ono Runtime Error 216 i sve mi je jasno :)) Uskoro
stize Chat Off-Line Reader za dpmi, pa cete da vidite kako to izgleda
i u stvarnosti ;)
E da, za distribuiranje dpmi programa iz BP7, potrebni su valjda
RTM.EXE i onaj OVL. Da li to moze da se ugradi u exe ili nekako
izbegne?
pascal.330postmast,
From: broker@setgate.setnet.co.yu (Predrag Supurovic)
Subject: transfer
Date: Sun, 24 Jul 1994 09:58:30
NS> Da te covek lepo pita sta sam ja prekrsio ovom porukom? Da nisam zbog
NS> glagola "smrdeti" i "usmredwti", epiteta "glupav" (koji se odnosi na
NS> rutinu) zaradio LockOut? E bas bih voleo da to vidim, pa da stvarno
Ovim si vredjao druge a to ovde nije dozvoljeno.
> Sto se tice tema u konferenciji, slobodno pokreni neku koja ce
> ti biti zanimljiva i onda ce biti razgovora i na tu temu. Trenutno su
> ove teme zanimljive.
NS> Ako hocete predloge, pogledacu sta me vec interesuje, ali misljenja
NS> sam da BI MODERATORI MOGLI DA SE AKTIVIRAJU I DA ANIMIRAJU OSTALE
NS> REDOVNE KORISNIKE, da pisu o necemu, da se interesuju!
Moderatori za to nisu zaduzeni i od njih se to ne moze zahtevati. Ako
te nesto zanima u vezi teme, slobodno pitaj i siguran sam da ce ljudi
pokusati da ti odgovore.
... BR> Sacekaj samo malo, da napunim bacac plamena.
* Origin: Oreska BBS, UZICE = SF BIBLIOTEKA = SETNet: (38:101/101)
pascal.331postmast,
From: Attila.Csipa@f107.n111.z38.setgate.setnet.co.yu (Attila Csipa)
Subject: UNITI
Date: Mon, 25 Jul 1994 01:33:49
> Kad smo vec kod unita - kako deklarisati promenljivu koja ce
>se koristiti
>u drugom unitu i obratno ?
> Tj. UNIT A - VAR B
> UNIT B - VAR A
> Gde A koristi A, a B, B.
PS> Ja to radim ovako:
PS> Unit A - definicija tipova, konstanti i promenljivih
PS> Unit B - koristi unit A
PS> unit C - koristi unit A
Brrrrr :( Koza mi se jezi kad moram da radim ovakve stvari. Eh, moja
Modulico...
... Kukavica u opasnosti ne misli mozgom vec nogama.
* Origin: Prometheus BBS - The Northern Frontier - SETNET (38:111/107)
pascal.332postmast,
From: broker@setgate.setnet.co.yu (Predrag Supurovic)
Subject: pascal
Date: Wed, 27 Jul 1994 11:21:50
> Upravo tako. Treba mi nesto kao Clipper GET i SAY. Ako to ne nadjem
> sescu da sam napravim, ali bolje je da se prvo raspitam, zar ne? :)
"P>
"P> Ne znam kako to radi Clipper, ali ja sam pre nekoliko nedelja okacio
"P> print proceduru koja pise direktno u video memoriju. Ali ne radi bas
"P> kao writeln, vec se daju koordinate. Da li to pomaze?
Nazalost, to je okaceno samo na Sezam, pa ne mogu da vidim. U Clipperu
ako das komandu
@1,1SAY 'Unesi cenu:' GET cena PICTURE "99,999,999.99"
Onda ce na koordinati 1,1 otvoriti polje duzine 13 znakova, dozvoliti
unosenje samo brojeva i ukucane brojeve rasporediti automatski dodajuci
zareze za hiljade i decimanu tacku...
Vec sam digao ruke od trazenja i pripremam teren da sam napisem tako nesto.
... Necu da budem clan nikakve mafije.
* Origin: Oreska BBS, UZICE = SF BIBLIOTEKA = SETNet: (38:101/101)
pascal.333inesic,
-> #332, postmast> @1,1SAY 'Unesi cenu:' GET cena PICTURE "99,999,999.99"
>
> Onda ce na koordinati 1,1 otvoriti polje duzine 13 znakova,
> dozvoliti unosenje samo brojeva i ukucane brojeve rasporediti
> automatski dodajuci zareze za hiljade i decimanu tacku...
>
> Vec sam digao ruke od trazenja i pripremam teren da sam napisem
> tako nesto.
Ajd da ne pišeš sve from d veri bigining, ja sam nešto takvo već
napisao, pa ti šaljem sors.
Nemoj da te uplaši što sam ti poslao pet junita, samo je jedan
važan - u ostalima su neke funkcije koje fieldMan (junit koji
pravi polje na datom mestu) koristi.
Ako praviš neku aplikaciju u kojoj se koristi prva tvoja citirana
linija, verovatno će ti biti od koristi funkcija slovima(), kojoj
daš broj, a ona ti vrati string u kome piše slovima koliko je to
dinara. Izgubio sam jedan dan dva sata dok nisam potrefio sve
rodove brojeva, jedninu, nekolicinu i množinu, pa će mi biti
drago da još neko nađe da je korisna.
Ono što tebi treba je procedura makeField() kojoj se prosledi
rekord tipa field u kom piše i gde i kojom bojom, i da li je
polje alfa, da li je intidžer, floating point, ili flag, pa u kom
formatu, skoro da nema šta nema. Ako ti se učini zgodnim, tj. ako
ti radi posao kad ga prekrojiš na svoju meru, mogu da ti pošaljem
junit kalendarske tematike koji ima funkciju koja, koristeći
makeField(), radi unos datuma i pri tom kontroliše njegovu
ispravnost.
Primetio sam bug (treba da ga ispravim, ali me mrzelo jer nije
ništa strašno). Kad unosiš alfa polje, onda Ctrl-left i
Ctrl-right rade reč levo i reč desno. To se radi malo traljavo,
jer mi je, kao dilimiter za reči, stavljen samo chr(32). Možeš da
staviš bilo šta još u skup. Kad pritisneš Ctrl-Backspace on bi
trebao da obriše sve što je uneto u polje i da vrati kursor na
početak. Funkcija uradi samo ono prvo, pa moraš sam da pritiskaš
home. Uostalom, eto ti nedokumentovan sors, pa ga prepravi po
svojoj meri, radi sa njim šta god hoćeš. Ne da je PD, ne da ne
tražim da mi se pominje ime pri korišćenju, nego nema ni readOnly
flag setovan, pa je free to delete, ako ti se ne sviđa. :)
Ako ti šta još u vezi ovog treba, redovno pratim ovu
konferenciju, a može i u mail.
inesic
field.zippascal.334postmast,
From: Attila.Csipa@f107.n111.z38.setgate.setnet.co.yu (Attila Csipa)
Subject: UNITI
Date: Mon, 25 Jul 1994 01:33:49
> Kad smo vec kod unita - kako deklarisati promenljivu koja ce
>se koristiti
>u drugom unitu i obratno ?
> Tj. UNIT A - VAR B
> UNIT B - VAR A
> Gde A koristi A, a B, B.
PS> Ja to radim ovako:
PS> Unit A - definicija tipova, konstanti i promenljivih
PS> Unit B - koristi unit A
PS> unit C - koristi unit A
Brrrrr :( Koza mi se jezi kad moram da radim ovakve stvari. Eh, moja
Modulico...
... Kukavica u opasnosti ne misli mozgom vec nogama.
* Origin: Prometheus BBS - The Northern Frontier - SETNET (38:111/107)
pascal.335postmast,
From: broker@setgate.setnet.co.yu (Predrag Supurovic)
Subject: pascal
Date: Wed, 27 Jul 1994 11:21:50
> Upravo tako. Treba mi nesto kao Clipper GET i SAY. Ako to ne nadjem
> sescu da sam napravim, ali bolje je da se prvo raspitam, zar ne? :)
"P>
"P> Ne znam kako to radi Clipper, ali ja sam pre nekoliko nedelja okacio
"P> print proceduru koja pise direktno u video memoriju. Ali ne radi bas
"P> kao writeln, vec se daju koordinate. Da li to pomaze?
Nazalost, to je okaceno samo na Sezam, pa ne mogu da vidim. U Clipperu
ako das komandu
@1,1SAY 'Unesi cenu:' GET cena PICTURE "99,999,999.99"
Onda ce na koordinati 1,1 otvoriti polje duzine 13 znakova, dozvoliti
unosenje samo brojeva i ukucane brojeve rasporediti automatski dodajuci
zareze za hiljade i decimanu tacku...
Vec sam digao ruke od trazenja i pripremam teren da sam napisem tako nesto.
... Necu da budem clan nikakve mafije.
* Origin: Oreska BBS, UZICE = SF BIBLIOTEKA = SETNet: (38:101/101)
pascal.336postmast,
From: broker@setgate.setnet.co.yu (Predrag Supurovic)
Subject: UNITI
Date: Fri, 29 Jul 1994 17:54:00
> PS> Ja to radim ovako:
> PS> Unit A - definicija tipova, konstanti i promenljivih
> PS> Unit B - koristi unit A
> PS> unit C - koristi unit A
> Brrrrr :( Koza mi se jezi kad moram da radim ovakve stvari.
>Eh, moja Modulico...
Ja sam nasao da je ovaj nacin mnogo zgodniji. Sve definicije bitne za ceo
program se nalaze na jednom mestu, pregledno slozene tako da se covek vrlo
lako snadje.
* Origin: Oreska BBS, Uzice = SF BIBLIOTEKA = SETNet: (38:101/101)
pascal.337postmast,
From: stomic@hobbiton.CO.YU (Slobodan Tomic)
Subject: Re: UNITI
Date: Sun, 31 Jul 1994 08:01:38 GMT
Attila Csipa (Attila.Csipa@f107.n111.z38.setgate.setnet.co.yu) wrote:
$ > Kad smo vec kod unita - kako deklarisati promenljivu koja ce
$ >se koristiti
$ >u drugom unitu i obratno ?
$
$ > Tj. UNIT A - VAR B
$ > UNIT B - VAR A
$
$ > Gde A koristi A, a B, B.
$ Brrrrr :( Koza mi se jezi kad moram da radim ovakve stvari. Eh, moja
$ Modulico...
:) Definises promenljivu u Interface delu i ona je vidljiva za sve
koji koriste taj unit. BTW, u Turbo Pascal-u mozes da referenciras
promenljivu kao i u Moduli-2, tj. ImeUnita.ImePromenljive, u slucaju
da koristis ista imena u razlicitim unitima.
--
Slobodan Tomic (stomic@hobbiton.co.yu, stomic@sezam.co.yu)
--
Slobodan Tomic (stomic@hobbiton.co.yu, stomic@sezam.co.yu)
pascal.338omega,
-> #330, postmastŢ NS> Ako hocete predloge, pogledacu sta me vec interesuje, ali misljenja
Ţ NS> sam da BI MODERATORI MOGLI DA SE AKTIVIRAJU I DA ANIMIRAJU OSTALE
Ţ NS> REDOVNE KORISNIKE, da pisu o necemu, da se interesuju!
Ţ
Ţ Moderatori za to nisu zaduzeni i od njih se to ne moze zahtevati. Ako
Ţ te nesto zanima u vezi teme, slobodno pitaj i siguran sam da ce ljudi
Ţ pokusati da ti odgovore.
Wrong :) Jesu zaduzeni i bas za to:
[Dejanr,Sezam.7:2.213]:
Ţ Duznost moderatora je da relativno redovno zove Sezam, pazljivo prati
Ţ konferenciju koju moderise, odgovara na pitanja korisnika (koja dobija
Ţ javno, u konferenciji, ili privatnom postom), pokusa da kanalise poruke
Ţ u odgovarajuce teme, po potrebi uklanja poruke koje su u suprotnosti
Ţ sa Ugovorom o koriscenju Sezama ili koje su "zalutale" u konferenciju, da
Ţ se trudi da njegova konferencija bude sto zanimljivija i sto posecenija.
Ţ To obuhvata i pokretanje novih tema za diskusiju,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
pascal.339omega,
-> #333, inesicŢ Ajd da ne pises sve from d veri bigining, ja sam nesto takvo vec
Ţ napisao, pa ti saljem sors.
Zaboravio si da on nije na Sezamu, pa to nece moci da vidi...
pascal.340dejanr,
-> #338, omega>> > Moderatori za to nisu zaduzeni i od njih se to ne moze zahtevati. Ako
>> > te nesto zanima u vezi teme, slobodno pitaj i siguran sam da ce ljudi
>> > pokusati da ti odgovore.
>>
>> Wrong :) Jesu zaduzeni i bas za to:
>> [Dejanr,Sezam.7:2.213]:
Ako malo pogledaš, videćeš da je poruka na koju si odgovorio stigla
preko Beointerneta sa nekog drugog sistema, dakle odnosila se na njihove
moderatore, a moja poruka iz Sezam konferencije na naše.
Obaveze moderatora na raznim sistemima ne moraju biti iste.
pascal.341inesic,
-> #339, omega> Zaboravio si da on nije na Sezamu, pa to nece moci da vidi...
Kako bre, neće moći da vidi? Pa ja sam u malim oglasima ostavio
pitanje ko menja ribone za štampače i taj isti čovek mi je
odgovorio u mailu. To valjda znači da je moju poruku pročitao i
da može da čita i sve ostale. Istina, poruka je bila dugačka
kilobajt i preko celog ekrana sevale su linije from@... ali su
one meni, "expertu" za telekomunikacije, veoma malo značile. Da
onda ipak, za svaki slučaj, ovde ostavimo poruku
EJ POSTMAST, AKO SI PROžITAO PORUKU, JAVI SE U ROKU TRI DANA. AKO
SE NE JAVIŠ, DA ZNAMO, PA DA NEKAKO ISKOPAMO PUT DO TEBE.
Stvarno mi nije jasno kako čitam njegove poruke, kako on odgovara
na moje, a da pri tom nije na Sezamu.
inesic
pascal.342omega,
-> #341, inesicŢ> Zaboravio si da on nije na Sezamu, pa to nece moci da vidi...
Ţ
Ţ Kako bre, nece moci da vidi?
Nisi razumeo ;) Nece moci da vidi FAJL koji je zakacen...
pascal.343inesic,
-> #342, omega> Nisi razumeo ;) Nece moci da vidi FAJL koji je zakacen...
Pa šta da mu radim? Ako svi ostali neće da se ljute, meni nije
teško da fajl anzipujem, i ostavim poruku od 12k :>
inesic
pascal.344cira,
-> #315, evlad Da ne bi gledali ono PASCAL cudoviste evo jednog asm programcica za reset.
Za one koje ono mov ax,2143h zbunjuje da kazem sledece :
U TechRefu pise da ako je na adresu 0:0472h upisan broj 4321h dolazi do
reseta ali uz ocuvanje memorije (ovo drugo je cist laz). Mozda je moglo i
krace ali... Inace u DEBUGu je moguce direktno uneti liniju jmp f000:fff0
dok u TASMu nije.
.MODEL tiny
.CODE
jmpfar dw 0fff0h,0f000h
start:
xor ax,ax
mov es,ax
mov bx,472h
mov ax,2143h
mov es:[bx],ax
jmp dword ptr cs:jmpfar
end start
pascal.345boccaccio,
-> #343, inesicYOU> Pa šta da mu radim? Ako svi ostali neće da se ljute, meni
YOU> nije teško da fajl anzipujem, i ostavim poruku od 12k :>
Nema potrebe. Ja sam mu to prebacio na Oresku.
Pozdrav,
Boris
pascal.346omega,
Ja se vratih i vidim da vec nedelju dana cutite :(( Moracu da predjem
na C :)
pascal.347dejanr,
Pazite glupog (?) problema:
var izlaz: file;
buf: array [1..100] of byte;
upisano: word;
begin
{$I-}
...
assign (izlaz, 'A:test.txt');
reset (izlaz, 1);
seek (izlaz, 100);
blockwrite (izlaz, buf[1], 100, upisano);
if (ioresult<>0) or (upisano<>100) then
begin
writeln('Greška pri upisu');
halt(1);
end;
close(izlaz);
if (ioresult<>0) then
begin
writeln('Greška pri zatvaranju');
halt(1);
end;
end.
Rekao bi čovek, ništa prostije i običnije. E, probajte da disketa A
na kojoj postoji test.txt bude zaštićena od upisa. Računar se zaglu :(
Šta se u stvari desi (bar po mom mišljenju)? On proba da upiše, i izađe
kao da je upisao, promenljiva upisano ima vrednost 100 a ioresult je
nul(zašto?). E sada se dođe na 'close (izlaz)' i tu zatvaranje ne uspe,
i ioresult više nije nula. Ispiše 'Greška pri zatvaranju', i krene da
izvršava halt naredbu. Na nesreću, fajl je i dalje otvoren, i on proba da
ga, tokom DOS funkcije koja koja uklanja program, zatvori. Ali to i dalje
ne ide, on stalno pokušava i tako u beskraj.
Naravno, moglo bi se lako odmah proveriti da li je diskete write
protected, ali ima li izlaza iz ove situacije? Dakle fajl je otvoren,
ne može da se zatvori, može li se izaći iz programa a da se računar
ne zaglupi?
pascal.348omega,
-> #347, dejanrŢ Rekao bi covek, nista prostije i obicnije. E, probajte da disketa A
Ţ na kojoj postoji test.txt bude zasticena od upisa. Racunar se zaglu :(
Ovo je stvarno neverovatno, ali istinito. Pitanje je gde on to pise u
prazno :))
Ţ Sta se u stvari desi (bar po mom misljenju)? On proba da upise, i izade
Ţ kao da je upisao, promenljiva upisano ima vrednost 100 a ioresult je
Ţ nul(zasto?).
To mi sve lici kao da postoji neki interni bafer, ali vise puta sam se
uverio da ne postoji (nazalost). Ko zna u cemu je poenta...?
Ţ protected, ali ima li izlaza iz ove situacije? Dakle fajl je otvoren,
Ţ ne moze da se zatvori, moze li se izaci iz programa a da se racunar
Ţ ne zaglupi?
Izgleda da legalne "paskalske" tehnike nema :(( Mora znaci na pocetku
da se chekira da li je write-protected disketa...Bas me zanima kako
stoji stanje sa C-om po ovom pitanju...
pascal.349postmast,
From: Attila.Csipa@f107.n111.z38.setgate.setnet.co.yu (Attila Csipa)
Subject: UNITI
Date: Sat, 06 Aug 1994 11:32:27
> PS> Ja to radim ovako:
> PS> Unit A - definicija tipova, konstanti i promenljivih
> PS> Unit B - koristi unit A
> PS> unit C - koristi unit A
> Brrrrr :( Koza mi se jezi kad moram da radim ovakve stvari.
>Eh, moja Modulico...
PS> Ja sam nasao da je ovaj nacin mnogo zgodniji. Sve definicije bitne za
PS> ceo program se nalaze na jednom mestu, pregledno slozene tako da se
PS> covek vrlo lako snadje.
Da, ALI :) to nisu bile definicije za program, tj. sto se tice hijerarhije
unita, oni su na dubini 5-6, i to ne na istoj, pa ta definicija
promenljivih se 'vuce' koz nekoliko unita gde uopste nije potrebna (samo
ometa).
... ThIs Is a CaSe SeNsiTivE TagLiNe (pOrTed FrOm UNIX)
* Origin: Prometheus BBS - The Northern Frontier - SETNET (38:111/107)
pascal.350postmast,
From: Attila.Csipa@f107.n111.z38.setgate.setnet.co.yu (Attila Csipa)
Subject: UNITI
Date: Sat, 06 Aug 1994 11:42:40
$ > Tj. UNIT A - VAR B
$ > UNIT B - VAR A
ST> $
$ > Gde A koristi A, a B, B.
ST>
ST> $ Brrrrr :( Koza mi se jezi kad moram da radim ovakve stvari. Eh,
ST> moja $ Modulico...
ST>
ST> :) Definises promenljivu u Interface delu i ona je vidljiva za sve
ST> koji koriste taj unit. BTW, u Turbo Pascal-u mozes da referenciras
ST> promenljivu kao i u Moduli-2, tj. ImeUnita.ImePromenljive, u slucaju
ST> da koristis ista imena u razlicitim unitima.
Da, da. Elem da malo pojasnim
A Eto. E sad, jedan junit mi je E, a drugi B. Ako
/ \ radim po interface principu ja to moram da definisem
B C jos u glavnom programu, zar ne ? A onda mi se te
/ \ promenljive vuku kao globalne po celom programu,
D E sto ja (naravno) ne zelim.
... Brain damage ? No, thanks, I already have some.
* Origin: Prometheus BBS - The Northern Frontier - SETNET (38:111/107)
pascal.351postmast,
From: markom@Osmeh.FON.BG.AC.YU (Marko Milivojevic)
Subject: Re: pascal
Date: Mon, 8 Aug 1994 18:11:35 GMT
Ivica Nesic (inesic@sezam.UUCP) wrote:
: Kako bre, nece moci da vidi? Pa ja sam u malim oglasima ostavio
: pitanje ko menja ribone za stampace i taj isti covek mi je
: odgovorio u mailu. To valjda znaci da je moju poruku procitao i
Aman, ljudi shvatite da se poruke vide, ali se ne vide fajlovi
okaceni uz njih :)
Nego, kad smo vec kod price sa posmastom, odnosno komunikacijama.
Zna li neko postoji li nada da ce uskoro moci da se dodje do Dra-
gishinog Hobbitona, posto tamo ocekujem prilicno vazan mail, od
kako je Sloba uveo sankcije, izbacuje posle 076 :(((
-=> MM <=-
pascal.352postmast,
From: broker@setgate.setnet.co.yu (Predrag Supurovic)
Subject: UNITI
Date: Sun, 07 Aug 1994 11:21:00
> A Eto. E sad, jedan junit mi je E, a drugi B. Ako
> / \ radim po interface principu ja to moram da definisem
> B C jos u glavnom programu, zar ne ? A onda mi se te
> / \ promenljive vuku kao globalne po celom programu,
> D E sto ja (naravno) ne zelim.
Pa ne moze i jare i pare. Ako B i E TPU treba da koriste iste promenljive
onda te promenljive moraju biti globalne. Mozes eventualno da koristis
B TPU u okviru E TPU-a u implementation sekciji, pa da izbegnes da
budu globalne.
* Origin: Oreska BBS, Uzice = SF BIBLIOTEKA = SETNet: (38:101/101)
pascal.353de.pavlov,
-> #347, dejanr
> Pazite glupog (?) problema:
žini se da su se tu našla zajedno bar četiri problema :
Prvi je nesrećna Turbo Pascalova procedura Reset, koja otvara
ne-tekstualnu datoteku _i za čitanje i za pisanje_ . Kada se
otvara datoteka na zaštićenoj disketi tada se Reset ponaša
kao da ne zna ( a i ne zna ) da li će se ta datoteka koristiti
za čitanje, što je dopušteno, ili za pisanje, što nije
dopušteno na zaštićenoj disketi. Problem je u tome što se
kasnije blockwrite izgleda služi samo podatkom da je
Reset uspešno obavio operaciju otvaranja datoteke ( što
je donekle i istina ), i ne proverava dalje ništa u vezi sa
datotekom sve dok ne počne pisanje. Po pokušanom pisanju
trebalo bi da blockwrite vrati izveštaj o količini uspešnog upisa
(upisano) ali se tu javlja drugi problem jer upisano
javlja 100 što nikako nije tačno jer je disketa zaštićena od upisa.
Treći problem, u tom trenutku ni IOResult nije ažurno
pa stoji IOResult = 0 iako nije bio uspešan upis.
I da se sve začini, četvrti problem, nekada je nemoguć izlazak iz programa
bez reseta celog računara.
Veliki deo problema ( ako ne i svi ) dolazi od Reset procedure.
Obično Rewrite pokušano na zaštićenoj disketi daje lepo
grešku IOResult=150, Disk is write-protected, pa je onda sve jasno.
Ne bi smetalo da je Borland bolje rešio rad sa datotekama :)
pascal.354evlad,
-> #348, omega>> To mi sve lici kao da postoji neki interni bafer, ali vise puta sam se
>> uverio da ne postoji (nazalost). Ko zna u cemu je poenta...?
Probaj sa debugerom step-by-step do blockwrite (izlaz ....
pa jos jednom do if(ioresult .....
e sada pozovi help Ctrl-F1
poruka :
Critical Error
Disk is Write-protected in drive A. Retry or Abort ?
TP je trebao da sa C diska ucita help, a otkud grom iz vedra neba ?
stisnes A i ponovo Ctrl-F1 i gle cuda help je tu.
E sad cudo broj 2:
ako se malo prosetas po help-u, tada komotno mozes da izadjes iz TP sa Alt-X.
ali ako stisnes ESC i probas Alt-X tada se ponovo javi gore pomenuti
prozor Critical Error ...
Sve mi se cini da je stvar do Borlandovske brace po tastaturi :).
u literaturi pise IOResult vraca ustvari Dos Error Code.
u ovom slucaju kada predje preko close kod je 150 ?
[Ko li ispravi krivu drinu ?]
pascal.355quale,
Subject: Dva modema u j[e|a]dnom PC-u
Hi, sta mi sve treba da bi imao dva modema u jednom PCu i da obadva
mogu da primaju pozive. Sorry ako je bilo nesto slicno....
Cisto softwerski kako bi zgledalo, BTW.
pascal.356postmast,
From: broker@setgate.setnet.co.yu (Predrag Supurovic)
Subject: pascal
Date: Mon, 08 Aug 1994 20:06:18
==== "Ivica Nesic" rece: ======================================
> @1,1SAY 'Unesi cenu:' GET cena PICTURE "99,999,999.99"
>
> Vec sam digao ruke od trazenja i pripremam teren da sam napisem
> tako nesto.
"N>
"N> Ajd da ne pises sve from d veri bigining, ja sam nesto takvo vec
"N> napisao, pa ti saljem sors.
E hvala. Bas me zanima kako ovo tvoje izgleda. U medjuvremenu sam
nasao neke TPU koji ce mi zavrsiti posao, ali ni oni to ne rade bas
ovako...
Sors si mi ostavio na Sezamu gde ja nemam pristup, ali vec se nasao
neko ko ce to da mi skine.
Pozdrav,
broker
p.s. posebno me zanima ona funkcija sto "prica" brojeve...
... BR> Do you speak Yamaikian english?
* Origin: Oreska BBS, UZICE = SF BIBLIOTEKA = SETNet: (38:101/101)
pascal.357postmast,
From: broker@setgate.setnet.co.yu (Predrag Supurovic)
Subject: pascal
Date: Mon, 08 Aug 1994 20:06:19
NS> sam da BI MODERATORI MOGLI DA SE AKTIVIRAJU I DA ANIMIRAJU OSTALE
NS> REDOVNE KORISNIKE, da pisu o necemu, da se interesuju!
"P>
"P> Moderatori za to nisu zaduzeni i od njih se to ne moze zahtevati.
"P> Ako te nesto zanima u vezi teme, slobodno pitaj i siguran sam da ce
"P> ljudi pokusati da ti odgovore.
"P>
"P> Wrong :) Jesu zaduzeni i bas za to:
"P>
"P> [Dejanr,Sezam.7:2.213]:
"P> Duznost moderatora je da relativno redovno zove Sezam, pazljivo
"P> prati konferenciju koju moderise, odgovara na pitanja korisnika (koja
...
"P> sto zanimljivija i sto posecenija. To obuhvata i pokretanje novih
"P> tema za diskusiju, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
To je stvar razlicite koncepcije. Na Sezamu moderator jeste zaduzen za taj
deo posla, a kod nas na SETNet-u nije obavezan da to radi. No, stvar je
malo krenula i kako se cini bice ovde lepih tema.
broker
... COMPLAINTS > NUL
* Origin: Oreska BBS, UZICE = SF BIBLIOTEKA = SETNet: (38:101/101)
pascal.358pedjak,
-> #355, quale> Hi, sta mi sve treba da bi imao dva modema u jednom PCu i da obadva
> mogu da primaju pozive. Sorry ako je bilo nesto slicno....
Moraš imati prvo dve telefonske linije, a zatim modemi se mogu naći
na sledećim portovima ( ovo su kombinacije )
-COM1,COM2
-COM1,COM4
-COM3,COM2
-COM3,COM4
Ovo ograničenje je zbog toga da bi se izbeglo poklapanje IRQ
brojeva ( standarno COM1 i COM3 imaju IRQ3, a COM2 i COM4 su na
IRQ4 ). Ukoliko imaš softver koji je u stanju da koristi i druge
IRQ za komunikaciju sa modemom i ako modem možeš podesiti da bude
na drugom IRQ, onda mogu da važe i druge kombinacije. Te druge
kombinacije nisam probao, ovo gore što sam ja napisao je probano u
praksi i radi.
Sa softverske strane, komunikacija sa modemom preko DOS-a ili BIOS-a je
slaba i ne može se koristiti za neku pravu komunikaciju, rutine su više
nego bedne :( Jedini programski jezik kod koga je savršeno rešena
komunikacija preko portova je verovali ili ne GWBASIC (!) ali sa obzirom
da ga je pregazilo vreme, ostaje nam samo da napišemo sopstvene rutine
za kontrolu portova.
Potrebno je rudimentalno poznavanje programiranja kontrolera 8250 i 8259 i
rutine su tu. Najpre se popune odgovarajući registri kontrolera 8250 i pri
tome se odredi na kakve interapte će reagovati kontroler ( znak stigao na
port, promena statusa ili znak je poslat ), postave se parametri komunikacije
( jedino ovo možemo raditi preko BIOS-a, rutina je korektna ) i zatim se
preko kontrolera 8259 dozvoli generisanje interapta i to: ukoliko se primi
zahtvev preko linije IRQ4 generisaće se INT 0CH, a preko linije IRQ3 INT 0BH.
Znači, ukoliko želiš da tvoj program kontroliše istovremeno dva modema,
moraš ih podestiti na odgovarajuće portove, a zatim preuzeti int 0ch i 0bh i
primljene znakove smeštati u prihvatne bafere ( preporučujem da budu kružnog
tipa ). Ista stvar važi i za znake koje želiš da šalješ na portove.
Ukoliko želiš da u mašini imaš samo više modema, onda preporučujem neko
multitasking okruženje ( DV ili Win )
Ukoliko želiš da vidiš kako je sve to realizovano u praksi, skini sa Sezama
/RSOFT/R057COM.ZIP, u kome se nalazi lcomm biblioteka za rad sa portovima,
pisana u asembleru, tako da se može prilagoditi bilo kom jeziku...
Ako te još nešto zanima, reci slobodno..:)
pedja
pascal.359dejanr,
-> #355, quale>> Hi, sta mi sve treba da bi imao dva modema u jednom PCu i da obadva
>> mogu da primaju pozive.
Trebalo bi da bude moguće. Ako je taj PC namenjen komunikacijama, izbaci
iz njega sve serijske i slične kartice, i konfiguriši modeme kao COM1 i
COM2. Naravno, ako su modemi eksterni, onda će kartica morati da ostane.
Sada je glavno pitanje kako da program kontroliše oba modema "istovremeno".
Sigurno se može napisati, ali ti je u praksi znatno lakše da pokreneš
dva taska pod Windowsom (ili DV-om), pa u svakom od njih po program koji
komunicira preko jednog od modema. Uz relativno brz računar (kritična
je memorija, mnogo više nego mikroprocesor) ovo bi moglo pristojno
funkcionisati.
Ako neko proba, zanimalo bi me uspeva li "paralelna" komunikacija na
većim brzinama, npr. 14400. Na 2400 sam davno probao i radilo je lepo,
čak je prvi modem mogao da zove "komšiju" u susednom slotu preko
telefona.
pascal.360i.mandic,
-> #358, pedjakObjasni malo ono "verovali ili ne GWBASIC (!)"?
pascal.361postmast,
From: markom@Osmeh.FON.BG.AC.YU (Marko Milivojevic)
Subject: Re: pascal
Date: Thu, 18 Aug 1994 16:49:19 GMT
Ivan Petrovic (omega@sezam.UUCP) wrote:
: Ovo je stvarno neverovatno, ali istinito. Pitanje je gde on to pise u
: prazno :))
A da probate da iskljucite raznorazne cashe-ove? Mozda upali :)
-=> MM <=-
pascal.363mmitrovic,
-> #355, qualeŮ█▀█Ţ Hi, sta mi sve treba da bi imao dva modema u jednom PCu i da obadva
Ů█▀█Ţ mogu da primaju pozive. Sorry ako je bilo nesto slicno....
Prvo treba da rešiš problem sa IRQ. Pošto na raspolaganju
imaš samo dva, mož' da se oprostiš od miševa ;)
Kad podesiš modeme jedan na COM1/3 drugi na 2/4 i namestiš im
IRQ3 i 4, pisanje softvera ti je lako. Samo ti umesto jednog
hendlera treba dva (za IRQ 3 i 4).
pascal.364mmitrovic,
-> #352, postmastŮ█▀█Ţ Pa ne moze i jare i pare. Ako B i E TPU treba da koriste iste
Ů█▀█Ţ promenljive onda te promenljive moraju biti globalne. Mozes eventualno
Ne mora, može da napravi modul F sa tim promenljivama i ubaci ih
samo u B i E.
pascal.365mmitrovic,
-> #347, dejanrŮ█▀█Ţ Šta se u stvari desi (bar po mom mišljenju)? On proba da upiše, i izađe
Ů█▀█Ţ kao da je upisao, promenljiva upisano ima vrednost 100 a ioresult je
Ů█▀█Ţ nul(zašto?). E sada se dođe na 'close (izlaz)' i tu zatvaranje ne uspe,
Ů█▀█Ţ i ioresult više nije nula. Ispiše 'Greška pri zatvaranju', i krene da
Ů█▀█Ţ izvršava halt naredbu. Na nesreću, fajl je i dalje otvoren, i on proba
Ů█▀█Ţ da ga, tokom DOS funkcije koja koja uklanja program, zatvori. Ali to i
Ů█▀█Ţ dalje ne ide, on stalno pokušava i tako u beskraj.
Evo rezultata male seansice sa TDom.
- reset(izlaz,1);
Poziva DOS funkciju 3Dh (open with handle), sa al=System.Filemode
Filemode određuje kako će se fajl otvoriti
0 - read
1 - write
2 - erad/write (default)
u primeru sve prođe OK. Naravno fajl mora postojati na disketi.
- fseek(izlaz,100);
Prvo proveri da li je fajl otvoren.
Poziva DOS funkciju 42 za seek i ako je fajl veći od 100bl sve je OK.
- blockwrite(izlaz,buf,100,ispis);
E ovde se dešava fešta. Prvo normalno proveri da li je otvoren fajl,
onda pomnoži 100 sa 1(veličina bloka) i pozove funkciju 40h (write
with handle) koja NE VRATI grešku, ali u TDu ako probam bilo šta da
izvedem sem single stepa (pr da resetujem program) dobijem Abort,
retry za PRN:. Znači ovde nije u pitanju Borlandov sistem fajliranja
već sam DOS, koji ima bafere za fajlove (neko ih je ovde spomenuo kao
razlog) za razliku od pascala. Ako nastavim dalje da izvršavam
program onda:
- close(izlaz)
vraća grešku 150 (write protected) i proglašava fajl zatvorenim
(za pascal). Međutim kad se izvrši halt i postmortem rutina
počne da zatvara fajlove, TD kao i kad se izvršava program u DOSu
izbacuje "Write protected Abort,Retry?", dok pascalov Critical
Handler zakaže i blokira kompjuter (ovo je teorija koja se slaže
sa činjenicama). On izbaci Enter,Esc za Retry,Abort što znači da
je pozvan ali blokira nakon odgovora. Druga teorija je da se
kontrola i posle ovoga vraća DOSu i on ponovo pokušava da zatvori
fajl i ponovo ide Critical error pa se onda zaglupi handler. Sve
u svemu ovaj kraj nije do DOSa jer kad se startuje program iz
DOSa njegov handler obavi posao kako treba.
Pokušao sam da učitam turbo.exe u td386 i da vidim njegov handler
međutim stalno dobijam invalid opcode kad startujem dejanov program
u koji sam ubacio INT 3. Pokušavaću i dalje, so, ako uspem javiću.
Znači jedan DOSov bug i jedan pascalov zajedno prave sra*e, al
samo dok se radi u IDEu.
pascal.366dejanr,
-> #365, mmitrovic>> Znači jedan DOSov bug i jedan pascalov zajedno prave sra*e, al
>> samo dok se radi u IDEu.
Hvala na detaljnoj analizi. Još samo da nađemo kako zatvoriti ovako
"vrljav" fajl, a da se računar ne zaglupi.
pascal.367pedjak,
-> #360, i.mandic> Objasni malo ono "verovali ili ne GWBASIC (!)"?
Mišljenja sam da je GWBASIC okolina koju je pregazilo vreme, ali
ipak ima razvijene rutine za komunikaciju... za mene kuriozitet.
pascal.368postmast,
From: Sasko.Celakovski@f108.n108.z38.setgate.setnet.co.yu (Sasko Celakovski)
Subject: modem via pascal
Date: Fri, 19 Aug 1994 14:31:00
Zdravo... Imam eden mal problem ... Kako preku TP da isprakam naredbi do
modemot ??? Imam eden primer:
program modem;
var com:text;
begin
assign (com,'com4'); bidejki modemot mi e na com port 4
reset (com);
problemot e vo toa sto sega koga ke probam da zapisam nesto vo com
datotekata so write (com,'naredba') TP javuva greska deka datotekata ne
e otvorena za pisenje nego samo za citanje (read only), dali mozda ima drug
nacin za rabota so modem preku TP (verzija 6.0).
pozdrav Sassko
* Origin: Struga BBS +389 96 74074 * Macedonia * SETNet: (38:108/108)
pascal.369mmitrovic,
-> #366, dejanrŮ█▀█Ţ Hvala na detaljnoj analizi. Još samo da nađemo kako zatvoriti ovako
Ů█▀█Ţ "vrljav" fajl, a da se računar ne zaglupi.
Pada mi na pamet tri rešenja
I) promeniti IDEov critical handler, tj onaj iz Turbo Visiona
sa kojim je IDE pisan, što ne dolazi u obzir.
I'm a copyright loving kind of guy :)
II) Ubaciti tokom razvoja programa kod koji će ako close vrati grešku
150 (wr. prot.) ući u petlju dok user ne odštiti disketu. Ovde
možda kao opciju dodati "resetovanje" dosovih buffera (za ovo treba
da pogledam).
III) napraviti lični rezidentni critical handler i malo prljavog koda
koji će sprečiti IDE da instalira svoj handler ;). Ili možda samo
ovo drugo, pošto DOSov handler dobro obavi stvar.
pascal.370quale,
-> #359, dejanrSubject: Re: Dva modema
██ Sigurno se moze napisati, ali ti je u praksi znatno lakse da pokrenes
██ dva taska pod Windowsom (ili DV-om), pa u svakom od njih po program koji
██ komunicira preko jednog od modema. Uz relativno brz racunar (kriticna
██ je memorija, mnogo vise nego mikroprocesor) ovo bi moglo pristojno
E to upravo i hocu da pokrenem dva programa koji ce raditi pod Win/DV.
Ostaje mi jedno ogromno pitanje a to je na koji nacin mogu ta dva programa
da komuniciraju. Dakle ako ja otkucam npr. u prvom send "Hi komso!" na koji
fazon ce da primi drugi program ovu poruku.
IMHO koliko mi je poznato to se radi sa sharetom ili tako nesto.
█
pascal.371postmast,
From: Ivan.Markovic@f114.n103.z38.setgate.setnet.co.yu (Ivan Markovic)
Subject: MODEM VIA PASCAL
Date: Sun, 21 Aug 1994 20:31:11
Rekao Sasko ...
-> Zdravo... Imam eden mal problem ... Kako preku TP da isprakam
-> naredbi do modemot ??? Imam eden primer:
Sasko - komunikacija sa modemom, tj sa COM portovima nije bas tako
jednostavna da mu se mozes obracati kao datotaci. Za te stvari bi
morao da koristis interapte - mozes kao jednostavnije resenje da
koristis neki FOSSIL driver i njegove interapte za rad sa portom
ili da pak - sto je malo slozenije resenje - napravis svoje rutine
za rad sa COM portovima ...
Pozdrav XENOX
i SySop Fenix-a
---FidoPCB v1.0 [NR]
* Origin: * Fenix BBS (011) 414-312;404-679 * SetNet: 38:103/122
pascal.372postmast,
From: broker@setgate.setnet.co.yu (Predrag Supurovic)
Subject: modem via pascal
Date: Sun, 21 Aug 1994 11:08:04
SC> Zdravo... Imam eden mal problem ... Kako preku TP da isprakam
SC> naredbi do modemot ??? Imam eden primer:
SC>
SC> program modem;
SC> var com:text;
SC> begin
SC> assign (com,'com4'); bidejki modemot mi e na com port 4
SC> reset (com);
Ne moze to tako. Najbolje je da pronadjes neku biblioteku funkcija
za rad sa serijskim portom. Za pocetak, preporuujem ASYNC. Mala je,
zgodna, ima sve sto je neophodno.
Ako je nemas u blizini, mozes je dobiti od mene.
... BR> Ja sam stvarno uvek u pravu. Dokazano.
* Origin: Oreska BBS, UZICE = SF BIBLIOTEKA = SETNet: (38:101/101)
pascal.373i.mandic,
-> #367, pedjakPa imaju i ostali Basic-jezici (sa prijatnijom okolinom) razvijene rutine za
komunikaciju...
Bilo mi je cudno ono "verovali ili ne" jer kako ne bih verovao, pisao sam i
sam, ali pre 4 godine ;>
pascal.375.bata.,
Ako neko nema sta da radi bio bih mu neizmerno zahvalan kad bi
mi preveo ovaj idiotski program u Pascal. Program ima 16 linija
i jedini problem je to što treba napisati funkciju koja
izracunava X ^ Y. Unapred hvala na trudu...
***********************************************
E = 2.7182818#: REM osnova prirodnog logaritma
INPUT "Unesi maksimalanu magnitudu minus minimalna magnituda plus 1: ", n
FOR i = 1 TO n
INPUT "Unesi srednji broj meteora po intrervalu: ", m
INPUT "Unesi broj klase (broj meteora u intervalu): ", k
pomocna = k
faktorijel = 1
WHILE (pomocna > 1) :REM ovaj deo
faktorijel = faktorijel * pomocna :REM izracunava
pomocna = pomocna - 1 :REM faktorijel
WEND
rezultat = m ^ k * E ^ (-k)
hi = hi + rezultat - k / rezultat
NEXT i
PRINT "X na kvadrat je: ", hi
END
***********************************************
Pozdrav... Saša
pascal.376pedjak,
-> #370, quale> Ostaje mi jedno ogromno pitanje a to je na koji nacin mogu ta dva
> programa da komuniciraju. Dakle ako ja otkucam npr. u prvom send "Hi
> komso!" na koji
> IMHO koliko mi je poznato to se radi sa sharetom ili tako nesto.
Ukoliko misliš na poruke tipa page na sezamu, onda sami programi
moraju podržavati deljenje datoteka pod mrežom ( zbog toga se
startuje SHARE u multitasking okruženjima )
pascal.377quale,
Hi, imam sledeci problem.
Imam text file koji sadrzi text (oko 300kb). Interesuje me, naprimer,
kako najbrze doci do npr. hiljadite linije. Dakle, da li postoji neki seek
(koliko znam pisano je nesto u racunarima ali neverujem da je to to, posto
linije nisu konstantne duzine). Do sad sam radio na vrlo grub nacin,
ako hocu do hiljadite pucam ReadLn (f) hiljadu puta :).
Sigurno moze elegantnije.
pascal.378dejanr,
-> #377, quale>> Do sad sam radio na vrlo grub nacin,
>> ako hocu do hiljadite pucam ReadLn (f) hiljadu puta :).
Hm. Radiće malo brže ako mu dodaš nekih 20-tak kilobajta kao
settxtbuf. Ne vidim kako bi se našla hiljadita linija, ako su
linije raznih dužina. Jedino što pada na pamet je da se napravi
neki indeksni fajl u kome će biti onoliko longint brojeva koliko
fajl ima linija - jednom pročitaš fajl, formiraš indeks, i onda
ga kasnije otvaraš kao netipiziran i radiš seek na poziciju koju
vadiš iz indeksa. Naravno, moraćeš još da napraviš programče
koje izdvaja liniju iz netipiziranog fajla, ali to nije poseban
problem.
Ako se fajl promeni, moraće da se regeneriše i indeks.
pascal.379postmast,
From: broker@setgate.setnet.co.yu (Predrag Supurovic)
Subject: pascal
Date: Mon, 22 Aug 1994 10:38:19
"U> Hi, sta mi sve treba da bi imao dva modema u jednom PCu i da obadva
"U> mogu da primaju pozive. Sorry ako je bilo nesto slicno....
Probao sam par COMM biblioteka za TP koje su imale tu mogucnost,
a i fossil drajveri to podrzavaju. Nisam probao ali sumnjam da nece
da radi.
... TAG loading error...
* Origin: Oreska BBS, UZICE = SF BIBLIOTEKA = SETNet: (38:101/101)
pascal.380postmast,
From: Attila.Csipa@f107.n111.z38.setgate.setnet.co.yu (Attila Csipa)
Subject: UNITI
Date: Mon, 22 Aug 1994 14:09:14
> A Eto. E sad, jedan junit mi je E, a drugi B. Ako
> / \ radim po interface principu ja to moram da definisem
> B C jos u glavnom programu, zar ne ? A onda mi se te
> / \ promenljive vuku kao globalne po celom programu,
> D E sto ja (naravno) ne zelim.
PS> Pa ne moze i jare i pare. Ako B i E TPU treba da koriste iste promenljive
PS> onda te promenljive moraju biti globalne. Mozes eventualno da koristis
PS> B TPU u okviru E TPU-a u implementation sekciji, pa da izbegnes da
PS> budu globalne.
Ne moze, jer i E koristi delice B-a :(
* Origin: Prometheus BBS - The Northern Frontier - SETNET (38:111/107)
pascal.381postmast,
From: broker@setgate.setnet.co.yu (Predrag Supurovic)
Subject: pascal
Date: Tue, 23 Aug 1994 23:42:27
To: "Bratislav Urakovic" <quale@sezam.UUCP>
"U> E to upravo i hocu da pokrenem dva programa koji ce raditi pod Win/DV.
"U> Ostaje mi jedno ogromno pitanje a to je na koji nacin mogu ta dva
"U> programa da komuniciraju. Dakle ako ja otkucam npr. u prvom send "Hi
"U> komso!" na koji fazon ce da primi drugi program ovu poruku.
Ako radis pod multitaskingom, i ako je sve dobro podeseno, uslovno
mozes matrati da imas dva racunara sa po jednim modemom i tako treba
i da ih tretiras. Mozes ih povezati na isti nacin kao i dva racunara
koji su potpuno odvojeni.
... BR> Lako je biti zao gospodar, ali kratko.
* Origin: Oreska BBS, UZICE = SF BIBLIOTEKA = SETNet: (38:101/101)
pascal.382djelovic,
-> #378, dejanr> Hm. Radiće malo brže ako mu dodaš nekih 20-tak kilobajta kao
> settxtbuf. Ne vidim kako bi se našla hiljadita linija, ako su
> linije raznih dužina. Jedino što pada na pamet je da se napravi
> neki indeksni fajl u kome će biti onoliko longint brojeva koliko
> fajl ima linija - jednom pročitaš fajl, formiraš indeks, i onda
> ga kasnije otvaraš kao netipiziran i radiš seek na poziciju koju
> vadiš iz indeksa.
Ukoliko se zaista radi o hiljadu-dve linija, onda indeks komotno može da
se drži u memoriji (2000 linija * četiri bajta = 8K), i da bude manji od onog
settxtbuf-a od 20K :). A i može da se formira inkrementalno, tako da praktično
ne usporava sistem.
pascal.383pedjak,
-> #375, .bata.> i jedini problem je to što treba napisati funkciju koja
> izracunava X ž Y. Unapred hvala na trudu...
Function Power( x,y: Real): Real;
Begin
If y = 0 Then
power := 1.0
Else if x = 0 Then
Power := 0.0
Else If x > 0 Then
Power := exp( y * ln(x))
Else if Trunc(y) mod 2 = 0 Then
Power := exp( y * ln(abs(x)))
Else
Power := -exp( y * ln(abs(x)));
End;
pedja
pascal.384cira,
-> #383, pedjakKako do pow(x,y) :
> Else if Trunc(y) mod 2 = 0 Then
> Power := exp( y * ln(abs(x)))
> Else
> Power := -exp( y * ln(abs(x)));
Ovaj deo funkcije je malo problematican. Tacnije, ne vraca ispravnu
vrednost ako je 0<y<1 (x<0) za neke y. Posto je TRUNC(y) uvek jednako 0
ako je y izmedju 0 i 1 onda je i TRUNC(y) mod 2 uvek 0 za takvo y.
Primer : x=-2,y=1/3 => power=1.25992... a ne kao sto bi trebalo da bude
power=-1.25992...( sto bi se dobilo izrazom iza
poslednjeg ELSE).
Moguce ispravke su da proveris kakav je deo iza tacke (paran/neparan) ili
da proveris da li se desila greska u f-ji EXP pa ako jeste da predjes na
sledeci korak, a ako nije da vratis rezultat. Verovatno ima jos nacina ali
mi ne pada ni jedna druga ideja sem mozda razvoja u red.
pascal.385stomic,
-> #380, postmastSubject: Re: UNITI
$ PS> B TPU u okviru E TPU-a u implementation sekciji, pa da izbegnes da
$ PS> budu globalne.
$
$ Ne moze, jer i E koristi delice B-a :(
IMHO, organizacija modula (unita) ti je loša. Ja težim da svaki modul
bude što je moguće crnja kutija - što više zatvoren, i pristupačan samo
preko par definisanih procedura u interface-u (bez ikakvih globalnih
promenljivih). Znači najbolje rašenje je da preorganizuješ čitavu
hijerarhiju i/ili kao što je već neko predlagao da ti svi globalni
tipovi i promenljive idu u zaseban modul.
---
Slobodan Tomić (stomic@hobbiton.co.yu, stomic@sezam.co.yu)
pascal.386omega,
-> #365, mmitrovicŢ vec sam DOS, koji ima bafere za fajlove (neko ih je ovde spomenuo kao
Ţ razlog) za razliku od pascala. Ako nastavim dalje da izvrsavam
Da ponovim jos jednom :) Je l' postoji neko lepo resenje za baferisanje
iz Pascala? Mislim na zvanicno koje mi je promaklo (mada nema sanse :))?
pascal.387omega,
-> #376, pedjakŢ Ukoliko mislis na poruke tipa page na sezamu, onda sami programi
Btw, kako to uopste funkcionise? I kako svaki od nodova "zna" ko je
on-line?
pascal.388omega,
-> #384, ciraŢ Ovaj deo funkcije je malo problematican. Tacnije, ne vraca ispravnu
Ţ vrednost ako je 0<y<1 (x<0) za neke y. Posto je TRUNC(y) uvek jednako 0
Ţ ako je y izmedju 0 i 1 onda je i TRUNC(y) mod 2 uvek 0 za takvo y.
Pa fino si to zakljucio, ali to je i resenje :))
else if (y>0) and (y<1) then
if Trunc(1/y) mod 2 = 0 Then
Power := exp( y * ln(abs(x)))
Else
Power := -exp( y * ln(abs(x)));
Ali sve je to neverovatno komplikovano ;) Mora da postoji i nesto krace,
lepse :) Btw, uvek sam se pitao zasto ni Pascal i C nemaju normalnu
Power rutinu :(((
pascal.389omega,
-> #378, dejanrŢ Hm. Radice malo brze ako mu dodas nekih 20-tak kilobajta kao
Ţ settxtbuf. Ne vidim kako bi se nasla hiljadita linija, ako su
Hmm, ja bas nisam primetio da se dobijaju neka velika ubrzanja
posle povecanja settextbuf posle cini mi se par kilobajta...?
Verovatno je "krivac" disk kes, ali me u svakom slucaju zanima
koja je optimalna vrednost za bafer pri dosta velikom radu sa
datotekama?
pascal.390pedjak,
-> #384, cira> Ovaj deo funkcije je malo problematican. Tacnije, ne vraca ispravnu
> vrednost ako je 0<y<1 (x<0) za neke y. Posto je TRUNC(y) uvek
> jednako 0 ako je y izmedju 0 i 1 onda je i TRUNC(y) mod 2 uvek 0 za
> takvo y.
Hvala na primećenom bagu :) Evo ispravne verzije:
Function Power( x,y: Real): Real;
var
imenilac:real;
Begin
imenilac:=round(100000000000.0/(y*100000000000.0));
If y = 0 Then
power := 1.0
Else if x = 0 Then
Power := 0.0
Else If x > 0 Then
Power := exp( y * ln(x))
Else if Trunc(imenilac) mod 2 = 0 Then
Power := exp( y * ln(abs(x)))
Else
Power := -exp( y * ln(abs(x)));
End;
pedja
pascal.391zeljkoj,
-> #388, omega> lepse :) Btw, uvek sam se pitao zasto ni Pascal i C nemaju
> normalnu Power rutinu :(((
U C-u imaš funkciju pow. Ipak je to u BASIC-u bolje. ;)
pascal.392zeljkoj,
-> #389, omega> koja je optimalna vrednost za bafer pri dosta velikom radu sa
Nema tu optimalno. Što više, to bolje. (a to znači 64 kB)
pascal.393dejanr,
-> #387, omega>> > Ukoliko mislis na poruke tipa page na sezamu, onda sami programi
>>
>> Btw, kako to uopste funkcionise? I kako svaki od nodova "zna" ko je
>> on-line?
Svaki nod ima svoj redni broj, i čim neko dođe na vezu (ili ode sa veze)
upiše u odgovarajući segment jednog deljenog fajla na serveru odgovarajuće
podatke o korisniku. I page-ovanje ide preko deljenih fajlova u posebnom
direktorijumu, svaki nod povremeno (i to dosta često) skanira ima li šta
za njega, pa ako ima izvrši komandu koja mu je poslata.
pascal.394omega,
-> #392, zeljkojŢ Nema tu optimalno. Sto vise, to bolje. (a to znaci 64 kB)
Pa da mi popuni ceo data segment? No way :)
pascal.395omega,
-> #391, zeljkojŢ U C-u imas funkciju pow. Ipak je to u BASIC-u bolje. ;)
Koji je to C? Nijedan BASIC to nema sredjeno...O cemu pricas? ;)
pascal.396djelovic,
-> #389, omega> koja je optimalna vrednost za bafer pri dosta velikom radu sa
> datotekama?
Pri sekvencijalnom čitanju, bolji je što veći bafer mada preko neke
određene cifre (20K mi deluje previše?) dobici na performansama postaju
zanemarljivi. Na drugu stranu, ukoliko se radi o slučajnom pristupu datoteci,
onda je najbolje da veličina bafera *tačno* odgovara veličini podataka koji se
čitaju.
pascal.397pedjak,
-> #387, omega> Btw, kako to uopste funkcionise? I kako svaki od nodova "zna" ko je
> on-line?
Pa, ovako uprošteno, komunikacija se odvija preko zajedničkih
fajlova.. s vremena na vreme nod konsultuje taj fajl da vidi da li
ima novih poruka za njega, pa ako ima ispiše ih.. Na isti način
funkcioniše i chat.
pascal.398pedjak,
-> #386, omega> Da ponovim jos jednom :) Je l' postoji neko lepo resenje za
> baferisanje
Za tekstualne postoji, dok za ostale ne.
pascal.399zeljkoj,
-> #394, omega> Pa da mi popuni ceo data segment? No way :)
Pa ti nemoj da koristiš niz, nego listu, pa će ti data segment
ostati netaknut.
pascal.400zeljkoj,
-> #395, omega
> Koji je to C? Nijedan BASIC to nema sredjeno...O cemu pricas?
> ;)
Izgleda da nisi dobro razumeo o čemu je reč i šta sam ja napisao.
Da počnemo od početka :). Neko (mislim .bata.) je zamolio nekog da
mu konvertuje program sa BASICa na Pascal. Citiram:
> Ako neko nema sta da radi bio bih mu neizmerno zahvalan kad bi
> mi preveo ovaj idiotski program u Pascal. Program ima 16 linija
> i jedini problem je to što treba napisati funkciju koja
> izracunava X ^ Y. Unapred hvala na trudu...
Znači, čoveku treba funkcija za stepenovanje u Pascalu, pošto to
u istom NE POSTOJI. U BASICu za to služi operator ^, što se može
videti i iz same poruke! I kako onda "Ni jedan BASIC to nema sređeno?"
Očigledno da ne čitaš pažljivo poruke, jer čak i da ne znaš BASIC
iz navedenog programa si mogao da vidiš da BASIC TO IMA SREĐENO!!!
Ako si i dalje ubeđen da si u pravu :) evo navodim deo iz Quick
Basic Proffessional 7.1 helpa koji se odnosi na aritmetičke operatore:
^ Exponentiation
- Negation
*,/ Multiplication and division
\ Integer division
MOD Modulo division
+,- Addition and subtraction
To važi i za sve ostale BASICe na PC-u, a i šire :)
žak i u Spectrumovom BASICu postoji operator za stepenovanje. Poslaću ti
Sinclair ZX Spectrum BASIC priručnik pa pogledaj, ako ne veruješ.
To bi bilo što se tiče BASICa, a sada da pređemo na C :))
Ti kažeš "Koji je to C?", a niko od tolikih C-ovaca na Sezamu se ne buni!
Za Microsoft C ne znam ali svaki Borlandov C ima funkciju pow. Navodim
deo Turbo C++ 1.0 helpa kao dokaz:
█Ů pow
Power function, x to the y
real: double pow(double x, double y);
complex: complex pow(complex x, complex y);
Prototype in math.h (real)
complex.h (complex)
Complex pow is defined by
pow(base, expon) = exp(expon log(base))
Real pow returns x^y. Error handling for this
routine can be modified by the function
matherr.
Evo i primera:
#include <math.h>
#include <stdio.h>
int main(void)
{
double x = 2.0, y = 3.0;
printf("%lf raised to %lf is %lf\n", x, y, pow(x, y));
return 0;
}
"O čemu pričaš" - Preporučujem ti da lepo pročitaš celu ovu poruku,
pa će ti biti jasno o čemu pričam, pošto ono što sam do sada rekao
očigledno nije bilo dovoljno. Još nešto za kraj: ako nekog zanima
u FORTRANu se stepenovanje vrši operatorom ** i ja preporučujem
onome od koga je diskusija i počela da svoj programčić sa BASICa,
umesto na Pascal, prevede na FORTRAN, jer ipak je on BOLJI za te
stvari.
Toliko od mene. Ako treba još dokaza, samo reci :).
Pozdrav, čeljko The Sorcerer
('ajd da dodam potpis, kad je već tolika poruka ;>)
pascal.401mjova,
-> #393, dejanr> Svaki nod ima svoj redni broj, i čim neko dođe na vezu
> (ili ode sa veze) upiše u odgovarajući segment jednog
> deljenog fajla na serveru odgovarajuće
beše i neki tekst u računarima o ovome. mislim da ima i primer po
imenu CHAT.C
pascal.402i.mandic,
-> #400, zeljkojNajzad neko ko ima PDS 7.1 :))
Da li je neko pokusavao da koristi QLB biblioteke za Quick Basic 4.5 na PDS
7.1?
pascal.403omega,
-> #400, zeljkojŢ u istom NE POSTOJI. U BASICu za to sluzi operator ^, sto se moze
Ţ videti i iz same poruke! I kako onda "Ni jedan BASIC to nema sredeno?"
Ţ Ocigledno da ne citas pazljivo poruke, jer cak i da ne znas BASIC
Ţ iz navedenog programa si mogao da vidis da BASIC TO IMA SREDENO!!!
Ţ Ako si i dalje ubeden da si u pravu :) evo navodim deo iz Quick
Naravno da sam u pravu! Sve to sto si ti naveo ne vredi ni pet para
jer ne ume da izvadi neparne korenove iz negativnih brojeva. O TOME JA
PRICAM. Znaci probaj u bilo kom BASIC-u "PRINT (-27)^(1/3)" pa ces da
vidis da sam u pravu...Probaj i u C-u: "printf ("%lf\n",pow (-27,1/3)"...
Prema tome, NEOPHODNO JE PISANJE SOPSTVENE FUNKCIJE ZA STEPENOVANJE.
Ţ "O cemu pricas" - Preporucujem ti da lepo procitas celu ovu poruku,
Ţ pa ce ti biti jasno o cemu pricam, posto ono sto sam do sada rekao
Ţ ocigledno nije bilo dovoljno.
To isto jedino ja tebi mogu da preporucim...
pascal.404ognjen,
-> #400, zeljkoj)-> Znaci, coveku treba funkcija za stepenovanje u Pascalu, posto
)-> to u istom NE POSTOJI.
Sad mi pade na pamet. Zar ne bi moglo ovako? :
Resenje := X
For I := 1 to Y-1 (recimo trazi se X^Y)
Resenje := Resenje * X
I, gotovo!
pascal.405zeljkoj,
-> #402, i.mandic> Najzad neko ko ima PDS 7.1 :))
> Da li je neko pokusavao da koristi QLB biblioteke za Quick
> Basic 4.5 na PDS 7.1?
Nisam pokušao to, ali mislim da ne može. To kažem zato što VB for DOS
nije hteo da učita biblioteke napravljene sa QBX PDS 7.1. Taj problem
se može rešiti na sledeći način:
Obriše se .QLB a ostavi .LIB, pošto su .LIB fajlovi kompatibilni.
Zatim se napravi prazan .QLB (bez bilo kakvih funkcija i subrutina).
i onda pomoću LIB.EXE i LINK.EXE doda stari .LIB u taj novi prazan
.QLB i - dobijen je novi .QLB. Ako treba detaljnije kako se to radi,
samo reci.
BTW ovo je tema pascal, a mi pričamo o BASICu - mogli bismo polako
da se preselimo tamo gde nam je i mesto.
pascal.406vpudar,
-> #31, mmitrovic-> Ů█▀█Ţ "Brlja" komanda Readln, ne ispisuje prvi karakter tamo gde treba!?!
-> Ů█▀█Ţ Probajte i vi.
->
-> Probao i radi. I to i na Turbo i na Borland pascalu i u real i
-> u protected modu. Mora da je nešto do tebe.
Definitivno. Probleme je pravio FASTVID, programčić za ubrzavanje
(i to drastično!) ispisa na DOS-ov ekran. žudno je to da do sada (6
meseci) nisam imao nikakvih problema, sem pomenutih s CRT Unit-om TP-a.
pascal.407mboban,
-> #404, ognjen**> Sad mi pade na pamet. Zar ne bi moglo ovako? :
**>
**>
**> Resenje := X
**> For I := 1 to Y-1 (recimo trazi se X^Y)
**> Resenje := Resenje * X
**>
**> I, gotovo!
Može, ali ako važi
(X ţ R+) /\ (Y ţ N)
A šta ako je Y realan broj? A šta ako je Y negativan broj? A šta ako
je X negativan broj?
Prve dve stvari mogu da se urade pomoću par If-ova, ali ovo treće...
Mrzi me da kopam po udžbenicima (dok je još uvek raspust :) da tražim
formule.
pascal.408postmast,
From: broker@setgate.setnet.co.yu (Predrag Supurovic)
Subject: pascal
Date: Mon, 29 Aug 1994 11:05:54
"T> IMHO, organizacija modula (unita) ti je losa. Ja tezim da svaki
"T> modul bude sto je moguce crnja kutija - sto vise zatvoren, i
"T> pristupacan samo preko par definisanih procedura u interface-u (bez
"T> ikakvih globalnih promenljivih). Znaci najbolje rasenje je da
Ponekad globalne promenljive dobro dodju. Recimo neki parametar je
potreban velikom broju funkcija u unit-u, ali se menja zavisno od
SETUP-a na pocetku programa. Nezgodno je traziti od proramera da
taj paametar svaki put prosledjuje funkcijama, vec je jednostavnije da
na pocetku podesi sadrzaj neke globalne promenljive iz unit-a i posle
to funkcije same upotrebljavaju kad im zatreba.
Recimo, radis Unit koji radi razne stvari sa stringovima, ali vodi
racuna o nasim slovima. Umesto da svakoj funkciji prosledjuje podatak
koja su nasa slova, to jednostavno podesis u glob promenljivoj...
Mislim da je tako lakse...
... BR> Sto vise TAG-ova imam, sve bolje lezu uz poruke...
* Origin: Oreska BBS, UZICE = SF BIBLIOTEKA = SETNet: (38:101/101)
pascal.409omega,
-> #404, ognjenŢ Resenje := X
Ţ For I := 1 to Y-1 (recimo trazi se X^Y)
Ţ Resenje := Resenje * X
Jok bre, mora preko log i exp zato sto su x,y realne vrednosti.
pascal.410i.mandic,
-> #405, zeljkojIli ipak da osnujemo grupu...
pascal.411stomic,
-> #408, postmastSubject: Re: pascal
$ "T> pristupacan samo preko par definisanih procedura u interface-u (bez
$ "T> ikakvih globalnih promenljivih). Znaci najbolje rasenje je da
$ racuna o nasim slovima. Umesto da svakoj funkciji prosledjuje podatak
$ koja su nasa slova, to jednostavno podesis u glob promenljivoj...
Naravno, ali ta promenljiva je globalna na nivou unita (modula), ne
na nivou celog programa (mislio sam na te globalne promenljive). Znači
globalna promenljiva se nalazi samo u IMPLEMENTATION delu (nevidljiva je
za ostatak programa), a njen sadržaj se menja preko vidljivih procedura,
čime i dalje imamo lepu crnu kutijicu :).
---
Slobodan Tomić (stomic@hobbiton.co.yu, stomic@sezam.co.yu)
pascal.412mmitrovic,
-> #411, stomicŮ█▀█Ţ Naravno, ali ta promenljiva je globalna na nivou unita (modula), ne
Ů█▀█Ţ na nivou celog programa (mislio sam na te globalne promenljive). Znači
Ů█▀█Ţ globalna promenljiva se nalazi samo u IMPLEMENTATION delu (nevidljiva je
Ů█▀█Ţ za ostatak programa), a njen sadržaj se menja preko vidljivih procedura,
Ů█▀█Ţ čime i dalje imamo lepu crnu kutijicu :).
Ovo meni sve liči na "Što prosto kad može komplikovano". Crne kutijice
kako ih ti zoveš su ostavljene proizvođačima modula da zaštite princip
rada svojih modula i da preko funkcija kontrolišu da li su prosleđeni
podatci validni. Ako ti sam pišeš modul za sebe onda uopšte nemaš potrebe
za tim. Em ima više koda, em je sporije. Navedeš promenljivu u
INTERFACE delu i nju će videti svi moduli i program koji ima uses za taj
modul.
Jedno modul.promenljiva:=vrednost je mnogo efikasnije od
modul.PostaviPromenljivu(vrednost);
Sad ako misliš da ćeš uspeti da sam sebi ukradeš modul, onda
ne znam. ;)
pascal.413djelovic,
-> #412, mmitrovic> Ovo meni sve liči na "Što prosto kad može komplikovano". Crne kutijice
> kako ih ti zoveš su ostavljene proizvođačima modula da zaštite princip
> rada svojih modula i da preko funkcija kontrolišu da li su prosleđeni
> podatci validni. Ako ti sam pišeš modul za sebe onda uopšte nemaš potrebe
> za tim. Em ima više koda, em je sporije. Navedeš promenljivu u
> INTERFACE delu i nju će videti svi moduli i program koji ima uses za taj
> modul.
Pogrešno. Koncept skrivanja informacija ne služi da bi proizvođač krio
svoje tajne, već da bi svaki modul imao jasno definisan interfejs. Kako to da
nikome u toku vožnje automobila ne pada na pamet da odvrće šrafove sa motora,
dok u programiranju većina misli da je time čini nešto posebno? :)
pascal.414postmast,
From: Attila.Csipa@f107.n111.z38.setgate.setnet.co.yu (Attila Csipa)
Subject: pascal
Date: Tue, 30 Aug 1994 06:55:47
$ PS> B TPU u okviru E TPU-a u implementation sekciji, pa da izbegnes da
$ PS> budu globalne.
"T> $
"T> $ Ne moze, jer i E koristi delice B-a :(
"T>
"T> IMHO, organizacija modula (unita) ti je losa. Ja tezim da svaki
"T> modul bude sto je moguce crnja kutija - sto vise zatvoren, i
"T> pristupacan samo preko par definisanih procedura u interface-u (bez
"T> ikakvih globalnih promenljivih). Znaci najbolje rasenje je da
"T> preorganizujes citavu hijerarhiju i/ili kao sto je vec neko predlagao
"T> da ti svi globalni tipovi i promenljive idu u zaseban modul.
Jasno, ali je poenta u tome sto je doticni program pisan u Moduli, a sad
bi trebalo da se prevede na Paskal. Posto se radi o povecem programu, nesto
mi nije do reorganizacije, pa sam bas zato pitao :) Dovoljan problem mi je
to sto je program pisan da koristi Modulin multitasking...
... Error 216: Tagline out of paper.
* Origin: Prometheus BBS - The Northern Frontier - SETNET (38:111/107)
pascal.415mmitrovic,
-> #413, djelovicŮ█▀█Ţ svoje tajne, već da bi svaki modul imao jasno definisan interfejs.
Uhh :)
Recimo da si u pravu, i nazovimo to (u nedostatku boljeg izraza)
čistim programiranjem. žisto programiranje nije i efikasno
programiranje, zbog razloga koje sam već naveo. Ne postoje apsolutno
nijedan dobar razlog zbog koga bi trebalo sakrivati promenljive od
samog sebe. Specijalno one koje se koriste u višim modulima i u samom
programu.
Ů█▀█Ţ dok u programiranju većina misli da je time čini nešto posebno? :)
Pa istini za volju i nije ti neka metafora :)
Skidajući šrafove sa motora tokom vožnje će pre il kasnije izazvati
havariju. ;) Sa druge strane to što ćeš dati majstoru da ti skida
šrafove ne znači da neće doći do havarije (koja analogija :).
Stvarno, izbegavanje funkcija je veoma posebno (less & faster code),
ako znaš mašinac i pascal ili c (a verovatno znaš) uporedi oba
metoda za postavljanje promenljive i kaži iskreno koji je bolji.
Što se tiče zaštite o kojoj sam govorio, nju sam naveo iz ličnog
iskustva vezanog za analizu TVision objekata. Kad se izvuku privatni
metodi i polja, ceo princip funkcionisanja TVa postaje mnogo jasniji.
Probaj (opet ako si radio sa TVom) da objasniš na koju foru rade
Load, Store, PutPeerView, itd objekti za rad sa Strimovima. Odokativno
izgleda kao da tu nešto fali i uopšte nije bilo jasno šta se tu i
na koji način odvija (naročito sa snimanjem pointera koji se svaki put
drugde nalaze). Analizom metoda i privatnih polja koja koriste ceo
princip se pokazao savršeno jednostavnim.
To je bilo pre nekih 6 meseci dok sam se zanosio da napravim Graphic
Vision :) Silly of me.
pascal.416omega,
-> #415, mmitrovicŢ To je bilo pre nekih 6 meseci dok sam se zanosio da napravim Graphic
Ţ Vision :) Silly of me.
Steta :( Ja sam video da su neki nasi klinci iz unutrasnjosti uspeli,
i to vrrrrrlo lepo :)
pascal.417pedjak,
-> #412, mmitrovic> Ovo meni sve liči na "Što prosto kad može komplikovano". Crne
> kutijice kako ih ti zoveš su ostavljene proizvođačima modula da
> zaštite princip rada svojih modula i da preko funkcija kontrolišu da
> li su prosleđeni podatci validni. Ako ti sam pišeš modul za sebe
> onda uopšte nemaš potrebe za tim. Em ima više koda, em je sporije.
> Navedeš promenljivu u
Nije stvar u proizvođačima, nego se na taj način pišu čistiji i
čitljiviji programi, a po potrebi se posle i lakše menjaju, pogotovo
ako radiš u nekom timu.
pascal.418dejanr,
-> #122, dejanr>> Kao što se vidi iz priloženog, on je ignorisao net.cfg instrukcije iako
>> je gore napisao da koristi "net.cfg".
Imao sam nedavno sličan problem, i evo u čemu je bila stvar: *SVE* što
piše u NET.CFG mora da bude tačno! Kod mene, konkretno, nije bio tačan
port, i on mi je stalno prijavljivao da koristi nekakav INT 15. Naravno,
to je upućivalo da se podešava onaj red u kome piše INT, ali je on bio
dobar, i što mu god radio, prijavljivao je 15. Kada sam podesio i port
tačno, odjednom je dobro preuzeo i INT 5.
Ne znam da li će to rešiti i tvoj problem, ali vredi da se proveri.
pascal.419pedjak,
-> #414, postmast> Jasno, ali je poenta u tome sto je doticni program pisan u Moduli, a
> sad bi trebalo da se prevede na Paskal. Posto se radi o povecem
> programu, nesto
Eh, da me sad vidi dragisha :) Koja te je muka navela da prevodiš
program na paskal..?
pascal.420de.pavlov,
Ima li kakvih nagoveštaja za pojavljivanje Borland Pascal 8.0 ?
pascal.421mmitrovic,
-> #416, omegaŮ█▀█Ţ Steta :( Ja sam video da su neki nasi klinci iz unutrasnjosti uspeli,
Ů█▀█Ţ i to vrrrrrlo lepo :)
Stvarno, jel imaš neki primer, da vidim kako izgleda. Ja sam radio
do trenutka kad je počinjalo da radi, međutim u grafičkom modu je
radilo veoma sporo i miš je stalno bio problem, pa sam ja izgubio
volju ;) Mislio sam da se ne može uraditi, sad možda i nastavim gde sam
stao.
pascal.422mmitrovic,
-> #417, pedjakŮ█▀█Ţ Nije stvar u proizvođačima, nego se na taj način pišu čistiji i
Ů█▀█Ţ čitljiviji programi, a po potrebi se posle i lakše menjaju, pogotovo
Ů█▀█Ţ ako radiš u nekom timu.
Što stalno potežete to pitanje timova, ja znam šta treba za rad u
timu, pošto sam većbio u jednom. Međutim ova diskusija je počela oko
jednog programa jednog autora. Takvo čistunisanje je samo teret, jer
da su globalne promenljive nepotrebne ne bi ih ni bilo.
pascal.423omega,
-> #421, mmitrovicŢ Stvarno, jel imas neki primer, da vidim kako izgleda. Ja sam radio
Program je Font Maker v3.0. Pravila su ga dva klinca iz Nis ;) Kad
startujes, ne poverujes da nisi u Win! Cak i system.fon koriste!!!
E sad to sve zajedno je oko 400kb pa jedino da posaljem jedan exe,
ali time bi se narusio sw koncept...? :)
pascal.424postmast,
From: markom@Osmeh.FON.BG.AC.YU (Marko Milivojevic)
Subject: Re: pascal
Date: Fri, 2 Sep 1994 14:44:16 GMT
Ivan Petrovic (omega@sezam.UUCP) wrote:
:: Btw, kako to uopste funkcionise? I kako svaki od nodova "zna" ko je
:: on-line?
Pa lepo, kad se korisnik uloguje u jedan share-ovan faj se upise, ili
njegov username, ili user ID, vreme logovanja i sta vec treba :) Pos-
le kad korisniku saljes page, prvo proveris jel ga ima ulogovanog,
ako ima, onda u nekom drugom fajlu proveris sta radi, pa ako prima pa-
ge, u neki fajl PAGE??.DAT upises page poruku, a onda u drugom tasku
programa (2. nod) funkcija check(), koja stalno proverava sta se
dogadja procita velicinu fajla PAGE??.DAT, pa ako je > 0, onda ima
page-a i to bacis na ekran, prosto, zar ne? :)
-=> MM <=-
pascal.425postmast,
From: markom@Osmeh.FON.BG.AC.YU (Marko Milivojevic)
Subject: Re: pascal
Date: Fri, 2 Sep 1994 14:46:25 GMT
Dejan Ristanovic (dejanr@sezam.UUCP) wrote:
: Svaki nod ima svoj redni broj, i cim neko dode na vezu (ili ode sa veze)
: upise u odgovarajuci segment jednog deljenog fajla na serveru odgovarajuce
: podatke o korisniku. I page-ovanje ide preko deljenih fajlova u posebnom
: direktorijumu, svaki nod povremeno (i to dosta cesto) skanira ima li sta
: za njega, pa ako ima izvrsi komandu koja mu je poslata.
Vidi ti ovo, pa znaci nisam ni ja za bacanje :) To mu dodje isto ono
sto mu ja napisah, hehe O:))
-=> MM <=-