{adatb zisok (list k) - dinamikusan l ncolva """""""""""""""""""" men rekordsz m 1 mez‹n‚v adatb zis l‚trehoz s (tulajdons gok, t¡pusok deklar l sa, elemsz m megad sa) k”v c¡me : pointer adatok kezd‹c¡me : pointer adatb neve : string[10] elemsz m : longint mez‹ t¡pusa : 2 char -> 'II'-integer,'RR'-real,'99'-99 hossz£ string 'LL'-longint,'VV'-VVGE :) mez‹ neve : string[10] adat kiolvas s - mutat¢val adat : k”v.rekord elej‚nek c¡me : pointer mez‹k ‚rtelemszerûen egym s ut n felsorolva (kezdve a fix hossz£s g£akkal, befejezve a stringekkel, amik,ha r”videbbek, akkor gyesen r”vid¡tnk...) adat t”rl‚s adat be¡r s - mutat¢val adat besz£r s - az utols¢ elemet t”rli!!! (??t”r”lje??) hossz lek‚rdez‚s (??kell, ha m r megadtuk a max. elemsz mot??) pl men rekordsz m szoveg help 0 "norm l" "Folyamatos, vizu lis zemm¢d" 1 "csendes" "Folyamatos,  m nem vizu lis zemm¢d" 2 "grafikon" "A grafikon ki/bekapcsolts g t v ltoztathatja" 3 "l‚p‚senk‚nt" "L‚p‚senk‚nti zemm¢d" 4 "param‚terek" "Param‚terek m¢dos¡t sa" 5 "kil‚p‚s" "Kil‚p‚s a programb¢l" --> kiolvas('menu.0.szoveg',s^) -> s:='norm l'; egyedsz m rekordsz m ertek 0 76 1 73 (T-1) 2 72 (T-2) ... --> beszur('egyedszam.0.ertek',egyedszam) ‚letkor rekordsz m ertek felsohatar alsohatar 0 16 12 18 fix root -> 'menu' ->->->->->->->->->-> 'egyedszam' fix `---> mez‹k neve,t¡pusa `---> mez‹k neve, t¡pusa dinamikus `-> mez‹k adatai `-> mez‹k adatai } Unit adat; INTERFACE { Procedure kiolvas(azonosito:string; var kivele:pointer);} IMPLEMENTATION Type TRekordPointer = ^TRekord; TRekord = Record kov : TRekordPointer; meret : Byte; End; TListaPointer = ^TLista; TLista = Record kov : TListaPointer; adatok : TRekordPointer; elemszam : LongInt; meret : Byte; nev : String[10]; End; TMezo = Record tip : Array[1..2] of Char {String[2]}; nev : String[10]; End; Var FoLista : TListaPointer; FoMezo : ^TMezo; {Procedure kiolvas; Begin End;} Type t = array [1..SizeOf(TLista)+SizeOf(TMezo)] of Char; Var i : Integer; segedSeg, segedOfs : Word; p : ^t; BEGIN GetMem(FoLista,SizeOf(TLista)+SizeOf(TMezo)); FoLista^.kov:=FoLista; FoLista^.adatok:=nil; FoLista^.elemszam:=0; FoLista^.meret:=SizeOf(TLista)+SizeOf(TMezo); FoLista^.nev:='__________'; FoLista^.nev:='dummy'; FoMezo:=Ptr(Seg(FoLista^),Ofs(FoLista^)+sizeOf(TLista)); FoMezo^.tip:='VV'; FoMezo^.nev:='__________'; FoMezo^.nev:='ezµmKamu!'; { *** ez ide pont nem kell, de oan j¢l n‚z ki... ;) *** segedOfs:=Ofs(FoLista^); segedSeg:=Seg(FoLista^); while (FoLista^.meret+segedOfs > 65535) do Begin Inc(segedSeg); Dec(segedOfs,16); End; FoMezo:=Ptr(segedSeg,segedOfs); } p:=@FoLista^; for i:=1 to SizeOf(t) do write(p^[i]); END.