以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  如何将不等数量的空格换成竖线  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=148728)

--  作者:happyft
--  发布时间:2020/4/14 11:48:00
--  如何将不等数量的空格换成竖线

图片点击可在新窗口打开查看此主题相关图片如下:文本转换.jpg
图片点击可在新窗口打开查看


如上图,上面文本框中每行有几段,中间的空格数量不一定,如何将其他转换到表格中,
Dim strs As String = e.Form.Controls("TextBox1").Text
Dim tbl As Table = Tables(e.Form.name & "_Table1")
If strs > "" Then
    strs = strs.Replace(vblf,"")  \'去除换行符
    Dim rs() As String = strs.Split(vbcr)  \'按回车符分组
    For i As Integer = 0 To rs.Length - 1
        Dim s As String = rs(i).Replace(" ","|")  \'将中间空格替换
        Dim cs() As String = s.Split("|")
        Dim r As Row = tbl.Addnew()
        r("加工单") = cs(0)
        r("ID") = cs(1)
        r("物料") = cs(2)
        r("品名") = cs(3) & cs(4)
        r("需求量") = cs(5)
    Next
End If
但上面的代码只有第一列有值,后面没有了,应该如何写才能实现
谢谢!

--  作者:有点蓝
--  发布时间:2020/4/14 12:11:00
--  
数据或者实例发上来测试。先试试

Dim s As String = rs(i).Replace(vbtab,"|") 

--  作者:HappyFt
--  发布时间:2020/4/14 13:35:00
--  
没有作用,中间不是tab分隔,是一个个空格,我用
Dim s As String = rs(i).Replace(" ","|")  \'将中间空格替换
结果是这样的:
10042587|||||||||||622701|||FE000026||||Q15-2底架总成(左)||||||||||||||||||||||||||||||||||||||||||1.0

就是要实现中间不管是多少个空格就换成一个"|"就行

--  作者:有点蓝
--  发布时间:2020/4/14 14:18:00
--  
Dim pattern As String = " +"
Dim txt = "10042587      622701  FE000026    Q15-2底架总成(左)                          1.0"
Dim str = System.Text.RegularExpressions.Regex.Replace(txt , pattern ,"|")
Output.Show(str)