Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Дані процедури і функції роботи з рядками (на відмінну від процедур і функцій модуля string) використовують стандартні рядки мови Pascal.

Поиск
Назва Призначення
Concat виконує конкатенацію декількох рядків
Copy Повертає підрядок з рядка
Delete видаляє підрядок з рядка
Insert Вставляє підрядок у рядок
Length Повертає поточну довжину рядка
Pos Здійснює пошук підрядка в рядку
Srt перетворює числове значення аргументу в його рядкове представлення
Val перетворює рядковий аргумент в його числове представлення

ПРОЦЕДУРИ ТА ФУНКЦІЇ УПРАВЛІННЯ ДИНАМІЧНОЮ ПАМ’ЯТТЮ

Ці процедури та функції використовуються для управління кучею (Heap-областю) – так називають частину вільної пам'яті, яка залишається при виконанні програми.

Назва призначення
Dispose видаляє динамічну змінну
Freemem видаляє динамічну змінну заданого розміру
Getmem створює нову динамічну змінну заданого розміру
MaxAvail повертає розмір найбільшого неперервного вільного блоку кучі, відповідного розміру найбільшої динамічної змінної, яка може бути розміщена в кучі в час виклику функції
Mark фіксує поточний стан кучі
MemAvail повертає кількість вільних байтів кучі, доступних для використання
New створює нову динамічну змінну
Release Повертає кучу в стан, збережений процедурою mark

ФУНКЦІЇ РОБОТИ З ВКАЗІВНИКАМИ І АДРЕСНІ ФУНКЦІЇ

Ці функції дозволяють отримувати адреси змінних, процедур і функцій програми, а також здійснюють доступ до вмісту ряду регістрів процесора.

Назва призначення
Addr Повертає адресу заданого об’єкта
Assigned Визначає чи рівний вказівник чи процедурна змінна nil
CSeg Повертає поточне значення регістра cs
DSeg Повертає поточне значення регістра ds
Ofs Повертає зміщення заданого об’єкту
Ptr перетворює базову сегментну адресу і зміщення в значення типу pointer
Seg Повертає сегментну адресу заданого об’єкту
SPtr Повертає поточне значення регістра sp
SSeg Повертає поточне значення регістру ss

ПРОЦЕДУРИ ВВОДУ-ВИВОДУ І РОБОТИ З ФАЙЛАМИ І КАТАЛОГАМИ

В модулі System визначені слідуючи процедури і функції управління вводом-виводом і роботи з файлами і каталогами:

Назва Призначення
Append відкриває існуючий файл для доповнення
Assign Зв’язує ім’я зовнішнього файлу з файловою змінною
BlockRead читає один чи декілька записів з нетипізованого файлу
BlockWrite Записує один чи декілька записів в не типізований файл
ChDir встановлює поточний каталог
Close закриває поточний файл
EOF повертає ознаку кінця файлу
EOLn повертає ознаку кінця рядка текстового файлу
Erase Видаляє зовнішній файл
FilePos повертає поточну позицію в типізованому чи не типізованому файлі
FileSize повертає поточний розмір файлу; не використовується для текстових файлів
Flush звільняє буфер вводу-виводу текстового файлу
GetDir повертає поточний каталог вказаного диску
IOResult повертає ціле значення, яке визначає стан останньої виконаної операції вводу-виводу
MkDir Створює підкаталог
Read зчитує одне чи декілька значень з файлу в одну чи декілька змінних відповідно
ReadLn виконує ті ж дії, що і read, і переходить на початок слідую чого рядка текстового файла
Rename перейменування зовнішнього файлу
Reset відкриває існуючий файл для читання
Rewrite створює і одкриває новий файл
RmDir видаляє пустий каталог
Seek встановлює поточну позицію в типізованому чи не типізованому файлі на вказаний елемент; не використовується в текстових файлах
SeekEOF повертає ознаку кінця текстового файлу
SeekEOLn повертає ознаку кінця рядка текстового файлу
SetTextBuf призначає буфер вводу-виводу текстового файлу
Truncate обмежує розмір типізованого чи нетипізованого файлу поточною позицією у файлі
Write записує в текстовий файл одну чи декілька змінних
WriteLn виконує ті ж дії, що і write, а потім добавляє у файл маркер кінця рядка

ІНШІ ПРОЦЕДУРИ І ФУНКЦІЇ

В модулі System визначене також велике число процедур і функцій, які не можна віднести не до однієї з груп, описаних мною раніше.

