Форум программистов, компьютерный форум CyberForum.ru

Проблемы с переименовыванием и копированием файлов в определенной последовательности - C++

Восстановить пароль Регистрация
 
Alex613
0 / 0 / 0
Регистрация: 25.05.2012
Сообщений: 15
01.12.2012, 15:12     Проблемы с переименовыванием и копированием файлов в определенной последовательности #1
Здраствуйте. И с ходу):

Есть папка "in", в ней есть текстовый файл (1.txt), в нем ряд цифер (без пробелов).
В этой же папке есть 10 картинок с именами x0, x1, x2, x3, x4, x5, x6, x7, x8, x9 .
Каждая картинка соответствует своей цифре. Тоесть в картинке х0 нарисован 0, в картинке х7 нарисована семерка.

Есть еще папка "out" изначально она пуста.

Задача программы:

В зависимости от чисел в текстовом файле (1.txt), брать картинки и копировать их в папку "out". B и переименовывать их по порядку. Задавать им порядковый номер.
Честно говоря что то мне сложно обьяснить. Поетому попробую привести пример.

В текстовом файле есть последовательность чисел: 19910
В итоге (после запуска программы), в папке "out" должно появиться 5 изображений. Имена их (этих изображений) должны быть: 0, 1, 2, 3, 4. В первом изображении нарисована единичка, во втором девятка, в третьем девятка, в четвертом единичка, в пятом нолик.

Зарание прошу прошу прошения за такое обьяснение.

Проблема:

Если запустить программу (с такими цифрами как в примере (19910)). То на выходе в папке "out" получаем результат:

5 изображений:

Имя: 0 Нарисован: нолик
Имя: 1 Нарисована: единичка
Имя: 9 Нарисована: девятка
Имя: х1 Нарисована: единичка
Имя: х9 Нарисована: девятка

А у меня были надежды) что на выходе я получу:

5 изображений:

Имя: 0 Нарисована: единичка
Имя: 1 Нарисована: девятка
Имя: 2 Нарисована: девятка
Имя: 3 Нарисована: единичка
Имя: 4 Нарисован: нолик

Так как, последовательность цифер в текстовике : 19910

Кто дочитал ко донца очень признателен)
Помогите разобраться. Я уже голову сломал)

P.S. компилятор DEV-C++
И еще, в итоге нужно будет использовать ету программу с текстовиком в котором будет 10 млн цифер.
Если просто поменять размер массива t на 10000000 и в for l<100 на l < 10000001. Так прокатит?

Зарание ОРГОМНОЕ СПАСИБО!!!

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
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
#include <iostream>
#include <cstdlib>
#include <fstream>
#include <stdio.h> 
#include <string>
#include <io.h>
#include <windows.h>
#include <cmath>
 
using namespace std;
char t[100];
 
int main()
{
    ifstream f1("in/1.txt");
    f1>>t;
 
    for (long l=0; l<110; l++)
    {            
        char fname0[50]="out/0.png";
        fname0[4]=l;  
        
        char fname1[50]="out/1.png";
        fname1[4]=l;
      
        char fname2[50]="out/2.png";
        fname2[4]=l;
      
        char fname3[50]="out/3.png";
        fname3[4]=l;
      
        char fname4[50]="out/4.png";
        fname4[4]=l;
      
        char fname5[50]="out/5.png";
        fname5[4]=l;
      
        char fname6[50]="out/6.png";
        fname6[4]=l;
      
        char fname7[50]="out/7.png";
        fname7[4]=l;
      
        char fname8[50]="out/8.png";
        fname8[4]=l;
      
        char fname9[50]="out/9.png";
        fname9[4]=l;
        
        switch (t[l])
        {
            case '0':
                CopyFile("in/x0.png", "out/x0.png", TRUE);
                MoveFile("out/x0.png", "out/0.png");
                break;
            case '1':
                CopyFile("in/x1.png", "out/x1.png", TRUE);
                MoveFile("out/x1.png", "out/1.png");
                break;
            case '2':
                CopyFile("in/x2.png", "out/x2.png", TRUE);
                MoveFile("out/x2.png", "out/2.png");
                break;
            case '3':
                CopyFile("in/x3.png", "out/x3.png", TRUE);
                MoveFile("out/x3.png", "out/3.png");
                break;
            case '4':
                CopyFile("in/x4.png", "out/x4.png", TRUE);
                MoveFile("out/x4.png", "out/4.png");
                break;
            case '5':
                CopyFile("in/x5.png", "out/x5.png", TRUE);
                MoveFile("out/x5.png", "out/5.png");
                break;
            case '6':
                CopyFile("in/x6.png", "out/x6.png", TRUE);
                MoveFile("out/x6.png", "out/6.png");
                break;
            case '7':
                CopyFile("in/x7.png", "out/x7.png", TRUE);
                MoveFile("out/x7.png", "out/7.png");
                break;
            case '8':
                CopyFile("in/x8.png", "out/x8.png", TRUE);
                MoveFile("out/x8.png", "out/8.png");
                break;
            case '9':
                CopyFile("in/x9.png", "out/x9.png", TRUE);
                MoveFile("out/x9.png", "out/9.png");
                break;
        }
    }
    f1.close();
    system("PAUSE");   
}
Папки in (изображения и текстовик) и out :
inANDout.rar

Архив с проектом:
Project.rar

Компилятор который я использую DEV-C++:
devcpp-4.9.9.2_setup.rar
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.12.2012, 15:12     Проблемы с переименовыванием и копированием файлов в определенной последовательности
Посмотрите здесь:

C++ Найти сумму элементов последовательности, начиная от первого отрицательного элемента и до конца последовательности.
Написать программу, которая обеспечивает:начальное формирование каталога файлов;вывод каталога файлов;удаление файлов... C++
Инициализация копированием () и присваиванием =. В чем разница? C++
Вывод последовательности, определяющий, являются ли простыми/совершенными соответствующие элементы введённой последовательности C++
C++ как написать программу с копированием одномерных массивов
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
komand0
 Аватар для komand0
8 / 8 / 0
Регистрация: 20.06.2012
Сообщений: 225
04.12.2012, 22:21     Проблемы с переименовыванием и копированием файлов в определенной последовательности #2
вам нужно в путь выходного файла вставлять "out/" + i + ".png"
а цыкл делать не до 110 а до strlen(t)
Alex613
0 / 0 / 0
Регистрация: 25.05.2012
Сообщений: 15
06.12.2012, 21:17  [ТС]     Проблемы с переименовыванием и копированием файлов в определенной последовательности #3
Спасибо, но так, ""out/" + i + ".png"", вставить не получается. Неправильный тип пишет там вроде конст чар какой то нужен или что то вроде етого.
komand0
 Аватар для komand0
8 / 8 / 0
Регистрация: 20.06.2012
Сообщений: 225
09.12.2012, 23:38     Проблемы с переименовыванием и копированием файлов в определенной последовательности #4
C++
1
2
3
4
5
6
7
char* buf = new char[16];
buf = "out/";
ctrcat(buf,char(48+i));
ctrcat(buf,".png");
CopyFile("in/x0.png", buf, TRUE);
delete buf;
buf = NULL;
Yandex
Объявления
09.12.2012, 23:38     Проблемы с переименовыванием и копированием файлов в определенной последовательности
Ответ Создать тему

Метки
копированием, определенной, переименовыванием, последовательности, проблемы, файлов
Опции темы

Текущее время: 09:25. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru