26
3.2. Съставни (структурирани) типове данни
В Pascal не се налагат никакви ограничения върху типа на компонентите, но в
UniPascal не се разрешава типът на компонентите да е файлов. Освен това не трябва
типът на компонентата да е от тип указател или структура, съдържаща указатели.
Въпреки че такава проверка не се прави, крайно опасно е да се използват такива
файлове, защото при прочитане от този файл на указателя, то той вероятно ще има
неправилна стойност.
В UniPascal е възможно да не се укаже типът на компонентите на файла (като се
изпусне ключовата дума 'of' заедно с типа на компонентите). Такива файлове се наричат
нетипизирани и служат за осъществяване на специален достъп към външен файл.
Мнозинството реализации се различават в работата с файлове, тъй като в
стандарта на Pascal не са дефинирани достатъчно процедури за работа с файлове, както
и неяснотата на връзката между променливата, обозначаваща файл, и реално
съществуващите в операционната система файлове.
В UniPascal са дефинирани следните операции с файлове:
*
RESET - отваряне на съществуващ файл за четене;
*
REWRITE - създаване на нов файл (отваряне за запис);
*
APPEND - отваряне на съществуващ файл (или създаване на такъв, ако не
съществува) за запис в края му (добавяне към файла);
*
OPEN - отваряне на файл за едновременно четене и запис (обновяване), не
се разрешава използването й с текстови файлове;
*
CLOSE - затваряне на файл, прекъсва връзката между файловата
променлива и реално съществуващия файл;
*
EOF - проверка за край на файл;
*
EOLN - проверка за край на ред, разрешена е само за текстови файлове;
*
READ - прочитане на една или няколко компоненти, не се разрешава
използването й с нетипизирани файлове;
*
WRITE - записване на една или няколко компоненти, не се разрешава
използването й с нетипизирани файлове;
*
READLN - прочитане на една или няколко компоненти с последващо
пропускане на реда, използва се само с текстови файлове;
*
WRITELN - записване на една или няколко компоненти с последващо
преминаване на нов ред, използва се само с текстови файлове;
*
SEEK - позициониране във файл, не се разрешава използването й с текстови
файлове;
*
FILESIZE - получаване на размера на файла, не се разрешава използването
й с текстови файлове;
*
FILEPOS - получаване на номера на текущата компонента на файла, не се
разрешава използването й с текстови файлове;
*
BLOCKREAD - четене от нетипизиран файл;
*
BLOCKWRITE - запис в нетипизиран файл.
По-подробно описание за всяка една от тях можете да намерите в приложението,
описващо стандартните процедури и функции.
Важна разлика между UniPascal и стандартния Pascal е, че в UniPascal не
съществуват стандартните процедури GET и PUT, както и буферна променлива,
свързана с файла.
<<  <  GO  >  >>

Вернуться к началу сайта