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

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

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




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


ТЕОРЕТИЧЕСКАЯ МЕХАНИКА Статика является частью теоретической механики, изучающей условия, при ко­торых тело находится под действием заданной системы сил...


Теория усилителей. Схема Основная масса современных аналоговых и аналого-цифровых электронных устройств выполняется на специализированных микросхемах...


Логические цифровые микросхемы Более сложные элементы цифровой схемотехники (триггеры, мультиплексоры, декодеры и т.д.) не имеют...

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

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

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

Что такое пропорции? Это соотношение частей целого между собой. Что может являться частями в образе или в луке...

Растягивание костей и хрящей. Данные способы применимы в случае закрытых зон роста. Врачи-хирурги выяснили...

ФАКТОРЫ, ВЛИЯЮЩИЕ НА ИЗНОС ДЕТАЛЕЙ, И МЕТОДЫ СНИЖЕНИИ СКОРОСТИ ИЗНАШИВАНИЯ Кроме названных причин разрушений и износов, знание которых можно использовать в системе технического обслуживания и ремонта машин для повышения их долговечности, немаловажное значение имеют знания о причинах разрушения деталей в результате старения...

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