Автор работы: Пользователь скрыл имя, 28 Марта 2012 в 18:55, курсовая работа
В данной пояснительной записке приведено описание алгоритма и исходного кода программы, демонстрирующей возможности ОС по работе с файлами. Разработаны схемы алгоритмов решения задачи. В среде Microsoft Visual Studio 2005 (C++) разработана и отлажена программа, реализующая представленные алгоритмы. Также представлены результаты решения контрольных примеров, выполненные с помощью разработанной программы.
В приложении приведён текст программы.
Описание программы
1.1. Общие сведения о файлах
1.2. Общие сведения о программе
1.3. Функциональное назначение
1.4. Описание логической структуры
1.5. Структурная схема основной программы
1.6. Описание элементов программы
2. Программа в процессе работы
2.1. Создание и редактирование файлов
2.2. Копирование, переименование и удаление файлов
2.3. Поиск файлов
2.4. Просмотр и изменение атрибутов файлов
2.5. Создание ссылок на файлы
2.6. Получение информации о файле
3. Заключение
4. Список используемой литературы
5. Приложение
- 20 -
- 20 -
Элемент | Тип | Исполняемая функция |
1 | Ресурс (Menu) | Содержит все основные функции, реализованные в программе |
2 | Кнопка (Button) | Позволяет создавать новый файл (CreateFile(buf,GENERIC_READ| |
3 | Кнопка (Button) | Позволяет редактировать открытый файл (ReadFile(hF,&b,sizeof(b),& |
4 | Кнопка (Button) | Позволяет копировать открытый файл (CopyFile(buf,buffer,FALSE)) |
5 | Кнопка (Button) | Позволяет переименовывать открытый файл (MoveFile(buf,buffer)) |
6 | Кнопка (Button) | Удаляет открытый файл (DeleteFile(buf)) |
7 | Кнопка (Button) | Позволяет открыть существующий файл (GetOpenFileName(&of)) |
8 | Текстовое поле (Edit Control) | Позволяют выводить различные данные о файле (адрес на диске, атрибуты, информацию и т.д.) и служит полем для редактирования файла |
9 | Кнопка (Button) | Позволяет выполнять поиск файлов (FindFirstFile(szDir, &ffd); FindNextFile(hFind,&ffd)) |
10 | Кнопка (Button) | Позволяет создавать ссылки на открытый файл (CreateHardLink (bufff, buf, NULL )) |
11 | Кнопка (Button) | Выводит атрибуты открытого файла (GetFileAttributes(buf)) |
12 | Переключатель (Radio Button) | Позволяют изменять атрибуты открытого файла (SetFileAttributes(buf,FILE_ SetFileAttributes(buf,FILE_ SetFileAttributes(buf,FILE_ SetFileAttributes(buf,FILE_ |
13 | Кнопка (Button) | Отменяет всё установленные атрибуты у открытого файла (SetFileAttributes(buf,FILE_ |
14 | Кнопка (Button) | Выводит информацию об открытом файле (GetFileInformationByHandle( |
15 | Кнопка (Button) | Позволяет сохранить отредактированный файл (WriteFile(hFile,buffer,sizeof |
16 | Кнопка (Button) | Очищает текстовое поле (SetWindowText(GetDlgItem( |
17 | Кнопка (Button) | Осуществляет выход из программы |
Осуществлена разработка приложения «FileMen»
В данной пояснительной записке выполнены анализ требований, проектирование и реализация программных средств, которые являются необходимыми этапами разработки программного обеспечения.
В итоге разработано приложение, предназначенное для работы с файлами.
Приведенные выше скриншоты показали, что программа корректно выполняет заданные функции.
1)П.В.Румянцев
РАБОТА С ФАЙЛАМИ В WIN 32 API
2)Ч. Петзолд
Программирование
для Windows® 95
3)Александр Побегайло
СИСТЕМНОЕ ПРОГРАММИРОВАНИЕ в
WINDOWS
4)К.Г. ФИНОГЕНОВ
WIN 32
ОСНОВЫ ПРОГРАММИРОВАНИЯ
5)Р. М. Ганеев
Проектирование интерфейса пользователя средствами Win32 api
6)Юрий Щупак
ДЛЯ ПРОФЕССИОНАЛОВ
Win32 API
Эффективная разработка
приложений
- 20 -
#define _WIN32_WINNT 0x500
#include <windows.h>
#include "resource.h"
#include <direct.h>
#include <crtdbg.h>
#include <stdio.h>
char buffer[512],buf[512];
char filename[MAX_PATH+1],file_
WIN32_FIND_DATA ffd;
HANDLE hFile,hF,hFi;
HANDLE hFind = INVALID_HANDLE_VALUE;
DWORD dwByte,dwBytesRead,dwFileSize;
BY_HANDLE_FILE_INFORMATION bhfi;
LARGE_INTEGER filesize;
TCHAR szDir[MAX_PATH];
SYSTEMTIME st;
int CALLBACK MyDlgProc(HWND hwnd,UINT msg,WPARAM wp,LPARAM lp)
{
switch(msg)
{
case WM_COMMAND:
switch(LOWORD(wp))
{
case IDCANCEL:
return EndDialog(hwnd,IDCANCEL);
case ID_NEW:
{ DialogBox(0,MAKEINTRESOURCE(
break;
}
case ID_NEW_1:
{
for(int i=0;i<sizeof(buf);*(buf+i)=0,
MessageBox(hwnd,"Введите имя файла!","Ошибка",MB_OK);
else
{ if(INVALID_HANDLE_VALUE!=(
{
MessageBox(hwnd,"Файл успешно создан!","Готово",MB_OK);
CloseHandle(hFile);
EndDialog(hwnd,0);
}
else break;
}
break;
}
case ID_OTKR:
{
OPENFILENAME of;
char initialdir[MAX_PATH+1];
getcwd(initialdir,MAX_PATH+1);
memset(&of,0,sizeof(of));
of.lStructSize=sizeof(of);
of.lpstrFilter= "Текстовые файлы (*.txt)\0*.txt\0"
"Все файлы (*.*)\0*.*\0";
of.nFilterIndex=2;
of.nMaxCustFilter=100;
buf[0]='\0';
of.lpstrFile=buf;
of.nMaxFile=MAX_PATH+1;
of.lpstrInitialDir=initialdir;
of.lpstrTitle="Диалог открытия файла";
if(GetOpenFileName(&of)!=0)
{
InvalidateRect(hwnd,NULL,TRUE)
SetDlgItemText(HWND (hwnd),IDC_EDIT2,0);
SetWindowText(GetDlgItem(hwnd,
EnableWindow(GetDlgItem(hwnd,
}
break;
}
case ID_SSILKI:
{
if(GetWindowText(GetDlgItem(
else
MessageBox(hwnd,"Не загружен исходный файл!","Ошибка",MB_OK);
break;
}
case ID_SSILKI_1:
{
char bufff[512];
if(GetWindowText(GetDlgItem(
{
CreateHardLink (bufff, buf, NULL );
MessageBox(hwnd,"Ссылка успешно создана!","Готово",MB_OK);
EndDialog(hwnd,0);
}
else
MessageBox(hwnd,"Введите имя файла!","Ошибка",MB_OK);
break;
}
case ID_DELET:
{
EnableWindow(GetDlgItem(hwnd,
GetWindowText(GetDlgItem(hwnd,
if(DeleteFile(buf))
{
MessageBox(hwnd,"Файл успешно удален!","Готово",MB_OK);
SetWindowText(GetDlgItem(hwnd,
SetWindowText(GetDlgItem(hwnd,
}
else
MessageBox(hwnd,"Невозможно удалить файл!","Ошибка",MB_OK); break;
}
case ID_REDAKT:
{
char b[4096];
SetFocus(GetDlgItem(hwnd,IDC_
EnableWindow(GetDlgItem(hwnd,
for(int i=0;i<sizeof(b);*(b+i)=0,i++);
if(GetWindowText(GetDlgItem(
MessageBox(hwnd,"Не загружен файл!","Ошибка",MB_OK);
else
{
SetWindowText(GetDlgItem(hwnd,
hF = CreateFile(buf,GENERIC_READ,0,
if(ReadFile(hF,&b,sizeof(b),&
{