AviaSkins.Forums

AviaSkins.Forums (http://forum.aviaskins.com/index.php)
-   Моделирование и конструирование (http://forum.aviaskins.com/forumdisplay.php?f=18)
-   -   Программирование (http://forum.aviaskins.com/showthread.php?t=2238)

Da_Don 06.07.2011 14:10

Программирование
 
Вложений: 1
Всем привет.
У меня вопросы к коллегам, знающим С++.
Решил я сделать две простые программулины (задуман пакет утилит DGen dev helper) для облегчения жизни дизайнеров динамических кампаний, особых проблем с написанием нет, но хотелось бы уточнить вот что:

1) Одна из программ призвана открывать .properties, автоматом (или по нажатию кнопки - не важно) перегонять из юникода в кириллицу и по завершении работы с текстом сохранять в юникод.
Как заставить утилиту (фактически - примитивный блокнот) понимать юникод и кодировать/декодировать (и сохранять в нем)?

2) Вторая утилита открывает файлы ...planes.dat и (это главное) должна параметры настройки самолета распихивать по окошкам для удобства правки, например:
Axis Finland Reconplane BLENHEIM1 300 3000 3000 default 1

Axis
Finland
Reconplane
BLENHEIM1
300
3000
3000
default
1

перечисленные выше параметры одной нужной нам строки должны отображаться каждый в своем окошке. После правок - они должны записываться в определенное место в нашей строке.

Какая функция отвечает за такое разделение по окошкам?

Asura 07.07.2011 09:59

Именно по функциям С++ не подскажу - знаю их плохо, но хочу уточнить несколько вопросов - что за файлы .properties ты будешь разбирать? В Dgen вроде таких нет...
А что касается обработки файлов planes.dat я бы сделал так - читал файл в базу данных, в программе организовал бы работу с БД - выбор строк, показ в полях значений их изменение и т.д, а потом бы экспортировал в текстовый файл. Так будет проще чем возиться с каждой строкой текстового файла.

Da_Don 07.07.2011 12:35

Это кодированые файлы, содержащие русские тексты для других файлов генератора, лежат в папке Dgen

У пользователя с ником Гончий Пёс с нашего форума были трудности с написанием динамических кампаний, поэтому я решил сделать кое-что для облегчения работы.

До баз данных еще не добрался, попробую сегодня реализовать ...

SLON 07.07.2011 13:56

не знаток, это по 1му http://forum.aviaskins.com/showthread.php?t=1889

Da_Don 07.07.2011 13:59

Скачал, видимо аналог Il-2_ru

Я ъочу сам программинг освоить, поэтому все равно буду пробовать сделать самостоятельно

Спасибо

Asura 08.07.2011 14:15

Цитата:

Сообщение от Da_Don (Сообщение 84530)
Это кодированые файлы, содержащие русские тексты для других файлов генератора, лежат в папке Dgen

Теперь понял о чем ты... :) Это не юникод, это что то другое. :) Вот процедурка конвертации на C.

Код:

