Створення файлу

Функція 16h . Створення і відкриття файла для читання/запису (із використанням FCB) Створює і відкриває новий файл або відкриває наявний файл і обрізає його до нульової довжини. На вході: AH 16h DS:DX Покажчик на невідкритий FCB. На виході: AL 00h , якщо файл створений, FFh , якщо файл нестворений. Обчислювальна мережа: вимагає права доступу до створення. Відкритому файлу привласнюється довжина 0. Таким чином, ця функція використовується для відкриття файлів виводу, у той час як функція 0Fh використовується для відкриття файлів уведення(вводу). Ця функція є застарілою. Краще використовувати для створення файлів функції нового стилю, такі, наприклад, як функція 3Ch.

 

2.Відкриття існуючого файлу

Функція 0Fh. Відкриття файла (із використанням FCB) Відкриває існуючий файл із використанням блоку керування файлами (FCB). На вході: AH 0Fh DS:DX Покажчик на невідкритий FCB . На виході: AL 00h якщо файл успішно відкритий, FFh якщо файл незнайдений . Якщо код дисководу 0 (номер дисководу встановлюється за умовчанням), то ця функція змінить його на номер поточного дисководу, де A=1, B=2, і т.д. Поле довжини запису встановлюється ДОС у 80h (128) байтів. Якщо потрібно використовувати інше значення, то потрібно змінити це поле після того, як файл буде відкрито, і до початку виконання будь-яких операцій із диском. Якщо довжина запису менше 64 байтів, то використовуються всі чотири байти цього поля, інакше використовуються тільки три молодших байти.

 

3.Запис і читання із файлу

Функція 15h . Послідовний запис у файл (із використанням FCB) Заносить запис із буфера передачі даних DTA за адресою, яку одержує зі значень поля поточного блоку і поля поточного запису; потім збільшує значення вмісту цих полів. На вході: AH 15h DS:DX Покажчик на відкритий FCB . На виході: AL 00h , якщо запис був виконаний успішно, 01h , якщо диск переповнений, 02h , якщо буфер передачі даних (DTA) занадто малий. Дані, що повинні бути записані, беруться з поточного буферу передачі даних (DTA). Використовуйте функцію 1Ah для установки DTA. Якщо буфер занадто малий для обробки запису і запис пересланий не цілком, то генерується код помилки 2. Якщо переданий запис не заповнить весь сектор, то ДОС заносить його в буфер для наступної передачі, коли таких записів набереться на цілий сектор. Якщо заданий файл відкритий тільки для читання, то запис не робиться. Функція 14h . Послідовне читання із файла (із використанням FCB) Читає черговий запис із файла, потім збільшує поле поточного блока і поточного запису в FCB. На вході: AH 14h DS:DX Покажчик на відкритий FCB .На виході: AL 00h , якщо читання було успішним,01h , якщо зустрівся знак кінця файла EOF, не було прочитано ніяких даних 02h , якщо буфер передачі даних (DTA) занадто малий і запис пересланий не цілком,03h , якщо зустрівся знак EOF і прочитана частина запису. Дані зчитуються в поточний буфер передачі даних (DTA). Використовуйте функцію 1Ah для установки DTA. Якщо буфер DTA занадто малий, то буде генеруватися код помилки 2. Якщо зустрінеться символ EOF до того, як був прочитаний весь запис цілком, то залишок запису заповнюється на задану довжину нулями.