01.12.2010, 13:41. Просмотров 1500. Ответов 2
Кто-нибудь, помогите с задачей. Очень прошу. Или подскажите, как можно с ней разобраться.
Суть задачи:
После того, как произошло разбиение основного файла на
8 частей(файлов) с расширением
.txt, необходимо автоматически перенести их в другую папку. Например из
in в
out. Плюс к этому должна присутствовать возможность менять расширение файлов. Файлы бинарные.
Вот код проги:
C++ |
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
| #include "stdafx.h"
#include <stdio.h>
#include <conio.h>
#include <iostream>
#include <bitset>
#include <fstream>
using namespace std;
int main()
{
_wsetlocale( LC_ALL, L"Russian_Russia.ACP" );
char buffer[512];
char f0[160];
ifstream in ("test.txt", ios::in | ios::binary);
if(!in)
{
cout << "Не удаётся открыть файл.\n";
return 1;
}
ofstream out ("test2.txt", ios::out | ios::binary);
if(!out)
{
cout << "Не удатся открыть файл.\n";
return 1;
}
char fname[100];
FILE *ofp[8];
int z;
for (z = 0; z < 8; z++)
{
sprintf(fname, "file%02d.txt", z);
if ((ofp[z] = fopen(fname, "wb")) != NULL);
}
do {
in.read(buffer, sizeof(buffer));
for(int i=0; i<3; i++)
{
memcpy(f0, buffer + 8 + 12*(i+1) + 156*i, 156);
out.write(f0, 160);
char a[22];
for(int y=0; y<8; y++)
{
memcpy(a, f0+(int)(19.5*y), 21);
if(y%2)
{
for(int x=0; x<20; x++)
{
a[x] >>=4;
a[x] |= a[x+1] << 4;
}
}
fwrite(a, sizeof(char), 20, ofp[y]);
}
}
} while(!in.eof());
_fcloseall();
in.close();
out.close();
return 0;
} |
|
Добавлено через 2 минуты
Пытался использовать функцию MoveFile(), но почему то не работает...