Лабораторная работа №1 Функции Win32 api для работы с файлами Лабораторный практикум Математический факультет



Скачать 69.95 Kb.
Дата12.01.2013
Размер69.95 Kb.
ТипЛабораторная работа
ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ

КЕМЕРОВСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ

Кафедра ЮНЕСКО по Новым информационным технологиям

СИСТЕМНОЕ И ПРИКЛАДНОЕ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ.
ЛАБОРАТОРНАЯ РАБОТА №1
Функции Win32 API для работы с файлами

Лабораторный практикум


Математический факультет

Специальность 010501 – Прикладная математика

Кемерово, 2011
  1. Цель работы:


Создать приложение, в котором работа с файлами и каталогами организована через системные вызовы (функции Win32 API).
  1. Методические указания


Лабораторная работа должна быть реализована в системе программирования Microsoft Visual Studio (C++).
  1. Теоретический материал


Основные функции Win32 API используемые для работы с файлами и каталогами:

  1. CreateFile – создание или открытие файла

  2. DeleteFile – удаление файла

  3. CloseHandle – закрытие файла

  4. ReadFile – чтение из файла

  5. WriteFile – запись в файл

  6. LockFile – блокировка файла

  7. UnlockFile – разблокировка файла

  8. FindFirstFile – поиск первого файла по заданному имени или маске

  9. FindNextFile – поиск каждого последующего файла по заданной маске

  10. FindClose – завершение поиска

  11. SetFilePointer – установка указателя в файле

  12. CreateDirectory – создание каталога

  13. RemoveDirectory – удаление пустого каталога


Примечание:

    • удаление каталога, поскольку функция RemoveDirectory удаляет лишь пустые каталоги. Реализовать функцию удаления любых каталогов с использованием рекурсии или стеков на основе функций RemoveDirectory, FindFirstFile, FindNextFile, FindClose и DeleteFile;

    • При создании проекта необходимо использовать библиотеку kernel32.lib;

    • в исходном файле подключать заголовочные файлы: (include “windows.h”, “winbase.h”).


Создание файла: функция CreateFile (подробное описание функции в книге [1] на стр.
47)


HANDLE CreateFile(

LPCTSTR lpFileName, // pointer to name of the file

DWORD dwDesiredAccess, // access (read-write) mode

DWORD dwShareMode, // share mode

LPSECURITY_ATTRIBUTES lpSecurityAttributes,

// pointer to security attributes

DWORD dwCreationDisposition, // how to create

DWORD dwFlagsAndAttributes, // file attributes

HANDLE hTemplateFile // handle to file with attributes to

// copy

);

Параметры вызова функции CreateFile:

lpFileName – указатель на имя файла, который требуется открыть или создать. Указатель содержит путь к файлу.

dwDesiredAccess – параметр, определяет какие действия можно производить с содержимым файла.

Константы значений:

0

чтение информации о файле

GENERIC_READ

разрешено чтение из файла

GENERIC_WRITE

разрешена запись в файл

GENERIC_READ | GENERIC_WRITE

разрешено чтение из файла и запись в файл


dwShareMode – параметр, определяет права по совместному доступу разных процессов к файлу.

Константы значений:

0

чтение информации о файле

FILE_SHARE_READ

разрешено чтение из файла

FILE_SHARE_WRITE

разрешена запись в файл

FILE_SHARE_READ | FILE_SHARE_WRITE

разрешено чтение из файла и запись в файл


lpSecurityAttributes – параметр, защиты файла. Значение NULL означает, что защита не требуется.

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

Константы значений:

CREATE_NEW

Создается новый файл. Если файл существует, то функция завершается с ошибкой.

CREATE_ALWAYS

Создается новый файл. Если файл существует, то он перезаписывается.

OPEN_EXISTING

Открывается существующий файл. Если файл не существует, то функция завершается с ошибкой.

OPEN_ALWAYS

Открывается существующий файл. Если файл не существует, то создается новый файл.


