PDA

View Full Version : آموزش: نحوه چداسازی یک رشته دیتا



dvbskystar
سه شنبه 28 دی 1389, 17:50 عصر
سلام
من از طریق پورت سریال یک رشته داده دریافت می کنم به صورت زیر :

a=100
b=357
d=457
batt=357

می خواهم این رشته داده را درون متغییر های برنامه قرار بدم چطوری این ها را از هم در vb باید جدا کرد .
متشکرم

quiet_programmer
سه شنبه 28 دی 1389, 18:12 عصر
سلام.

این کد برای جدا کردن رقم از داخل متنه.
تو این کد فرض شده رشته تو text1 قرار داره


Dim CH As String
dim Number as String
For i = 1 To Len(Me.Text1.Text)
CH = Mid(Me.Text1.Text, i, 1)
If CH >= "0" And CH <= "9" Then
Number = Number + CH
End If
Next

dvbskystar
چهارشنبه 29 دی 1389, 08:42 صبح
آقا کسی آخر یه راه حل درست حسابی نداره به ما بده . خیلی گیرم . مرسی

parselearn
چهارشنبه 29 دی 1389, 12:21 عصر
براساس vbcrlf بايد Split كنيد
http://www.barnamenevis.org/showthread.php?257860-%D8%AC%D8%AF%D8%A7-%DA%A9%D8%B1%D8%AF%D9%86-%DA%A9%D9%84%D9%85%D8%A7%D8%AA-%D8%AF%D8%B1-TextBox
http://barnamenevis.org/showthread.php?256340-%D8%AC%D8%AF%D8%A7-%DA%A9%D8%B1%D8%AF%D9%86-%DB%8C%DA%A9-%DA%A9%D8%A7%D8%B1%DA%A9%D8%AA%D8%B1&highlight=split
http://barnamenevis.org/showthread.php?240106-%D8%A7%D9%86%D8%AA%D8%AE%D8%A7%D8%A8-%DB%8C%DA%A9-%D8%AE%D8%B7-%D8%A7%D8%B2-TextBox&highlight=split
http://barnamenevis.org/showthread.php?257860-%D8%AC%D8%AF%D8%A7-%DA%A9%D8%B1%D8%AF%D9%86-%DA%A9%D9%84%D9%85%D8%A7%D8%AA-%D8%AF%D8%B1-TextBox&highlight=split

quiet_programmer
چهارشنبه 29 دی 1389, 12:57 عصر
اول تکلیفت رو مشخص کن چی رو میخوای از چی جدا کنی؟؟؟؟؟؟؟؟؟؟؟

انتهای اون رشته هایی که نوشتی End & New Line هست یا نه؟

_behnam_
چهارشنبه 29 دی 1389, 13:13 عصر
سلام
من از طریق پورت سریال یک رشته داده دریافت می کنم به صورت زیر :

a=100
b=357
d=457
batt=357

می خواهم این رشته داده را درون متغییر های برنامه قرار بدم چطوری این ها را از هم در vb باید جدا کرد .
متشکرم
دوست عزیز شما اول باید کار با تابع Split رو بلد باشی
تابع Split رشتهارو از هم جدا میکنه
حالا من یه مثال میزنم که ببینی کار باش چطوره
کد زیرو تو یه کامند کپی کن بعد کارایشو ببین

Dim X As Integer
Dim ST() As String
ST = Split("salam=khoobi?=chekhabar?", "=")
For X = 0 To UBound(ST)
MsgBox ST(X)
Next X

dvbskystar
پنج شنبه 30 دی 1389, 11:53 صبح
خوب مرسی از پاسخ های دوستان
مشکل جدا کردن داده های سریال ورودی با تابع split حل شد . ولی الان یه مشکل دیگه دارم .
مشکل اینجا است که من داده ها را از پورت سریال با یک تایمر دائم می گیرم . زمانی که برنامه اجرا می کنم در لحظات اول داده ها به خوبی دریافت می شه ولی بعد از چند لحظه مثلا اگر داده ارسالی a=123 باشه من این داده را به صورت a=1 می گیرم یعنی یه مقدار از داده حذف می شه فکر کنم مشکل از سرریز بافر ورودی باشه . حالا شما راه حل مناسبی برای حل این مشکل دارید
لطفا اگر امکان داره یه برنامه برای گرفتن داده به صورت مستمر و بدون مشکل سر ریز بیان کنید . متشکرم