Megválaszolatlan hozzászólások | Aktív témák Pontos idő: szomb. ápr. 20, 2024 3:43



Hozzászólás a témához  [ 92 hozzászólás ]  Oldal Előző  1, 2
Pascalban túl nagy progit írtam, ezért összeomlik! 
Szerző Üzenet
arany tag

Csatlakozott: szer. júl. 14, 2004 9:26
Hozzászólások: 391
Tartózkodási hely: TiszaNewCity
Hozzászólás 
Ha meg nem adja és így marad, akkor az az érdemjegy fogja sérteni a lelkivilágát amit kapni fog rá :lol: :lol: Esetleg az otthoni "jogai" fognak csorbulni ha elhúzzák... :)

T68m, szerintem te a Lisp-re gondolsz mint letűnő nyelv. Az AutoLispet speciálisan az AutoCAD rendszerekhez alakították ki a simából és rengeteget használják. Sok kiegészítést, elemkönyvtárakat ebben írtak meg, ha valamit nem tud/nem úgy tud az autocad mint szeretnéd, akkor ezzel megcsinálhatod. Az utasításokkal a legmélyebb szinten buherálhatod a rajzokat, a program futhat az autocad parancssorában vagy dialógus alapú kezeléssel. Most kezdtem el tanulni és néha még igencsak pofán tud csapni :oops: :? :)


szer. ápr. 26, 2006 13:09
Profil Privát üzenet küldése
gyémánt tag
Avatar

Csatlakozott: pén. márc. 26, 2004 9:12
Hozzászólások: 2711
Tartózkodási hely: Budapest, Érd
Hozzászólás 
:D

Egyet értek....de félek a kód átadása sérteni fogja a szerző jogait :)


szer. ápr. 26, 2006 11:41
Profil Privát üzenet küldése
a fórum lelke

Csatlakozott: szer. márc. 24, 2004 13:43
Hozzászólások: 12729
Tartózkodási hely: FLF
Hozzászólás 
ennyi kitérő után tényleg nézzük már azt a kódot! :D

xman: autolispról elég rég hallottam. Azt hittem el is süllyedt az a nyelv. Egyátalán mire jó?


szer. ápr. 26, 2006 11:19
Profil Honlap
gyémánt tag
Avatar

Csatlakozott: pén. márc. 26, 2004 9:12
Hozzászólások: 2711
Tartózkodási hely: Budapest, Érd
Hozzászólás 
T68m írta:
én. Lemérhetjük.

Konkretizálva a feladatot: te telepítesz (vagy sem, ahogy akarod, persze, ha már felajánlottad, akkor úgy korrekt, ha igen) ÉS MEGÍROD delphiben a programot, ami felhoz egy ablakot. (Tehát nem összekattingatod) Értelemszerűen ugyanazokat az előre megírt könyvtárakat/unitokat, stb. használhatjuk)

mellesleg akkor már a 3.0 sem volt pascal - szerinted - hanem egy pascal nyelven alapuló fejlesztőrendszer a DOS-hoz.


Már miért ne kattintgathatnám össze? Ez a lényege! Ettől NEM turbo vagy borlandpascal hanem delphi!
Na ezek után csináld meg gyorsabban! :P

Ha jól emlékszem nekem egy F9 vagy CTRL+F9 az egész :)


szer. ápr. 26, 2006 11:06
Profil Privát üzenet küldése
arany tag

Csatlakozott: szer. márc. 24, 2004 13:43
Hozzászólások: 474
Hozzászólás 
Repeta írta:
ember hasznáná a Pascalt KOMOLY feladatokra... eljárt felette az idő. Freepascalostul is. :D

Nem tom mi az a komoly feladat, de en akkor hasznaltam mikor pontos idozitesek es folyamatos hardwerbuzergalas kellett (irq kezelessel specko timecode reader kartyaval meg plusz egy sajattal), nekem ez eleg komolynak tunt. Na ez delphiben nem hiszem, hogy ment volna kezdve ott, hogy egy ms driver fejleszto kit sem ocso moka (mig egy bp7-t adtak 14e ft-ert akcioban...), es hat az idozitesek akkor is orok problemat okoznak (persze ez nem a delphi hibaja).


szer. ápr. 26, 2006 10:11
Profil Privát üzenet küldése
arany tag

Csatlakozott: szer. júl. 14, 2004 9:26
Hozzászólások: 391
Tartózkodási hely: TiszaNewCity
Hozzászólás 
Hát ezzel egyet kell, hogy értsek :) Ha megszabjuk, hogy írni kell ablakot nem kattintgatni, akkor T68m már a 20-adik ablakot nyitja BP-ben mire a Delphi bekéri a telepítőkódot. Viszont a Delphi pont azért RAD, hogy ezzel ne kelljen törődni. Delphi<>pascal, Delphi=Object pascal. Aki otthon van pasban, annak semmi gondot nem okoz az áttérés és egy csomó problémája megszűnik. Viszont leadás előtt ez tényleg nem célszerű.

