digitalsnake
یک شنبه 10 مهر 1390, 21:25 عصر
من برای اینکه متن یک تکست باکس رو به char تبدیل کنم و روش یک سری عملیات انجام بدم با مشکل رو به رو شده ام . من اینگونه تبدیل متن به char را انجام میدهم
char *temp;
temp = (char*)System::Runtime::InteropServices::Marshal:: StringToHGlobalAnsi(textBox1->Text).ToPointer();
و برای عکس این کار به صورت زیر عمل میکنم
String ^systemstring = gcnew String(temp);
textBox3->Text = systemstring;
تا اینجا مشکلی نیست به جز اینکه در ویندوز سون ، حروف فارسی به علامت سوال تبدیل شده و در ویندوز اکس پی فقط حرف ی به علامت سوال تبدیل میشه.
البته برای زبان انگلیسی مشکلی نیست.
ولی مشکل اصلی اینجاست که اگر بخوام بین این دو دستور تغییراتی در حروف ایجاد کنم نمی توانم. مثلا حرف دوم را به int تبدیل کرده و بعد از جمع کردن با یک عدد مثلا 26 دوباره اون رو به حروف تبدیل کنم و روی textbox نشون بدم.
و من شدیدا تازه کارم. لطفا ساده توضیح بدید.
Microsoft Visual Studio 2010 C++
راستی یک روش دیگر رو هم امتحان کرده ام ولی هنگام اجرای برنامه ، برنامه گیر میکند و خارج می شود .
Array^ temm1= Array::CreateInstance(String::typeid,4,4);
for (int i=0;i<4;i++){
for(int j=0;j<4;j++){
//temm1[i][j]=temm[i+j];
if(4*i+j<InLenght)
temm1->SetValue(String::Concat(temm[4*i+j]),i,j);
Int32 c;
String^ str =(temm1->GetValue(1,0))->ToString();
c = Convert::ToInt32(str);
c++;
String^ C=c.ToString();
temm1->SetValue(String::Concat(c.ToString()),1,0);
ایرادی نمیگیره ولی هنگام اجرای برنامه وقتی باید این کارار رو انجام بده از برنامه میاد بیرون و مقدار صفر در c قرار گرفته شده است. (روی خط 11)
(این کدارو با گشت و گذار تو اینترنت پیدا کردم وگرنه خودم تازه کارم)
char *temp;
temp = (char*)System::Runtime::InteropServices::Marshal:: StringToHGlobalAnsi(textBox1->Text).ToPointer();
و برای عکس این کار به صورت زیر عمل میکنم
String ^systemstring = gcnew String(temp);
textBox3->Text = systemstring;
تا اینجا مشکلی نیست به جز اینکه در ویندوز سون ، حروف فارسی به علامت سوال تبدیل شده و در ویندوز اکس پی فقط حرف ی به علامت سوال تبدیل میشه.
البته برای زبان انگلیسی مشکلی نیست.
ولی مشکل اصلی اینجاست که اگر بخوام بین این دو دستور تغییراتی در حروف ایجاد کنم نمی توانم. مثلا حرف دوم را به int تبدیل کرده و بعد از جمع کردن با یک عدد مثلا 26 دوباره اون رو به حروف تبدیل کنم و روی textbox نشون بدم.
و من شدیدا تازه کارم. لطفا ساده توضیح بدید.
Microsoft Visual Studio 2010 C++
راستی یک روش دیگر رو هم امتحان کرده ام ولی هنگام اجرای برنامه ، برنامه گیر میکند و خارج می شود .
Array^ temm1= Array::CreateInstance(String::typeid,4,4);
for (int i=0;i<4;i++){
for(int j=0;j<4;j++){
//temm1[i][j]=temm[i+j];
if(4*i+j<InLenght)
temm1->SetValue(String::Concat(temm[4*i+j]),i,j);
Int32 c;
String^ str =(temm1->GetValue(1,0))->ToString();
c = Convert::ToInt32(str);
c++;
String^ C=c.ToString();
temm1->SetValue(String::Concat(c.ToString()),1,0);
ایرادی نمیگیره ولی هنگام اجرای برنامه وقتی باید این کارار رو انجام بده از برنامه میاد بیرون و مقدار صفر در c قرار گرفته شده است. (روی خط 11)
(این کدارو با گشت و گذار تو اینترنت پیدا کردم وگرنه خودم تازه کارم)