PDA

View Full Version : فارسی کردن اعداد textbox و عواقب آن



mohammady2
شنبه 15 تیر 1387, 20:19 عصر
سلام دوستان
من با استفاده از کدهایی که توی سایت بود اعداد textbox رو فارسی میکنم .اما وقتی سطری باهمون شماره رو در دیتا بیس جستجو میکنم بهم نمیده . در صورتی که در مورد اعداد انگلیسی اینطور نیست.

mohammady2
شنبه 15 تیر 1387, 22:13 عصر
توی سایت فقط در مورد نحوه فارسی کردن تکست بکس و اعداد کلا بحث شده اما این مورد رو نیافتم

hdv212
شنبه 15 تیر 1387, 22:35 عصر
من با استفاده از کدهایی که توی سایت بود اعداد textbox رو فارسی میکنم .اما وقتی سطری باهمون شماره رو در دیتا بیس جستجو میکنم بهم نمیده . در صورتی که در مورد اعداد انگلیسی اینطور نیست.
روش خاصی لازم نیست، کافیه از فونتهای TrueType فارسی استفاده کنی، و خاصیت RightToLeft کنترلها رو ست کنی.

m0rteza
یک شنبه 16 تیر 1387, 00:02 صبح
با اجازه استادم hdvd که خیلی به گردنم حق داره
شما وقتی داری کد مینویسی اصلا نباید از این کد فارسی ساز عد استفاده کنی . چرا؟ دلیلش رو میگم
ما دو نوع عدد فارسی داریم
1) همین که شما با استفاده از کد بدست اوردی و یک عدد اسکی خاص خودش رو داره

2) شما اگر در controlpanel/regional and langu... اعداد رو فارسی کنی .این اعداد فارسی همون اعداد اینگلیسی هستن و همون عدد اسکی ولی با یک display دیگه

اگه از حالت دومی استفاده کنی هیج جا مشکل نداری (کی گفته؟ تجربه گفته)

gdevnb
یک شنبه 16 تیر 1387, 06:42 صبح
2) شما اگر در controlpanel/regional and langu... اعداد رو فارسی کنی .این اعداد فارسی همون اعداد اینگلیسی هستن و همون عدد اسکی ولی با یک display دیگه

اگه از حالت دومی استفاده کنی هیج جا مشکل نداری (کی گفته؟ تجربه گفته)
سلام
همیشه نمیتونید از این روش استفاده کنید.
دلیل
1)Deploy برنامه و اینکه به کار بر بگی این کار رو انجام بده.
2)با انجام این کار تمام اعداد فارسی نوشته میشه حتی اعدادی که بعد از حرف انگلیسی میاد که همیشه مطابق میل کاربر نهایی نیست.تو یه پروژه مربوط به یکی از شرکتهای وابسته به ایران خودرو من این روش رو پیشنهاد دادم که شدیداً مخالفت کردن چون یه سری آمار و ارقام و فرمول بود که حتماً باید اونطوری که اونا میخواستن نوشته میشد.

خلاصه بهترین روش استفاده از روشیه که جناب hdv212 ذکر کردن.

اَرژنگ
یک شنبه 16 تیر 1387, 08:13 صبح
با اجازه استادم hdvd که خیلی به گردنم حق داره
شما وقتی داری کد مینویسی اصلا نباید از این کد فارسی ساز عد استفاده کنی . چرا؟ دلیلش رو میگم
ما دو نوع عدد فارسی داریم
1) همین که شما با استفاده از کد بدست اوردی و یک عدد اسکی خاص خودش رو داره

2) شما اگر در controlpanel/regional and langu... اعداد رو فارسی کنی .این اعداد فارسی همون اعداد اینگلیسی هستن و همون عدد اسکی ولی با یک display دیگه

اگه از حالت دومی استفاده کنی هیج جا مشکل نداری (کی گفته؟ تجربه گفته)


