看板 Visual_Basic 關於我們 聯絡資訊
小弟修改程式碼 將做法改為使用Mid(string,x,y) x是第幾位元 y是取幾位 可以達到當初要求 但...還是想知道是否有辦法使用遮罩的方式完成比對工作 以下為修改後可執行之程式碼 Option Explicit Private Sub Form_Load() MSComm1.CommPort = 1 MSComm1.Settings = "9600,n,8,1" MSComm1.RTSEnable = True End Sub Private Sub cndSend_Click() If Not MSComm1.PortOpen = True Then MSComm1.PortOpen = True MSComm1.Output = "b" Timer1.Interval = 500 Timer1.Enabled = True End Sub Private Sub cmdClose_Click() MSComm1.PortOpen = False End Sub Private Sub Timer1_Timer() txtResponse.Text = MSComm1.Input Dim i As Integer For i = 1 To 8 Step If (Mid(txtResponse.Text,i,1) = 1) Then Shape1(i-1).FillStyle = 1 Else Shape1(i-1).FillStyle = 0 End If Next i Timer1.Enabled = False End Sub 懇請大家賜教 或者有其他更好的方式可以比對這字串 請指導我 謝謝大家 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 218.167.161.212
MOONRAKER:mscomm.input讀出來是1101 而不是13這樣的十進位數字? 04/24 02:06
medoc:對 他送出來的是00000000這樣子 04/24 10:39
MOONRAKER:那我看別忙了 XD 這樣字串比對絕對比bitmask更簡單 04/24 17:57
MOONRAKER:因為你若想用bitmask,就要先把字串拆開,然後把各個位 04/24 17:58
MOONRAKER:數乘上權數再加起來,最後再mask,都是要拆字串 04/24 17:58