Pár hülyeséget meg tényleg mondhattam, mivel már 8 éve egy sort se írtam pascalban (Delphiben kell dolgozni, bár nem kifejezetten programozói állás, sőt most kizárólag autolisppel kell foglalkozni. Tényleg, ahhoz ért valaki ? :lol: ). Szerintem felejtsük el a kis vitánkat T68m és ha tudunk, segítsünk Riannak. Felrakhatná azt a forrást ahol még krixkraxol.


szer. ápr. 26, 2006 7:33
Profil Privát üzenet küldése
a fórum lelke

Csatlakozott: szer. márc. 24, 2004 13:43
Hozzászólások: 12729
Tartózkodási hely: FLF
Hozzászólás 
Zsoca-M5 írta:
Nem a delphi az nem pascal.
A delphi az egy pascal nyelven alapuló GUI windows-hoz. (Illetve utóbbi verziókban már cross platform volt)

De ha szerinted a delphi = pascal, akkor álljunk neki egyszerre, írni egy primitív programot, ami windows-ban felhoz egy üres ablakot.

Vajon ki végez hamarabb? ;)

Sztem telepítéssel együtt gyorsabb delphiben :D


én. Lemérhetjük.

Konkretizálva a feladatot: te telepítesz (vagy sem, ahogy akarod, persze, ha már felajánlottad, akkor úgy korrekt, ha igen) ÉS MEGÍROD delphiben a programot, ami felhoz egy ablakot. (Tehát nem összekattingatod) Értelemszerűen ugyanazokat az előre megírt könyvtárakat/unitokat, stb. használhatjuk)

mellesleg akkor már a 3.0 sem volt pascal - szerinted - hanem egy pascal nyelven alapuló fejlesztőrendszer a DOS-hoz.


kedd ápr. 25, 2006 15:45
Profil Honlap
Moderátor
Avatar

Csatlakozott: szer. márc. 24, 2004 13:43
Hozzászólások: 6486
Tartózkodási hely: Bonyhád - BP
Hozzászólás 
Xman írta:
....
A tanároknak mindegy,
...



Hát, sajnos nem mindig. Ha ez így lenne, én már a pascalt úgy dobtam volna a lomtárba, amilyen gyorsasággal lehet, de hát sajnos nem így van :(


kedd ápr. 25, 2006 14:12
Profil Privát üzenet küldése Honlap
gyémánt tag
Avatar

Csatlakozott: pén. márc. 26, 2004 9:12
Hozzászólások: 2711
Tartózkodási hely: Budapest, Érd
Hozzászólás 
Nem a delphi az nem pascal.
A delphi az egy pascal nyelven alapuló GUI windows-hoz. (Illetve utóbbi verziókban már cross platform volt)

De ha szerinted a delphi = pascal, akkor álljunk neki egyszerre, írni egy primitív programot, ami windows-ban felhoz egy üres ablakot.

Vajon ki végez hamarabb? ;)

Sztem telepítéssel együtt gyorsabb delphiben :D


kedd ápr. 25, 2006 13:48
Profil Privát üzenet küldése
a fórum lelke

Csatlakozott: szer. márc. 24, 2004 13:43
Hozzászólások: 12729
Tartózkodási hely: FLF
Hozzászólás 
Repeta írta:
Lehet, hogy rossz a kérdés, de miért Pascal? Sokat használtam, és meg is utáltam rendesen :)
Ha hasonlót akarzs, akkor ott a Delphi, ha paltformfüggetlent, akkor a Java. Ezeket használják is. Nem hiszem,h néhány elvetemültnél több ember hasznáná a Pascalt KOMOLY feladatokra... eljárt felette az idõ. Freepascalostul is. :D


szted a Delphi nem pascal?


kedd ápr. 25, 2006 13:20
Profil Honlap
arany tag

Csatlakozott: szer. júl. 14, 2004 9:26
Hozzászólások: 391
Tartózkodási hely: TiszaNewCity
Hozzászólás 
Ez logikus és jogos. Csak az a kérdés, hogy lenne-e ideje áttérni mielőtt le kell adni az egész vackot. A tanároknak mindegy, és ha befejezte, nyugiban áttér (úgyis muszáj lesz).


kedd ápr. 25, 2006 12:46
Profil Privát üzenet küldése
platina tag
Avatar

Csatlakozott: kedd jún. 15, 2004 10:44
Hozzászólások: 585
Tartózkodási hely: Miskolc, a gyönyörű acálváros
Hozzászólás 
Lehet, hogy rossz a kérdés, de miért Pascal? Sokat használtam, és meg is utáltam rendesen :)
Ha hasonlót akarzs, akkor ott a Delphi, ha paltformfüggetlent, akkor a Java. Ezeket használják is. Nem hiszem,h néhány elvetemültnél több ember hasznáná a Pascalt KOMOLY feladatokra... eljárt felette az idő. Freepascalostul is. :D


kedd ápr. 25, 2006 12:40
Profil Privát üzenet küldése YIM Honlap
arany tag

