نمایش نتایج 1 تا 16 از 16

نام تاپیک: اعداد فارسی در C#‎

  1. #1

    اعداد فارسی در C#‎

    با سلام
    من یک Lable توی برنامم دارم که با حرف و عدد پر میشه(از توی کد برنامه پر میشه)و میخوام اعداد رو داخلش فارسی نشون بده,Unicode اعداد فارسی رو از توی Word پیدا کردم,ولی نمیدونم با چه تابعی این Unicode رو به عدد مورد نظر تبدیل کنم تا اون عدد رو با عدد English داخل String مربوط به لیبل repalace کنم؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟
    کسی میدونه؟
    لطفا کمک کنید

  2. #2
    کاربر دائمی آواتار ir_programmer
    تاریخ عضویت
    فروردین 1387
    محل زندگی
    خوزستان، استاني كه سرمايه اش در خدمت استانهاي ديگر است.
    پست
    420
    می تونی از یسری از فونت ها هم استفاده کنی که اعداد انگلیسیشون هم فارسی شده.

  3. #3
    فونتهایی که با B شروع شدند مثل B Nazanin یا B Zar و ... اینکار رو میکنند

  4. #4

    tornado tahoma

    فونت تورنادو تاهوما هم این کار رو انجام می ده برات تو همین سایت اگه بگردی می تونی پیداش کنی

  5. #5
    کاربر دائمی آواتار ir_programmer
    تاریخ عضویت
    فروردین 1387
    محل زندگی
    خوزستان، استاني كه سرمايه اش در خدمت استانهاي ديگر است.
    پست
    420
    فقط یادت نره استفاده از فونت های B Zar , B Nazanin ,... در کریستال جالب نیست. چون تو export به pdf قاط میزنه.

  6. #6

    Cool تابع فارسی کردن اعداد

    با سلام
    باز هم میگم با این که خیلی طولانی نوشته شده ولی خیلی خوب جواب میده

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

    تابع فارسی کردن اعداد در VB.Net
    https://barnamenevis.org/showpo...2&postcount=14

    تبدیل شده کد به #C
    توسط این سایت


    public string FarsiInt(object EnInt)
    {
    string A = EnInt.ToString;
    string[] A2 = new string[A.Length + 1];
    int i;
    for (i = 0; i <= A.Length - 1; i++) {
    if (Information.IsNumeric(A.Substring(i, 1))) {
    A2(i) = Strings.ChrW(Strings.AscW(A.Substring(i, 1)) + 1728);
    }
    else {
    A2(i) = A.Substring(i, 1);
    }
    }
    A = "";
    for (i = 0; i <= A2.Length - 1; i++) {
    A += A2(i);
    }
    return A;
    }

  7. #7
    کاربر دائمی آواتار hdv212
    تاریخ عضویت
    آبان 1384
    محل زندگی
    قم
    پست
    1,727
    Chabok جان، این کدت توی سی شارپ کار نمیکته و error میده، یه بار خودت تست کن.

  8. #8

    Wink راهنمایی

    با سلام
    من با همون سایتی که عرض کردم تبدیل کردم .

    ظاهرا کد مشکلی نداره
    ولی فکر کنم چون توی VB.net تبدیل Type ها خودش انجام میشه اینجا به مشکل برخوردیم .
    چون در VB.net مثلا integer به String و یا بر عکس نیازی به Convert نداره شاید این مشکل پیش اومده .

    فکر کنم شما خودتون باید زحمت این Convert ها را بکشید .

    ولی اصل کاری که باید بکنید اینه :
    دونه دونه کارکترهای رشته رو بخونید و هر کدوم که عددی بود به کد یونیکد آن 1728 واحد اضافه کنید .

    کاری که من کردم اینه :(اضافه کاری زیادی به این میگن)

    یک آرایه تعریف کرده ام به نام A2
    (طول این آرایه رو با طول رشته یکی میگیرم)

    دونه دونه کارکترهای رشته رو میخونم
    اگر عددی بود معادل فارسیش رو داخل خانه معادل در آرایه می ریزم
    اگر عددی نبود خودش را در خانه معادل میریزم

    حالا بعد از این که تموم شد خانه های این آرایه را در کنار هم قرار میدم و رشته نهایی را Return میکنم

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

    Syntax Highlighting :D

    موفق باشید . خدانگهدار

  9. #9
    کاربر دائمی آواتار hdv212
    تاریخ عضویت
    آبان 1384
    محل زندگی
    قم
    پست
    1,727
    من کد شما رو در سی شارپ به صورت زیر اصلاح کردم :
    using Microsoft.VisualBasic;

    public string FarsiInt(object EnInt)
    {
    string A = EnInt.ToString();
    string[] A2 = new string[A.Length + 1];
    int i;
    for (i = 0; i <= A.Length - 1; i++)
    {
    if (Information.IsNumeric(A.Substring(i, 1)))
    {
    A2[i] = Strings.ChrW(Strings.AscW(A.Substring(i, 1)) + 1728).ToString();
    }
    else
    {
    A2[i] = A.Substring(i, 1);
    }
    }
    A = "";
    for (i = 0; i <= A2.Length - 1; i++)
    {
    A += A2[i];
    }
    return A;
    }

  10. #10

    نقل قول: اعداد فارسی در C#‎

    کد شما بازهم مشکل داره!
    این کد ساده شده و خلاصه شده و تست شده هست! :)

    string FarsiInt(int n)
    {
    string res = "";
    while (n > 0)
    {
    res = (char)((n % 10) + 48 + 1728) + res;
    n /= 10;
    }
    return res;
    }

  11. #11
    کاربر دائمی آواتار haghft
    تاریخ عضویت
    اردیبهشت 1386
    محل زندگی
    https://t.me/pump_upp
    پست
    400

    نقل قول: اعداد فارسی در C#‎

    چرا دیگه 2 بار جمع کردین خب یه دفعه به جای 1728 + 48 مینوشتین 1776

  12. #12
    کاربر دائمی آواتار Farshid007
    تاریخ عضویت
    بهمن 1389
    محل زندگی
    Karaj
    پست
    1,249

    نقل قول: اعداد فارسی در C#‎

    چه خبره بابا
    فونت tahoma بزار , RightToLeft لیبل رو true بزارِی اعداد فارسی میشن

  13. #13

    نقل قول: اعداد فارسی در C#‎

    زیر خاکی کشف کردید

    اخرین پستی که در این تاپیک زده شده بود مربوطه میشه به (( یک شنبه 02 دی 1386 21:23 عصر ))

  14. #14
    کاربر دائمی آواتار Farshid007
    تاریخ عضویت
    بهمن 1389
    محل زندگی
    Karaj
    پست
    1,249

    نقل قول: اعداد فارسی در C#‎

    به والله من که تو صفحه اول تالار پیدا کردمش

  15. #15

    نقل قول: اعداد فارسی در C#‎

    Prosoft عزیز کد شما فرمت رشته رو عوض میکنه. برای مثال 1391/02/03 03 و 02 رو میکنه 3 و 2 و رشته قاطی میشه . من یه کد اینجوری نوشتم و احتمالا درست کار میکنه !

    string FarsiInt(string s)
    {
    string res = "";
    foreach (var ch in s)
    res += (char)((int)ch + 1728);

    return res;
    }

  16. #16

    نقل قول: اعداد فارسی در C#‎

    نقل قول نوشته شده توسط Farshid007 مشاهده تاپیک
    چه خبره بابا
    فونت tahoma بزار , RightToLeft لیبل رو true بزارِی اعداد فارسی میشن
    عزیز بابا به این سادگیا نیست ! همه جا جواب نمیده! به همچین متدی نیاز بود... :)

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •