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

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

Функция 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. Нарушение авторских прав; Мы поможем в написании вашей работы!




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


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


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


Обзор компонентов Multisim Компоненты – это основа любой схемы, это все элементы, из которых она состоит. Multisim оперирует с двумя категориями...

Примеры задач для самостоятельного решения. 1.Спрос и предложение на обеды в студенческой столовой описываются уравнениями: QD = 2400 – 100P; QS = 1000 + 250P   1.Спрос и предложение на обеды в студенческой столовой описываются уравнениями: QD = 2400 – 100P; QS = 1000 + 250P...

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

Педагогическая структура процесса социализации Характеризуя социализацию как педагогический процессе, следует рассмотреть ее основные компоненты: цель, содержание, средства, функции субъекта и объекта...

Дренирование желчных протоков Показаниями к дренированию желчных протоков являются декомпрессия на фоне внутрипротоковой гипертензии, интраоперационная холангиография, контроль за динамикой восстановления пассажа желчи в 12-перстную кишку...

Деятельность сестер милосердия общин Красного Креста ярко проявилась в период Тритоны – интервалы, в которых содержится три тона. К тритонам относятся увеличенная кварта (ув.4) и уменьшенная квинта (ум.5). Их можно построить на ступенях натурального и гармонического мажора и минора.  ...

Понятие о синдроме нарушения бронхиальной проходимости и его клинические проявления Синдром нарушения бронхиальной проходимости (бронхообструктивный синдром) – это патологическое состояние...

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