Csatlakozott: szer. júl. 14, 2004 9:26
Hozzászólások: 391
Tartózkodási hely: TiszaNewCity
Hozzászólás 
Persze, valószínűleg programhiba. Csak éppen a programot nem láttuk ... Mivel adatbáziskezelést csinál és a hozzászólásaiból is kiderült, memóriagondjai vannak... Érdekes, nekem soha a büdös életben nem voltak memóriagondjaim se tp-ben se bp-ben se freepascalban. Gondolom neked iszonyat nagy tapasztalatod van tp-ben és olyan hatalmas programokat írsz, hogy IDE alól már le se tudod fordítani csak parancssorból... Innentől hidegen hagy a téma, majd te megcsinálod neki... Az meg egy másik dolog, hogy ha már eljutott a szakdolgozatig, illene ilyen apróságokat megoldania.


kedd ápr. 25, 2006 12:07
Profil Privát üzenet küldése
a fórum lelke

Csatlakozott: szer. márc. 24, 2004 13:43
Hozzászólások: 12729
Tartózkodási hely: FLF
Hozzászólás 
Xman írta:
Így freepascalban is le lehetne ellenõrizni, és tényleg értelmét vesztené ez a hülye vita a 64kb-os adathatárról...


jaja, ez egy nagyon SÚLYOS felfogásbeli és rendszerszemléleti tévedés. Gyakorlatilag mindent elárul kijelentőjéről.

Ugyanis a hiba okát pontosan meg kell határozni, nem pedig kisérletezni kell azzal! Ugyanis, mi van, ha freepascalban tünetmentes fut a rendszer. (hasonlóképp, mint ahogy azt a topicnyitó felvetette, hogyha kitöröl belőle néhány jelentéktelen részt) Akkor kijelenthetjük, hogy jó? Rábízhatunk fontos dolgokat? Hogy esetleg többhónapos használat után derüljön ki, amikor a kár már sokszorora a mostaninak?

A hibát (pontosabban az hibának vélt dolgot), legyen az 64kb-os határ, memórifelülírás vagy akármi, csak azután szabad elhárítani, hogy egyértelműen megbizonyosodtunk róla, hogy ténylegesen az okozza a rossz működést.

(természetesen ugyanez vonatkozik az "írjuk át dinamikusra" hsz-ra is.)


kedd ápr. 25, 2006 11:43
Profil Honlap
a fórum lelke

Csatlakozott: szer. márc. 24, 2004 13:43
Hozzászólások: 12729
Tartózkodási hely: FLF
Hozzászólás 
Xman írta:
Ha jól látom egyedül én írtam használható infókat, ha gondot okoz a dinamikus memóriakezelés az már nem az én hibám !! ...


tényleg ne nyissunk vitát, hogy ki a jobb programozó, mert ennél már csak a kinek van jobb mobilja/kocsija az unalmasabb.

Sajnos ellent kell mondjak neked, mert a topicnyitó szempontjából semmilyen használható infót nem írtál. Mert amit mondtál (amiben nem volt vita), az helyes, csak épp nem idevágó. Ezzel az erővel flémelhetnek a napkitörésekről is!

És meglepő, hogy ekkora tp tapasztalattal a hátad mögött, nem érzed, hogy ez nem tp, hanem programhiba.


kedd ápr. 25, 2006 11:31
Profil Honlap
arany tag

Csatlakozott: szer. júl. 14, 2004 9:26
Hozzászólások: 391
Tartózkodási hely: TiszaNewCity
Hozzászólás 
Valóban, ha a topicnyitó felrakná a forrását, talán rendesebb válaszokat is kaphatna. Milyen fordítót is használ ? TP6, TP7, patchelt BP7 ? Így freepascalban is le lehetne ellenőrizni, és tényleg értelmét vesztené ez a hülye vita a 64kb-os adathatárról...


kedd ápr. 25, 2006 8:15
Profil Privát üzenet küldése
arany tag

Csatlakozott: szer. júl. 14, 2004 9:26
Hozzászólások: 391
Tartózkodási hely: TiszaNewCity
Hozzászólás 
Ebben igazad van T68m, rosszul emlékeztem és rosszul írtam le a 64kb-os határ dolgot, tényleg a kódnak nincs köze hozzá. Viszont ettől még nem beszélek hülyeségeket ! Ha jól látom egyedül én írtam használható infókat, ha gondot okoz a dinamikus memóriakezelés az már nem az én hibám !! Remélem nem kezdünk vitázni, hogy ki mikor mennyit pascalozott, mi is TP-ben írtuk a szakdogát anno '97-ben...


kedd ápr. 25, 2006 8:06
Profil Privát üzenet küldése
a fórum lelke

Csatlakozott: szer. márc. 24, 2004 13:43
Hozzászólások: 12729
Tartózkodási hely: FLF
Hozzászólás 
Rian írta:
....


tedd fel, hogy mi is megnézhessük!


hétf. ápr. 24, 2006 19:33
Profil Honlap
gyémánt tag
Avatar

Csatlakozott: csüt. máj. 27, 2004 4:34
Hozzászólások: 2329
Tartózkodási hely: Budapest XVIII.
Hozzászólás 
Koming szán :) Elég sok lehetőséget elémtártatok, elöbb átnézem a számomra érthetőkel:) Aztán majd írok hogy mit sikerült kiokoskodni. Természetesen a programomban nem találtam hibát. Olyan programrésznél jelentkezik a hiba, amihez egyébként nem nagyon nyúltam már egy ideje.


hétf. ápr. 24, 2006 19:28
Profil Privát üzenet küldése Honlap
a fórum lelke

