Jártas valaki pascal buffer kezelésben? Ha lenne valaki kérem segítsen is.
1: NEM én választottam, hanem ezt tanítják a suliban.
2: Ha már úgyis ott azt tanulom akkor már kitanulom rendesen.
3: Unatkozom(kockulás mellett).
4: Ha segítenétek nem haragudna senki sem.
Milyen bufferből? Billentyűzet, memória egy adott területe, fájl, stb.
Billentyűzethez hasznájl keypressed-readkey párost. Az előbbi igazat ad vissza, ha van billentyű a bufferben, az utóbbi pedig visszadaja őket sorban (a bill.buffer egy LIFO sezrekezetű tároló). A fgv-k így néznek ki (Crt unitban vannak)
function KeyPressed : boolean;
function ReadKey : char;
De ha tudod a memóriacímet, akkor így is használhatod:
Egy adott memóriaterületről úgy tudsz olvasni, ha rádefiniálsz egy (lehetőleg dinamikus) változót. Használd az absolute kulcsszót.
pl:
var a:string[50];
s:byte absolute s;
Itt az s változó az a string legelső bájtját fogja tartalémazni, ez jelen esetben az a hossza. Asszem, az absolute működik memóriacímmel is:
type T:array[1..80,1..25,1..2] of char;
var screen:T absolute $B800:0;
Ha nem, akkor megoldható így is:
var screen:^T;
...
screen:=Ptr($B800,0); {előtte nem kell New, mert már van neki terület foglalva}
A fentebbi példa a karakteres képernyő memóriájához fér hozzá direkt módon (csak indokolt esetben használd, pl. ablakkezelés pascalban). Lehet, hogy WinXP-től felfelé már nem megy.
Fájlból meg tán csak tudsz olvasni.
Ha hülyeséget írtam, akkor bocsi, mert már 4 éve nem használok Pascalt.
Előző vagyok.
Javítás:
s:byte absolute a;
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!