Поиск:

Ответ в темуСоздание новой темы Создание опроса
> wchar_t 
:(
    Опции темы
myk
Дата 3.3.2009, 09:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



никто на билдере не пишет чтоли?(= как мне в ексель записывать wchar_t ? другим методом или всетаки есть какие то функции преобразования

Это сообщение отредактировал(а) myk - 3.3.2009, 10:06
PM MAIL   Вверх
Alexeis
Дата 3.3.2009, 10:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

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



Цитата(myk @  3.3.2009,  03:28 Найти цитируемый пост)
out=_wfopen(SaveDialog1->FileName.w_str(),"w");

Опять жеж про L забыл

Код

out=_wfopen(SaveDialog1->FileName.w_str(), L"w");



--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
rthsobakas
Дата 3.3.2009, 12:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Awaiting Authorisation
Сообщений: 562
Регистрация: 20.9.2007

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



Цитата

Однако для таких языков, как китайский, японский и некоторые другие, одного байта недостаточно – алфавиты этих языков насчитывают более 255 символов.

блин... во всем китайцы виноваты. 

Alexeis, дык ниче у него не переконвертируется w_str() и с_str() в  wchar_t  переводят.
http://www.sql.ru/forum/actualthread.aspx?tid=577447

Цитата

NAME
       wcsrtombs - convert a wide-character string to a multibyte string

SYNOPSIS
       #include <wchar.h>

       size_t wcsrtombs(char *dest, const wchar_t **src,
                        size_t len, mbstate_t *ps);

CONFORMING TO
       C99.


http://www.programmersforum.ru/showthread.php?t=25474

Цитата

Нужно конвертировать строку wchar_t* в char*, чтобы использовать в функции strcpy. Есть функция WideCharToMultiByte, но хотелось бы что-нить попроще.



Цитата

#include <windows.h>
#include <lm.h>
#include <stdio.h>

BOOL GetFullName( char *UserName, char *Domain, char *dest )
{
    WCHAR wszUserName[UNLEN+1];          // Unicode user name
    WCHAR wszDomain[256]; 
    LPBYTE ComputerName;

    struct _SERVER_INFO_100 *si100;  // Server structure
    struct _USER_INFO_2 *ui;         // User structure

// Convert ANSI user name and domain to Unicode

    MultiByteToWideChar( CP_ACP, 0, UserName,
        strlen(UserName)+1, wszUserName,   
     sizeof(wszUserName)/sizeof(wszUserName[0]) );
    MultiByteToWideChar( CP_ACP, 0, Domain,
        strlen(Domain)+1, wszDomain, sizeof(wszDomain)/sizeof(wszDomain[0]) );

// Get the computer name of a DC for the domain.

    NetGetDCName( NULL, wszDomain, &ComputerName );

// Look up the user on the DC.

    if( NetUserGetInfo( (LPWSTR) ComputerName,
        (LPWSTR) &wszUserName, 2, (LPBYTE *) &ui ) )
    {
        printf( "Error getting user information.\n" );
        return( FALSE );
    }

// Convert the Unicode full name to ANSI.

    WideCharToMultiByte( CP_ACP, 0, ui->usri2_full_name, -1,
        dest, 256, NULL, NULL );

    return (TRUE);
}




Если честно , то я плохо понял как конвертировать.
если кто понял, то как относительно моего примера будет?
Код

Edit1->Text=Code_Dec(Edit1->Text.c_str(),'A');


Код

char * Code(char *s,char Key){
 for (int i = 0;; i++) {
   if (s[i]=='\0') break;
   s[i]=s[i] ^ Key;
 }
return s;
}


Добавлено через 6 минут и 3 секунды
CP_ACP 
The current system Windows ANSI code page. This value can be different on different computers, even on the same network. It can be changed on the same computer, leading to stored data becoming irrecoverably corrupted. This value is only intended for temporary use and permanent storage should be done using UTF-16 or UTF-8 if possible. 

Перевод сократа

Цитата

CP_ACP
Текущая системная кодовая страница Windows ANSI. Эта величина может быть другой в других компьютерах, даже в той же сети. Может быть изменено в том же компьютере, ведущем к загруженному становлению данных irrecoverably искаженных. Эта величина только предназначена для временного использования и постоянная память должна быть сделана используя UTF-16 или UTF-8 если возможно


Это сообщение отредактировал(а) rthsobakas - 3.3.2009, 12:59
PM   Вверх
rthsobakas
Дата 3.3.2009, 13:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Awaiting Authorisation
Сообщений: 562
Регистрация: 20.9.2007

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



http://msdn.microsoft.com/en-us/library/bb202786.aspx

int MultiByteToWideChar(
  UINT CodePage,
  DWORD dwFlags,
  LPCSTR lpMultiByteStr,
  int cbMultiByte,
  LPWSTR lpWideCharStr,
  int cchWideChar
);
PM   Вверх
rthsobakas
Дата 3.3.2009, 13:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Awaiting Authorisation
Сообщений: 562
Регистрация: 20.9.2007

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



[ILINK32 Error] Fatal: Unable to open file '相Ⴜ"Ⴔ"農相ꊊ相ꀁ盞勑ƊĄ.OBJ'

Возникает если

Код

Edit1->Text=Code_Dec(Edit1->Text.c_str(),'A');


wchar_t * Code(wchar_t *s,char Key){
 for (int i = 0;; i++) {
   if (s[i]=='\0') break;
   s[i]=s[i] ^ Key;
 }
return s;
}

PM   Вверх
myk
Дата 4.3.2009, 05:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



я попробовал это исполнять сперва тоже чето не открывалось но потом пересоздал проект и все сделал внимательно((=

а по поводу чаров надо помоеум другую среду юзать, builder 2007 не имеет таких галов ну и по приятнее чем builder 6 .

Это сообщение отредактировал(а) myk - 4.3.2009, 05:13
PM MAIL   Вверх
myk
Дата 12.3.2009, 04:48 (ссылка)    | (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Код

UnicodeString K="sdfsdfsd";
char *W = K.t_str();


вот так работает(= неужели никто не знал про этот метод??
PM MAIL   Вверх
mrbrooks
Дата 12.3.2009, 09:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


трололомен
****


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

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



Цитата(myk @  12.3.2009,  04:48 Найти цитируемый пост)
вот так работает(= неужели никто не знал про этот метод?? 

такой подход ошибочный. это прокатит только в Бормане. для работы с массивами символов предусмотрены функции копирования.
PM MAIL   Вверх
myk
Дата 12.3.2009, 12:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



это чисто пример, как приводить к чару из юникода. мне надо было через оле в ексель передавать чар строки, другие он не принимал ругаясь ошибками, .c_str() не помогал а .t_str() делает.

Это сообщение отредактировал(а) myk - 13.3.2009, 05:03
PM MAIL   Вверх
ZAK
Дата 18.3.2009, 10:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Вынужден был давеча портировать проект с VC++ 6.0 на VC++ 2005 и пользуясь инструкцией, написанной менеджером проекта, для конвертирования в/из Unicode широко использовал макросы ATL. Для констант - _T(""), для переменных CA2T(), CT2A(), CW2T() и т.п.

http://msdn.microsoft.com/ru-ru/library/87zae4a3.aspx
http://msdn.microsoft.com/ru-ru/library/805c56f8.aspx
PM MAIL   Вверх
batraq
Дата 14.4.2009, 18:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



А может кто знает в std::wstring и вообще в STL есть готовые функции чтобы гонять строки из верхнего регистра в нижний и наоборот?
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

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

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

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

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


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

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


 




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


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

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