以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]拆分字符串后再转换成二维表。  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=137343)

--  作者:PC8888
--  发布时间:2019/7/3 19:41:00
--  [求助]拆分字符串后再转换成二维表。
[求助高手]拆分字符串后再转换成二维表的代码。

此主题相关图片如下:b.png
按此在新窗口浏览图片

此主题相关图片如下:a.png
按此在新窗口浏览图片
 下载信息  [文件大小:   下载次数: ]
点击浏览该文件:字符串拆分再转换为二维表.table



--  作者:有点蓝
--  发布时间:2019/7/4 8:37:00
--  
按什么规则拆分?
--  作者:PC8888
--  发布时间:2019/7/4 22:52:00
--  
按”/“拆,如-100/-200,拆分成”-100“和”-200“,关键是拆了以后怎样充填到上面的二维表的位置中,请帮忙!
--  作者:PC8888
--  发布时间:2019/7/4 22:57:00
--  
我上面说的还不够明白,有些误解了。意思是拆分后在相对应的坐标格子中充填”数量“。烦请老师帮忙写段代码,谢谢!
--  作者:有点蓝
--  发布时间:2019/7/5 9:55:00
--  
Dim dictCol As new Dictionary(of String,Integer)
Dim r As Row = Tables("表B").Rows(0)
For i As Integer = 1 To Tables("表B").Cols.Count - 1
    dictCol.Add(r(i),i)
Next

Dim dictRow As new Dictionary(of String,Integer)
For i As Integer = 1 To Tables("表B").Rows.Count - 1
    dictRow.Add(Tables("表B").Rows(i)("第一列"),i)
Next

For Each r1 As Row In Tables("表A").Rows
    If r1.IsNull("编码") = False
        Dim ss() As String = r1("编码").split("/")
        If ss.length = 1 Then
            Tables("表B").Rows(dictRow(ss(0)))(1) = r1("数量")
        Else
            Tables("表B").Rows(dictRow(ss(1)))(dictCol(ss(0))) = r1("数量")
        End If
    End If
Next

--  作者:PC8888
--  发布时间:2019/7/5 10:16:00
--  
"有点蓝“老师:纵横坐标弄反了,能否再帮助更改一下代码。”-100/-25“,拆分字符后前面的字符”-100“为纵坐标,后面的字符”-25“为横坐标,再把相对应的数量填入表B二维表。经测试后,现代码”纵横坐标刚好相反“。
--  作者:PC8888
--  发布时间:2019/7/5 10:39:00
--  
自己更改了一下,OK。非常感谢!!!