Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Плещёв ВУМИП 2012-07-06.doc
Скачиваний:
67
Добавлен:
13.05.2015
Размер:
9.35 Mб
Скачать

1.7.9.Специальные процедуры и функции

Assert(E:Boolean[;S])проверка истинности условияEпри отладке прог­раммы. Если это условие ложно, то работа программы прекращается, генерируется исключениеEAssertionFailed(п. 1.6.2) и выводится окно об ошибке с сообщениемS, с именем программного файла и номером строки с этой процедурой. Процедура работает только при включенной директиве {$C+} (п.1.3.5.2). После отладки программы директива отключается{$C‑}.

Пример:Assert(Ukaz=Nil,’Нет значения адреса’);

ExceptAddr:Pointer‑ возвращает адрес сгенерированного исключения. Ес­ли его нет, то возвращаетсяNil.

Halt[(N:Integer)]‑ аварийное завершение программы с кодомN.

Hi/Lo (X):byte‑ возвращает старший/младший байт аргумента X типовInteger,Word.

High/Low (X)‑ возвращает наибольшее/наименьшее значение пере­мен­ной или типаX.

MaxIntValue/MinIntValue (D:Array Of Integer):Integer‑ возвращает мак­си­маль­ное/минимальное значение массива целых чисел.

MaxValue/MinValue (D:Array Of Double):Double‑ возвращает максималь­ное/минимальное значение массива вещественных чисел.

ParamCountвозвращает число аргументов в командной строке.

ParamStr(N:Integer):String‑ возвращает N‑й аргумент командной строки. ПриN=0 возвращается имя исполняемого файла с путем.

SizeOf(X)‑ возвращает число байт, занимаемых аргументом или типомX.

Swap(X)‑ производит перестановку старших и младших байт аргумента X типаIntegerилиWord.

UpCase(C:char):Cr‑ преобразует латинскую букву в прописную.

1.7.10.СообщенияWindows

PostMessage(Handle:HWnd;Msg,wParam:Word;lParam:LongInt):LongInt‑ по­сылка сообщенияMsgс дополнительными параметрамиwParamиlParamокну с дескрипторомHandleна обработку. Функция ставит сообще­ние в очередь на обработку сообщенийWindowsи возвращает управление, не дожидаясь завершения обработки сообщения. При успешном завер­ше­нии фукция возвращает ненулевое значение, иначе - возвращается ноль.

SendMessage(Handle:Hwnd;Msg, wParam:Word;lParam:LongInt):LongInt‑ функция аналогична функцииPostMessage, но ожидает завершения обработки сообщения (п.2.3.3.1).

Вопросы для самопроверки и контроля

Вопросы для самопроверки

  1. Каково назначение функции ShellExecute?

  2. Каково назначение функции InputBox?

Контрольные вопросы

  1. Что возвращает функция ParamCount?

  2. Каково назначение функции Application.MessageBox?

  3. Каково назначение функции ParamStr?

1.8. Файлы

1.8.1. Типы файлов

При работе с файлами имеются три подхода: стандартный, ис­поль­зую­щий стандартные подпрограммы Паскаля (файлы Паскаля), объектный и использующий функции Windows(файлыWindows).

В первом подходе выделяются три типа файлов: типизированные, текстовые и не типизированные.

Общий порядок работы с файлами в любом подходе следующий: открытие файла, обработка и закрытие его.

При стандартном подходе перед открытием файла следует объявить файловую переменную (в описаниях процедур она обозначена буквой F), которая используется в процедурах обработки файла, для ссылки на обрабатываемый файл.

1.8.2. Файлы Паскаля

1.8.2.1. Любые файлы

Нижеперечисленные функции используются в стандартном подходе.AssignFile(F;S)‑ связывание имени файлаSс файловой переменнойF.

CloseFile(F)‑ закрытие открытого файлаF.

Eof(F):Boolean‑ возвращаетTrueпри достижении конца файла.

Erase(F)‑ удаляет с диска файлF.

FilePos(F):longintвозвращает текущую позицию в нетекстовом файлеF. Началу файла соответствует позиция 0.

FileSize(F):Integer‑ возвращает текущий размер нетекстового файла.

IOResult:Integer‑ возвращает код ошибки в последней выполненной опе­ра­ции ввода/вывода: 0 ‑ ошибок нет, 2 ‑ нет файла, 3 - ошибка в имени фай­ла, 4 ‑ много открытых файлов, 5 ‑ файл недоступен, 100 ‑ конец файла, 101 ‑ диск переполнен, 106 ‑ ошибка ввода‑вывода. Используется при ди­рективе компилятора {$I‑} (п.1.3.5.2).

Пример контроля операции открытия файла с помощьюIOResult:

Var F: File of Byte; Begin AssignFile(F, ParamStr(1));

{$I‑}{отключение автоконтроля}Reset(F);{$I+}{включение автоконтроля}

If IOResult>0 Then Begin ShowMessage(‘Ошибка открытия’);Exit; End;End.

Rename(F;S)‑ изменяет имя внешнего файлаFнаS.

Reset(F[;N:Word])‑ открывает существующий файл.N‑ длина записи не‑ типизированного файла (128).

ReWrite(F[;N:Word])‑ создает и открывает новый файлF.N‑ длина записи не типизированного файла (128). Если файл уже существует, то он уничтожается без предупреждения.

Truncate(F)‑ усекает нетекстовый файлFна текущей позиции.