Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как прео тип string в char без потери русских букв 
:(
    Опции темы
artsb
Дата 7.6.2012, 09:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2280
Регистрация: 17.7.2007
Где: центр Вселенной

Репутация: 39
Всего: 64



Цитата(vladd @  7.6.2012,  08:37 Найти цитируемый пост)
А где брать эти патчи для BCB 6?

Например, здесь.

Цитата(vladd @  7.6.2012,  08:37 Найти цитируемый пост)
Всё то же самое. Может проблема в Windows? У меня стоит XP 3. 

Сильно сомневаюсь, но давайте проверим. Соберите полностью релизный проект и выложите на файлообменнике или здесь. Проверю у себя на семёрке.


--------------------
Чем отличается умный человек от мудрого?
Умный - выпутается из любой ситуации.
Мудрый - просто в неё не попадёт.
PM MAIL   Вверх
vladd
Дата 7.6.2012, 09:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 134
Регистрация: 31.1.2009

Репутация: нет
Всего: нет



Добавил патч.Изменений нет. 

Присоединённый файл ( Кол-во скачиваний: 3 )
Присоединённый файл  Русские_буквы.rar 29,91 Kb
PM MAIL   Вверх
vladd
Дата 7.6.2012, 10:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 134
Регистрация: 31.1.2009

Репутация: нет
Всего: нет



А как писать программу в UNICODE? Где об этом можно почитать?

Присоединённый файл ( Кол-во скачиваний: 3 )
Присоединённый файл  Русские_буквы.rar 29,91 Kb
PM MAIL   Вверх
artsb
Дата 7.6.2012, 11:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2280
Регистрация: 17.7.2007
Где: центр Вселенной

Репутация: 39
Всего: 64



vladd, я просил готовый собранный релизный EXE'шник smile

Цитата(vladd @  7.6.2012,  10:14 Найти цитируемый пост)
А как писать программу в UNICODE? Где об этом можно почитать? 

Просто используй тип wchar_t вместо char. В VCL WideString вместо AnsiString. И выставить соответствующую настройку в опциях проекта.
А ещё можно писать универсальный проект:
1. подключить tchar.h
2. вместо wchar_t и char использовать _TCHAR
3. вместо WideString и AnsiString использовать String
4. строки оборачивать в дефайн _T(), т.е. например, _T("hello world"); или символ - _T('1')
5. использовать дефайны из tchar.h вместо самих функций. Т.е. вместо strlen() и wcslen(), использовать _tcslen() и т.д.
В этом случае, компилятор сам разберётся какой тип использовать в зависимости от настроек проекта.

Читать про всё это в Интернете smile

Это сообщение отредактировал(а) artsb - 7.6.2012, 11:18


--------------------
Чем отличается умный человек от мудрого?
Умный - выпутается из любой ситуации.
Мудрый - просто в неё не попадёт.
PM MAIL   Вверх
vladd
Дата 7.6.2012, 11:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 134
Регистрация: 31.1.2009

Репутация: нет
Всего: нет



А как создать этот собранный релизный EXE'шник в C++ Bulder 6? Честное слово первый раз сталкиваюсь.
Это скомпилированная программа?



Это сообщение отредактировал(а) vladd - 7.6.2012, 11:45
PM MAIL   Вверх
artsb
Дата 7.6.2012, 11:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2280
Регистрация: 17.7.2007
Где: центр Вселенной

Репутация: 39
Всего: 64



Цитата(vladd @  7.6.2012,  11:30 Найти цитируемый пост)
Это скомпилированная программа?

Ага. Только не забудь снять галочки
Цитата

    Project->Options->Linker->Use dynamic RTL
    Project->Options->Packages->Build with runtime packages



--------------------
Чем отличается умный человек от мудрого?
Умный - выпутается из любой ситуации.
Мудрый - просто в неё не попадёт.
PM MAIL   Вверх
vladd
Дата 7.6.2012, 12:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 134
Регистрация: 31.1.2009

Репутация: нет
Всего: нет



Сделал по этому совету.

Хочу, чтобы моя программа работала на другом компьютере, где не установлен C++Builder.
Как сделать, чтобы пpогpамма на C++Builder 3,4,5,6 и т.д. не требовала .bpl, .dll ?

В Project|Options|Packages снять галку с Build with runtime packages,
   Project|Options|Linker снять галку с Use dynamic RTL.

Что то никак exe файл получить не могу.

Это сообщение отредактировал(а) vladd - 7.6.2012, 12:07

Присоединённый файл ( Кол-во скачиваний: 3 )
Присоединённый файл  Русские_буквы.rar 25,39 Kb
PM MAIL   Вверх
artsb
Дата 7.6.2012, 12:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2280
Регистрация: 17.7.2007
Где: центр Вселенной

Репутация: 39
Всего: 64



Цитата(vladd @  7.6.2012,  12:02 Найти цитируемый пост)
Что то никак exe файл получить не могу.

В каком смысле не можешь? Сделай Project->Build. В папке с проектом появится exe-файл.


--------------------
Чем отличается умный человек от мудрого?
Умный - выпутается из любой ситуации.
Мудрый - просто в неё не попадёт.
PM MAIL   Вверх
vladd
Дата 7.6.2012, 12:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 134
Регистрация: 31.1.2009

Репутация: нет
Всего: нет



Нашел еще вот 
http://www.ithowto.ru/264-nastrojka-kompil...-c-builder.html
Теперь релиз после этого.

Присоединённый файл ( Кол-во скачиваний: 3 )
Присоединённый файл  Релиз_Русские_буквы.rar 152,49 Kb
PM MAIL   Вверх
vladd
Дата 7.6.2012, 15:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 134
Регистрация: 31.1.2009

Репутация: нет
Всего: нет



Новая задача. После создания релизный EXE'шника, перестал работать С++Bulder 6. Не могу запустить программу даже на Hello Word. Пишет

[Linker Error] Unresolved external '_main' referenced from C:\PROGRAM FILES\BORLAND\CBUILDER6\LIB\C0X32.OBJ. 

Что делать? Кто Нибудь может помочь.  
PM MAIL   Вверх
artsb
Дата 7.6.2012, 15:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2280
Регистрация: 17.7.2007
Где: центр Вселенной

Репутация: 39
Всего: 64



Цитата(vladd @  7.6.2012,  12:39 Найти цитируемый пост)
Нашел еще вот 
http://www.ithowto.ru/264-nastrojka-kompil...-c-builder.html
Теперь релиз после этого. 

Ну да. Но у тебя же BCB6. Там малость по-другому.

У меня твоя программа тоже сразу просит нажать любую клавишу.
Попробую дома установить BCB6 и проверить. Правда, у меня дома семёрка, так что эксперимент будет не совсем "чистый".


Цитата(vladd @  7.6.2012,  15:13 Найти цитируемый пост)
Новая задача. После создания релизный EXE'шника, перестал работать С++Bulder 6. Не могу запустить программу даже на Hello Word. Пишет

[Linker Error] Unresolved external '_main' referenced from C:\PROGRAM FILES\BORLAND\CBUILDER6\LIB\C0X32.OBJ. 

Что-то ты там накрутил smile Линковщик говорит, что не может найти реализацию для функции _main()

Это сообщение отредактировал(а) artsb - 7.6.2012, 15:46


--------------------
Чем отличается умный человек от мудрого?
Умный - выпутается из любой ситуации.
Мудрый - просто в неё не попадёт.
PM MAIL   Вверх
vladd
Дата 7.6.2012, 15:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 134
Регистрация: 31.1.2009

Репутация: нет
Всего: нет



Спасибо. Последний вопрос решился сам по себе. С++ Bulder завис. Перегрузил компьютер. И вроде снова стал видеть main.  
PM MAIL   Вверх
artsb
Дата 8.6.2012, 00:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2280
Регистрация: 17.7.2007
Где: центр Вселенной

Репутация: 39
Всего: 64



Вот что выяснилось:
BCB6 не поддерживает Юникод. А то что есть, это только задатки Юникода smile

Почитай тут как писать по-русски в консоли.


--------------------
Чем отличается умный человек от мудрого?
Умный - выпутается из любой ситуации.
Мудрый - просто в неё не попадёт.
PM MAIL   Вверх
vladd
Дата 8.6.2012, 07:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 134
Регистрация: 31.1.2009

Репутация: нет
Всего: нет



Спасибо большое за помощь. Но вопрос был, сейчас подкорректирую. Как заполнить структуру элементами на русском языке, чтобы при выводе в консоль тоже были русские буквы. Повторюсь. Для вывода русских букв в консоль я использую код
Код

//Руссификация
   ostream& operator<<(ostream &stream,char* s){
        for(char* ps=s; *ps; ps++){
                if(*ps=='ё')
                        stream<<char(241);
                else if(*ps=='Ё')
                        stream<<char(240);
                else if(*ps>=-64 && *ps<=-17)
                        stream<<char(*ps+64+128);
                else if(*ps<0)
                        stream<<char(*ps+64+176);
                else
                        stream<<*ps;
        }
        return stream;
}
 

Для чтения русских букв с консоли я использую код
Код

string str1;
cout << "Введите строку: ";
getline(cin, str1);


str1 уже содержит слово русскими буквами. Но необходимо присвоить элементам структуры значение str1 без искажения русских букв.
Пробовал 
Код

 cin >> pacient->Bolnoy;


и так

Код

strcpy(pacien.Bolnoy,sStr1.c_str());


Не получается. Русские буквы  искажаются в первом случае функцией cin >>. Во втором случае функцией strcpy.
Вопрос. Как заполнить структуру элементами на русском языке, чтобы при выводе в консоль тоже были русские буквы?
Прошу извинить за то что повторяюсь.
PM MAIL   Вверх
artsb
Дата 8.6.2012, 11:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2280
Регистрация: 17.7.2007
Где: центр Вселенной

Репутация: 39
Всего: 64



Посмотри в сторону функций:
CharToOem
OemToChar

ЗЫ а писать на BCB6 принципиально или можно перейти на более свежую версию?


--------------------
Чем отличается умный человек от мудрого?
Умный - выпутается из любой ситуации.
Мудрый - просто в неё не попадёт.
PM MAIL   Вверх
Страницы: (3) Все 1 [2] 3 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C++ Builder | Следующая тема »


 




[ Время генерации скрипта: 0.0533 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.