Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Паскаль / tp3 / tp3 / 24.doc
Скачиваний:
26
Добавлен:
10.12.2013
Размер:
175.62 Кб
Скачать

Var f : text;

begin

Assign(f,''); { стандартный вывод }

Rewrite(f);

Writeln(f,'стандартный вывод...');

Close(f);

end;

Функция AssignCrt Модуль WinCrt

─────────────────────────────────────────────────────────────────

Назначение: Связывает текстовый файл с окном CRТ.

Описание: AssignCrt(var f: Text)

Примечания: Процедура AssignCrt работает точно также, как стандартная процедура Assing, за исключением того, что имени файла не указывается. Вместо этого текстовый файл связывается с окном CRТ. Последующие операции Write и Writeln для этого файла будут приводить к выводу в окно CRT, а операции Read и Readln - к чтению из окна CRT.

Процедура BlockRead

─────────────────────────────────────────────────────────────────

Назначение: Считывает одну или более записей в переменную.

Описание: ВlockRеаd(var f : файл; var Buff; Count : word [; Result : word ])

Примечания: Параметр f представляет собой файловую переменную, Buff (буфер) - любая переменная, Count (счетчик) - выражение длиной в слово и Result (результат) - это также переменая длиной в слово.

Данная процедура считывает записи, количество которых не превосходит числа, указанного в переменной Count, начиная с первого байта, занятого переменной Buff. Действительное число полных считанных записей (меньшее или равное значению переменной Count) возвращается в необязательном параметре Result. Если этот параметр не задан, то в том случае, когда число прочитанных записей не будет совпадать со значением переменной Count, произойдет ошибка ввода-вывода.

Весь размер переданного блока не превышает числа байт, определяемых произведением значения переменной Count и длины записи, указываемой при открытии файла (по умолчанию 128). Если это произведение превышает 65535 (64К байта), то возникает ошибка.

Параметр Result является необязательным. Он работает следующим образом. Если был передан весь блок, то при возврате управления в параметре Result будет содержаться то же значение, что и в переменной Count. В противном случае значение параметра Result будет меньше: до того, как успела завершиться передача, был обнаружен символ конца файла. В этом случае, если размер записи файла превышает единицу, то в параметре Result возвращается число полных прочитанных записей. Таким образом, возможная неполная последняя запись не учитывается в параметре Result.

В результате выполнения процедуры ВlockRеаd текущая позиция в файле продвигается на число записей, заданных переменной Result.

При использовании директивы компилятора {$I-} функция IОRеsult будет возвращать 0, если операция завершилась успешно и ненулевой код ошибки в противном случае.

Ограничения: Файл должен быть открыт.

Прочее: См. также процедуру ВlockWritе.

Пример:

program CopyFile;

{ Простая программа быстрого копирования файлов без

проверки на возникновение ошибок }

var

FromF, ToF, : file;

NumRead, NumWritten : word;

buf : array[1..2048] of char;

begin

Assign(FromF, ParamSrt(1)); { открыть входной файл }

Reset(FromF); { размер записи - 1 }

Assign(ToF, ParamStr(2)); { открыть выходной файл }

Rewrite(ToF, 1); { размер записи = 1 }

Writeln('Копирование ',FileSize(FromF),' байт...');

repeat

BlockRead(FromF, buf, SizeOf(buf), NumberRead);

BlockWrite(ToF, buf, NumberRead, NumWritten);

until (NumRead = 0) or (NumWitten <> NumRead);

Close(FromF);

Close(ToF);

end.

Процедура BlockWrite

─────────────────────────────────────────────────────────────────

Назначение: Записывает одну или более записей из переменной.

Описание: ВlockWritе(var f : File; var Buff; Count : word [; Result : word ])

Примечания: Параметр f представляет собой нетипизованную файловую переменную, Buff (буфер) - любая переменная, Count (счетчик) - выражение длиной в слово и Result (результат) - это также переменая длиной в слово (т. е. имеет тип word).

Данная процедура записывает записи, количество которых не превосходит числа, указанного в переменной Count, начиная с первого байта, занятого переменной Buff. Действительное число полных записанных записей (меньшее или равное значению переменной Count) возвращается в необязательном параметре Result. Если этот параметр не задан, то в том случае, когда число записанных записей не будет совпадать со значением переменной Count, произойдет ошибка ввода-вывода.

Весь размер переданного блока не превышает числа байт, определяемых произведением значения переменной Count и длины записи, указываемой при открытии файла (по умолчанию 128). Если это произведение превышает 65535 (64К байта), то возникает ошибка.

Параметр Result является необязательным. Он работает следующим образом. Если был передан весь блок, то при возврате управления в параметре Result будет содержаться то же значение, что и в переменной Count. В противном случае значение параметра Result будет меньше: до того, как успела завершиться передача, диск переполнился. В этом случае, если размер записи файла превышает единицу, то в параметре Result возвращается число полных записанных записей. Таким образом, возможная неполная остающаяся последняя запись не учитывается в параметре Result.

В результате выполнения процедуры ВlockWritе текущая позиция в файле продвигается на число записей, заданных переменной Result.

При использовании директивы компилятора {$I-} функция IОRеsult будет возвращать 0, если операция завершилась успешно и ненулевой код ошибки в противном случае.

Ограничения: Файл должен быть открыт.

Прочее: См. также процедуру ВlockRead.

Пример: См. пример для процедуры ВlockRеаd.

Процедура ChDir

─────────────────────────────────────────────────────────────────

Назначение: Выполняет смену текущего каталога.

Описание: ChDir(s : string)

Примечания: Параметр s представляет собой выражение строкового типа. Текущий каталог изменяется на тот, который задается с помощью маршрута, указанного в параметре s. Если в параметре s задается буквенная метка дисковода, то текущий дисковод также изменяется.

При использовании директивы компилятора {$I-} функция IОRеsult будет возвращать 0, если операция завершилась успешно и ненулевой код ошибки в противном случае.

Прочее: См. также процедуры GetDir, RmDir, MkDir.

Пример:

begin

{$I-}

{ Получить из командной строки имя каталога }

ChDir(ParamStr(1));

if IOResult <> 0 then

Writeln('Каталог не найден');

end.

Процедура Chr

─────────────────────────────────────────────────────────────────

Назначение: Возвращает символ, соответствующий указанному значению кода ASCII.

Описание: Chr(x : byte)

Примечания: Параметр x - это выражение целого типа. Результатом является символ с порядковым значением (значением кода ASСII) x.

Прочее: См. также процедуру Оrd.

Пример:

uses WinCrt;

var

I: Integer:

begin

for I := 32 to 255 do Write(Chr(I));

end.

Процедура Close

─────────────────────────────────────────────────────────────────

Назначение: Закрывает открытый файл.

Описание: Close(f)

Примечания: Параметр f представляет собой файловую переменную любого типа файла, который был предварительно открыт с помощью процедур Rеset, Rеwrite или Аppеnd. Для внешнего файла, связанного с переменной f полностью выполняется его обновление и затем он закрывается, после чего файловый описателль DOS данного файла освобождается для последующего использования.

При использовании директивы компилятора {$I-} IОRеsult будет возвращать 0, если операция завершилась успешно и ненулевой код ошибки в противном случае.

Прочее: См. также процедуры Append, Assign, Reset, Rewrite.

Пример:

Соседние файлы в папке tp3