Назва призначення
Exclude Видаляє елемент з множини
FillChar заповнює задану кількість послідовних байтів змінною вказаного значення (виразом будь-якого порядкового типу)
Hi повертає старший байт аргументу
Include включає елемент в множину
Lo повертає молодший байт аргументу
Move копіює задану кількість послідовних байтів з вихідної області пам'яті в назначену область
ParamCount повертає число параметрів, переданих в програму з командного рядка
ParamStr повертає вказаний параметр командного рядка
Random повертає псевдо-випадкове число
Randomize прив’язує стартове значення функції random до поточного системного часу
SizeOf повертає число байтів, які займає аргумент
Swap Міняє місцями старший і молодший байти двохбайтного аргументу
TypeOf повертає вказівник на таблицю віртуальних методів аргументу типу object
UpCase перетворює рядкову букву в прописну

ЗМІННІ ТА КОНСТАНТИ МОДУЛЯ

Крім процедур і функцій в модулі System описаний ряд раніше оголошених змінних:

Змінна Тип Опис
Input TEXT стандартна файлова змінна, яка визначає прилад вводу. По замовчуванню таким приладом являється клавіатура
Output TEXT стандартна файлова змінна, яка визначає прилад виводу. По замовчуванню таким приладом являється екран
SaveInt00 POINTER змінна для збереження вектора переривання $00
SaveInt02 POINTER Те ж, що $02
SaveInt1B POINTER Те ж, що $1B
SaveInt21 POINTER Те ж, що $21
SaveInt23 POINTER Те ж, що $23
SaveInt24 POINTER Те ж, що $24
SaveInt34 POINTER Те ж, що $34
SaveInt35 POINTER Те ж, що $35
SaveInt36 POINTER Те ж, що $36
SaveInt37 POINTER Те ж, що $37
SaveInt38 POINTER Те ж, що $38
SaveInt39 POINTER Те ж, що $39
SaveInt3A POINTER Те ж, що $3A
SaveInt3B POINTER Те ж, що $3B
SaveInt3C POINTER Те ж, що $3C
SaveInt3D POINTER Те ж, що $3D
SaveInt3E POINTER Те ж, що $3E
SaveInt3F POINTER Те ж, що $3F
SaveInt75 POINTER Те ж, що $75

В момент завантаження середовища Turbo Pascal змінює значення 18 векторів переривання. В змінних SaveIntXX зберігається старі значення цих векторів.

Крім змінних, в модулі System також міститься ряд типізованих констант.

Константа Тип початкове значення Опис
ErrorAddr POINTER NIL адреса помилки виконання
ExitCode INTEGER   код завершення
ExitProc POINTER NIL адреса процедури завершення
FileMode BYTE   Режим доступу до файлу
FileList POINTER NIL вказівник списку вільних блоків кучі
FreeZero POINTER NIL зарезервована
HeapEnd POINTER NIL вказівник на кінець кучі
HeapError POINTER NIL вказівник на функцію обробки помилок кучі
HeapOrg POINTER NIL вказівник на початок кучі
HeapPtr POINTER NIL вказівник кучі
InOutRes INTEGER   буфер результату операції вводу-виводу
OvrCodeList WORD   список оверлейних сегментів
OvrDebugPtr POINTER NIL вказівник відладчика оверлеєв
OvrDosHandle WORD   параметр зв’язку оверлеєв з DOS
OvrEmsHandle WORD $FFFF параметр зв’язку оверлеєв з EMS
OvrHeapEnd WORD   кінець оверлейного буфера
OvrHeapOrg WORD   початок оверлейного буферу
OvrHeapPtr WORD   вказівник оверлейного буферу
OvrHeapSize WORD   початковий розмір оверлейного буферу
OvrLoadList WORD   список завантажених оверлеєв
PrefixSeg WORD   префікс програмного сегменту
RandSeed LONGINT   параметр ініціалізації генератора випадкових чисел
Seg0040 WORD $0040 селектор сегменту $0040
SegA000 WORD $A000 селектор сегменту $A000
SegB000 WORD $B000 селектор сегменту $B000
SegB800 WORD $B800 селектор сегменту $B800
SelectorInc WORD $1000 перетворення селектора
StackLimit WORD   границя стеку
Test8086 BYTE   результат тестування процесора 80х86
Test8087 BYTE   результат тестування процесора 80х87

Змінні OvrCodeList, OvrDebugPtr, OvrDosHandle, OvrEmsHandle, OvrHeapEnd, OvrHeapOrg, OvrHeapPtr, OvrHeapSize і OvrLoadList використовуються модулем Overlay для роботи адміністратора оверлеєв.

Змінні FreeList, HeapEnd, HeapError, HeapOrg, HeapPtr використовується адміністратором кучі для реалізації розподілу динамічної пам'яті.

Змінні ErrorAddr, ExitCode і ExitProc використовується процедурами виходу.

Змінна PrefixSeg являє собою змінну довжиною в слово, яка містить адресу префікса програмного сегменту (PSP), яка створюється при виконанні програми системою DOS.



Поделиться:


Последнее изменение этой страницы: 2016-09-19; просмотров: 275; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.139.235.177 (0.012 с.)