Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 25.05.2012
Сообщений: 15
1

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

01.12.2012, 15:12. Показов 945. Ответов 3

Author24 — интернет-сервис помощи студентам
Здраствуйте. И с ходу):

Есть папка "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
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.12.2012, 15:12
Ответы с готовыми решениями:

Загрузка фото из папки с переименовыванием файлов в цикле
Имеется папка, куда с фотоаппарата сбрасываются фото автоматически. Как проверять наличие файла в...

Проблемы с копированием
#!/bin/bash src=&quot;/usr/share/doc&quot; dst=&quot;$HOME/doc&quot; find $src -type f ! -name &quot;*.*&quot; ...

Проблемы с копированием папки
Привет! Пересмотрел кучу ресурсов на которых объяснялось как копировать папку... Суть...

Проблемы с копированием файла
Копирую файл из указанного места в нужную мне папку. Пишу вспомогательную процедуру для...

3
8 / 8 / 4
Регистрация: 20.06.2012
Сообщений: 225
04.12.2012, 22:21 2
вам нужно в путь выходного файла вставлять "out/" + i + ".png"
а цыкл делать не до 110 а до strlen(t)
0
0 / 0 / 0
Регистрация: 25.05.2012
Сообщений: 15
06.12.2012, 21:17  [ТС] 3
Спасибо, но так, ""out/" + i + ".png"", вставить не получается. Неправильный тип пишет там вроде конст чар какой то нужен или что то вроде етого.
0
8 / 8 / 4
Регистрация: 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;
0
09.12.2012, 23:38
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.12.2012, 23:38
Помогаю со студенческими работами здесь

Проблемы с копированием на ФТП
Возникла следующая проблема: Подключаюсь к ФТП-серверу. Копирую с него файлы на компьютер. При...

проблемы с копированием между таблицами Excel
Добрый день! Создала макрос для некоторого расчета в Excel 2010 и форму для заполнения. Все бы...

проблема с копированием файлов на xubuntu
Здравствуйте на линуксе я новенький к сожалению вынужден на него перейти. Но вот неприятность...

Проверка файлов в папке программы с копированием/перемещением
И снова здравствуйте. Есть код: using System; using System.Text; using...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru