file

Funkce

Umožňuje pracovat s obecným diskovým souborem. Veškerá funkčnost je realizována pouze prostřednictvím volání nativních procedur přístroje.


Syntax

   file file_name;
     rem = string;
     timer = timer_name;
     send_same_data;
     driver_exception = driver_name;
   end_file;

Nativní procedury přístroje

Open( Path : string; &Result : boolean )

Otevře soubor Path a výsledek operace vrátí v parametru Result.
Poznámka: Pokud pracuje instance tohoto přístroje s nějakým otevřeným souborem, je tento soubor nejprve uzavřen.

OpenRead( Path : string; &Result : boolean )

Otevře soubor Path jen pro čtení a výsledek operace vrátí v parametru Result.
Poznámka: Pokud pracuje instance tohoto přístroje s nějakým otevřeným souborem, je tento soubor nejprve uzavřen.

Create( Path : string; &Result : boolean )

Založí a ponechá otevřený soubor Path a výsledek operace vrátí v parametru Result. Poznámka: Pokud pracuje instance tohoto přístroje s nějakým otevřeným souborem, je tento soubor nejprve uzavřen.

Append( Path : string; &Result : boolean )

Otevře soubor Path a ukazatel pozice v souboru nastaví na jeho konec. Výsledek operace vrátí v parametru Result.
Poznámka: Pokud pracuje instance tohoto přístroje s nějakým otevřeným souborem, je tento soubor nejprve uzavřen.

Close()

Zavře právě otevřený soubor.

Size( &FileSize : number )

V parametru FileSize vrátí velikost právě otevřeného souboru.

GetPos( &Position : number )

V parametru Position vrátí aktuální pozici ukazovátka v právě otevřeném souboru.

Seek( Position : number )

Nastaví ukazovátko pozice v právě otevřeném souboru na pozici uvedenou v parametru Position.

Truncate()

Odstraní část souboru, která se nachází za aktuální pozicí ukazovátka v souboru. Velikost souboru se tedy bude rovnat pozici ukazovátka.

RdBool( &Value : boolean )

Načte z právě otevřeného souboru hodnotu typu boolean (1 byte) a vrátí ji v parametru Value.

RdShtCard( &Value : number )

Načte z právě otevřeného souboru hodnotu typu shortcard (1 byte) a vrátí ji v parametru Value.

RdCard( &Value : number )

Načte z právě otevřeného souboru hodnotu typu cardinal (2 bytes) a vrátí ji v parametru Value.

RdLngCard( &Value : number )

Načte z právě otevřeného souboru hodnotu typu longcard (4 bytes) a vrátí ji v parametru Value.

RdShtInt( &Value : number )

Načte z právě otevřeného souboru hodnotu typu shortint (1 byte) a vrátí ji v parametru Value.

RdInt( &Value : number )

Načte z právě otevřeného souboru hodnotu typu integer (2 bytes) a vrátí ji v parametru Value.

RdLngInt( &Value : number )

Načte z právě otevřeného souboru hodnotu typu longint (4 bytes) a vrátí ji v parametru Value.

RdShtReal( &Value : number )

Načte z právě otevřeného souboru hodnotu typu shortreal (4 bytes) a vrátí ji v parametru Value.

RdReal( &Value : number )

Načte z právě otevřeného souboru hodnotu typu real (8 bytes) a vrátí ji v parametru Value.

RdStr( &Value : string )

Načítá znaky z právě otevřeného souboru a ukládá je do parametru Value typu string tak dlouho, dokud nenarazí na znak EOF (1AH) nebo LF (10H) nebo na dvojici znaků CR LF (0DH 0AH) nebo dokud není parametr naplněn (tzn. maximálně 255 znaků).

RdSizeStr( &Value : string )

Načte z právě otevřeného souboru řetězec znaků a vrátí ho v parametru Value.
Poznámka: Řetězec znaků je v souboru uložen tak, že vlastnímu řetězci předchází jeden byte, který obsahuje délku řetězce.

WrBool( Value : boolean )

Zapíše do právě otevřeného souboru hodnotu typu boolean (1 byte) obsaženou v parametru Value.

WrShtCard( Value : number )

Zapíše do právě otevřeného souboru hodnotu typu shortcard (1 byte) obsaženou v parametru Value.

WrCard( Value : number )

Zapíše do právě otevřeného souboru hodnotu typu cardinal (2 bytes) obsaženou v parametru Value.

WrLngCard( Value : number )

Zapíše do právě otevřeného souboru hodnotu typu longcard (4 bytes) obsaženou v parametru Value.

WrShtInt( Value : number )

Zapíše do právě otevřeného souboru hodnotu typu shortint (1 byte) obsaženou v parametru Value.

WrInt( Value : number )

Zapíše do právě otevřeného souboru hodnotu typu integer (2 bytes) obsaženou v parametru Value.

WrLngInt( Value : number )

Zapíše do právě otevřeného souboru hodnotu typu longint (4 bytes) obsaženou v parametru Value.

WrShtReal( Value : number )

Zapíše do právě otevřeného souboru hodnotu typu real (4 bytes) obsaženou v parametru Value.

WrReal( Value : number )

Zapíše do právě otevřeného souboru hodnotu typu real (8 bytes) obsaženou v parametru Value.

WrStr( Value : string )

