PDA

View Full Version : سوال: نوشتن اعداد به صورت فارسي در متن برنامه



m__nasirian
پنج شنبه 26 شهریور 1388, 12:29 عصر
سلام دوستان؛
من مي خوام توي "خود برنامه" از اعداد فارسي استفاده كنم مثلا در دستورات زير مي خوام اعداد صفر ، يك و دو بصورت 0 ، 1 و 2 نوشته بشن كسي مي تونه راهنماييم كنه ؟! خيلي ممنون مي شم ! در ضمن تغيير digit substitiution در regional options ( در control panel ) هيچ تاثيري نمي ذاره و در هر صورت اعداد رو انگليسي مي نويسه :ناراحت:


( در حقيقت من مي خوام بين وقتي كه كاربر در يك textbox عدد رو بصورت فارسي تايپ مي كنه با وقتي انگليسي مي نويسه فرق بذارم براي همين بايد حتما توي case فارسي يا انگليسي بودن عدد رو جداگانه بررسي كنم. )

:


switch (strname[k])
{

case '0':
codstr[i] = 215;
i++;
break;
case '1':
codstr[i] = 216;
i++;
break;
case '2':
codstr[i] = 217;
i++;
break;

Beyondsoft
پنج شنبه 26 شهریور 1388, 15:35 عصر
سلام
اکثراً در نمایش اعداد به فارسی مشکل دارند. فانکشنی که بنده در زیر نوشتم، این مشکل را حل می کند
در واقع اعداد انگلیسی را به فارسی تبدیل می کند

"قبلا در پست جداگانه ای در aspx این وانکشن را نوشته بودم"



string EnNum2Fa(string EnNum)
{
int nLen;
string sFrStr;
nLen = EnNum.Length;

if(nLen ==0 || nLen == null)
{
return EnNum;
}
sFrStr = "";
for (int i = 1 ; i<nLen ; i++)
{
char ch = (char)EnNum[i];
if ( (int)ch <= 57 & (int)ch >= 48)
{
ch = ((char)((int)ch + 1728));
}
sFrStr += ch;

}

return sFrStr;

}

Reza_Yarahmadi
پنج شنبه 26 شهریور 1388, 15:38 عصر
معمولا وقتی regional options رو روی فارسی تنظیم کرده باشید و خاصیت RigthToLeft تکست باکس هم Yes باشه اعداد رو بصورت فارسی نشون میده!!

m__nasirian
پنج شنبه 26 شهریور 1388, 16:40 عصر
سلام دوست عزيز Beyondsoft ؛ ممنون به خاطر پاسختون :لبخندساده:
ولي من اصلاً نميفهمم كه اين رو بايد چه كارش كنم ؟!!
ببينين مشكل من اينه كه توي برنامه نويسي وقتي alt+shift رو مي زنم ، فارسي مي نويسه ولي عدد رو نمي دونم چرا انگليسي مي نويسه اين به اين خاطر واسم مهمه كه توي اين قسمت برنامه دارم تك تك حروفي كه بوسيله ي كاربر در textbox نوشته شده رو بررسي مي كنم و مي خوام اگه مثلا عدد "سه فارسي" وارد شده بود يه كاري انجام بدم و اگه "سه انگليسي " بود ، يه كار ديگه .... پس توي يه swith-case هر دو حالت رو بايد چك كنم كه مشكلم اينه كه هر دو ، توي متن برنامه، يه جور(" عدد انگليسي " ) نوشته ميشه !!

m__nasirian
پنج شنبه 26 شهریور 1388, 16:46 عصر
Reza_Yarahmadi عزيز مشكل من نوشتن عدد فارسي توي textbox نيست بلكه توي خود برنامه است كه توضيحاتي نوشتم
بهر حال ممنونم:لبخندساده:

mahdi_7610
پنج شنبه 26 شهریور 1388, 20:04 عصر
شما توي همون کنترل پنل توي قسمت standard digit یک سری عدد نوشته شده 2 تا از اونها فارسی هستش شما عدد فارسي را انتخاب کنيد و سپس توي قسمت digit substitiution گزينه national را انتخاب کنيد .

اين طوري اعداد توي برنامه فارسي تايپ مي شه

alireza_tavakol
پنج شنبه 26 شهریور 1388, 22:27 عصر
سلام

فکر کنم منظور شما رو فهمیده باشم

برای این کار از منوی start گزینه run را انتخاب کنید و برنامه charmap.exe را اجرا نمایید در این پنجره کاراکتر عدد فارسی مورد نظر را انتخاب کنید و دکمه copy را فشار دهید سپس در محیط کد نویسی ویژوال استادیو کاراکتر را paste نمایید

مثلا به جای حرف 3 می توانید بنویسید ٣

البته را حرفه ای تری وجود دارد که در این مجال نمی گنجد و ربطی به تالار برنامه نویسی C#‎ ندارد

موفق باشید

m__nasirian
پنج شنبه 26 شهریور 1388, 22:29 عصر
شما توي همون کنترل پنل توي قسمت standard digit یک سری عدد نوشته شده 2 تا از اونها فارسی هستش شما عدد فارسي را انتخاب کنيد و سپس توي قسمت digit substitiution گزينه national را انتخاب کنيد .

اين طوري اعداد توي برنامه فارسي تايپ مي شه
ممنونم ولي اين كار رو قبلاً كرده بودم هيچ فرقي نكرد !! :ناراحت:

m__nasirian
پنج شنبه 26 شهریور 1388, 22:36 عصر
سلام

فکر کنم منظور شما رو فهمیده باشم

برای این کار از منوی start گزینه run را انتخاب کنید و برنامه charmap.exe را اجرا نمایید در این پنجره کاراکتر عدد فارسی مورد نظر را انتخاب کنید و دکمه copy را فشار دهید سپس در محیط کد نویسی ویژوال استادیو کاراکتر را paste نمایید

مثلا به جای حرف 3 می توانید بنویسید ٣

البته را حرفه ای تری وجود دارد که در این مجال نمی گنجد و ربطی به تالار برنامه نویسی C#‎ ندارد

موفق باشید
دوست عزيز با اين كار تمام حروف فارسي رو copy مي كنه اما اعداد رو همچنان انگليسي مي نويسه !!!!

mahdi_7610
پنج شنبه 26 شهریور 1388, 22:42 عصر
ممنونم ولي اين كار رو قبلاً كرده بودم هيچ فرقي نكرد !! :ناراحت:

اگه فارسی ساز ویندوز شما نصب باشه . با تغییر اون دو قسمتی که توی تصویر زیر می بینید تمامی اعداد توی ویندوز شما فارسی خواهند شد .

حتی ساعت ویندوز و نام تمامی فایلهایی که توی ویندوز به صورت عددی هستند فارسی خواهند شد .

حتی توی تمامی برنامه ها شما میتونید اعداد را به صورتی فارسی مشاهده کنید .

در کل هر چی عدد توی هر جا باشه فارسی دیده میشه . حتی توی سایتهای اینترنتی

به شرطی که فارسی ساز ویندوز نصب باشه

m__nasirian
پنج شنبه 26 شهریور 1388, 23:11 عصر
اگه فارسی ساز ویندوز شما نصب باشه . با تغییر اون دو قسمتی که توی تصویر زیر می بینید تمامی اعداد توی ویندوز شما فارسی خواهند شد .

حتی ساعت ویندوز و نام تمامی فایلهایی که توی ویندوز به صورت عددی هستند فارسی خواهند شد .

حتی توی تمامی برنامه ها شما میتونید اعداد را به صورتی فارسی مشاهده کنید .

در کل هر چی عدد توی هر جا باشه فارسی دیده میشه . حتی توی سایتهای اینترنتی

به شرطی که فارسی ساز ویندوز نصب باشه
عجيب اينه كه در همه جا ، به قول شما ، اعداد فارسي شده اند اما توي متن برنامه ي c# همچنان انگليسي مي نويسه !
بهر حال ممنونم

margemoosh
سه شنبه 12 مرداد 1389, 11:15 صبح
سلام
اکثراً در نمایش اعداد به فارسی مشکل دارند. فانکشنی که بنده در زیر نوشتم، این مشکل را حل می کند
در واقع اعداد انگلیسی را به فارسی تبدیل می کند

"قبلا در پست جداگانه ای در aspx این وانکشن را نوشته بودم"



string EnNum2Fa(string EnNum)
{
int nLen;
string sFrStr;
nLen = EnNum.Length;

if(nLen ==0 || nLen == null)
{
return EnNum;
}
sFrStr = "";
for (int i = 0 ; i<nLen ; i++)
{
char ch = (char)EnNum[i];
if ( (int)ch <= 57 & (int)ch >= 48)
{
ch = ((char)((int)ch + 1728));
}
sFrStr += ch;

}

return sFrStr;

}


آرایه ها در سی شارپ از صفر شروع میشن باید توی for شمارنده رو از صفر شروع کنین تا کد درست عمل کنه