PDA

View Full Version : چگونه در یک text box بخشی از اعداد فارسی و بخشی دیگر انگلیسی نشان داده شود ؟



konkoory_82
سه شنبه 10 مرداد 1391, 11:38 صبح
سلام
متنی دارم که شامل دو بخش عدد هست که با کاما از هم جدا می شوند. می خوام اعداد بخش اول فارسی و اعداد بخش دوم انگلیسی نشون داده بشه و به همون صورت در دیتابیس ذخیره بشه.مثلا 33،45 که 45 انگلیسی و 33 فارسی باید باشه!

h_assefi
چهارشنبه 11 مرداد 1391, 14:19 عصر
فکرنکنم همچین کاری بشه کرد چون نوع فونتی که انتخاب می کنی مشخص می کنه که طرز نوشتن اعداد به چه شکله و نمیشه دو تا فونت برا یه تکست گذاشت

hakim22
چهارشنبه 11 مرداد 1391, 16:27 عصر
تا جایی که من میدونم فارسی و انگلیسی بودن اعداد مربوط به Regional and language option ویندوز میشه یا شما خودت توی برنامه culture رو روی چیز خاصی تنظیم کنی
در مورد ذخیره در دیتابیس به صورت فارسی و انگلیسی خب میشه تنظیم کنی که یکی Unicode یا ,UTF-8 ذخیره بشه و اونی که انگلیسیه از نوع Ascii

وقتی قابلیتی مثل context در word وجود داره که بسته به جهت نوشتن اعداد روی فارسی یا انگلیسی می کنه پیاده کردنش در نرم افزار های دیگه هم ممکنه ! ولی اینکه چگونه میشه چنین قابلیتی رو در یک textbox نشون داد از دانش من خارجه !

ali_habibi1384
چهارشنبه 11 مرداد 1391, 17:45 عصر
سلام
متنی دارم که شامل دو بخش عدد هست که با کاما از هم جدا می شوند. می خوام اعداد بخش اول فارسی و اعداد بخش دوم انگلیسی نشون داده بشه و به همون صورت در دیتابیس ذخیره بشه.مثلا 33،45 که 45 انگلیسی و 33 فارسی باید باشه!
نميتوني چنين كاري رو بكني. خودتو خسته نكن.براي نمايش ميتوني دو تا تكست باكس رو به هم بچسبوني اما براي ذخيره سازي هر دو بصورت انگليسي ذخيره ميشه.

the king
پنج شنبه 12 مرداد 1391, 01:15 صبح
سلام
متنی دارم که شامل دو بخش عدد هست که با کاما از هم جدا می شوند. می خوام اعداد بخش اول فارسی و اعداد بخش دوم انگلیسی نشون داده بشه و به همون صورت در دیتابیس ذخیره بشه.مثلا 33،45 که 45 انگلیسی و 33 فارسی باید باشه!


private void Form1_Load(object sender, EventArgs e)
{
float n = 12.34F;
float m = 56.78F;
textBox1.Text = FloatToString(m, true) + " , " + FloatToString(n, false);
}

private string FloatToString(float value, bool persian)
{
string text = value.ToString();
char baseChar = ((int)0).ToString()[0];
char zeroChar = (persian) ? '\u06F0' : '\u0030';
StringBuilder newText = new StringBuilder();
foreach (char ch in text)
if ((ch >= baseChar) && (ch <= baseChar + 9))
newText.Append((char)(zeroChar + ch - baseChar));
else
newText.Append(ch);
return newText.ToString();
}

konkoory_82
شنبه 11 شهریور 1391, 09:03 صبح
private void Form1_Load(object sender, EventArgs e)
{
float n = 12.34F;
float m = 56.78F;
textBox1.Text = FloatToString(m, true) + " , " + FloatToString(n, false);
}

private string FloatToString(float value, bool persian)
{
string text = value.ToString();
char baseChar = ((int)0).ToString()[0];
char zeroChar = (persian) ? '\u06F0' : '\u0030';
StringBuilder newText = new StringBuilder();
foreach (char ch in text)
if ((ch >= baseChar) && (ch <= baseChar + 9))
newText.Append((char)(zeroChar + ch - baseChar));
else
newText.Append(ch);
return newText.ToString();
}

ممنون واقعا الگوریتم زیبایی بود