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

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

Функция 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Р,где...


Аальтернативная стоимость. Кривая производственных возможностей В экономике Буридании есть 100 ед. труда с производительностью 4 м ткани или 2 кг мяса...


Вычисление основной дактилоскопической формулы Вычислением основной дактоформулы обычно занимается следователь. Для этого все десять пальцев разбиваются на пять пар...


Расчетные и графические задания Равновесный объем - это объем, определяемый равенством спроса и предложения...

Случайной величины Плотностью распределения вероятностей непрерывной случайной величины Х называют функцию f(x) – первую производную от функции распределения F(x): Понятие плотность распределения вероятностей случайной величины Х для дискретной величины неприменима...

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

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

Конституционно-правовые нормы, их особенности и виды Характеристика отрасли права немыслима без уяснения особенностей составляющих ее норм...

Толкование Конституции Российской Федерации: виды, способы, юридическое значение Толкование права – это специальный вид юридической деятельности по раскрытию смыслового содержания правовых норм, необходимый в процессе как законотворчества, так и реализации права...

Значення творчості Г.Сковороди для розвитку української культури Важливий внесок в історію всієї духовної культури українського народу та її барокової літературно-філософської традиції зробив, зокрема, Григорій Савич Сковорода (1722—1794 pp...

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