اصلاح کد ویژوال بیسیک نوشتن اعداد به حروف (عربی)

Collapse
X
 
  • زمان
  • نمایش
حذف همه
new posts
  • msmaiili

    • 2014/02/08
    • 36
    • 44.00

    اصلاح کد ویژوال بیسیک نوشتن اعداد به حروف (عربی)

    با سلام

    یه ماژول ویژوال رو تو پیوست به صورت فایل تکست text گذاشتم

    این ماژول برای نوشتن اعداد به حروف (عربی) هست

    وقتی 0 وارد میکنی 0 به عدد مینویسه

    و اگر هم به مجموعه زير Case Is = 0: Digit1 = "صفر" اضاف شود 0 رو درست مینویسه ولی وقتی 20-30-40 و .... رو وارد میکنم علاوه بر بیست و سی صفر هم کنارش مینویسه مثلا مینویسه صفر وعشرون که باید فقط عشرون بنویسه و با صفر ترکیب نشه
    لطفا برام اصلاح کنید. ممنون
    Select Case c1
    Case Is = 1: Digit1 = "واحد"
    Case Is = 2: Digit1 = "اثنان"
    Case Is = 3: Digit1 = "ثلاث"
    Case Is = 4: Digit1 = "اربع"
    Case Is = 5: Digit1 = "خمس"
    Case Is = 6: Digit1 = "ست"
    Case Is = 7: Digit1 = "سبع"
    Case Is = 8: Digit1 = "ثمان"
    Case Is = 9: Digit1 = "تسع"
    فایل های پیوست شده
    Last edited by msmaiili; 2014/02/24, 09:02. دلیل: اصلاح فایل پیوست
    [CENTER][CENTER][CENTER][FONT=tahoma][COLOR=#0000ff][SIZE=4]انسان هم ميتواند [/SIZE][/COLOR][COLOR=#ff0000][SIZE=4]دايره [/SIZE][/COLOR][COLOR=#0000ff][SIZE=4]باشد و هم [/SIZE][/COLOR][COLOR=#008000][SIZE=4][/SIZE][SIZE=4]خط راست[/SIZE][/COLOR][COLOR=#0000ff][SIZE=4]. [/SIZE][/COLOR]
    [/FONT][/CENTER][FONT=tahoma] [/FONT][CENTER][COLOR=#b22222][FONT=tahoma][SIZE=4]انتخاب با خودمان هست : [/SIZE][/FONT][/COLOR]

    [/CENTER][FONT=tahoma] [/FONT][CENTER][FONT=tahoma][COLOR=#ff0000][SIZE=4][/SIZE][SIZE=4]تا ابد دور خودمان بچرخيم [/SIZE][/COLOR][COLOR=#0000ff][SIZE=4]يا [/SIZE][/COLOR][COLOR=#008000][SIZE=4]تا بينهايت ادامه بدهیم[/SIZE][/COLOR][/FONT]
    [/CENTER]
    [/CENTER]

    [/CENTER]
  • ~M*E*H*D*I~
    • 2011/10/19
    • 4377
    • 70.00

    #2
    نوشته اصلی توسط msmaiili
    با سلام

    یه ماژول ویژوال رو تو پیوست به صورت فایل تکست text گذاشتم

    این ماژول برای نوشتن اعداد به حروف (عربی) هست

    وقتی 0 وارد میکنی 0 به عدد مینویسه

    و اگر هم به مجموعه زير Case Is = 0: Digit1 = "صفر" اضاف شود 0 رو درست مینویسه ولی وقتی 20-30-40 و .... رو وارد میکنم علاوه بر بیست و سی صفر هم کنارش مینویسه مثلا مینویسه صفر وعشرون که باید فقط عشرون بنویسه و با صفر ترکیب نشه
    لطفا برام اصلاح کنید. ممنون
    Select Case c1
    Case Is = 1: Digit1 = "واحد"
    Case Is = 2: Digit1 = "اثنان"
    Case Is = 3: Digit1 = "ثلاث"
    Case Is = 4: Digit1 = "اربع"
    Case Is = 5: Digit1 = "خمس"
    Case Is = 6: Digit1 = "ست"
    Case Is = 7: Digit1 = "سبع"
    Case Is = 8: Digit1 = "ثمان"
    Case Is = 9: Digit1 = "تسع"
    فایل تکست خالی بود
    [CENTER]
    [SIGPIC][/SIGPIC]
    [/CENTER]

    کامنت

    • ~M*E*H*D*I~
      • 2011/10/19
      • 4377
      • 70.00

      #3
      فایل پیوست رو ببین باید درست شده باشه
      فایل های پیوست شده
      [CENTER]
      [SIGPIC][/SIGPIC]
      [/CENTER]

      کامنت

      • msmaiili

        • 2014/02/08
        • 36
        • 44.00

        #4
        ممنون آقا مهدی
        این که خودش هم اینجوری بود
        میخواستم 0 رو صفر بنویسه الا 0 رو به عدد (0) مینویسه

        گفتم خودم سعی کردم درستش کنم تو قسمتی که بالا توضیح دادم اگه اون کارو انجام بدم برای رفع این مشکل، مشکل فعلی حل میشه یعنی صفر رو درست مینویسه ولی تو بیست و اینا مشکل پیش میاد
        خواستم جوری درستش کنین که اولا مشکل 0 حل بشه و بعد این مشکلی که عرض کردم پیش نیاد
        [CENTER][CENTER][CENTER][FONT=tahoma][COLOR=#0000ff][SIZE=4]انسان هم ميتواند [/SIZE][/COLOR][COLOR=#ff0000][SIZE=4]دايره [/SIZE][/COLOR][COLOR=#0000ff][SIZE=4]باشد و هم [/SIZE][/COLOR][COLOR=#008000][SIZE=4][/SIZE][SIZE=4]خط راست[/SIZE][/COLOR][COLOR=#0000ff][SIZE=4]. [/SIZE][/COLOR]
        [/FONT][/CENTER][FONT=tahoma] [/FONT][CENTER][COLOR=#b22222][FONT=tahoma][SIZE=4]انتخاب با خودمان هست : [/SIZE][/FONT][/COLOR]

        [/CENTER][FONT=tahoma] [/FONT][CENTER][FONT=tahoma][COLOR=#ff0000][SIZE=4][/SIZE][SIZE=4]تا ابد دور خودمان بچرخيم [/SIZE][/COLOR][COLOR=#0000ff][SIZE=4]يا [/SIZE][/COLOR][COLOR=#008000][SIZE=4]تا بينهايت ادامه بدهیم[/SIZE][/COLOR][/FONT]
        [/CENTER]
        [/CENTER]

        [/CENTER]

        کامنت

        • ~M*E*H*D*I~
          • 2011/10/19
          • 4377
          • 70.00

          #5
          فک کردم اشکال وارد کردن کد به اکسل رو داری

          الان متوجه شدم فایل رو ببین مشکل حله یا نه؟
          فایل های پیوست شده
          [CENTER]
          [SIGPIC][/SIGPIC]
          [/CENTER]

          کامنت

          • msmaiili

            • 2014/02/08
            • 36
            • 44.00

            #6
            اوکی
            ممنون از لطفتون
            حل شد
            [CENTER][CENTER][CENTER][FONT=tahoma][COLOR=#0000ff][SIZE=4]انسان هم ميتواند [/SIZE][/COLOR][COLOR=#ff0000][SIZE=4]دايره [/SIZE][/COLOR][COLOR=#0000ff][SIZE=4]باشد و هم [/SIZE][/COLOR][COLOR=#008000][SIZE=4][/SIZE][SIZE=4]خط راست[/SIZE][/COLOR][COLOR=#0000ff][SIZE=4]. [/SIZE][/COLOR]
            [/FONT][/CENTER][FONT=tahoma] [/FONT][CENTER][COLOR=#b22222][FONT=tahoma][SIZE=4]انتخاب با خودمان هست : [/SIZE][/FONT][/COLOR]

            [/CENTER][FONT=tahoma] [/FONT][CENTER][FONT=tahoma][COLOR=#ff0000][SIZE=4][/SIZE][SIZE=4]تا ابد دور خودمان بچرخيم [/SIZE][/COLOR][COLOR=#0000ff][SIZE=4]يا [/SIZE][/COLOR][COLOR=#008000][SIZE=4]تا بينهايت ادامه بدهیم[/SIZE][/COLOR][/FONT]
            [/CENTER]
            [/CENTER]

            [/CENTER]

            کامنت

            • msmaiili

              • 2014/02/08
              • 36
              • 44.00

              #7
              آقا مهدی یه زحمت دیگه براتون داشتم

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

              اگه عدد مورد نظر 10 باشه مینویسه عشرة و اگه ترکیب اعداد 1 تا 9 با 10 باشه یعنی 11 تا 19 مینویسه ثلاث عشر 13 و یا أربع عشر 14
              این روند زمانی درسته که معدود مورد نظر ما مذکر باشه
              اگه معدود مؤنث باشه برعکس میشه
              یعنی: 10 میشه عشر و ترکیب 10 با اعداد میشه عشرة (15 خمس عشرة) و ...

              مشکلی که هست این بخش تابع اصولی نوشته نشده و روندش اینجوریه که یک معادل (عشر) برای 10 گذاشته و زمانی که 10 تنها باشه (ة) بهش اضاف کرده تا بشه (عشرة) و زمانی که با بقیه اعداد ترکیب بشه همونو فراخوانی کرده.

              اگه شما بتونین عدد 10 رو از اعداد ترکیبیش تفکیک کنید و براش یه معادل حروف بذارین این مشکل حل میشه و میشه ویرایشش کرد.

              نمیدونم متوجه منظورم شدین یا نه

              اگه زحمتشو بکشین ممنون میشم
              [CENTER][CENTER][CENTER][FONT=tahoma][COLOR=#0000ff][SIZE=4]انسان هم ميتواند [/SIZE][/COLOR][COLOR=#ff0000][SIZE=4]دايره [/SIZE][/COLOR][COLOR=#0000ff][SIZE=4]باشد و هم [/SIZE][/COLOR][COLOR=#008000][SIZE=4][/SIZE][SIZE=4]خط راست[/SIZE][/COLOR][COLOR=#0000ff][SIZE=4]. [/SIZE][/COLOR]
              [/FONT][/CENTER][FONT=tahoma] [/FONT][CENTER][COLOR=#b22222][FONT=tahoma][SIZE=4]انتخاب با خودمان هست : [/SIZE][/FONT][/COLOR]

              [/CENTER][FONT=tahoma] [/FONT][CENTER][FONT=tahoma][COLOR=#ff0000][SIZE=4][/SIZE][SIZE=4]تا ابد دور خودمان بچرخيم [/SIZE][/COLOR][COLOR=#0000ff][SIZE=4]يا [/SIZE][/COLOR][COLOR=#008000][SIZE=4]تا بينهايت ادامه بدهیم[/SIZE][/COLOR][/FONT]
              [/CENTER]
              [/CENTER]

              [/CENTER]

              کامنت

              • ~M*E*H*D*I~
                • 2011/10/19
                • 4377
                • 70.00

                #8
                راستش هیچی نفهمیدم
                [CENTER]
                [SIGPIC][/SIGPIC]
                [/CENTER]

                کامنت

                • msmaiili

                  • 2014/02/08
                  • 36
                  • 44.00

                  #9
                  بذار ساده تر بگم

                  در حالت فعلی : 10 مینویسه: عشرة 13 مینویسه: ثلاث عشر

                  من میخوام اینجوری بنویسه: 10: عشر 13: ثلاث عشرة

                  اگه "عشر" تو تابع رو به "عشرة" تغییر بدم مورد دوم درست میشه اما مورد اول نه. نتیجه تغییر عشر به عشرة اینجوری میشه:

                  10 مینویسه: "عشرةة" 13 مینویسه: "عشرة"

                  این به این دلیله که تابع جوری نوشته شده که بخش دوم یازده تا نوزده و خود ده رو از یک جا میخونه و فقط وقتی عدد ما 10 باشه یه (ة) بهش اضاف میکنه به همین خاطر من نمیتونم برای خود 10 واژه مستقل تعریف کنم

                  شما یه جوری برای خود 10 جدا از یازده تا نوزده یه واژه مستقل تعریف کنید مثل همون صفر که درستش کردین

                  تا من بتونم برای خود 10 یه معادل حروف بذارم و برای بخش دوم اعداد 11 تا 19 که در واقع همون ده هست هم باز یه واژه مستقل بذارم

                  اگه این کار رو انجام بدین مشکل من حل میشه

                  ممنون
                  [CENTER][CENTER][CENTER][FONT=tahoma][COLOR=#0000ff][SIZE=4]انسان هم ميتواند [/SIZE][/COLOR][COLOR=#ff0000][SIZE=4]دايره [/SIZE][/COLOR][COLOR=#0000ff][SIZE=4]باشد و هم [/SIZE][/COLOR][COLOR=#008000][SIZE=4][/SIZE][SIZE=4]خط راست[/SIZE][/COLOR][COLOR=#0000ff][SIZE=4]. [/SIZE][/COLOR]
                  [/FONT][/CENTER][FONT=tahoma] [/FONT][CENTER][COLOR=#b22222][FONT=tahoma][SIZE=4]انتخاب با خودمان هست : [/SIZE][/FONT][/COLOR]

                  [/CENTER][FONT=tahoma] [/FONT][CENTER][FONT=tahoma][COLOR=#ff0000][SIZE=4][/SIZE][SIZE=4]تا ابد دور خودمان بچرخيم [/SIZE][/COLOR][COLOR=#0000ff][SIZE=4]يا [/SIZE][/COLOR][COLOR=#008000][SIZE=4]تا بينهايت ادامه بدهیم[/SIZE][/COLOR][/FONT]
                  [/CENTER]
                  [/CENTER]

                  [/CENTER]

                  کامنت

                  • ~M*E*H*D*I~
                    • 2011/10/19
                    • 4377
                    • 70.00

                    #10
                    مونث بودن یا مذکر بودن کلمات به نظرم غیر قابل تشخیص هست ، در مورد عدد صفر یک شرط ساده به تابع اضافه کردم اگر دقت کنید برای 10 هم همین کار رو میشه کرد
                    [CENTER]
                    [SIGPIC][/SIGPIC]
                    [/CENTER]

                    کامنت

                    • msmaiili

                      • 2014/02/08
                      • 36
                      • 44.00

                      #11
                      ممنون آقا مهدی عزیز
                      درستش کردم
                      منظورم این نبود که خود تابع تشخیص بده مذکره یا مونث

                      مثلا الان که من برای نمره استفاده میکنم معدودم همیشه مونثه و میخواستم خودم دستی تنظیم کنم اصطلاخاتشو با معدود مونث
                      اصل تابع برا مذکر ساخته شده بود

                      بقیه موارد مشکلی نداشتم
                      ولی چون تو قسمت 10 و اعداد 11 تا 19 برای خود 10 و بقیه اعداد ترکیبی واژه مستقل نذاشته بود میخواستم مستقلش کنی از هم که خودم پیداش کردم و درست شد
                      یه دنیا تشکر از وقتی که برای اعضا میذارین
                      موفق باشید
                      [CENTER][CENTER][CENTER][FONT=tahoma][COLOR=#0000ff][SIZE=4]انسان هم ميتواند [/SIZE][/COLOR][COLOR=#ff0000][SIZE=4]دايره [/SIZE][/COLOR][COLOR=#0000ff][SIZE=4]باشد و هم [/SIZE][/COLOR][COLOR=#008000][SIZE=4][/SIZE][SIZE=4]خط راست[/SIZE][/COLOR][COLOR=#0000ff][SIZE=4]. [/SIZE][/COLOR]
                      [/FONT][/CENTER][FONT=tahoma] [/FONT][CENTER][COLOR=#b22222][FONT=tahoma][SIZE=4]انتخاب با خودمان هست : [/SIZE][/FONT][/COLOR]

                      [/CENTER][FONT=tahoma] [/FONT][CENTER][FONT=tahoma][COLOR=#ff0000][SIZE=4][/SIZE][SIZE=4]تا ابد دور خودمان بچرخيم [/SIZE][/COLOR][COLOR=#0000ff][SIZE=4]يا [/SIZE][/COLOR][COLOR=#008000][SIZE=4]تا بينهايت ادامه بدهیم[/SIZE][/COLOR][/FONT]
                      [/CENTER]
                      [/CENTER]

                      [/CENTER]

                      کامنت

                      چند لحظه..