Visual Basic 型態不符的問題(20點) 急!!

2010-06-16 7:18 am
Private Sub Form_Load()
MSComm1.CommPort = 1

MSComm1.Settings = "9600,N,8,1"

MSComm1.PortOpen = True
End Sub

Private Sub Command1_Click()
Buf = Trim(Text1.Text)

MSComm1.Output = Chr(Buf)<<<<<<這 型態不符

End Sub

Private Sub Command2_Click()
MSComm1.Output = Chr(1)
End Sub

Private Sub Command3_Click()
MSComm1.Output = Chr(2)
End Sub

Private Sub Command4_Click()
MSComm1.Output = Chr(3)
End Sub

Private Sub Command5_Click()
MSComm1.PortOpen = False
End Sub

回答 (2)

2010-06-16 9:38 am
✔ 最佳答案
MSComm1.Output = Chr(Buf)<<<<<<這 型態不符

MSComm1.Output = Buf
2010-06-16 8:32 am
MSComm1.Output = Chr(Buf)<<<<<<這 型態不符
因為這BUF是STRING 而不是 CHAR的. 所以就出現型態不符的問題出來.
因為你看到其他的程式碼
MSComm1.Output = Chr(2)
MSComm1.Output = Chr(3)

CHR()的格式只接受一個字元的, 所以Chr(Buf)的BUF是一個字串, 就算他只有一個字元, 他還是一個字串型態

現在你只可以把BUF變為字元型態才行.

例如:
dim tmpCharArray() as char = BUF.toCharArray
MSComm1.Output = tmpCharArray(X)

這裡的X是可以0,1,2 ... 其中一個


2010-06-16 00:43:15 補充:
補充: CHR()是一個傳回一個ASCII碼的函式. 例如 Chr(65) 他的值就是 'A'

2010-06-23 11:02:18 補充:
現在你只有兩個選擇
1.
dim tmpCharArray() as char = BUF.toCharArray
MSComm1.Output = tmpCharArray(X)
2.
MSComm1.Output = BUF
參考: 不明白再問, MSDN


收錄日期: 2021-05-01 22:58:05
原文連結 [永久失效]:
https://hk.answers.yahoo.com/question/index?qid=20100615000016KK09401

檢視 Wayback Machine 備份