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

انجمن تخصصی برنامه نویسان فارسی زبان

کاربر سایت

alicpn

عضویت از 1395/08/12

جدا کننده حروف و اعداد در سی شارپ

  • چهارشنبه 23 خرداد 1397
  • 01:17
تشکر میکنم

با سلام و خسته نباشید.

چطور میتونم مثلا از تکست باکس m500 رو گرفتم عددش یعنی 500 رو تو تکست باکس 2 و m رو تو تکست باکس 3 قرار بدم.

سوال بعدی این بود که مثلا یک دستگاه از طریق پورت سریال ، n حروف و عدد در یه لحظه بم میده حالا چکار کنم که مثلا m500 a200 b400 تو تکست باکس دریافت کردم اعداد و حروفشونو تفکیک کنم.

مچکرم. اگه زحمتی نیست با سورس بزارین.

پاسخ های این پرسش

تعداد پاسخ ها : 3 پاسخ
کاربر سایت

salman_b

عضویت از 1396/02/18

  • چهارشنبه 23 خرداد 1397
  • 09:04

سلام

فکر میکنم شما باید از Regex.Split() استفاده کنید که در فضای نام using System.Text.RegularExpressions; قرار دارد.

به هر حال اگه کد میخواین:

قسمت اول:

رشته m500 کاملا درون textbox هست و میخوای جداکنی ؟

اگه این حالت هستش که خیلی سادس

یا کاراکتر به کاراکتر وارد textbox میشه ؟

اگه این حالت هستش که خب باید کاراکتر پایانی مشخص باشه تا بشه تو ورودی تا کاراکتر پایانی رو خوند و رشته ی حاصل رو جدا کرد. مثلا میشه گفت اگه این وارد شد : m500c یعنی به محض اینکه کاراکتر c یا هر کاراکتر غیر عددی وارد شد یعنی رشته ی قبلی تمام شده (فرض من هستش)

قسمت دوم:

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

یک رشته ی طولانی که شامل تمامی حالت هایی که ممکنه اتفاق بیفته رو کامنت کن تا کدشو بنویسم

فقط رشته رو با کد سی شارپ قسمت پاسخ فیلتر کن که خواناتر باشه، مرسی

درکل جدا کننده رشته در سی شارپ تابع Split هستش که براساس کاراکتر جدا کننده ای که خودت مشخصش میکنی رشته رو به زیر رشته ها میشکونه و در آرایه رشته ای ذخیره میکنه. که اگه شما کاراکتر جدا کننده نداشته باشی عملا به درد نمیخوره.

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

پس این رو هم مشخص کنید تا بتونم برات کدشو بنویسم

کاربر سایت

alicpn

عضویت از 1395/08/12

  • چهارشنبه 23 خرداد 1397
  • 11:43

سلام مجدد داداش جان من خود برنامه رو ضمیمه میکنم واست خودت بی زحمت اصلاحش کن.

از تکست باکس یعنی Data Reciever که از پورت سریال میگیرم این رشته رو که فرضا a500 b400 c300 d780 در یک لحظه دریافت میکنم حالا میخوام در 4 تا تکست باکس اعدادش درج بشن یعنی 500 جدا بره تو تکست 1 و 400 بره تو تکست 2 و.....

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

ممنونم از لطفتون

فایل های ضمیمه

کاربر سایت

salman_b

عضویت از 1396/02/18

  • پنجشنبه 24 خرداد 1397
  • 11:23

سلام

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

یه رشته ی پیش فرض تعریف کردم و اون رو به چهار زیر رشته شکوندم

اگه اوکی بود به پروژه ات اضافه کن

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

موفق باشی

فایل های ضمیمه

کاربرانی که از این پست تشکر کرده اند

هیچ کاربری تا کنون از این پست تشکر نکرده است

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

با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)