ذخیره مقادیر String در متغیر
سلام دوستان
من با Qt پروژه ای نوشتم.
من یک رشته از پرت سریال
نقل قول:
20.74! 32.00@ 5.00* 50$ 99^ #
دریافت میکنم به این شکل (فرمتش دست خودمه و میتونم تغییرش بدم).
که مثلا 20.74 دما هست و توی یه متغیر double ذخیره بشه. مثلا 32.00 رطوبت که این هم توی متغیر دخیره بشه و الی آخر.
من چطور میتونم این کار رو بکنم؟ باید تبدیل بشه به استراکت؟
نقل قول: ذخیره مقادیر String در متغیر
سلام. اگر فرمت مشخصی داره میتونید از regular expression برای این کار استفاده کنید. regex ها هم در کتابخانه استاندارد خود C++ و هم بصورت مجزا در Qt وجود داره.
نقل قول: ذخیره مقادیر String در متغیر
نقل قول:
نوشته شده توسط
sd702004
سلام. اگر فرمت مشخصی داره میتونید از regular expression برای این کار استفاده کنید. regex ها هم در کتابخانه استاندارد خود C++ و هم بصورت مجزا در Qt وجود داره.
میتونم فرمت رو به این صورت تغییر بدم
نقل قول:
@t= 20.37 h= 32.01 c=5.01 l= 45 u= 0#
یا مدلای دیگه.
حالا من کدش رو باید چطور بنویسم؟
نقل قول: ذخیره مقادیر String در متغیر
regex مبحث نسبتا مفصلیه. قبل از این که ببینیم آیا این روش مناسب هست یا خیر اگه الگوتون به این صورته که مثلا چند تا عبارت پشت سر هم نوشته شده و بعنوان مثال میدونید که اولی یک عدد صحیحه، دومی یک عدد اعشاری و... که کلا به regex نیست. کافیه ورودی تون صرفا شامل این موارد باشه و با یک کارکتر مناسب (مثلا اسپیس یا کاما یا هر کارکتر مناسب دیگری) از همدیگه جداشون کرده باشین. در این صورت با متد split در کلاس QString راحت میتونید این بخشها رو از هم جدا کنید.
بعنوان مثال فرض کنید قراره سه تا مقدار a، b و c که به ترتیب عدد صحیح، عدد اعشاری و استرینگ هست رو دریافت کنیم. کافیه ورودی مون به این صورت باشه:حالا با استفاده از دستور split اینا رو به یک آرایه سه عضوی تبدیل میکنیم و این سه تا مقدار رو به ترتیب در متغیرهای int، double و QString ذخیره میکنیم. (برای دو مورد اول باید به ترتیب از متدهای toInt() و toDouble() استفاده بشه.
نقل قول: ذخیره مقادیر String در متغیر
از همین تابع split استفاده کردم و جواب داد. البته یخورده هم خلاقیت بخرج دادم و بهتر شد.