Csatlakozott: szer. márc. 24, 2004 13:43
Hozzászólások: 12729
Tartózkodási hely: FLF
Hozzászólás 
Zsoca-M5 írta:
Mondjuk most, hogy mondod abban igazad lehet, hogy mintha ez fordításkor jelentene hibát nem pedig futáskor, de erre nem emlékszem....uszkve 15 éve programoztam TP-ban! :oops:


kb. én is, ezért az elején kevésbé voltam biztos, hogy jól emléxem-e, de most már tuti.

viszont a topicnyitó problémájától ez igen messze esik. Nyilatkozhatna már, hogy megtalált-e a hibát, vagy még mindig a tp-ben keresi? :D


hétf. ápr. 24, 2006 19:03
Profil Honlap
gyémánt tag
Avatar

Csatlakozott: pén. márc. 26, 2004 9:12
Hozzászólások: 2711
Tartózkodási hely: Budapest, Érd
Hozzászólás 
Annyira nem szélsőséges eset, mert annak idején én is belebotlottam pedig nem emlékszem, hogy valami marha nagy adatbázisos prg-t írtam volna.

Mondjuk most, hogy mondod abban igazad lehet, hogy mintha ez fordításkor jelentene hibát nem pedig futáskor, de erre nem emlékszem....uszkve 15 éve programoztam TP-ban! :oops:


hétf. ápr. 24, 2006 13:53
Profil Privát üzenet küldése
a fórum lelke

Csatlakozott: szer. márc. 24, 2004 13:43
Hozzászólások: 12729
Tartózkodási hely: FLF
Hozzászólás 
Zsoca-M5 írta:
T68m írta:
...A 64k-s feltételezésetek alapban hülyeség. ...


Majd ha megtapasztaltad írj vissza! :D

A lényeg, hogy ha csak úgy nekiugrasz pascalozni, globális változókkal tömbökkel (mint a topicnyitó) akkor pik-pak belebotlasz a 64K-s limitbe.


marha nagy limit (ahogy fentebb is írtam), hogy a főprogramban (unitonként) nem lehet 64k-nál nagyobb adatmennyiség!

1. ez nagyon szélsőséges eset
2. nincs összefüggésben a kód méretével!
3. eljárásokban, függvényekben és heapben tároltak ebbe nem számolódnak bele
azaz, amiről ti írtatok, az a COM programokra volt jellemző, a 4.0-ás pascaltól már EXE-k vannak.
+1 különben is, ez, 64k globális változókkal való túllépése FORDÍTÁSI, nem futási hibát okoz
++1 a topicnyitó problémájának ehhez köze nincs. Ott valami memóriafelülírásról van szó. Csak egyszerűbb a tp-re fogni, mint megkeresni a saját hibáját.


hétf. ápr. 24, 2006 13:49
Profil Honlap
gyémánt tag
Avatar

Csatlakozott: pén. márc. 26, 2004 9:12
Hozzászólások: 2711
Tartózkodási hely: Budapest, Érd
Hozzászólás 
T68m írta:
...A 64k-s feltételezésetek alapban hülyeség. ...


Majd ha megtapasztaltad írj vissza! :D

A lényeg, hogy ha csak úgy nekiugrasz pascalozni, globális változókkal tömbökkel (mint a topicnyitó) akkor pik-pak belebotlasz a 64K-s limitbe.

Fordítási direktívákkal vagy más szakszerű módszerekkel nyilván ki lehet kerülni, de ezek hiányában hiába mondod akkor is van 64K-s limit!


hétf. ápr. 24, 2006 13:19
Profil Privát üzenet küldése
a fórum lelke

Csatlakozott: szer. márc. 24, 2004 13:43
Hozzászólások: 12729
Tartózkodási hely: FLF
Hozzászólás 
Xman írta:
A kód és az adat együttes mérete nagyobb mint 64kb és kifut a területbõl. TP-ben és BP-ben alapból max. 64kb lehet a tömbök és változók összes mérete.


legalább ne beszélnél hü.lyeségeket....

csak a főprogramban lévő adatterület számít. Annak túllépése pedig fordítási hibát okoz.


hétf. ápr. 24, 2006 13:01
Profil Honlap
a fórum lelke

Csatlakozott: szer. márc. 24, 2004 13:43
Hozzászólások: 12729
Tartózkodási hely: FLF
Hozzászólás 
Zsoca-M5 írta:
Pascalban volt valami 64K-s limit.

Márpedig a program kód-od és az adatok meghaladják a 64K-t ezért xarja össze magát.
A megoldást sajnos nem tudom, de az biztos, hogy a hiba a 64K meghaladása! (Arra emlékszem, hogy ezt meg lehet kerülni, illetve ki lehet védeni, de arra már nem hogy hogyan!)

Az viszont tényleg vicces, hogy túl nagy program 1243 sorral... :D :D :D
A nagy program olyan 100.000 sornál kezdõdik :!: (igaz azt valószínûleg nem pascalban írják :) )


láttal már turbo/object-vision teljes fordítást? Kissé meghaladja a 100.000 programsort, pascalban.