dwFlagsAndAttributes – параметр, указывает атрибуты и флаги для файла. Флаги можно комбинировать друг с другом.

Константы значений: [1], стр.50.

hTemplateFile – параметр указывает HANDLE уже открытого файла или NULL.
Пример: Программа создания и закрытия файла.


Запись данных в файл: функция WriteFile (подробное описание функции в книге [1] на стр.56)

BOOL WriteFile(

HANDLE hFile, // указатель на имя файла

LPVOID lpBuffer, // указатель на буфер записываемых данных

DWORD nNumberOfBytesToRead, // количество записываемых байт

LPDWORD lpNumberOfBytesRead, // количество записанных байт

LPOVERLAPPED lpOverlapped // NULL

);

Чтение данных из файла: функция ReadFile (подробное описание функции в книге [1] на стр.55)

BOOL ReadFile(

HANDLE hFile, // указатель на имя файла

LPVOID lpBuffer, // указатель на буфер для получаемых данных

DWORD nNumberOfBytesToRead, // количество запрашиваемых байт

LPDWORD lpNumberOfBytesRead, // количество считанных байт

LPOVERLAPPED lpOverlapped // NULL

);



Пример: Программа записи и чтения из файла.


Создание каталога: функция CreateDirectory (подробное описание функции в книге [1] на стр.40)

BOOL CreateDirectory(

LPCTSTR lpPathName, // указатель на имя каталога

LPSECURITY_ATTRIBUTES lpSecurityAttributes // указатель защиты (NULL)

);


Удаление каталога: функция RemoveDirectory (подробное описание функции в книге [1] на стр.40)

BOOL RemoveDirectory(

LPCTSTR lpPathName, // указатель на имя каталога

);


Пример: Программа создания и удаления каталога.


Работа со строками

Имена файлов и каталогов в функции Win32 API передаются как указатели на переменную типа wchar_t.

Для работы со строками и строковыми переменными необходимо подключить следующие заголовочные файлы и библиотеки:

#include

#include

using namespace std;
После этого можно использовать операторы win и wout для ввода строки с клавиатуры и вывода на экран, соответственно.

Пример:

wchar_t wcNewDirName[50];
wcout << "Enter name new directory: ";

wcin >> wcNewDirName;
Пример: объединения двух строк для задания имени файла
wchar_t wcDirName[50],wcCurDirName[50],wcNewDirName[50];

wcscpy_s(wcCurDirName,L"c:\\work\\CreateDirectory\\");

wcscpy_s(wcDirName,wcCurDirName); // Копирование одной строки в другую

wcscat_s(wcDirName,wcNewDirName); // Добавление второй строки к первой
Пример: преобразование типов
wchar_t wcDirName[50]; // Переменная - имя директории

wchar_t *lpBuffer; // Указатель на wcDirName

LPSECURITY_ATTRIBUTES lpSecurityAttributes; lpSecurityAttributes=NULL;
lpBuffer=wcDirName; // Задание указателя на имя директории

LPCTSTR lpDirName=(LPCTSTR) lpBuffer; // Преобразование к типу LPCTSTR

CreateDirectory(lpDirName,lpSecurityAttributes);

  1. Порядок выполнения работы


  • Изучить предлагаемый теоретический материал.

  • Создать программу, реализующую функции Win32 API работы с файлами и каталогами (согласно варианту).


Требования к приложению:

Для работы с приложение должно быть создано меню, содержащее следующие пункты:

  1. Функция №1;

  2. Функция №2;

  3. Выход.

При выборе каждого пункта программа запрашивает путь к создаваемому объекту (файлу или каталогу) и его имя.
Варианты задания:

1. Программа выполняет функции создания файлов и копирования данных из одного файла в другой.

2. Программа выполняет функции удаления файлов и пустых каталогов.

3. Программа выполняет функции создания файлов и каталогов.

4. Программа выполняет функции создания и удаления файлов.

5. Программа выполняет функции создания и удаления каталогов.

6. Программа выполняет функции поиска файлов и каталогов, по заданной маске.

