Ассемблер и программирование для IBM PC



         

ГЛАВА 17. Дисковая память III: Расширенные функции DOS - часть 6


Ассемблер для IBM PC. Глава 17. 6

Так как DOS ограничивает число одновременно открытых файлов, то программа, успешно отработавшая с несколькими файлами, должна закрывать их.

ПРОГРАММА: ИСПОЛЬЗОВАНИЕ ФАЙЛОВОГО НОМЕРА ДЛЯ ЧТЕНИЯ ФАЙЛА ------------------------------------------------------------ На рис.17.3 приведена программа, которая читает файл, созданный предыдущей программой (см.рис.17.2) и отсорти рованный командой DOS SORT. Для открытия файла используется функция шест.3D. Полученный в результате файловый номер заносится в поле HANDLE и используется затем в функции шест.3F для чтения файла. В программе нет необходимости переносить курсор на новую строку, так как записи содержат в конце символы "возврат каретки" и "новая строка".

ASCII-ФАЙЛЫ (ФАЙЛЫ В ФОРМАТЕ ASCII) ------------------------------------------------------------ В предыдущих примерах были показаны операции создания и чтения файлов. Аналогичным образом можно обрабатывать ASCII- файлы (текстовые файлы), созданные DOS или редактором. Для этого необходимо знать организацию оглавления и таблицы FAT, а также способ записи данных в сектор диска, используемый системой. Система DOS записывает, например, ASM-файл в точ ном соответствии с вводом с клавиатуры, включая символы табу ляции (шест.09), возврат каретки (шест.OD) и конец строки (шест.OA). Для экономии дисковой памяти DOS не записывает пробелы, которые находятся на экране и предшествуют символу табуляции, и пробелы, находящиеся в строке справа от символа "возврат каретки". Следующий пример иллюстрирует ассемб лерную команду, как она может выглядеть на экране:

<tab>MOV<tab>AH,09<return>

------------------------------------------------------------ ------------------------------------------------------------ Рис.17.3. Использование файлового номера для чтения файла.

Для такой строки содержимое ASCII-файла будет:

094D4F560941482C30390D0A

Когда программа TYPE или редактор читают файл и выводят на экран символы "табуляция", "возврат каретки" и "конец строки" автоматически выравнивают данные. Рассмотрим программу, приведенную на рис.17.4, которая читает и выводит на экран файл HANREAD.ASM (пример на рис. 17.3) по секторам. Если программа HANREAD уже введена и проверена, то можно просто скопировать ее в файл с новым именем.




Содержание  Назад  Вперед