A 64k-s feltételezésetek alapban hülyeség. A COM programoknál volt, hogy a kód/adat/stack szegmens egyenként nem haladhatja meg a 64k-t. Az EXE-k esetén már igen. Annyi az összes adatokra vonatkozó megkötés, hogy a nem heap és nem stackban tárolt adatok, tehát a főprogramban tárolt adatok összesége nem haladhatja meg a 64k-t. (tehát ez nem vonatkozik az eljárásokra, függvényekre, mert azok a stackban tárolnak, csak és kizárólag a főprogramban lévő változókra, ez UNIT-onként értendő)


A hozzászólást 2 alkalommal szerkesztették, utoljára T68m hétf. ápr. 24, 2006 13:15-kor.



hétf. ápr. 24, 2006 12:58
Profil Honlap
a fórum lelke

Csatlakozott: szer. márc. 24, 2004 13:43
Hozzászólások: 12729
Tartózkodási hely: FLF
Hozzászólás 
Rian írta:
A progiba nem szúrtam el semmit, ha kitörlök egy olyan részt aminek pl nincs is jelentõsége, akkor megjavul a program. Ez könnyen le is tesztelhetzõ egy egyszerû clrscr utasítással.


ez egyszerűen tévedés! Azért nem fagy, ha kitörölsz egy jelentéktelen részletet, mert akkor más, a futás szempontjából közömbös rész fog felülíródni a hibás programod által.

Egyébként nem értem miért okoz nehézséget bekapcsolni az ellnőrzést, hogy ezt te magad is meglásd...


hétf. ápr. 24, 2006 12:54
Profil Honlap
arany tag

Csatlakozott: szer. júl. 14, 2004 9:26
Hozzászólások: 391
Tartózkodási hely: TiszaNewCity
Hozzászólás 
Ha befejezed ezt a dogát ajánlom a Delphivel való azonnali ismerkedést, hiszen az ilyen adatbáziscuccokra a legalkalmasabb. Egy felhasználói felület összedobása se több egy félóránál és csak a kódra kell koncentrálni. Utánna élvezheted a korlátlan (sic! :lol: ) memória előnyeit :) (meg persze megismerkedhetsz a win kényes sértődős lelkivilágával is :twisted: ).


A hozzászólást 1 alkalommal szerkesztették, utoljára Xman kedd ápr. 25, 2006 12:24-kor.



hétf. ápr. 24, 2006 9:13
Profil Privát üzenet küldése
arany tag

Csatlakozott: szer. júl. 14, 2004 9:26
Hozzászólások: 391
Tartózkodási hely: TiszaNewCity
Hozzászólás 
Dezsőnek igaza van. Egy adatbázis programnál a rekordszerkezet a lényeg. Kialakítasz egy normális rekordszerkezetet és típusos fájlként kezeled őket. Egy tanulókkal foglalkozó rekord nem lehet több néhány száz byte-nál. Utánna 2 rekordtömbre van szükség, egy adattárolóra és egy bufferre. Mindig csak egy (max. 2) rekord van a memóriában. A gyors műveletekhez indexelsz, és egy rekordos fájlban rettentően egyszerű csereberélni. Amúgy meg nem a forrás mérete számít hanem, hogy a fordítás után az exe mennyit rak a memóriába.

Heap használata:
{$M 16384,0,655360} 16K,0,640K
stackméret(max. 65520),min.heap,max.heap(max.655360)

type tomb=array[1..60000] of byte;
tombptr=^tomb;
var dptr:tombptr; dinamikus tömb
da:^integer; dinamikus változó

new(ptr); lefoglalás a heap-ben
new(da);
ptr^[i]:=496;
da^:=25;
dispose(ptr); felszabadítás
dispose(da);

A Freepascalos hibához nem tudok hozzászólni, szó szerint: "nem várt fájl vég az 1331-es sorban", ehhez látni kéne az 1331-es sort és társait. Freepascalos fordítással még nem volt gondom csak egyszer, amikor hibás konfigolás miatt nem fordított object fájlokat az unitokból.


hétf. ápr. 24, 2006 8:29
Profil Privát üzenet küldése
ezüst tag

Csatlakozott: vas. nov. 13, 2005 19:22
Hozzászólások: 44
Tartózkodási hely: La: 46N Lo:18,25E
Hozzászólás 
Rian írta:
Na azért ez az 1200 sor 35 kilobájt :P és ha 1100 sor még sikeresen lefut, de 1200 sor már nem, ebböl az következik hogy a program túl nagy :P nem? Emléxem 12 éves koromban c64-re programoztam, és ha a programom elért egy nagy gombóc méretet, akkor eldeformálódtak a "Sprite" -jaim:) Persze az se volt nagy program, de épp elég volt ahhoz, hogy felforduljon az egész. Mellesleg itt nem csak a tömbjeim a nagyok, mert kipróbáltam hogy (mivel ez egy osztálynapló program) visszább veszem a tanulókra szánt előre lefoglalt tömböket, de így sem fut le a program zökkenőmentesen.


Adatbázis kezelésnél, nem érdemes nagy tömböket használni. Inkább használj adatfájlokat. Végül is azok is tömbök, csak nem a meróriába tárolódnak. Illetve mindig csak kis darabjai vannak bent a memóriában. az adatfájlokkal is mindent meg tudsz csinálni amit a tömbökkel lehetséges.


vas. ápr. 23, 2006 19:34
Profil Privát üzenet küldése
arany tag

Csatlakozott: szer. márc. 24, 2004 13:43
Hozzászólások: 474
Hozzászólás 
Xman nagyon jol osszefoglalta, a lehetseges megoldasokat. Plane ha "adatbaziskezelot" irsz akkor mindenkepp dinamikusan kene foglalni a memoriat nem tomobokkel kinlodni. Letezik olyan kiegeszites amivel swap memoriakent lehet hasznalni a hdd-t hasonloan mint a windows (de nem ez megoldas csak megemlitem, hogy van ilyen is, ezt egy 2 floppys 640kb-ram-os xt-nel hasznaltam amiben hdd-sem volt, a masodik lemezmeghajto volt a swap disk...).

1200-soros kod nem okozhat gondot* de erdemes minel jobban strukturalni, ecceru rovid es attekintheto unit-okat kene hasznalni (oop-t mar nem is merem mondani).


*Gyorsan megneztem egy regebbi pacal progimat (karakteres alapu tvison-hoz hasonlo de annal fejlettebb ablakkezelessel, szinten van benne kemenyen adatkezeles is). Ez 22 db .pas fajlbol all es 430KByte a forrasa (+nemi assembly) es siman fordul es fut...
Van egy vesa grafikas ablakkezelom is annak a foprogija 180KByte forras (plusz egy csomo unit) szinten fordul es fut.
Sot talaltam egy TP3-as(!) progit is az is tobb mint 100KByte forras.


vas. ápr. 23, 2006 17:55
Profil Privát üzenet küldése
gyémánt tag
Avatar

Csatlakozott: csüt. máj. 27, 2004 4:34
Hozzászólások: 2329
Tartózkodási hely: Budapest XVIII.
Hozzászólás 
Freepascalt letöltöttem. Fordításkor ezt a 2 hibaüzit kapom:

NAPLO20.PAS(1331) Fatal: Unexpected end of file
NAPLO20.PAS(1331) Fatal: Compilation aborted

Ez mi lehet? :(

Ez a verzióm még pascalban hibátlan, de itt freepascalban nem megy.

Amúgy pascalban ez a Mark - amit Dester Te írtál nem rossz ötlet a tesztelésre:)


szomb. ápr. 22, 2006 22:00
Profil Privát üzenet küldése Honlap
Moderátor
Avatar

Csatlakozott: szer. márc. 24, 2004 13:43
Hozzászólások: 6486
Tartózkodási hely: Bonyhád - BP
Hozzászólás 
Pascalban dinamikus tömböket nem lehet használni? :roll:


szomb. ápr. 22, 2006 9:47
Profil Privát üzenet küldése Honlap
gyémánt tag
Avatar

Csatlakozott: csüt. máj. 27, 2004 4:34
Hozzászólások: 2329
Tartózkodási hely: Budapest XVIII.
Hozzászólás 
Hannibal írta:
OFF: azért az a tanár, amelyik egy 1200 soros proramra azt mondja, hogy túl nagy, az véleményem szerint nem lehet valami jó tanár (mégha C-t is tanít, gondolom ott se számít soknak az 1200 sor). Meghát, egy "normálisabb" program (játékok, stb.) kicsit többől áll, mint 1200 sor...


Na azért ez az 1200 sor 35 kilobájt :P és ha 1100 sor még sikeresen lefut, de 1200 sor már nem, ebböl az következik hogy a program túl nagy :P nem? Emléxem 12 éves koromban c64-re programoztam, és ha a programom elért egy nagy gombóc méretet, akkor eldeformálódtak a "Sprite" -jaim:) Persze az se volt nagy program, de épp elég volt ahhoz, hogy felforduljon az egész. Mellesleg itt nem csak a tömbjeim a nagyok, mert kipróbáltam hogy (mivel ez egy osztálynapló program) visszább veszem a tanulókra szánt előre lefoglalt tömböket, de így sem fut le a program zökkenőmentesen.


szomb. ápr. 22, 2006 9:06
Profil Privát üzenet küldése Honlap
Moderátor
Avatar

Csatlakozott: szer. márc. 24, 2004 13:43
Hozzászólások: 6486
Tartózkodási hely: Bonyhád - BP
Hozzászólás 
Dester írta:
Én 12 éves koromban írtam 1200 soros programot TP-ben, és le tudott fordulni. :)

Nekem rémlik valami fordítási direktíva, amivel a memóriakezelést lehet piszkálni, asszem a {$M} volt az, és 3 paramétere van emlékeim szerint (talán stack, heap, ???). Talán azzal is tudsz valamit kezdeni, úgy emlékszem annak idején eléggé hasznos volt, de már nagyon régen volt...


Ejjha, én 12 éves koromba azt se tudtam, h mi az a programozás :D:D


pén. ápr. 21, 2006 20:23
Profil Privát üzenet küldése Honlap
Moderátor
Avatar

Csatlakozott: kedd nov. 02, 2004 17:38
Hozzászólások: 5120
Tartózkodási hely: Budapest/Szeged
Hozzászólás 
Én 12 éves koromban írtam 1200 soros programot TP-ben, és le tudott fordulni. :)

