以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  回车和换行的处理  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=96319)

--  作者:huhu
--  发布时间:2017/2/17 17:14:00
--  回车和换行的处理

有一种二维码格式是,只有最后一行才有回车,不是每行都有回车。扫描后发现没有增加10行数据,只增加1行数据。遇到这种格式的怎么解决?


图片点击可在新窗口打开查看此主题相关图片如下:二维码.png
图片点击可在新窗口打开查看

DataColChanging:

If e.DataCol.Name = "SN" Then
    Dim str As String = e.NewValue.Replace(chr(10), "").Replace(chr(13), "")
    Dim idx1 As Integer = str.IndexOf("MAC:")
    Dim idx2 As Integer = str.IndexOf("H/W:")
    Dim length As Integer
    If str.Contains("SN:") Then
        length  = IIF(idx1 <> -1,idx1-3,IIF(idx2 <> -1,idx2-4,str.Length - 3))
        e.NewValue = str.SubString(3, length)
    Else
        e.NewValue =str
    End If
    If str.Contains("MAC:") Then
        If idx2 = -1 Then
            e.DataRow("MAC") = str.SubString(idx1+4)
        Else
            e.DataRow("MAC") = str.SubString(idx1+4, idx2-idx1-4)
        End If
    End If
    If str.Contains("H/W:") Then
        e.DataRow("HW") = str.substring(idx2+4)
    End If
End If

KeyDownEdit
If e.keyCode = Keys.Enter AndAlso e.Table.Cols(e.Table.colSel).Name = "SN"   Then
    e.cancel = True
    Dim r As Row = e.Table.addnew
    e.Table.Select(r.Index, 0)
    e.Table.StartEditing
End If

--  作者:有点色
--  发布时间:2017/2/17 17:30:00
--  

扫描出来的数据,每一个用什么分割?


--  作者:huhu
--  发布时间:2017/2/17 17:35:00
--  
之前的格式每一行都是有回车的,也就是回车作为每行的分隔符。
现这个二维码应该只有换行,而没有回车。所以我认为换行就是作为每行的分隔符。
现在想把这2种情况兼容起来。
[此贴子已经被作者于2017/2/17 17:35:41编辑过]

--  作者:有点色
--  发布时间:2017/2/17 17:51:00
--  

把字符扫描到单元格,然后获取每个字符的编码,看用什么分割。

 

dim str as string = "abc测试"
For Each s As String In str
    output.show(s & Asc(s))
Next