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

Мне нужно упростить ввод таких данных - C++

Восстановить пароль Регистрация
 
Krogoth
Сообщений: n/a
19.05.2014, 21:48     Мне нужно упростить ввод таких данных #1
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
#define setCount(x) .count = x
#define setWord(x) .word = new (const char *[3])
#define setFunc(x) .func = new (void (*[3])())
 
void Reader::initSprites() {
    threadCount = 2;
    operationCount = new int[threadCount];
    operation = new (Operation (*[threadCount]));
 
    ///Sprite thread
    operationCount[0] = 6;
    operation[0] = new Operation[operationCount[0]];
 
    operation[0][0] setCount(3);
    operation[0][0] setWord (3) {"texture", "=", ""};
    operation[0][0] setFunc (3) {NULL, NULL, &Sprites::Load::setTextureFile};
 
    operation[0][1] setCount(3);
    operation[0][1] setWord (3) {"sizeX", "=", ""};
    operation[0][1] setFunc (3) {NULL, NULL, &Sprites::Load::setSizeX};
 
    operation[0][2] setCount(3);
    operation[0][2] setWord (3) {"sizeY", "=", ""};
    operation[0][2] setFunc (3) {NULL, NULL, &Sprites::Load::setSizeY};
 
    operation[0][3] setCount(3);
    operation[0][3] setWord (3) {"offsetX", "=", ""};
    operation[0][3] setFunc (3) {NULL, NULL, &Sprites::Load::setOffsetX};
 
    operation[0][4] setCount(3);
    operation[0][4] setWord (3) {"offsetY", "=", ""};
    operation[0][4] setFunc (3) {NULL, NULL, &Sprites::Load::setOffsetY};
 
    operation[0][5] setCount(3);
    operation[0][5] setWord (3) {"sheet", "{", "}"};
    operation[0][5] setFunc (3) {NULL, &Sprites::Sheet::Load::beginThread, &Sprites::Sheet::Load::endThread};
 
    ///Sheet thread
    operationCount[1] = 6;
    operation[1] = new Operation[operationCount[1]];
 
    operation[1][0] setCount(1);
    operation[1][0] setWord (1) {"vertical"};
    operation[1][0] setFunc (1) {&Sprites::Sheet::Load::vertical};
 
    operation[1][1] setCount(1);
    operation[1][1] setWord (1) {"horizontal"};
    operation[1][1] setFunc (1) {&Sprites::Sheet::Load::horizontal};
 
    operation[1][2] setCount(3);
    operation[1][2] setWord (3) {"firstX", "=", ""};
    operation[1][2] setFunc (3) {NULL, NULL, &Sprites::Sheet::Load::setFirstX};
 
    operation[1][3] setCount(3);
    operation[1][3] setWord (3) {"firstY", "=", ""};
    operation[1][3] setFunc (3) {NULL, NULL, &Sprites::Sheet::Load::setFirstY};
 
    operation[1][4] setCount(3);
    operation[1][4] setWord (3) {"frames", "=", ""};
    operation[1][4] setFunc (3) {NULL, NULL, &Sprites::Sheet::Load::setFrames};
 
    operation[1][5] setCount(3);
    operation[1][5] setWord (3) {"variations", "=", ""};
    operation[1][5] setFunc (3) {NULL, NULL, &Sprites::Sheet::Load::setVariations};
}
Эта процедура инициирует операции для чтения файлов типа Sprites (с 1 фигурной скобкой после ключевого слова sheet).
Есть ли возможность:
1. Оптимизировать ввод этих данных, или чтобы хотя бы красиво.
2. Заменить текущий алгоритм определения нужной операции по слову через цикл while на что-то более эффективное, потому что сейчас я делаю вот что:
C++
1
2
3
4
5
6
7
8
9
10
11
            file >> word;
            for (int i = 0; i != operationCount[thread]; i++)
            if (word == operation[thread][i].word[0]) {
                if (operation[thread][i].count != 1) {
                    code[thread] = i;
                    stage[thread] = 1;
                }
                if (operation[thread][i].func[0] != NULL)
                    operation[thread][i].func[0]();
                break;
            }
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.05.2014, 21:48     Мне нужно упростить ввод таких данных
Посмотрите здесь:

C++ Найти два таких два таких элемента, разность модулей которых имеет максимальное значение
C++ нужно упростить (Найти сумму S первой группы смежных равных элементов)
мне нужно, чтобы решение сохранялось в файл C++
C++ Потоковый ввод и ввод данных. Работа с числами
C++ Что мне нужно дописать
Шифрование строки методом гаммирования (нужно упростить код) C++
Всё компилируется, выводится, но не то что мне нужно C++
Нужно упростить код, сложение столбцов матрицы C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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