Nekem rémlik valami fordítási direktíva, amivel a memóriakezelést lehet piszkálni, asszem a {$M} volt az, és 3 paramétere van emlékeim szerint (talán stack, heap, ???). Talán azzal is tudsz valamit kezdeni, úgy emlékszem annak idején eléggé hasznos volt, de már nagyon régen volt...


pén. ápr. 21, 2006 19:56
Profil Privát üzenet küldése Honlap
Moderátor
Avatar

Csatlakozott: szer. márc. 24, 2004 13:43
Hozzászólások: 6486
Tartózkodási hely: Bonyhád - BP
Hozzászólás 
OFF: azért az a tanár, amelyik egy 1200 soros proramra azt mondja, hogy túl nagy, az véleményem szerint nem lehet valami jó tanár (mégha C-t is tanít, gondolom ott se számít soknak az 1200 sor). Meghát, egy "normálisabb" program (játékok, stb.) kicsit többől áll, mint 1200 sor...


pén. ápr. 21, 2006 18:37
Profil Privát üzenet küldése Honlap
gyémánt tag
Avatar

Csatlakozott: csüt. máj. 27, 2004 4:34
Hozzászólások: 2329
Tartózkodási hely: Budapest XVIII.
Hozzászólás 
Zsoca-M5 írta:
Pascalban volt valami 64K-s limit.

Márpedig a program kód-od és az adatok meghaladják a 64K-t ezért xarja össze magát.
A megoldást sajnos nem tudom, de az biztos, hogy a hiba a 64K meghaladása! (Arra emlékszem, hogy ezt meg lehet kerülni, illetve ki lehet védeni, de arra már nem hogy hogyan!)

Az viszont tényleg vicces, hogy túl nagy program 1243 sorral... :D :D :D
A nagy program olyan 100.000 sornál kezdődik :!: (igaz azt valószínűleg nem pascalban írják :) )


Igen, vsz elírtam a topicot:) Nem a programom túl nagy, hanem a tömbök amiket használ :D

Xman... hát leesett az állam :D nagyon nagyonon hálás vagyok, hogy egy ilyen hozzáértő válaszolt a topicra:) Átgondolom amiket írtál, a programomba nem nagyon szeretnék belejavítani már... hanem fejleszteném ezerrel. Asszem a freepascalt megnézem. Mégegyszer köszi:) Ha lesz valami feldobom ide...


pén. ápr. 21, 2006 11:08
Profil Privát üzenet küldése Honlap
arany tag

Csatlakozott: szer. júl. 14, 2004 9:26
Hozzászólások: 391
Tartózkodási hely: TiszaNewCity
Hozzászólás 
A kód és az adat együttes mérete nagyobb mint 64kb és kifut a területből. TP-ben és BP-ben alapból max. 64kb lehet a tömbök és változók összes mérete.

- Dinamikusan hozz létre tömböket a heap-ben (mutatókkal), így elméletileg 640 kb-ot használhatsz, de ezeket is maximum 64 kb-os méretekben. Ez lenne a legcélszerűbb.

- BP7 alatt védett üzemmódban a tömbök max. mérete marad 64 kb, de azt hiszem max. 16 megát lehet használni.

- Oszd fel a programot több unitra, optimalizáld a változókat, használj kisebb tömböket, és több lemezműveletet. Persze így lassulni fog, de ha normális filekezelést használsz (pl. rekordos fájlok) ez nem lesz észrevehető.

- Ha kizárólag DOS alatt futtatnád a programot, használhatnád a beépített EMS memóriakezelő részt, de az sz.@.r ügy még tisztán dosos gépen is. EMM386.EXE memóriamanagert igényel. Nem célszerű.

- Használj overlay technikát, ami olyasmi mint az unitok (*.ovl fájlok), és a program a kódnak mindig csak azt a részét tartja a memóriában amit épp használnia kell. Ez több lemezművelettel járhat, mivel az ovl fájlokat állandóan cserélgeti, de ha rendesen át van gondolva, nem probléma.

- Van XMS memória kezelő unit, amivel tetszőleges méretű memóriatömböket használhatsz az 1 mega fölötti részen, de nem tudom, hogy win alatt megy-e rendesen. HIMEM.SYS memóriamanagert igényel. Olyan 2-3 megányi területet használtam vele kb. 4-500 kb-os tömbökben. Ha érdekel előkerítem, forrással, példákkal.

- Free Pascal. Ugyanaz mint a TP/BP csak alapból nincs benne a 64 kb-os memóriakorlát, mert GO32 memóriamanagert használ. Ez egy külön fájl, aminek egyszerűen a program mellett kell lennie. Teljesen 100% pascal kompatibilis és egy csomó hasznos új dolog is van benne. DOS és Win alatt is kitűnően és megbízhatóan működik. Ha kifogy a teljes memóriából, lapozófájlt hoz létre a lemezen. Ezzel olyan 8-10 megányi tömböket kezeltem EGYBEN :) Van hozzá olyan VESA unit, ami kezeli a nagyfelbontásokat nagy színmélységben (pl. 1024x768x24) és egyben látja a videomemóriát, nem 64 kb-onként.
http://www.freepascal.org/

