اطلاعیه

Collapse
No announcement yet.

جداکردن یک عدد از یک رشته اعداد توسط دستور mid

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

    جداکردن یک عدد از یک رشته اعداد توسط دستور mid

    سلام
    من می خوام از یک رشته اعداد یک عدد را جدا کنم البته من می خوام مقدار $time که مربوط برنامه ساعت وds1307 هست اعداد دقیقه و ساعت را جدا کنم در بسکام اینکار با دستور mid انجام میشه ولی من موفق نشدم این کار را انجام بدم به عنوان مثال در کتاب کاهه نوشته شده ( mid(s,2,3 ومن معنی این اعداد 2و3 رو نمی دونم ممنون میشم اگه راهنمایی کنید

    #2
    پاسخ : جداکردن یک عدد از یک رشته اعداد توسط دستور mid

    2 : یعنی از کاراکتر دوم شروع بشه

    3: یعنی 3 کاراکتر جدا بشه
    مثلن توی ( mid(s,2,3 از رشته s کاراکتر دوم تا پنجم رو برات جدا میکنه
    اگه مردم می دونستن زمان چقدر با ارزشه دیگه هیچ وقت کفش بند دار نمی خریدن البرت انیشتن

    دیدگاه


      #3
      پاسخ : جداکردن یک عدد از یک رشته اعداد توسط دستور mid

      سلام
      من می خوام دستور $TIME جدا کنم این کار را بادستور MID انجام دادم و با دستور VAL تبدیل به عدد کردم ونهایتا این دستورات را داخل یک حلقه قرار دادم من از سمپل DS1307 خود بسکام استفاده کردم و در برنامه مقدار ثانیه را جدا کردم ولی وقتی روی LCD نمایش میده مقدار اولیه نمایش داده میشه یعنی شمارش ثانیه انجام نمیشه من برنامه را اینجا می گذارم لطف کنید منو را هنمایی کنید که بدونم اشکال برنامه کجاست




      $regfile = "m16def.dat"
      $crystal = 8000000
      Config Lcd = 16 * 2
      Dim S As String * 15
      Dim S1 As Byte
      Config Lcd = 16 * 2
      Config Lcdpin = Pin , Db4 = Porta.4 , Db5 = Porta.5 , Db6 = Porta.6 , Db7 = Porta.7 , Rs = Porta.2 , E = Porta.3
      Cursor Off

      Waitms 100
      $baud = 19200
      $lib "mcsbyte.lbx" ' for smaller code
      $lib "ds1307clock.lib" ' modified lib
      $framesize = 16
      $hwstack = 24
      $swstack = 16


      'configure the scl and sda pins
      Config Sda = Portc.1
      Config Scl = Portc.0

      'address of ds1307
      Const Ds1307w = &HD0 ' Addresses of Ds1307 clock
      Const Ds1307r = &HD1

      Config Clock = User ' this will dim the bytes automatic
      'dim other needed variables
      Dim Weekday As Byte

      Print "DS1307"
      Waitms 100
      ' assigning the time will call the SetTime routine
      Time$ = "22:10:20" ' to watch the day changing value
      Date$ = "11-13-02"
      ' 13 november 2002
      Do
      Print "Date Time : " ; Date$ ; " " ; Time$
      Waitms 500
      Loop

      End

      'called from ds1307clock.lib
      Getdatetime:
      I2cstart ' Generate start code
      I2cwbyte Ds1307w ' send address
      I2cwbyte 0 ' start address in 1307

      I2cstart ' Generate start code
      I2cwbyte Ds1307r ' send address
      I2crbyte _sec , Ack
      I2crbyte _min , Ack ' MINUTES
      I2crbyte _hour , Ack ' Hours
      I2crbyte Weekday , Ack ' Day of Week
      I2crbyte _day , Ack ' Day of Month
      I2crbyte _month , Ack ' Month of Year
      I2crbyte _year , Nack ' Year
      I2cstop
      _sec = Makedec(_sec) : _min = Makedec(_min) : _hour = Makedec(_hour)
      _day = Makedec(_day) : _month = Makedec(_month) : _year = Makedec(_year)
      Return

      Setdate:
      _day = Makebcd(_day) : _month = Makebcd(_month) : _year = Makebcd(_year)
      I2cstart ' Generate start code
      I2cwbyte Ds1307w ' send address
      I2cwbyte 4 ' starting address in 1307
      I2cwbyte _day ' Send Data to SECONDS
      I2cwbyte _month ' MINUTES
      I2cwbyte _year ' Hours
      I2cstop
      Return

      Settime:
      _sec = Makebcd(_sec) : _min = Makebcd(_min) : _hour = Makebcd(_hour)
      I2cstart ' Generate start code
      I2cwbyte Ds1307w ' send address
      I2cwbyte 0 ' starting address in 1307
      I2cwbyte _sec ' Send Data to SECONDS
      I2cwbyte _min ' MINUTES
      I2cwbyte _hour ' Hours
      I2cstop

      Do
      S = Mid(time$ , 7 , 8)
      S1 = Val(s)
      Cls
      Lcd S1
      LOOP

      End

      دیدگاه


        #4
        پاسخ : جداکردن یک عدد از یک رشته اعداد توسط دستور mid

        یاری اندر کس نمی بینم یاران را چه شد دوستی کی آخر آمد دوستداران را چه شد

        دیدگاه


          #5
          پاسخ : جداکردن یک عدد از یک رشته اعداد توسط دستور mid

          حالا چه کاریه که از رشته جدا کنی
          چرا از دستورات مخصوص و جدا شده مثل ساعت و ثانیه و دقیقه استفاده نمیکنی
          _sec
          _min
          _hour


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

          دیدگاه


            #6
            پاسخ : جداکردن یک عدد از یک رشته اعداد توسط دستور mid

            نوشته اصلی توسط سعید باقرانی
            حالا چه کاریه که از رشته جدا کنی
            چرا از دستورات مخصوص و جدا شده مثل ساعت و ثانیه و دقیقه استفاده نمیکنی
            _sec
            _min
            _hour

            سلام جناب باقرانی من این کاری را که شما می فرمایید یعنی کار کردن با این ذستورات را بلد نیستم اگه ممکنه توضیح بدین کجای برنامه را تغییر بدم
            با تشکر

            دیدگاه


              #7
              پاسخ : جداکردن یک عدد از یک رشته اعداد توسط دستور mid

              بیا
              این یه نمونه برنامه برای ساعت و تاریخ شمسی


              $regfile "M32DEF.DAT"
              $crystal = 8000000

              Locate 1 , 1 : Lcd "RTC PROJECT"
              Locate 2 , 1 : Lcd "SAEED AT 87/10/13"
              Waitms 500 : Cls

              Dim Day As Byte
              Dim Month As Byte
              Dim Year As Byte
              Dim Second As Byte
              Dim Minute As Byte
              Dim Hour As Byte
              '------------------------------------------------------
              Config Clock = Soft , Gosub = Sectic ' we use build in clock
              'configure the date format
              Config Date = Ymd , Separator = / ' ANSI-Format
              'This sample does not have the clock started so interrupts are not enabled
              Enable Interrupts
              _day = 31 : _month = 06 : _year = 87 ' Load RTC-Clock for example - testing
              Day = _day : Month = _month : Year = _year
              ' ================= Second of Day =============================================
              _sec = 59 : _min = 59 : _hour = 23 ' Load RTC-Clock for example - testing
              ' ================== System Second ============================================


              Cls
              Do
              Locate 1 , 1 : Lcd Time$
              Locate 2 , 1 : Lcd Date$
              Loop
              '


              Sectic:
              '=========== CONVERT MILADI TO SHAMSI
              If _sec = 0 And _min = 0 And _hour = 0 Then
              Incr Day
              If Month >= 12 Then
              If Day > 29 Then
              Day = 1
              Month = 1
              Incr Year
              End If
              End If
              If Month => 7 And Month < 12 Then
              If Day > 30 Then
              Day = 1
              Incr Month
              End If
              End If
              If Month > 0 And Month < 7 Then
              If Day > 31 Then
              Day = 1
              Incr Month
              End If
              End If
              _day = Day : _month = Month : _year = Year
              End If
              Return
              اگه مردم می دونستن زمان چقدر با ارزشه دیگه هیچ وقت کفش بند دار نمی خریدن البرت انیشتن

              دیدگاه


                #8
                پاسخ : جداکردن یک عدد از یک رشته اعداد توسط دستور mid

                با تشکر از شما آقای باقرانی وممنون که پیگیری می کنید من فکر می کنم شما از rtc داخلی استفاده کردید البته اگر درست فهمیده باشم چون توی برنامه تون کتابخانه ds1307 رو ندیدم ولی من میخوام از ds1307 استفاده کنم ومی خوام مقدار متغیر های ساعت ودقیقه وثانیه را جدا کنم ونهایتا روی سون سگمنت نمایش بدم

                دیدگاه


                  #9
                  پاسخ : جداکردن یک عدد از یک رشته اعداد توسط دستور mid

                  میتونید این کار رو کنید
                  Dim K As Byte
                  Dim X(7) As String * 1
                  Dim H As String * 30
                  Dim I As Byte
                  '******
                  K = 2
                  H = "321564789"
                  K = Len(h) 'tedad argham
                  Print K 'print k=9
                  For I = 1 To K
                  X(i) = Mid(h , I , 1)
                  Lcd X(i)
                  Waitms 300
                  Shiftcursor Right
                  Next I

                  سوال داشتی ببرس
                  البته پیغام خصوصی بذار متوجه بشم
                  موفق باشی

                  دیدگاه


                    #10
                    پاسخ : جداکردن یک عدد از یک رشته اعداد توسط دستور mid


                    سلام ممنون از شما بابت راهنماییتون ولی من برنامه شما را نفهمیدم لطف کنید را هنمایی کنید بالاخره من با این $time چی کار کنم می خوام متغیر های ساعت ودقیقه را روی سون سگمنت نمایش بدم

                    دیدگاه


                      #11
                      پاسخ : جداکردن یک عدد از یک رشته اعداد توسط دستور mid

                      سلام
                      دوست خوب
                      ببین من اطلات بیشتری میخوام
                      با فرض خودم میرو جلو فرض من این هس که شما یکسری اطلات زمان از جنس بایت داری
                      خوب ...
                      با دستور
                      u=str(y)
                      y که از جنس بایته به uاز جنس stering*2
                      تبدیل میشه
                      پس سه تا u داری حا لا یک متغیر مثل hاز stering*6 تعریف میکنیم
                      بعدش جمع استرینگ انجام میدی یعنی
                      h=u1+u2+u3
                      حالا باید تعداد ارقام h رو بدست میاری با دستور
                      k=len(h)
                      که k از نوع بایت هس
                      خوب حالا باید یکسری خونه مثلا 7تا از نوع stiring*1 برا ریختن اطلاعات رقم به رقم اطلاعات زمان نیاز داری
                      پس تعریف میکنی
                      dim x(7) as string*1
                      حالا باید یکی یکی پر کنیم خونه ها رو/از حلقه for استفاده میکنی
                      for i=1 to 7
                      x(i)=mid(h,i,1)
                      next i
                      این حلقا میاد رقو iام رو از h در خانه i ام میزاره
                      یعنی رقم اول از hکه دهگان ساعت هس در خانه x(1)و...
                      پر میشه
                      همین :agree:
                      توضیح خواستید در خدمتم پسر>یا دختر< خوب :applause:

                      دیدگاه


                        #12
                        پاسخ : جداکردن یک عدد از یک رشته اعداد توسط دستور mid

                        سلام خدمت دوستان عزیز
                        من میخوام یک عدد پنج رقمی رو با سه کلید وارد برنامه کنم ،به این صورت که کلید چپ و راست برای رفتن روی تک تک رقم ها و کلید وسط هم زیاد کردن هر کدوم از این رقمها،که وقتی یک عدد پنج رقمی درست شد اون رو ذخیره کنه و وقتی کانتر به تعداد این عدد رسید آلارم بده
                        حالا خواستم بدونم با mid چطوری میتونم این کار رو انجام بدم؟اگه دوستان لطف کنن با مثال راهنمایی کنن ممنون میشم آخه مبتدی ام
                        با تشکر

                        دیدگاه


                          #13
                          پاسخ : جداکردن یک عدد از یک رشته اعداد توسط دستور mid

                          کسی نبود یا سوالم سخت بود؟! :angry:

                          دیدگاه

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