سلام
همیشه نمیتونید از این روش استفاده کنید.
دلیل 1)Deploy برنامه و اینکه به کار بر بگی این کار رو انجام بده.
2)با انجام این کار تمام اعداد فارسی نوشته میشه حتی اعدادی که بعد از حرف انگلیسی میاد که همیشه مطابق میل کاربر نهایی نیست.تو یه پروژه مربوط به یکی از شرکتهای وابسته به ایران خودرو من این روش رو پیشنهاد دادم که شدیداً مخالفت کردن چون یه سری آمار و ارقام و فرمول بود که حتماً باید اونطوری که اونا میخواستن نوشته میشد.

خلاصه بهترین روش استفاده از روشیه که جناب hdv212 ذکر کردن.
در مورد دلیل اولتان، controlpanel/regional and langu... کنترلش به دست کاربر است، اینکه با زور اعداد را به فارسی نشان داد درست نیست، در ضمن کاربر باید بتواند به یک شکل با همه برنامه‌ها در ویندوز کار کند.
۲.یک مثال که این مشکل را نشان بدهد بفرستید، اینکه با روش شما مخالفت کردن دلیل به درست بودن اونها نیست، شاید تجربه درست انجام دادن اینکار را نداشتند و قابلیت فهم پیشنهاد شما ازشان به دور بود.
۳.دلیل اینکه میگم به این روش باید بیشتر توجه بشد این است که اگر یکی برنامه خوبی نوشت دیگر برنامه‌اش منحصر به ایران نماند.

mohammady2
یک شنبه 16 تیر 1387, 17:55 عصر
جناب hdv212 ممکنه دقیقا بفرمایید چیکار کنم.. اسم این فونتها چیه ؟ میخوام تا جایی که میتونم برنامه م بعدا نیاز به نصب فونت نداشته باشه.ولی خوب اگر این راهشه شما بفرمایید نصبش کنیم.

رضا عربلو
یک شنبه 16 تیر 1387, 21:57 عصر
فونت های که با B شروع می شوند مثل BZar , B Tahomma و ...

mohammady2
دوشنبه 17 تیر 1387, 06:11 صبح
یعنی راهی که نیاز به نصب فونت نداشته باشه نداریم؟

hdv212
دوشنبه 17 تیر 1387, 11:00 صبح
یعنی راهی که نیاز به نصب فونت نداشته باشه نداریم؟
راه که هست، راجت ترین و بهترین و سر راست ترینش استفاده از فونتهای TrueType هست، تازه نصب فونت هم که کاری نداره، در زمان ساخت SetUp فونت مورد نظرت رو به قسمت Fonts بکش، در زمان SetUp خودش توی پوشه ی Fonts ویندوز نصب میشه، یه نمونه ش هم اینه :

gdevnb
دوشنبه 17 تیر 1387, 13:09 عصر
در مورد دلیل اولتان، controlpanel/regional and langu... کنترلش به دست کاربر است، اینکه با زور اعداد را به فارسی نشان داد درست نیست، در ضمن کاربر باید بتواند به یک شکل با همه برنامه‌ها در ویندوز کار کند.
۲.یک مثال که این مشکل را نشان بدهد بفرستید، اینکه با روش شما مخالفت کردن دلیل به درست بودن اونها نیست، شاید تجربه درست انجام دادن اینکار را نداشتند و قابلیت فهم پیشنهاد شما ازشان به دور بود.
۳.دلیل اینکه میگم به این روش باید بیشتر توجه بشد این است که اگر یکی برنامه خوبی نوشت دیگر برنامه‌اش منحصر به ایران نماند.
سلام
با این مورد و بعضی موارد مشابه باید به صورت نسبی برخورد بشه.
چون روش فوق تمام اعداد رو فارسی میکنه , ممکنه مشکلاتی بوجود بیاره.جایی که ما رفتیم لازم بود یک سری از اعداد حتماً به شکل فارسی نشون داده بشه و یک سری دیگه مثل شماره سریال قطعات حتماً اینگلیسی (به عنوان مثالA223PO5HJk20) در این حالت روشی که شما بهش توجه داری عملاً مورد استفاده نیست.
در مورد سوم هم شما کلی برخورد کردید این مسئله برای این مورد همیشه صادق نیست

