1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
| #include <iostream>
#include <windows.h>
using namespace std;
int menu();
void fopen_fgets();
void fopen_fputs();
void read_file();
void write_file();
void move_file();
void copy_file();
void delete_file();
void get_current_directory();
void set_current_directory();
void create_directory();
FILE* fp;
char str[80];
char filename[80];
TCHAR Buffer[256], Buffer2[256], Buffer3[256];
DWORD dwNumberOfBytes;
TCHAR stdPath[30];
BOOL pr;
TCHAR stdPathA[30] = TEXT(filenameFrom);
TCHAR stdPathB[30] = TEXT(filenameTo);
DWORD dwResult;
int main() {
setlocale(LC_CTYPE, "Russian");
int i = 0;
bool exit = false;
for (;;) {
int choice = menu();
switch (choice) {
case 1:fopen_fgets(); break;
case 2:fopen_fputs(); break;
case 3:read_file(); break;
case 4:write_file(); break;
case 5:move_file(); break;
case 6:copy_file(); break;
case 7:delete_file(); break;
case 8:get_current_directory(); break;
case 9:set_current_directory(); break;
case 10:create_directory; break;
default: cout << "Неправильно, введите еще раз."; break;
}
if (exit) break;
}
return 0;
}
int menu() {
system("cls");
int choice;
cout << "Введите:" << endl;
cout << "1-для ввода новой записи" << endl;
cout << "2-для удаления записи" << endl;
cout << "3-для вывода записи(ей)" << endl;
cout << "4-для поиска по фамилии" << endl;
cout << "5-для поздравления" << endl;
cout << "6-для выхода " << endl;
cin >> choice;
return choice;
}
void fopen_fgets(){
if ((fp = fopen(filename, "rt")) == NULL) {//открытие файла
puts("Opening failed");
}
else {
fgets(str, 79, fp);//чтение файла
printf("read: %s", str);
fclose(fp);
}
}
void fopen_fputs() {
if ((fp = fopen(filename, "wt")) == NULL) {//открытие файла
puts("Opening failed");
}
else {
fputs(str, fp);//запись файла
fclose(fp);
}
}
void read_file(){
HANDLE hIn;
hIn = CreateFile(stdPath, GENERIC_READ, 0, NULL, //открытие файла
OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
if (hIn == INVALID_HANDLE_VALUE) {
printf("ERROR %x \n", GetLastError()); //получение ошибки
}
else {
ReadFile(hIn, Buffer, 256, &dwNumberOfBytes, NULL); //чтение файла
std::wcout << "Read: " << Buffer << endl;
CloseHandle(hIn);
}
}
void write_file(){
HANDLE hOut;
hOut = CreateFile(stdPath, GENERIC_WRITE, 0, NULL, //открытие файла
CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
if (hOut == INVALID_HANDLE_VALUE) {
printf("ERROR %x \n", GetLastError()); //получение ошибки
}
else {
WriteFile(hOut, Buffer, 256, &dwNumberOfBytes, NULL); //запись файла
printf("Created and Written!");
CloseHandle(hOut);
}
}
void move_file() {
pr = MoveFile(stdPathA, stdPathB);
if (pr) {
printf("MOVED");
}
else {
printf("NOT MOVED");
}
}
void copy_file() {
pr = CopyFile(stdPathA, stdPathB, 0);
if (pr) {
printf("COPIED");
}
else {
printf(" NOT COPIED");
}
}
void delete_file() {
pr = DeleteFile(stdPathA);
if (pr) {
printf("DELETED");
}
else {
printf("NOT DELETED");
}
}
void get_current_directory() {
dwResult = GetCurrentDirectory(256, Buffer);
std::wcout << "Dir: " << Buffer << endl;
}
void set_current_directory() {
b = SetCurrentDirectory(Buffer2);
dwResult = GetCurrentDirectory(256, Buffer);
std::wcout << "Dir: " << Buffer << endl;
}
void create_directory() {
if (CreateDirectory(Buffer3, NULL))
std::wcout << "directory created" << endl;
else
std::wcout << "error while creating directory" << endl;
} |