mám taký problém. skúšal som urobiť cez procedúry niečo trošku zložitejšie, no stala sa čudná vec. vypisuje mi to syntax error na príkaze end. ktorý ukončuje program ... vie niekto poradiť ?
prikladam screenshot:
http://img27.imageshack.us/img27/1737/skuska.jpg
dikes, idem skusat
Skús ukladať level do poľa reťazcov a potom z neho prečítat daný znak, asi takto:...
var
obrazovka[1..25] of string;
{kazdy riadok obrazovky je 1 retazec}
...
Readln(subor, riadok);
obrazovka[cislo_riadku] := riadok;
...
if obrazovka[WhereY][WhereX - 1] = 'x' then ...
Ešte poznamenám, že s reťazcom sa dá pracovať ako s poľom znakov, index prvého znaku je 0.
hmm no ako by som to... mne ide o to, aby som na obrazovku zobrazil level - bludiska. Super. To mám. A teraz chcem urobiť steny bludiska "neprechodné". Takže to mám vymyslené tak, že keď uživateľ stlačí klávesu napr. pre pohyb smerom hore, tam program naprv zistí, či sa na pozícii wherex,wherey-1 nachádza znak. Ak sa tam znak nachádza, tak sa nič nestane. Ak sa nenachádza, tak sa tam posunie kurzor. Toto všetko už mám vymyslené, jediné čo neviem je to, aby sa ten znak na wherex, wherey-1 prečítal.
V tom pripade nemusis nic citat z obrazovky. Jednoducho si uloz obsah suboru do retazca a ten dalej spracuvaj.
mne treba vlastne vypisat cely obsah textovaho suboru na obrazovku, to som spravil. a po vypisani mi treba zistit kazdy jeden znak a podla toho, ake znaky sa tam nachadzaju, by sa mal program dalej spravat. dufam ze som to vysvetlil dobre, z tej stranky co si mi poslal som jelen
Odporucam ukladat si pri kazdom vypise obsah obrazovky do dvojrozmerneho pola. Potom staci precitat prvok pola.
Ak tato moznost nie je vyhovujuca, je nutne pouzit funkcie konkretneho operacneho systemu a kompilatora.
Pre DOS (TurboPascal):
http://www.programmersheaven.com/mb/pasprog/374811/374811/reading-a-char-from-crt-screen/
Pre Windows/Linux a Free Pascal:
http://coleweb.dc.fi.udc.es/docencia/edi/freepascal/doc/units/node25.html (jednotka Video)
Konkretne sa zameraj na premennu VideoBuf - je to ukazovatel smerujuci na graficku pamat. Znak na danom indexe by sa mal dat precitat takto:znak := chr(VideoBuf^[dany_index]);
Ale zatial som to neskusal.
Myslis readkey? Tu poznam, mne nejde o to precitat co uzivatel zada, ale napr. njprv na obrazovku vypisem text pomocou write a potom ho chcem naspat precitat(neprakticky priklad ale presne na takyto ucel to potrebujem pouzit), cosi podobne ako read, ale musi to byt schopne precitat text, ktory sa uz na obrazovke nachadza.
Procedury takehoto zamerania sa nachadzaju v jednotke crt: http://suloweb.html.sk/free-pascal-jednotka-crt.
nazda, neexistuje nejaka procedura, ktora je schopna precitat text, ktory sa na obrazovke uz nachadza?