Zapíše do právě otevřeného souboru řetězec znaků (až po znak NUL (00H)) obsažený v parametru Value.
Poznámka: Doporučujeme po této proceduře volat proceduru WrLn().

WrSizeStr( Value : string )

Zapíše do právě otevřeného souboru řetězec znaků (až po znak NUL (00H)) obsažený v parametru Value.
Poznámka: Řetězec znaků je v souboru uložen tak, že vlastnímu řetězci předchází jeden byte, který obsahuje délku řetězce.

WrLn()

Zapíše do právě otevřeného souboru sekvenci CRLF, tj. 0DH 0AH.

WrCharRep( Char : string; Count : number

Zapíše do právě otevřeného souboru počet Count znaků Char.

WrStrAdj( S : string; Length : number )

Zapíše do právě otevřeného souboru formátovaný řetězec znaků.
Poznámka: Je-li parametr kladný je řetězec S zarovnán na délku Length doplněním znaků zleva, je-li parametr záporný, je řetězec S zarovnán na délku Length doplněním znaků zprava.

EOF( &Result : boolean )

V parametru Result vrací informaci, zda bylo při předešlé souborové operaci dosaženo konce souboru.

IOresult( &Result : number )

V parametru Result vrací hodnotu indikující výsledek právě provedené souborové operace. Seznam hodnot a jejich popis:

  00 - NO_ERROR
  01 - ERROR_INVALID_FUNCTION
  02 - ERROR_FILE_NOT_FOUND
  03 - ERROR_PATH_NOT_FOUND
  04 - ERROR_TOO_MANY_OPEN_FILES
  05 - ERROR_ACCESS_DENIED
  06 - ERROR_INVALID_HANDLE
  07 - ERROR_ARENA_TRASHED
  08 - ERROR_NOT_ENOUGH_MEMORY
  09 - ERROR_INVALID_BLOCK
  10 - ERROR_BAD_ENVIRONMENT
  11 - ERROR_BAD_FORMAT
  12 - ERROR_INVALID_ACCESS
  13 - ERROR_INVALID_DATA
  15 - ERROR_INVALID_DRIVE
  16 - ERROR_CURRENT_DIRECTORY
  17 - ERROR_NOT_SAME_DEVICE
  18 - ERROR_NO_MORE_FILES
  19 - ERROR_WRITE_PROTECT
  20 - ERROR_I24_DEVICE_IN_USE
  21 - ERROR_NOT_READY
  22 - ERROR_BAD_COMMAND
  23 - ERROR_CRC
  24 - ERROR_BAD_LENGTH
  25 - ERROR_SEEK
  26 - ERROR_NOT_DOS_DISK
  27 - ERROR_SECTOR_NOT_FOUND
  28 - ERROR_OUT_OF_PAPER
  29 - ERROR_WRITE_FAULT
  30 - ERROR_READ_FAULT
  31 - ERROR_GEN_FAILURE
  32 - ERROR_SHARING_VIOLATION
  33 - ERROR_LOCK_VIOLATION
  34 - ERROR_WRONG_DISK
  35 - ERROR_FCB_UNAVAILABLE
  36 - ERROR_SHARING_BUFFER_EXCEEDED
  50 - ERROR_NOT_SUPPORTED
  51 - ERROR_REM_NOT_LIST
  52 - ERROR_DUP_NAME
  53 - ERROR_BAD_NETPATH
  54 - ERROR_NETWORK_BUSY
  55 - ERROR_DEV_NOT_EXIST
  56 - ERROR_TOO_MANY_CMDS
  57 - ERROR_ADAP_HDW_ERR
  58 - ERROR_BAD_NET_RESP
  59 - ERROR_UNEXP_NET_ERR
  60 - ERROR_BAD_REM_ADAP
  61 - ERROR_PRINTQ_FULL
  62 - ERROR_NO_SPOOL_SPACE
  63 - ERROR_PRINT_CANCELLED
  64 - ERROR_NETNAME_DELETED
  65 - ERROR_NETWORK_ACCESS_DENIED
  66 - ERROR_BAD_DEV_TYPE
  67 - ERROR_BAD_NET_NAME
  68 - ERROR_TOO_MANY_NAMES
  69 - ERROR_TOO_MANY_SESS
  70 - ERROR_SHARING_PAUSED
  71 - ERROR_REQ_NOT_ACCEP
  72 - ERROR_REDIR_PAUSED
  80 - ERROR_FILE_EXISTS
  81 - ERROR_DUP_FCB
  82 - ERROR_CANNOT_MAKE
  83 - ERROR_FAIL_I24
  84 - ERROR_OUT_OF_STRUCTURES
  85 - ERROR_ALREADY_ASSIGNED
  86 - ERROR_INVALID_PASSWORD
  87 - ERROR_INVALID_PARAMETER
  88 - ERROR_NET_WRITE_FAULT

SetShareMode( Read, Write : boolean )

Nastavení režimu sdílení souboru, který určuje, jaké operace mohou s tímto souborem provádět jiné paralelně běžící programy. Toto nastavení využívají procedury Open, OpenRead, Create a Append.
Read - zpřístupnění souboru pro čtení
Write - zpřístupnění souboru pro zápis
Implicitně je nastaven parametr Read na hodnotu true a Write na hodnotu false.

Událostní procedury přístroje

Přístroj může volat standardní událostní proceduru:


OnActivate()

Podrobnější informace k této proceduře lze nalézt v kapitole Programování a procedury.