اطلاعیه

Collapse
No announcement yet.

جداسازی اعداد از متن در C یا c++ برای میکرو AVR

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

    #76
    پاسخ : جداسازی اعداد از متن در C یا c++ برای میکرو AVR

    همچنین قسمت float فعال نشد و تنظیمات روش اثری ندارد در کد ویژن ممنون

    دیدگاه


      #77
      پاسخ : جداسازی اعداد از متن در C یا c++ برای میکرو AVR

      [COLOR=#28282B][FONT=Yekan]اینم یه تستی بکنید. در صورت موفق بودن خروجی 1 میشه و در غیر این صورت 0. رشته رو بهش میدید و وزن رو بر میگردونه:[/FONT][/COLOR]
      [RIGHT][COLOR=#28282B][FONT=Yekan][FONT=inherit][TABLE="width: 948"]
      [TR]
      [TD="class: gutter"][RIGHT]1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17[/RIGHT]
      [/TD]
      [TD="class: code"]unsigned char DeserializeWeight(char *str, float *weight)
      {
      float weightBuffer;
      char preamble[3];
      char postamble;


      int rlen = sscanf(str, "%2[SD]%*[ \t]%f%c",
      preamble, &weightBuffer, &postamble);
      if (rlen != 3 || (strcmp(preamble, "SS") && strcmp(preamble, "SD")) || postamble != 'g')
      return 0;


      *weight = weightBuffer;
      return 1;
      }
      متاسفانه من نتونستم این تابع رو استفاده کنم



      [/TD]
      [/TR]
      [/TABLE]
      [/FONT]

      [/FONT][/COLOR][/RIGHT]


      دلیل: ادغام دو پست برای جلوگیری از اسپم

      کد:
      unsigned char[LEFT][COLOR=#28282B][FONT=Consolas] [/FONT][/COLOR][/LEFT]DeserializeWeight(char[LEFT][COLOR=#28282B][FONT=Consolas] [/FONT][/COLOR][/LEFT]*str, float[LEFT][COLOR=#28282B][FONT=Consolas] [/FONT][/COLOR][/LEFT]*weight)[LEFT][COLOR=#28282B][FONT=Consolas]{[/FONT][/COLOR]
      [COLOR=#28282B][FONT=Consolas]  float weightBuffer;[/FONT][/COLOR]
      [COLOR=#28282B][FONT=Consolas]  char preamble[3];[/FONT][/COLOR]
      [COLOR=#28282B][FONT=Consolas]  char postamble;[/FONT][/COLOR]
      [COLOR=#28282B][FONT=Consolas]  [/FONT][/COLOR]
      [COLOR=#28282B][FONT=Consolas]  [/FONT][/COLOR]
      [COLOR=#28282B][FONT=Consolas]  int rlen = sscanf(str, "%2[SD]%*[ \t]%f%c",[/FONT][/COLOR]
      [COLOR=#28282B][FONT=Consolas]                    preamble, &weightBuffer, &postamble);[/FONT][/COLOR]
      [COLOR=#28282B][FONT=Consolas]  if (rlen != 3 || (strcmp(preamble, "SS") && strcmp(preamble, "SD")) || postamble != 'g')[/FONT][/COLOR]
      [COLOR=#28282B][FONT=Consolas]    return 0;[/FONT][/COLOR]
      [COLOR=#28282B][FONT=Consolas]  [/FONT][/COLOR]
      [COLOR=#28282B][FONT=Consolas]  [/FONT][/COLOR]
      [COLOR=#28282B][FONT=Consolas]  *weight = weightBuffer;[/FONT][/COLOR]
      [COLOR=#28282B][FONT=Consolas]  return 1;[/FONT][/COLOR]
      [COLOR=#28282B][FONT=Consolas]}[/FONT][/COLOR]
      [COLOR=black][FONT=Consolas]متاسفانه من نتونستم این تابع رو استفاده کنم[/FONT][/COLOR][/LEFT]
      دلیل: ادغام دو پست برای جلوگیری از اسپم

      کد ویژن با وجود اعمال تغیرات در تنظیمات با float مشکل داره:


      دلیل: ادغام دو پست برای جلوگیری از اسپم

      این بحث در مورد بنده هم صادق هست:
      https://barnamenevis.org/showthread.php?352960-%D8%AC%D8%AF%D8%A7-%D9%83%D8%B1%D8%AF%D9%86-%D8%A7%D8%B9%D8%AF%D8%A7%D8%AF-%D8%A7%D8%B2-%D9%8A%D9%83-%D8%B1%D8%B4%D8%AA%D9%87

      دلیل: ادغام دو پست برای جلوگیری از اسپم

      کد:
      https://barnamenevis.org/showthread.php?352960-%D8%AC%D8%AF%D8%A7-%D9%83%D8%B1%D8%AF%D9%86-%D8%A7%D8%B9%D8%AF%D8%A7%D8%AF-%D8%A7%D8%B2-%D9%8A%D9%83-%D8%B1%D8%B4%D8%AA%D9%87
      دلیل: ادغام دو پست برای جلوگیری از اسپم

      البته بحث بیشتر در محیط ویزوال هست ممنون

      دیدگاه


        #78
        پاسخ : جداسازی اعداد از متن در C یا c++ برای میکرو AVR

        سلام فکر کرئم انجمن از دست رفت سرعت لود صفحات هم بسیار پایین هست

        دلیل: ادغام دو پست برای جلوگیری از اسپم

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

        دیدگاه


          #79
          پاسخ : جداسازی اعداد از متن در C یا c++ برای میکرو AVR

          تست کردم مشکل float هنوز هم هست

          دلیل: ادغام دو پست برای جلوگیری از اسپم

          تو کدهای قبلی که داشتیم این قسمت کار نمی کنه علتش نبود float در تنطیمات هست
          کد:
          result = sscanf(Buffer,"Sd    %fg",Weight);
          دلیل: ادغام دو پست برای جلوگیری از اسپم

          دلیل: ادغام دو پست برای جلوگیری از اسپم



          دلیل: ادغام دو پست برای جلوگیری از اسپم

          موضوع مهم:
          خدمت مدیران عزیز:
          سایت بدون فیلتر شکن قابل دسترسی نیست
          ممنون

          دلیل: ادغام دو پست برای جلوگیری از اسپم

          کل کد:
          کد:
          [FONT=Yekan]#include <stdio.h>[/FONT]#include <stdlib.h>
          
          
          
          
          int main()
          {
              char Buffer[20] = "SS   235.23g";
              float Weight = 0 ;
          int result;
          
          
          
          
          result = sscanf(Buffer, "SS  %fg", &Weight);
          if (result == 1)
          {
              printf("%.3f\n", Weight);
          
          
            // Success
              return 0;
          }
          }

          دیدگاه


            #80
            پاسخ : جداسازی اعداد از متن در C یا c++ برای میکرو AVR

            نوشته اصلی توسط flightsazan نمایش پست ها
            تست کردم مشکل float هنوز هم هست

            دلیل: ادغام دو پست برای جلوگیری از اسپم

            تو کدهای قبلی که داشتیم این قسمت کار نمی کنه علتش نبود float در تنطیمات هست
            کد:
            result = sscanf(Buffer,"Sd    %fg",Weight);
            دلیل: ادغام دو پست برای جلوگیری از اسپم

            دلیل: ادغام دو پست برای جلوگیری از اسپم



            دلیل: ادغام دو پست برای جلوگیری از اسپم

            موضوع مهم:
            خدمت مدیران عزیز:
            سایت بدون فیلتر شکن قابل دسترسی نیست
            ممنون

            دلیل: ادغام دو پست برای جلوگیری از اسپم

            کل کد:
            کد:
            [FONT=Yekan]#include <stdio.h>[/FONT]#include <stdlib.h>
            
            
            
            
            int main()
            {
                char Buffer[20] = "SS   235.23g";
                float Weight = 0 ;
            int result;
            
            
            
            
            result = sscanf(Buffer, "SS  %fg", &Weight);
            if (result == 1)
            {
                printf("%.3f\n", Weight);
            
            
              // Success
                return 0;
            }
            }
            با این حساب یا باید بیخیال کدویژن بشی و بری روی یک کمپایلر و محیط بهتر مثل Atmel Studio، یا اینکه از روش هایی که ابتکاری هستن و یک مقدار کثیف کاری دارن استفاده کنی!
            روش جایگزین نیاز داره که دقیق بدونی خروجی سنسور، ترازو یا هرچی که هست در شرایط مختلف به چه شکله، بعد بیای با توجه به اونا خودت دستی با گشتن توی رشته عدد قبل و بعد از نقطه اعشار رو بدست بیاری و بعد با هم ترکیب کنی که وزن بدست بیاد. این روش دیگه ابتکاریه و من با اطلاعات محدود نمیتونم دقیق براش کد بنویسم بهت بدم.

            دیدگاه


              #81
              پاسخ : جداسازی اعداد از متن در C یا c++ برای میکرو AVR

              سلام
              شما هم به سختی وارد انجمن میشید
              یک روش دیدم تبدیل وردی ام به اینتجر و تبدیل و استخراج هست
              کد:
              http://irccode.ir/question/%d8%aa%d8%a8%d8%af%db%8c%d9%84-%da%a9%d8%a7%d8%b1%d8%a7%da%a9%d8%aa%d8%b1-%d8%b9%d8%af%d8%af%db%8c-%d8%af%d8%a7%d8%ae%d9%84-%d8%b1%d8%b4%d8%aa%d9%87-%d8%a8%d9%87-%d8%a7%db%8c%d9%86%d8%aa%db%8c%d8%ac/
              دلیل: ادغام دو پست برای جلوگیری از اسپم

              البته برای اعداد هست

              دلیل: ادغام دو پست برای جلوگیری از اسپم

              این کد رو دارم تو کد بلاکس کار می کنه ولی کد ویژن ایراد جالبی می گیره:
              کد:
              [FONT=Yekan]#include <stdio.h>[/FONT]
              //#include <stdlib.h>
              //#include <string.h>
              
              
              int main()
              {
              	char str[] = "sd 23.45g";
              	int init_size = strlen(str);
              	char delim[] = "sdg";
              
              
              	char *ptr = strtok(str, delim);
              
              
              	while (ptr != NULL)
              	{
              		printf("%s\n", ptr);
              		ptr = strtok(NULL, delim);
              	}
              
              
              	return 0;
              }
              دلیل: ادغام دو پست برای جلوگیری از اسپم

              کد:
              Error: C:\Users\FLIGHTSAZAN-AIRSHIP\Documents\test1\test1.c(56): function argument #2 of type 'unsigned char [4]' is incompatible with required parameter of type 'flash unsigned char *'

              دیدگاه


                #82
                پاسخ : جداسازی اعداد از متن در C یا c++ برای میکرو AVR

                atme studio هم مورد دار هست من نتونستم ازش در پروتئوس روی ال سی دی چیز درست نشان بدم همان دستورات البته مشابهش با کد ویژن خیلی راحت اطلاعات رو نمایش می ده ولی تو فایل کامپایلی اتمل استادیو مثلا برای یه کلمه فقط در وسط lcd - اف رو نشان داد
                دستور rprintf(";test")

                دلیل: ادغام دو پست برای جلوگیری از اسپم

                ورژن تست شده 7 اتمل می باشد
                ممنون

                دیدگاه


                  #83
                  پاسخ : جداسازی اعداد از متن در C یا c++ برای میکرو AVR

                  نوشته اصلی توسط flightsazan نمایش پست ها
                  atme studio هم مورد دار هست من نتونستم ازش در پروتئوس روی ال سی دی چیز درست نشان بدم همان دستورات البته مشابهش با کد ویژن خیلی راحت اطلاعات رو نمایش می ده ولی تو فایل کامپایلی اتمل استادیو مثلا برای یه کلمه فقط در وسط lcd - اف رو نشان داد
                  دستور rprintf(";test")

                  دلیل: ادغام دو پست برای جلوگیری از اسپم

                  ورژن تست شده 7 اتمل می باشد
                  ممنون
                  این Atmel Studio دیگه مثل کدویژن بدبخت نیست که راحت همه مشکلات رو بندازیم گردنش و بگیم به خاطر اونه که هیچی جواب نمیده! من چند سال باهاش کار کردم و مشکلی نداشتم. این که شما توی راه اندازی کوچکترین چیز مثل LCD هم گیر کردی نشون میده خودت تجربه لازم رو نداری و باید مشکل رو ابتدا در خودت حل کنی دوست من. قبلا هم گفتم توی محیط خارج از کدویژن دیگه خبری از کتابخونه های آماده برای LCD و بقیه چیزای دم دستی نیست و باید خودت براش کتابخونه جور کنی. نمیدونم دقیقا قصدت چی بوده تابع rprintf رو از کجا آوردی ولی حتما کارت مشکلی داشته که جواب نگرفتی.
                  یک مورد رو در مورد کمپایلرهای AVR دوباره تکرار میکنم؛ توی Atmel Studio هم اگر اشتباه نکنم از عملیات اعشاری توی رشته ها به شکل پیش فرض پشتیبانی نمیشه و باید دستی فعالش کنی. در این مورد باید توی اینترنت سرچ کنی چون منم راهشو یادم نیست که بگم.

                  دیدگاه


                    #84
                    پاسخ : جداسازی اعداد از متن در C یا c++ برای میکرو AVR

                    نوشته اصلی توسط hossein.m98 نمایش پست ها
                    این Atmel Studio دیگه مثل کدویژن بدبخت نیست که راحت همه مشکلات رو بندازیم گردنش و بگیم به خاطر اونه که هیچی جواب نمیده! من چند سال باهاش کار کردم و مشکلی نداشتم. این که شما توی راه اندازی کوچکترین چیز مثل LCD هم گیر کردی نشون میده خودت تجربه لازم رو نداری و باید مشکل رو ابتدا در خودت حل کنی دوست من. قبلا هم گفتم توی محیط خارج از کدویژن دیگه خبری از کتابخونه های آماده برای LCD و بقیه چیزای دم دستی نیست و باید خودت براش کتابخونه جور کنی. نمیدونم دقیقا قصدت چی بوده تابع rprintf رو از کجا آوردی ولی حتما کارت مشکلی داشته که جواب نگرفتی.
                    یک مورد رو در مورد کمپایلرهای AVR دوباره تکرار میکنم؛ توی Atmel Studio هم اگر اشتباه نکنم از عملیات اعشاری توی رشته ها به شکل پیش فرض پشتیبانی نمیشه و باید دستی فعالش کنی. در این مورد باید توی اینترنت سرچ کنی چون منم راهشو یادم نیست که بگم.
                    با سلام و احترام
                    همانگونه که خودتان نیز از ابتدا در جریان این تاپیک بوده اید انواع راهنماییها به این دوست عزیز شده . از ابتدا mikroC ,و بعد winAVR به ایشان معرفی شد. سپس توصیه کردم حداقل خروجی دستگاه رو بررسی دقیق نمایید شاید اصلا نیاز به این همه دردسر برای جداسازی نداشته باشید و براحتی بتونید عدد رو از یک رشته جدا کنید. شما هم که همه گونه کمک انجام دادید ولی بنظر میرسد ایشان با وجودی که پشتکار و کنجکاویشون برای یادگیری خوبه ولی کلا مسیر خود را میرود و توجهی به هیچکدام از راهنماییها ندارد!
                    موفق باشید

                    نوشته اصلی توسط evergreen نمایش پست ها
                    خودت رو اصلا درگیر جداسازی رقم اعشار نکن. چون چیزی که من از تصویر میبینم طول دیتایی که برای هر بار خواندن میفرسته ثابته. اگه گفتم وزن بالاتر هم اندازه بگیر برای این بود که میخواستم مطمئن بشم که عدد رو همیشه بر اساس گرم میفرسته یا نه؟ چون اگه دقت کنی آخرش g داره. در چند تای پایینی هم S S به S D تبدیل شده که نمیدونم منظورش چی بوده. احتمالا اگه کاتالوگ ترازو رو ببینی ممکنه که توش توضیح داده باشه. به هر حال اگر همیشه بر حسب گرم باشه کافیه شما کل رشته رو بریزی توی یه متغیر و بر اساس محل شروع و پایان اعداد و حذف space های سمت چپ تبدیلش کنی به عدد و اصلا جداسازی رقم اعشار مهم نیست چون بنظر میاد همیشه دو رقم اعشار داره. اگر وضعیت اعداد رو توی وزنهای بالاتر هم در بیاری برنامه نویسی این با اردوینو کلا یک ساعت هم طول نمیکشه.
                    نوشته اصلی توسط evergreen نمایش پست ها
                    با سلام مجدد
                    در نهایت اگه خودتون هم بخواهید یک برنامه مطمئن بنویسید به بررسی دقیق خروجی سریال دستگاه نیاز دارید. پس سعی کنید حتما اینکار رو در اولویت قرار بدید چون وقتی شما از ورودی مطمئن نیستید چجوری میخواهید براش سخت افزار تهیه کنید. دوستانه خدمتتون میگم، اینکه شما مرتب بنویسید

                    ss فاصله فاصله چند تا 23.34g

                    این روشی درست و اصولی برای وقتی که صرف میکنید و هدفی که دارید نیست و در نهایت نتیجه مطلوبی برای آن متصور نخواهد بود.

                    موفق باشید.
                    جدیدترین ویرایش توسط evergreen; ۱۱:۰۴ ۱۴۰۰/۰۴/۲۰.

                    دیدگاه


                      #85
                      پاسخ : جداسازی اعداد از متن در C یا c++ برای میکرو AVR

                      نوشته اصلی توسط evergreen نمایش پست ها
                      با سلام و احترام
                      همانگونه که خودتان نیز از ابتدا در جریان این تاپیک بوده اید انواع راهنماییها به این دوست عزیز شده . از ابتدا mikroC ,و بعد winAVR به ایشان معرفی شد. سپس توصیه کردم حداقل خروجی دستگاه رو بررسی دقیق نمایید شاید اصلا نیاز به این همه دردسر برای جداسازی نداشته باشید و براحتی بتونید عدد رو از یک رشته جدا کنید. شما هم که همه گونه کمک انجام دادید ولی بنظر میرسد ایشان با وجودی که پشتکار و کنجکاویشون برای یادگیری خوبه ولی کلا مسیر خود را میرود و توجهی به هیچکدام از راهنماییها ندارد!
                      موفق باشید
                      با سلام و عرض ادب
                      بله در جریان کمک های شما بودم و ببخشید اگر پا توی کفش شما کردم.
                      چند باری هم بهشون گفتم این کار یکم برای شما سنگینه ولی اصرار دارن خودشون انجامش بدن. من حتی چند نمونه کد براشون فرستادم که توی حالت کلی و با اطلاعات کمی که از خروجی سنسورشون به ما دادن هم جواب بده ولی خوب ظاهرا فایده ای نداشته!
                      با این همه راهنمایی باید تا حالا توی هر محیط کدنویسی ای که بودن به طریقی، هر چند غیر استاندارد، جواب میگرفتن اما به دلیل دانش کمی که توی موارد پایه ای برنامه نویسی دارن، هنوز تلاششون جواب نمیده و هر بار فقط یک گزارش نا مفهوم از کدی که استفاده کردن و خطایی که بهش برخوردن ارائه میکنن.
                      منم مثل شما اعتقاد دارم به جای تلاش بیخودی بهتره کار رو بسپارن به یک کاردان و خودشون برن سراغ مطالعات اولیه این کار و وقتشون رو با سعی و خطا تلف نکنن که این کار سعی و خطا بر نمیداره.

                      دیدگاه


                        #86
                        پاسخ : جداسازی اعداد از متن در C یا c++ برای میکرو AVR

                        نوشته اصلی توسط hossein.m98 نمایش پست ها
                        با سلام و عرض ادب
                        بله در جریان کمک های شما بودم و ببخشید اگر پا توی کفش شما کردم.
                        چند باری هم بهشون گفتم این کار یکم برای شما سنگینه ولی اصرار دارن خودشون انجامش بدن. من حتی چند نمونه کد براشون فرستادم که توی حالت کلی و با اطلاعات کمی که از خروجی سنسورشون به ما دادن هم جواب بده ولی خوب ظاهرا فایده ای نداشته!
                        با این همه راهنمایی باید تا حالا توی هر محیط کدنویسی ای که بودن به طریقی، هر چند غیر استاندارد، جواب میگرفتن اما به دلیل دانش کمی که توی موارد پایه ای برنامه نویسی دارن، هنوز تلاششون جواب نمیده و هر بار فقط یک گزارش نا مفهوم از کدی که استفاده کردن و خطایی که بهش برخوردن ارائه میکنن.
                        منم مثل شما اعتقاد دارم به جای تلاش بیخودی بهتره کار رو بسپارن به یک کاردان و خودشون برن سراغ مطالعات اولیه این کار و وقتشون رو با سعی و خطا تلف نکنن که این کار سعی و خطا بر نمیداره.
                        با سلام خدمت شما دوست عزیز
                        ما همه اینجا جمع شدیم که دانشی که داریم را با هم به اشتراک بگذاریم تا به دانسته هامون افزوده بشه و در این وسط اگر کمکی هم از دستمون بر می آید به همدیگر برسانیم بنابراین به نظر من اگر دوستان مختلف درباره موضوعی نظر میدن نباید اصلا بعنوان پا تو کفش هم کردن تعبیر بشه.
                        من بر خلاف شما اعتقادی به اینکه یک کار برای یک نفر سنگینه ندارم. بنظرم هر کی میتونه حتی کارهای سنگین رو هم انجام بده ولی به شرطیکه از روش صحیح و مرحله به مرحله جلو بره. این دوست عزیزمون پشتکار و پیگیری خوبی برای کاری که میخواهد انجام بدهد دارد ولی متاسفانه روش کار رو بجای اینکه بصورت مرحله ایی و از اول شروع کند اصرار دارد که از آخر به اول حرکت نماید که این مساله باعث کند شدن کار و ایجاد خستگی و دردسرهای گاها بیمورد برایشان میشود.
                        موفق باشید.

                        دیدگاه


                          #87
                          پاسخ : جداسازی اعداد از متن در C یا c++ برای میکرو AVR

                          نوشته اصلی توسط evergreen نمایش پست ها
                          با سلام خدمت شما دوست عزیز
                          ما همه اینجا جمع شدیم که دانشی که داریم را با هم به اشتراک بگذاریم تا به دانسته هامون افزوده بشه و در این وسط اگر کمکی هم از دستمون بر می آید به همدیگر برسانیم بنابراین به نظر من اگر دوستان مختلف درباره موضوعی نظر میدن نباید اصلا بعنوان پا تو کفش هم کردن تعبیر بشه.
                          من بر خلاف شما اعتقادی به اینکه یک کار برای یک نفر سنگینه ندارم. بنظرم هر کی میتونه حتی کارهای سنگین رو هم انجام بده ولی به شرطیکه از روش صحیح و مرحله به مرحله جلو بره. این دوست عزیزمون پشتکار و پیگیری خوبی برای کاری که میخواهد انجام بدهد دارد ولی متاسفانه روش کار رو بجای اینکه بصورت مرحله ایی و از اول شروع کند اصرار دارد که از آخر به اول حرکت نماید که این مساله باعث کند شدن کار و ایجاد خستگی و دردسرهای گاها بیمورد برایشان میشود.
                          موفق باشید.
                          منظور از سنگین بودن اینه در این مرحله براشون سخته همچین کاری. همه ما مبتدی بودیم و همه ما دورانی چیزایی برامون سنگین بوده ولی حالا نیست. هرکاری احتیاج به پیش زمینه و اطلاعات داره و همیشه توی هر نقطه ای یکسری کارها برامون سنگینه. برای مثال من که اطلاعی از قوانین و معادلات حرکت موشک ندارم، ارسال فضاپیما برام واقعا سنگینه! مشکل دقیقا از جایی شروع میشه که همه میخوان زود به جواب برسن و نمیخوان روند درست رو طی کنن. ایشون هم باید اول اطلاعاتشون رو در مورد خود زبان C تا حد قابل قبولی بالا ببرن، بعد بخوان باهاش برای میکروکنترلر برنامه نویسی کنن.
                          کنجکاو بودنشون هم درسته، کنجکاو هستن. خودشون گفتن چند جلد کتاب در مورد زبان C کنار دستشونه و داخلش مطلبی راجع به کدهایی که من فرستادم پیدا نکردن. خوب این راهش نیست. کتابایی که کنار دستشونه احتمالا آموزشیه و مثل دیکشنری نیست که بریم توش در فلان مورد سرچ کنیم و کد در بیاریم.

                          دیدگاه


                            #88
                            پاسخ : جداسازی اعداد از متن در C یا c++ برای میکرو AVR

                            سلام.
                            چرا از sscanf استفاده نمیکنید؟
                            کد:
                            #include <stdio.h>
                            
                            
                            int main(){
                                    float data;
                                    char raw_data[] = "SS      120.23454g";
                                    puts(raw_data);
                                    sscanf(raw_data,"%*s%f%*s",&data);
                                    printf("\n%f\n",data);
                                    return 0;
                            }

                            دیدگاه


                              #89
                              پاسخ : جداسازی اعداد از متن در C یا c++ برای میکرو AVR

                              نوشته اصلی توسط A.I.E نمایش پست ها
                              سلام.
                              چرا از sscanf استفاده نمیکنید؟
                              کد:
                              #include <stdio.h>
                              
                              
                              int main(){
                                      float data;
                                      char raw_data[] = "SS      120.23454g";
                                      puts(raw_data);
                                      sscanf(raw_data,"%*s%f%*s",&data);
                                      printf("\n%f\n",data);
                                      return 0;
                              }
                              این پیشنهاد قبلا داده شده. منتهی کدویژن ظاهرا نمیتونه عدد اعشاری از رشته استخراج کنه.

                              دیدگاه


                                #90
                                پاسخ : جداسازی اعداد از متن در C یا c++ برای میکرو AVR

                                سلام خدمت دوستان کلی مطلب بالا گفته شد برام با کمال احترام قبلا پاسخ دادم خدمتتون بنابراین لیست می نمایم:
                                1- دوست گرامی گرین عزیز من قبلا تصویر لازم رو قرار دادم خروجی ترازو با پورت rs232 همون هست که گذاشتم در حالت صفر و ماگزیمم که 3 کیلو رو می تونه اندازه بگیره فرمتش همون هست که براتون قرار دادم.
                                2-من کدهای شما رو سعی کردم کاربردی اش کنم و شاید سازگار کنم با نیازم فکر نمی کردم برای شما حرفه ایها نامفهوم باشد ... بیشتر برای من نامفهوم هستند.
                                3-دوست گرامی aie دقیقا کد ویژن همانطور که در قبل تر تصویر تنظیماتش و گذاشتم در printf - قادر به استفاده از float هست ولی دستور scanf قادر نیست و بیشتر برای اعداد صحیح کاربردی است.
                                4- مهندس جان بنده با هواوهوس کار نمی کنم پیشنهاد شما مورد توجه بود و حتی اموزش از فرادرس تهیه شد ولی به بخش نظرات همون اموزش مراجعه نمایید دوستان دیگر هم مورد داشتند و بنده تنها نیستم حتی برای بررسی سعی کردم کتابخانه دیگه پیدا کنم و در کار با ان ناموفق بودم و هلپش و هم دیدم ولی خروجی دریافت نکردم
                                لینک قسمت نظرات رو مشاهد ه نمایید:
                                کد:
                                https://faradars.org/courses/fvee9808-avr-microcontroller-using-atmel-compiler
                                بنده هم نظر گذاشتم ولی انجا دیده نمیشه.

                                دلیل: ادغام دو پست برای جلوگیری از اسپم

                                لینک کتابخانه:
                                کد:
                                https://s19.picofile.com/file/8437974176/lcd.rar.html
                                دلیل: ادغام دو پست برای جلوگیری از اسپم

                                همانطور که ملاحظه می فرمایید من فقط این انجمن رو به تنهایی اکتفا نکردم و جاهای گوناگون و سایت های های خارجی هم مورد بررسی قرار می دهم
                                نمونه:
                                کد:
                                https://stackoverflow.com/questions/21264995/c-split-a-floating-point-number-into-individual-digits
                                دلیل: ادغام دو پست برای جلوگیری از اسپم

                                کد:
                                https://www.codingame.com/playgrounds/14213/how-to-play-with-strings-in-c/string-split
                                دلیل: ادغام دو پست برای جلوگیری از اسپم

                                کد:
                                https://docs.microsoft.com/en-us/dotnet/api/system.string.split?view=net-5.0
                                دلیل: ادغام دو پست برای جلوگیری از اسپم

                                و کلی جاهای گوناگون دیگه
                                جدیدترین ویرایش توسط flightsazan; ۰۳:۱۵ ۱۴۰۰/۰۴/۲۱.

                                دیدگاه

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