Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Visual C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.09.2009, 01:50   #1
Lokos
Форумчанин
 
Регистрация: 29.09.2009
Сообщений: 587
По умолчанию руские буквы в textbox в MS Visual C++ 2008

TExtbox заполняю таким образом
Код:
int i;
 for (i = 0; i<256; i++)
 {
	textBox1->Text=textBox1->Text+Char(i) + "\r\n";
 }
Англиские буквы печатает нормально а вот с русскими беда печатает каракули.
Есть идеи как это исправить?
ЗАрание спасибо

Последний раз редактировалось Stilet; 29.09.2009 в 09:36.
Lokos вне форума Ответить с цитированием
Старый 29.09.2009, 05:58   #2
dampirik
Форумчанин
 
Регистрация: 02.07.2009
Сообщений: 722
По умолчанию

Код:
String^ s;
int i;
For (i=0;i<256;i++)
{  
   s=i.ToString();
   this->textBox1->AppendText(s);
}
У меня проблем не возникает
dampirik вне форума Ответить с цитированием
Старый 29.09.2009, 06:07   #3
Lokos
Форумчанин
 
Регистрация: 29.09.2009
Сообщений: 587
По умолчанию

вот что в этоге выводится в текст бокс
01234567891011121314151617181920212 22324252627282930313233343536
37383940414243444546474849505152535 4555657585960616263646566676
и т. д.
а должны быть символы(((
Lokos вне форума Ответить с цитированием
Старый 29.09.2009, 06:16   #4
dampirik
Форумчанин
 
Регистрация: 02.07.2009
Сообщений: 722
По умолчанию

Код:
String^ s,ss="ПРивеД МиР";
int i;
For (i=0;i<256;i++)
{  
   s=i.ToString();
   this->textBox1->AppendText(s);
}
this->textBox1->AppendText(ss);
А что вообще сделать нужно то?)
dampirik вне форума Ответить с цитированием
Старый 29.09.2009, 11:47   #5
Lokos
Форумчанин
 
Регистрация: 29.09.2009
Сообщений: 587
По умолчанию

нужно из числа получить символ например
int i;
i=255;
cout<<Char(i);
вывидется буква я
но в текст боксе выводится не буква я а каракуля хз какая(((
Lokos вне форума Ответить с цитированием
Старый 29.09.2009, 20:32   #6
dampirik
Форумчанин
 
Регистрация: 02.07.2009
Сообщений: 722
По умолчанию

Понял о чем Вы)) Вот смотрите:
Код:
#include <stdio.h>
#include <iostream>
#include <string.h>
main()
{
int i;
for (i=0; i<257;i++)
  std::cout<<char(i);
}
отдает:
Цитата:
123456789:;<=>?@ABCDEFGHIJKLMNOPQRS TUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}─│┌ ┐└┘├┤┬┴┼▀▄█▌▐░▒▓⌠■•√≈≤≥*⌡°²·÷═║╒ёє╔ ії╗╘╙╚╛ґ╝╞╟╠╡ЁЄ╣ІЇ╦╧╨╩╪Ґ╬©юабцдефгх ийклмнопярстужвьызшэщчъЮАБЦДЕФГХИЙК ЛМНОПЯРСТУЖВЬЫЗШЭЩЧЪ
Код:
for (i=192; i<257;i++)
  std::cout<<char(i);
отдает:
Цитата:
юабцдефгхийклмнопярстужвьызшэщчъЮАБ ЦДЕФГХИЙКЛМНОПЯРСТУЖВЬЫЗШЭЩЧЪ
вот Вам и Ваш алфавит
Если мне не изменяет память, textBox записывает переменные вида только String
Так-что просто переводите char в String и:
Код:
this->textBox1->AppendText(s);
dampirik вне форума Ответить с цитированием
Старый 30.09.2009, 01:50   #7
Lokos
Форумчанин
 
Регистрация: 29.09.2009
Сообщений: 587
По умолчанию

String^ s ;
char b;
b=255;
s=b.ToString();
this->textBox1->AppendText(s);
результат -1
Если пытаюсь куда либо вставить преобразование char(b); или Char(b)ж вылетает гора ошибок типа
warning C4309: =: усечение константного значения
error C2440: <function-style-cast>: невозможно преобразовать 'System::String ^' в 'wchar_t'
Lokos вне форума Ответить с цитированием
Старый 30.09.2009, 08:34   #8
dampirik
Форумчанин
 
Регистрация: 02.07.2009
Сообщений: 722
По умолчанию

Вам нужно char преобразовать в String
Код:
s=b.ToString();
преобразовывает int в стринг(вроде бы )
Доберусь домой до ноута напишу что и как.. а можно поподробнее задачу сформулировать что вообще нужно было сделать то?))
Ну я вот такое нашел(о работоспособности нечего незнаю):
Цитата:
char chararr [100] ;
String ^str;
....
....
str = Convert::ToString(chararr);
str = String(chararr); так преобразуется только первый символ массива char.
dampirik вне форума Ответить с цитированием
Старый 30.09.2009, 11:46   #9
Lokos
Форумчанин
 
Регистрация: 29.09.2009
Сообщений: 587
По умолчанию

вообщем что мне нужно)))
есть переменная i в ней храниться число в диапазоне от 0 до 256
мне нужно научиться переделывать это число в буквы/символ но не делать с целочисленного типа текстовый. и наоборот
тоесть например
47=a
48=b
49=c
и тд
и чтоб можно это было все записывать в элемент textbox
способ textbox1->text=Char(i) работает но только с англискими буквами и цифрами а вот руские печатает каказябриками
Lokos вне форума Ответить с цитированием
Старый 30.09.2009, 11:56   #10
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,065
По умолчанию

textbox скорее всего юникодные строки отображает, а на вход ему даётся 1-байтовая строка. В UTF-8 коды англицкого алфавита совпадают с кодировкой 1251, а вот с русскими проброс выходит судя по всему.
pu4koff вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Visual Studio 2008, Visual C++ mrandrey Visual C++ 15 25.08.2009 12:18
Visual Studio C++ Массив элементов TextBox PMike Помощь студентам 20 31.05.2009 01:18
Как перевести проект из Visual C++ 2003 в Visual C++ 2008? iukash Visual C++ 8 17.04.2009 22:36
Создание элемента TextBox в Visual Studio C++ PMike Помощь студентам 8 04.04.2009 15:17
C++ Элемент TextBox Visual Studio PMike Общие вопросы .NET 1 04.04.2009 12:39