Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > .NET для новичков > Сохранение textBox->Text в массив типа Char


Автор: Krav 30.5.2011, 13:47
Не получается сохранить в массив типа Char текст из textBox
Код

char opis[1000][256];
opis[1]=textBox1->Text->ToCharArray();

Ошибка:
Код

error C2440: '=' : cannot convert from 'cli::array<Type,dimension> ^' to 'char [256]'

Как правильно записать  в массив текст из textBox?

Автор: jonie 30.5.2011, 20:41
Код


System.Text.ASCIIEncoding ASCII  = new System.Text.ASCIIEncoding();
Byte[] BytesMessage = ASCII.GetBytes(StringMessage);

вот переведите в C++\CLI и будет вам массив char-ов...наверно... возможно, понадобится использовать статические методы класса Marshal

Автор: Krav 31.5.2011, 19:05
На MSDN есть подробная http://msdn.microsoft.com/ru-ru/library/585whdf9(v=vs.90).aspx по этой проблеме.

Сначала я использовал PtrToStringChars, но вскоре додумался до более элементарного способа конвертации:
Код

for (int i=0; i< this->textBox1->Text->Length; i++)
{
 opis[i] = this->textBox1->Text[i];
}


но теперь возникли проблемы с кириллицей, она неправильно конвертируется.

Как это исправить?


Автор: jonie 31.5.2011, 19:25
Цитата(Krav @  31.5.2011,  19:05 Найти цитируемый пост)

но теперь возникли проблемы с кириллицей, она неправильно конвертируется.

Как это исправить?

а я разве выше вам не говорил КАК ? Вы прочитайте сначала, поймите, а потом уже ....

можно конвертировать конечно и используя WideCharToMultyByte функцию из WinAPI или аналоги...

Автор: Krav 1.6.2011, 19:54
jonie,  спасибо за подсказку про WideCharToMultiByte

в результате привел к такому коду
Код

 pin_ptr<const wchar_t> wch=PtrToStringChars(textBox1->Text);
int sizeInBytes = (textBox1->Text->Length + 1);
char *ch = (char *)malloc(sizeInBytes);             
WideCharToMultiByte(0,0,wch,-1,ch,sizeInBytes,NULL,NULL);
label1->Text=gcnew String(ch);
delete ch;


проблема решена

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)