اطلاعیه

Collapse
No announcement yet.

سوال درباره کتابخانه بیسکام

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    سوال درباره کتابخانه بیسکام

    سلام.
    می خواستم بدونم این کتابخانه ( "mcsbyteint.lbx" ) در بیسکام چه کاری انجام می دهد؟
    با تشکر.
    موفق و پیروز باشید.
    زهر است عطای خلق هر چند که دوا باشد***حاجت ز که می خواهی جایی که خدا باشد

    #2
    پاسخ : سوال درباره کتابخانه بیسکام

    تو این برنامه از این تابع استفاده شده است:
    $regfile = "M128def.dat"
    $lib "mcsbyteint.lbx"


    Dim Gyear As Integer 'input gregorian(miladi) year
    Dim Gday As Integer 'input gregorian day
    Dim Gmonth As Integer 'input gregorian month
    Dim Gdayofyear As Integer
    Dim Gyear_ As Integer

    Dim Jday As Integer 'Output jalali(shamsi) day
    Dim Jmonth As Integer 'Output Jalali month
    Dim Jyear As Integer 'Output Jalali year
    Dim Jdayofyear As Integer

    Dim Gnumdayofyear As Integer
    Dim Isleapyear As Bit
    Dim Isleapyearp As Bit

    Dim Iloop As Byte
    Dim Temp1 As Integer
    Dim Temp2 As Integer
    Dim Temp3 As Integer
    Dim Temp4 As Integer

    Dim Jmonth_a(12) As Byte
    Dim Gmonth_a(12) As Byte

    Gmonth_a(1) = 31
    Gmonth_a(2) = 28
    Gmonth_a(3) = 31

    Gmonth_a(4) = 30
    Gmonth_a(5) = 31
    Gmonth_a(6) = 30

    Gmonth_a(7) = 31
    Gmonth_a(8) = 31
    Gmonth_a(9) = 30

    Gmonth_a(10) = 31
    Gmonth_a(11) = 30
    Gmonth_a(12) = 31

    Gnumdayofyear = 365

    Gyear = 2006 'Sample gregorian (miladi) Year
    Gday = 11 'Sample gregorian day
    Gmonth = 11 'Sample gregorian month

    Temp1 = Gyear Mod 4
    Temp2 = Gyear Mod 100
    Temp3 = Gyear Mod 400
    Temp4 = Temp1 And Temp2

    If Temp4 <> 0 Or Temp3 = 0 Then
    Gmonth_a(2) = 28
    Else
    Gmonth_a(2) = 29
    End If


    Gyear_ = Gyear - 1
    Temp1 = Gyear_ Mod 4
    Temp2 = Gyear_ Mod 100
    Temp3 = Gyear_ Mod 400
    Temp4 = Temp1 And Temp2

    If Temp4 <> 0 Or Temp3 = 0 Then
    Reset Isleapyearp
    Else
    Set Isleapyearp
    End If

    Temp1 = Gmonth - 1

    For Iloop = 1 To Temp1
    Gdayofyear = Gmonth_a(iloop) + Gdayofyear
    Next
    Gdayofyear = Gday + Gdayofyear


    If Gdayofyear > 79 Then

    Temp1 = Gdayofyear - 79
    Jyear = Gyear - 621

    If Temp1 < 186 Then

    Temp2 = Temp1 Mod 31
    Temp3 = Temp1 / 31

    If Temp2 = 0 Then
    Jmonth = Temp3
    Jday = 31
    Else
    Jmonth = Temp3 + 1
    Jday = Temp2
    End If

    Else

    Temp2 = Temp1 - 186
    Temp3 = Temp2 Mod 30
    Temp4 = Temp2 / 30

    If Temp3 = 0 Then
    Jmonth = Temp4 + 6
    Jday = 30
    Else
    Jmonth = Temp4 + 7
    Jday = Temp3
    End If

    End If

    Else

    Jyear = Gyear - 622

    If Isleapyearp = 1 Then
    Gdayofyear = Gdayofyear + 11
    Else
    Gdayofyear = Gdayofyear + 10
    End If

    Temp2 = Gdayofyear Mod 30
    Temp3 = Gdayofyear / 30

    If Temp2 = 0 Then
    Jmonth = Temp3 + 9
    Jday = 30
    Else
    Jmonth = Temp3 + 10
    Jday = Temp2
    End If
    زهر است عطای خلق هر چند که دوا باشد***حاجت ز که می خواهی جایی که خدا باشد

    دیدگاه


      #3
      پاسخ : سوال درباره کتابخانه بیسکام

      سلام.
      هیچکی منو دوست نداره..... :cry2:
      این همه اساتید بیسکام کار در سایت هستند , هیچکی جواب نمی ده... :cry2:
      موفق و پیروز باشید.
      زهر است عطای خلق هر چند که دوا باشد***حاجت ز که می خواهی جایی که خدا باشد

      دیدگاه


        #4
        پاسخ : سوال درباره کتابخانه بیسکام

        کاری نداره.
        اون خط رو بصورت کامنت در بیار ببین کامپایلر کدوم دستورات رو نمیشناسه.
        من الان بسکام ندارم , وگرنه برات تست میکردم.
        الهم عجل لولیک الفرج

        دیدگاه


          #5
          پاسخ : سوال درباره کتابخانه بیسکام

          سلام.
          ممنون از جوابت.
          منظورت را کامنت متوجه نشدم , آخه من بیسکام کم کار کردم.
          میشه یکم بیشتر توضیح بدی , iran-pc جان؟
          با تشکر.
          موفق و پیروز باشی.
          زهر است عطای خلق هر چند که دوا باشد***حاجت ز که می خواهی جایی که خدا باشد

          دیدگاه


            #6
            پاسخ : سوال درباره کتابخانه بیسکام

            منظور IRAN-PC اینه که اون خط مربوط به کتابخونه رو پاک کن و دوباره کامپیال کن. مسلما برنامه خطا میده. بعد روی خطا دوبار کلیک کنو ببین روی چه خطی میره. این طوری می فهمی کتابخونه مربوط به چیه.
            در کل اون قسمت از برنامه که به طور توضیح نوشته میشه و با کوتیشن ( ' ) به رنگ سبز در میاد رو Comment یا توضیح میگن.

            ولی خب اگه این کارو بکنی هیچ خطایی پیدا نمیشه. چون این کتابخونه مربوط به تبدیل رشته به عدد و برعکسه که به طور پیشفرض برای خود BASCOM با استفاده از دستورات موجود تعریف شده. یعنی اینکه اگه از اون هم استفاده نکنی مشکلی پیش نمیاد.
            در ضمن اگه به قسمت Help نرم افزار مراجعه کنی این چیزا رو پیدا میکنی:


            MCSBYTEINT


            The numeric<>string conversion routines are optimized when used for byte, integer,word and longs.
            When do you use a conversion routine ?
            -When you use STR() , VAL() or HEX().
            -When you print a numeric variable
            -When you use INPUT on numeric variables.

            To support all data types the built in routines are efficient in terms of code size.
            But when you use only conversion routines on bytes there is a overhead.

            The mcsbyteint.lib library is an optimized version that only support bytes, integers and words.

            Use it by including : $LIB "mcsbyteint.lbx" in your code.


            Note that LBX is a compiled LIB file. In order to change the routines you need the commercial edition with the source code(lib files). After a change you should compile the library with the library manager.

            See also the library mcsbyte.lib

            دیدگاه

            لطفا صبر کنید...
            X