7. Программа выполняет вывод на экран содержимого текстового файла.

8. Программа выполняет функцию копирования данных из одного файла в другой.

9. Программа выполняет функцию удаления непустого каталога.

10. Программа выполняет вывод на экран списка всех файлов заданного каталога.

  1. Литература:


  1. Румянцев П.В. Работа с файлами в Win32 API.

  2. Щупак Ю. А. Win32 API. Эффективная разработка приложений. – СПб.: Питер, 2007. — 572 с.






Похожие:

Лабораторная работа №1 Функции Win32 api для работы с файлами Лабораторный практикум Математический факультет iconЛабораторная работа №9 Синхронизация процессов и потоков в Windows nt/2000/ХР
Цель: Научиться использовать функции Win32 api предназначенные для синхронизации процессов и потоков в Windows nt/2000/ХР
Лабораторная работа №1 Функции Win32 api для работы с файлами Лабораторный практикум Математический факультет iconЛабораторная работа №1 36 Лабораторная работа №2 47 введение данное учебно-методическое пособие представляет собой сборник лабораторных работ
Предлагаемый лабораторный практикум является руководством для выполнения лабораторных работ. Практикум охватывает основные темы дисциплины....
Лабораторная работа №1 Функции Win32 api для работы с файлами Лабораторный практикум Математический факультет iconПрактикум по дисциплине «информатика» для студентов направлений 230100. 62 «Информатика и вычислительная техника»
Лабораторная работа Команды работы с дисками, файлами и каталогами ос ms dos 9
Лабораторная работа №1 Функции Win32 api для работы с файлами Лабораторный практикум Математический факультет iconЭлектро магнетизм лабораторный практикум п ермь 2004 удк 53(07) : 378 электромагнетизм : Лабораторный практикум
Практикум предназначен для студентов дневной, заочной и дистанционной форм обучения
Лабораторная работа №1 Функции Win32 api для работы с файлами Лабораторный практикум Математический факультет iconМеханика лабораторный практикум Пермь, 2004 удк 53(07): 378 механика: лабораторный практикум
Практикум предназначен для студентов дневной, заочной и дистанционной форм обучения
Лабораторная работа №1 Функции Win32 api для работы с файлами Лабораторный практикум Математический факультет iconЛабораторная работа №3 61 Задания для самостоятельного решения 67 введение данное учебно-методическое пособие представляет собой сборник лабораторных работ
Предлагаемый лабораторный практикум является руководством для выполнения лабораторных работ. Практикум охватывает основные темы дисциплины....
Лабораторная работа №1 Функции Win32 api для работы с файлами Лабораторный практикум Математический факультет iconЛабораторная работа № Проверка статистической гипотезы о виде распределения
Молодежная школа. Прикладные методы статистического анализа. Лабораторный практикум
Лабораторная работа №1 Функции Win32 api для работы с файлами Лабораторный практикум Математический факультет iconЛабораторная работа №1 цель работы: ознакомиться и научиться работать с файлами в среде Турбо Паскаля. Работа с файлами
Под файлом понимается либо именованная область внешней памяти пк (жёсткого диска,гибкой дискеты, электронного «виртуального» диска),...
Лабораторная работа №1 Функции Win32 api для работы с файлами Лабораторный практикум Математический факультет iconПрактикум по курсу "Информатика" для студентов заочной формы обучения
Лабораторный практикум включает работы по следующим темам: алгоритмизация и программирование циклических процессов и известным и...
Лабораторная работа №1 Функции Win32 api для работы с файлами Лабораторный практикум Математический факультет iconIii. Лабораторный практикум Лабораторная работа №1 изучение статистических закономерностей
Моделирование нормального распределения случайной величи-ны на примере измерения сопротивлений резисторов. Освоение методики статистической...
Разместите кнопку на своём сайте:
ru.convdocs.org


База данных защищена авторским правом ©ru.convdocs.org 2016
обратиться к администрации
ru.convdocs.org