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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Alex613
0 / 0 / 0
Регистрация: 25.05.2012
Сообщений: 15
#1

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

01.12.2012, 15:12. Просмотров 505. Ответов 3

Здраствуйте. И с ходу):

Есть папка "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
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.12.2012, 15:12
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Проблемы с переименовыванием и копированием файлов в определенной последовательности (C++):

Вывод определенной цифры в числовой последовательности - C++
Доброе утро форумчане, решал задачки для бегинеров на c++ и столкнулся с задачей, до которой никак не могу допереть. Пользователь...

Заполнить двумерный массив единицами и нулями в определенной последовательности - C++
ребят, помогите, в голову никак не укладывается, нужно заполнить двумерный массив Arr значениями &quot;0&quot; и &quot;1&quot; в такой последовательности: 1...

Нажатие определенной клавиши на клавиатуре = Запуск определенной функции - C++
Здравствуйте. У меня такой вопрос: как при нажатии, к примеру, клавиши &quot;1&quot; на клавиатуре запустить нужную мне функцию (Окно с меню...

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

Проблемы с копированием папки - C#
Привет! Пересмотрел кучу ресурсов на которых объяснялось как копировать папку... Суть заключалась в том, что программа заходит в...

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

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
komand0
8 / 8 / 0
Регистрация: 20.06.2012
Сообщений: 225
04.12.2012, 22:21 #2
вам нужно в путь выходного файла вставлять "out/" + i + ".png"
а цыкл делать не до 110 а до strlen(t)
0
Alex613
0 / 0 / 0
Регистрация: 25.05.2012
Сообщений: 15
06.12.2012, 21:17  [ТС] #3
Спасибо, но так, ""out/" + i + ".png"", вставить не получается. Неправильный тип пишет там вроде конст чар какой то нужен или что то вроде етого.
0
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;
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.12.2012, 23:38
Привет! Вот еще темы с ответами:

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

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

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

.NET 4.x Проверка файлов в папке программы с копированием/перемещением - C#
И снова здравствуйте. Есть код: using System; using System.Text; using System.Security.Cryptography; using System.Diagnostics; ...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
09.12.2012, 23:38
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru