Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

Функция ReadFile





Эта функция позволяет прочитать данные из файла, открытого в режиме для чтения. У функции ReadFile предусмотрен дополнительный асинхронный режим работы, при использовании которого программа может работать, не дожидаясь, пока завершится операция ввода. Прототип функции:

ReadFile PROTO, Читать в буфер из файла

handle: DWORD, Дескриптор файла

pBuffer: PTR BYTE, Адрес буфера

nBufsize: DWORD, Размер буфера или сколько байтов нужно прочитать

pBytesRead: PTR DWORD, Адрес переменной, в которую записывается реальное количество прочитанных данных

pOverlapped: PTR DWORD Адрес структуры типа OVERLAPPED, предназначенной для синхронизации операций ввода-вывода/

Первый параметр handle— это дескриптор файла, открытого с помощью функции CreateFile. Второй параметр pBuffer содержит адрес буфера, куда будут записываться данные. Параметр nBufsize определяет размер буфера или максимальное количество байтов, которое требуется прочитать из файла. Параметр pBytesRead содержит адрес 32-разрядной переменной, в которую записывается реальное количество прочитанных данных. Последний параметр pOverlapped необязательный. Он содержит адрес структурной переменной типа OVERLAPPED, которая используется для выполнения асинхронного чтения файла. Если используется обычная (синхронная) операция чтения файла, принятая по умолчанию, вместо адреса структуры подставьте вместо параметра pOverlapped нулевоезначение.

Организацию чтения файла и вывода на экран (с использованием wsprintf - преобразования целых чисел в символы) рассмотрим на примере:

(файл создан simple.txt создан в предыдущем примере и содержит четыре целых числа 3, 5, 7, 11).

.586

Model flat, stdcall

option casemap: none

Includelib kernel32.lib

Includelib kernel32.inc

Includelib windows.inc

Includelib user32.inc

Includelib user32.lin

NOFDIG equ 4

DSIZE equ 4

DIGSZ equ 10

BSIZE equ NOFDIG * DSIZE

Data

fname db “simple”, 0

fhandle dd?

cwritten dd?

fmt db “%d”, 0

stdout dd?

cRead dd?

buffer dd BSIZE dup (?)

dig2sim db DIGSZ dup (?)

Code

start:

Invoke GetStdHandle, STD_OUTPUT_HANDLE

Mov stdout, eax

invoke CreateFile, ADDR fname, \ GENERIC_READ, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0

Mov fhandle, eax

Invoke ReadFile, fhandle, ADDR buffer, BSIZE, ADDR cread, NULL

Mov ecx, NOFDIG

Mov esi, 0

next:

Push ecx

invoke wsprintf, ADDR dig2sim, ADDRfmt, buffer[esi]

invoke writeConsole, stdout, ADDR dig2sim, DIGSZ, \

ADDR cwritten, NULL

Add esi, 4

Pop ecx

Loop next

Invoke CloseHandle, fhandle

ExitProcess, 0







Дата добавления: 2014-11-10; просмотров: 662. Нарушение авторских прав; Мы поможем в написании вашей работы!




Шрифт зодчего Шрифт зодчего состоит из прописных (заглавных), строчных букв и цифр...


Картограммы и картодиаграммы Картограммы и картодиаграммы применяются для изображения географической характеристики изучаемых явлений...


Практические расчеты на срез и смятие При изучении темы обратите внимание на основные расчетные предпосылки и условности расчета...


Функция спроса населения на данный товар Функция спроса населения на данный товар: Qd=7-Р. Функция предложения: Qs= -5+2Р,где...

ОЧАГОВЫЕ ТЕНИ В ЛЕГКОМ Очаговыми легочными инфильтратами проявляют себя различные по этиологии заболевания, в основе которых лежит бронхо-нодулярный процесс, который при рентгенологическом исследовании дает очагового характера тень, размерами не более 1 см в диаметре...

Примеры решения типовых задач. Пример 1.Степень диссоциации уксусной кислоты в 0,1 М растворе равна 1,32∙10-2   Пример 1.Степень диссоциации уксусной кислоты в 0,1 М растворе равна 1,32∙10-2. Найдите константу диссоциации кислоты и значение рК. Решение. Подставим данные задачи в уравнение закона разбавления К = a2См/(1 –a) =...

Экспертная оценка как метод психологического исследования Экспертная оценка – диагностический метод измерения, с помощью которого качественные особенности психических явлений получают свое числовое выражение в форме количественных оценок...

Вопрос. Отличие деятельности человека от поведения животных главные отличия деятельности человека от активности животных сводятся к следующему: 1...

Расчет концентрации титрованных растворов с помощью поправочного коэффициента При выполнении серийных анализов ГОСТ или ведомственная инструкция обычно предусматривают применение раствора заданной концентрации или заданного титра...

Психолого-педагогическая характеристика студенческой группы   Характеристика группы составляется по 407 группе очного отделения зооинженерного факультета, бакалавриата по направлению «Биология» РГАУ-МСХА имени К...

Studopedia.info - Студопедия - 2014-2026 год . (0.01 сек.) русская версия | украинская версия