mohammady2
دوشنبه 17 تیر 1387, 18:49 عصر
راه که هست، راجت ترین و بهترین و سر راست ترینش استفاده از فونتهای TrueType هست، تازه نصب فونت هم که کاری نداره، در زمان ساخت SetUp فونت مورد نظرت رو به قسمت Fonts بکش، در زمان SetUp خودش توی پوشه ی Fonts ویندوز نصب میشه، یه نمونه ش هم اینه :

متشکر از فونتی که گذاشتید ولی با نصب این فونت و راست چین کردن تکست باکس ، فارسی نشد.
ضمن اینکه باید بگم با نصب فونتهای Bzar ..B.. فارسی شد ولی با این فونت نه!!

gdevnb
سه شنبه 18 تیر 1387, 23:32 عصر
سلام
فونت فارسی مگه کمه از فونتهای دیگه استفاده کنید(البته با فونتهای خود ویندوز مثل Tahoma هم میشه)

jeus
چهارشنبه 19 تیر 1387, 01:22 صبح
دوست من اصلا میتونی این قسمت انتخاب فونت را پویا توی برنامه ات بگذاری که وقتی جایی رفتی بتونی فونتهای مختلف را تست کنی و یکی را انتخاب کنی

Milad Mohseny
چهارشنبه 19 تیر 1387, 07:47 صبح
با گفته دوستان موافقم ولی اگر کاربر شما برای یکی از فیلد ها مثلا بخواهد مقدار 1-8 را وارد کند، شیوه نمایش آن در فارسی و انگلیسی متفاوت است ولی در جستجوی بانک مشکلی نخواهید داشت.

subsub
سه شنبه 12 شهریور 1387, 06:25 صبح
سلام

من هم قبلاً با چیزی شبیه به همین مشکل مواجه شدم.

در فونت‌های استاندارد، بین اعداد فارسی و انگلیسی تفاوت هست. اما برخی از فونت‌ها بین این دو هیچ تفاوتی قائل نمی‌شوند و تنها با تغییر فرم نمایش اعداد انگلیسی، اعداد فارسی رو تولید می‌کنند. خب این مشکل وجود داره که باید توی سیستم مقصد حتماً اون فونت نصب بشه وگرنه اعداد انگلیسی نمایش داده می‌شوند.

شما اگر فونت Tahoma رو در نظر بگیری وقتی از طریق Character Map ویندوز، لیست کاراکترهای اون رو مشاهده کنی، دو نوع عدد میبینی. اعداد انگلیسی و اعداد فارسی.

من یک پروژه بود که با C# 2 نوشتم. اما توی ویندوز ویستا. ویستا بین اعداد فارسی و انگلیسی تفاوت قائل میشه (برعکس XP که برای اعداد تنها از فرم انگلیسی اعداد استفاده می‌کرد. البته بعضی جاها این بین این‌دو تفاوت می‌زاره). اما مشکل اینجا بود که بانک اطلاعاتی در مورد ستون‌های از نوع عدد، عدد فارسی رو قبول نمی‌کرد. برای همین مجبور بودم از یک تابع برای رفع این مشکل استفاده کنم. تابعش چیز زیاد پیچیده و سختی نبود تنها 10 بار عمل جایگذینی را در رشته انجام می‌داد. یک بار یک فارسی رو به یک انگلیسی تبدیل می‌کرد، یک بار دو فارسی رو به دو انگلیسی و ...

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

البته تا پروژه شما رو نبینم، نمی‌تونم نظر قطعی بدم.