- Áttérés a Delphire :) Minden probléma azonnal megoldódik, de gondolom ez annyira nem járható út neked csak így hirtelen :lol:


pén. ápr. 21, 2006 8:19
Profil Privát üzenet küldése
gyémánt tag
Avatar

Csatlakozott: pén. márc. 26, 2004 9:12
Hozzászólások: 2711
Tartózkodási hely: Budapest, Érd
Hozzászólás 
Pascalban volt valami 64K-s limit.

Márpedig a program kód-od és az adatok meghaladják a 64K-t ezért xarja össze magát.
A megoldást sajnos nem tudom, de az biztos, hogy a hiba a 64K meghaladása! (Arra emlékszem, hogy ezt meg lehet kerülni, illetve ki lehet védeni, de arra már nem hogy hogyan!)

Az viszont tényleg vicces, hogy túl nagy program 1243 sorral... :D :D :D
A nagy program olyan 100.000 sornál kezdődik :!: (igaz azt valószínűleg nem pascalban írják :) )


pén. ápr. 21, 2006 7:10
Profil Privát üzenet küldése
gyémánt tag
Avatar

Csatlakozott: csüt. máj. 27, 2004 4:34
Hozzászólások: 2329
Tartózkodási hely: Budapest XVIII.
Hozzászólás 
Hali. Nem GDF, és a tanárom nem paszkált tanít, hanem C-t. Ezért nem tudott még választ adni, neki is át kell nézni a paszkál kezelését, de nekem elég sűrgős lenne ez, mert ez a szakdolgozatom. Ha megnézed azt a képet amit linkeltem, ott jól látszik, hogy a rendelkezésre álló memóriát (64k) lassacskán kezdik elérni a deklarált tömbök (41k). Tehát 41 kilo van a memóriában. Gondolom a program+változók nem férnek bele a memóriába. A progiba nem szúrtam el semmit, ha kitörlök egy olyan részt aminek pl nincs is jelentősége, akkor megjavul a program. Ez könnyen le is tesztelhetző egy egyszerű clrscr utasítással.


csüt. ápr. 20, 2006 23:40
Profil Privát üzenet küldése Honlap
a fórum lelke

Csatlakozott: szer. márc. 24, 2004 13:43
Hozzászólások: 12729
Tartózkodási hely: FLF
Hozzászólás 
már rég tp-ztem, de nyugodt lehetsz, nem írtál nagy programot! :D

ha turbo-visiont használnál, akkor lehetne olyan, hogy nem tudná fordítani/futtatni az ide a programodat, de akkor ezt egyértelműen jelezné. Erre megoldás a bp volt, ami eleve lemezre fordít. Már konkrétan nem emlékszem, több, mint 10 éve, hogy használtam, hogy miért is kezeli jobban a memóriát a bp, mint a tp, de ez a te szempontból teljesen lényegtelen. (ja, azt hiszem, hogy a bp kezeli az extended memóriát)

a tanárod meg nyugodtan adja vissza a diplomáját, ha ilyeneket beszél. Rákérdezhetek? Gdf? :D :D :D

Valójában, szinte tuti, hogy felülvágtad valami rossz tömbhivatkozással a progid és/vagy az adatterületeket.
Egyszerűen kapcsold be a range chechkinget {$R}, valamint ajánlott még a stack és heap chechking is. Ezeket én még futtatásnál is bekapcsolva hagyom, minimálisan lassítják a progit és inkább szálljon el a rendszer egy jól látható hibaüzenettel, mintsem misztikus hibákat ejtsen!


csüt. ápr. 20, 2006 23:22
Profil Honlap
gyémánt tag
Avatar

Csatlakozott: csüt. máj. 27, 2004 4:34
Hozzászólások: 2329
Tartózkodási hely: Budapest XVIII.
Hozzászólás Pascalban túl nagy progit írtam, ezért összeomlik!
Sziasztok!

A következő a gondom! Írtam egy 30 kilos pascal progit (adatbázis kezelőt). Még amikor 29 kilobájtos volt a program nem volt vele semmi gond, de most a 30-adiknál szétesett pár utasítás.

pl.: a clrscr függvény. Nem törli a képernyőt, hanem telefirkálja sárga fura jelekkel, és a speaker is sípol.

- egy tömb változóit nem tudom visszanyerni mert helyette krix-kraxok vannak. A tanárom szerint túl nagy a programom és valahogy váltanom kellene memória területet.

Valaki segítene?
Pascal információk:
Kép


csüt. ápr. 20, 2006 19:44
Profil Privát üzenet küldése Honlap
Hozzászólások megjelenítése:  Rendezés  
Hozzászólás a témához   [ 92 hozzászólás ]  Oldal Előző  1, 2

Ki van itt

Jelenlévő fórumozók: nincs regisztrált felhasználó valamint 12 vendég


Nem nyithatsz témákat ebben a fórumban.
Nem válaszolhatsz egy témára ebben a fórumban.
Nem szerkesztheted a hozzászólásaidat ebben a fórumban.
Nem törölheted a hozzászólásaidat ebben a fórumban.

Keresés:
Ugrás:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by ST Software for PTF.
Magyar fordítás © Magyar phpBB Közösség