char *convertRu(char *WinTxt)
{
        static char OlegTxt[16384],tmpstr[2];
        char c;
        strcpy(OlegTxt,"");
    while (c=*WinTxt++) {
                if (strlen(OlegTxt)>16384)
                        break;
                switch (c) {
                case 'А':
                        strcat(OlegTxt,"\\u0410");
                        break;
                case 'Б':
                        strcat(OlegTxt,"\\u0411");
                        break;
                case 'В':
                        strcat(OlegTxt,"\\u0412");
                        break;
                case 'Г':
                        strcat(OlegTxt,"\\u0413");
                        break;
                case 'Д':
                        strcat(OlegTxt,"\\u0414");
                        break;
                case 'Е':
                        strcat(OlegTxt,"\\u0415");
                        break;
                case 'Ё':
                        strcat(OlegTxt,"\\u0401");
                        break;
                case 'Ж':
                        strcat(OlegTxt,"\\u0416");
                        break;
                case 'З':
                        strcat(OlegTxt,"\\u0417");
                        break;
                case 'И':
                        strcat(OlegTxt,"\\u0418");
                        break;
                case 'Й':
                        strcat(OlegTxt,"\\u0419");
                        break;
                case 'К':
                        strcat(OlegTxt,"\\u041A");
                        break;
                case 'Л':
                        strcat(OlegTxt,"\\u041B");
                        break;
                case 'М':
                        strcat(OlegTxt,"\\u041C");
                        break;
                case 'Н':
                        strcat(OlegTxt,"\\u041D");
                        break;
                case 'О':
                        strcat(OlegTxt,"\\u041E");
                        break;
                case 'П':
                        strcat(OlegTxt,"\\u041F");
                        break;
                case 'Р':
                        strcat(OlegTxt,"\\u0420");
                        break;
                case 'С':
                        strcat(OlegTxt,"\\u0421");
                        break;
                case 'Т':
                        strcat(OlegTxt,"\\u0422");
                        break;
                case 'У':
                        strcat(OlegTxt,"\\u0423");
                        break;
                case 'Ф':
                        strcat(OlegTxt,"\\u0424");
                        break;
                case 'Х':
                        strcat(OlegTxt,"\\u0425");
                        break;
                case 'Ц':
                        strcat(OlegTxt,"\\u0426");
                        break;
                case 'Ч':
                        strcat(OlegTxt,"\\u0427");
                        break;
                case 'Ш':
                        strcat(OlegTxt,"\\u0428");
                        break;
                case 'Щ':
                        strcat(OlegTxt,"\\u0429");
                        break;
                case 'Ъ':
                        strcat(OlegTxt,"\\u042A");
                        break;
                case 'Ы':
                        strcat(OlegTxt,"\\u042B");
                        break;
                case 'Ь':
                        strcat(OlegTxt,"\\u042C");
                        break;
                case 'Э':
                        strcat(OlegTxt,"\\u042D");
                        break;
                case 'Ю':
                        strcat(OlegTxt,"\\u042E");
                        break;
                case 'Я':
                        strcat(OlegTxt,"\\u042F");
                        break;
                case 'а':
                        strcat(OlegTxt,"\\u0430");
                        break;
                case 'б':
                        strcat(OlegTxt,"\\u0431");
                        break;
                case 'в':
                        strcat(OlegTxt,"\\u0432");
                        break;
                case 'г':
                        strcat(OlegTxt,"\\u0433");
                        break;
                case 'д':
                        strcat(OlegTxt,"\\u0434");
                        break;
                case 'е':
                        strcat(OlegTxt,"\\u0435");
                        break;
                case 'ё':
                        strcat(OlegTxt,"\\u0451");
                        break;
                case 'ж':
                        strcat(OlegTxt,"\\u0436");
                        break;
                case 'з':
                        strcat(OlegTxt,"\\u0437");
                        break;
                case 'и':
                        strcat(OlegTxt,"\\u0438");
                        break;
                case 'й':
                        strcat(OlegTxt,"\\u0439");
                        break;
                case 'к':
                        strcat(OlegTxt,"\\u043A");
                        break;
                case 'л':
                        strcat(OlegTxt,"\\u043B");
                        break;
                case 'м':
                        strcat(OlegTxt,"\\u043C");
                        break;
                case 'н':
                        strcat(OlegTxt,"\\u043D");
                        break;
                case 'о':
                        strcat(OlegTxt,"\\u043E");
                        break;
                case 'п':
                        strcat(OlegTxt,"\\u043F");
                        break;
                case 'р':
                        strcat(OlegTxt,"\\u0440");
                        break;
                case 'с':
                        strcat(OlegTxt,"\\u0441");
                        break;
                case 'т':
                        strcat(OlegTxt,"\\u0442");
                        break;
                case 'у':
                        strcat(OlegTxt,"\\u0443");
                        break;
                case 'ф':
                        strcat(OlegTxt,"\\u0444");
                        break;
                case 'х':
                        strcat(OlegTxt,"\\u0445");
                        break;
                case 'ц':
                        strcat(OlegTxt,"\\u0446");
                        break;
                case 'ч':
                        strcat(OlegTxt,"\\u0447");
                        break;
                case 'ш':
                        strcat(OlegTxt,"\\u0448");
                        break;
                case 'щ':
                        strcat(OlegTxt,"\\u0449");
                        break;
                case 'ъ':
                        strcat(OlegTxt,"\\u044A");
                        break;
                case 'ы':
                        strcat(OlegTxt,"\\u044B");
                        break;
                case 'ь':
                        strcat(OlegTxt,"\\u044C");
                        break;
                case 'э':
                        strcat(OlegTxt,"\\u044D");
                        break;
                case 'ю':
                        strcat(OlegTxt,"\\u044E");
                        break;
                case 'я':
                        strcat(OlegTxt,"\\u044F");
                        break;
                default:
                        sprintf(tmpstr,"%c",c);
                        strcat(OlegTxt,tmpstr);
                };
        };
        return OlegTxt;
};


Da_Don 08.07.2011 15:56

Спасибо огромное! Сегодня попробую сварганить у себя


Текущее время: 07:24. Часовой пояс GMT +3.

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot