首页 > 解决方案 > InputBox 不允许某些 ASCII 控制字符

问题描述

目前正在使用这个嵌入了 ASCII 控制章程的字符串。

[)><RS>06<GS>17V0B100<GS>1PRID-001-A1<GS>S99999<RS><EOT>

下面正确过滤掉记录分隔符

i = InputBox("Test") 'i = [)><RS>06<GS>17V0B100<GS>1PRID-001-A1<GS>S99999<RS><EOT>
i = Split(i, Chr(30)) 
'i(1) = 0617V0B1001PRID-001-A1S99999

但组分隔符没有。为什么下面不分裂?

i = InputBox("Test") 'i = [)><RS>06<GS>17V0B100<GS>1PRID-001-A1<GS>S99999<RS><EOT>
i = Split(i, Chr(29)) 
'i(0) = [)>0617V0B1001PRID-001-A1S99999

标签: vbainputbox

解决方案


感谢蒂姆引导我找到正确的答案。下面用于将关键事件转换为文本。

Private Sub Text0_KeyPress(KeyAscii As Integer)
Dim i As Integer
i = Me.Text0.SelStart
Select Case KeyAscii
    Case 4
        Me.Text0.Text = Me.Text0.Text + "<EOT>"
        Me.Text0.SelStart = i + 5
    Case 29
        Me.Text0.Text = Me.Text0.Text + "<GS>"
        Me.Text0.SelStart = i + 4
    Case 30
        Me.Text0.Text = Me.Text0.Text + "<RS>"
        Me.Text0.SelStart = i + 4
End Select
End Sub

推荐阅读