File types are represented as records. Typed files and untyped files are represented as a fixed record:
Const
PrivDataLength=3*SizeOf(SizeInt) + 5*SizeOf(pointer); Type filerec = packed record handle : THandle; mode : longint; recsize : Sizeint; _private : array[1..PrivDataLength] of byte; userdata : array[1..32] of byte; name : array[0..filerecnamelength] of char; End; |
Text files are described using the following record:
TextBuf = array[0..255] of char;
textrec = packed record handle : THandle; mode : longint; bufsize : SizeInt; _private : SizeInt; bufpos : SizeInt; bufend : SizeInt; bufptr : ^textbuf; openfunc : pointer; inoutfunc : pointer; flushfunc : pointer; closefunc : pointer; userdata : array[1..32] of byte; name : array[0..255] of char; LineEnd : TLineEndStr; buffer : textbuf; End; |