以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  急需大批量并按排序号顺序动态字符替换公式  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=104471)

--  作者:zhuya820
--  发布时间:2017/7/29 20:37:00
--  急需大批量并按排序号顺序动态字符替换公式
急需大批量并按排序号顺序动态字符替换公式
[此贴子已经被作者于2017/8/15 8:29:45编辑过]

--  作者:有点甜
--  发布时间:2017/7/30 10:13:00
--  

\'自动合并字符
Select Case e.DataCol.Name
    Case "查找列"
        Dim str As String = e.DataRow("查找列") \'批量合成字符集
        Dim ls As new List(Of String)
        If  str > "" Then \'如果有数据
            For Each s As String In e.DataRow.Lines("查找列")
                Dim fdr As DataRow = DataTables("字典库").find("字典 = \'" & s & "\'")
                If fdr IsNot Nothing Then
                    ls.add(fdr("替换值"))
                Else
                    ls.add("")
                End If
            Next
        End If
        e.DataRow.lines("自动替换列") = ls
End Select \'注意括号是英文的括号 还是中文的括号


--  作者:zhuya820
--  发布时间:2017/7/30 11:49:00
--  
那部分替换如何实现
[此贴子已经被作者于2017/8/15 8:29:55编辑过]

--  作者:有点甜
--  发布时间:2017/7/30 12:05:00
--  
\'自动合并字符
Select Case e.DataCol.Name
    Case "查找列"
        Dim str As String = e.DataRow("查找列") \'批量合成字符集
        For Each dr As DataRow In DataTables("字典库").Select("字典 is not null")
            str = str.Replace(dr("字典"), dr("替换值"))
        Next
        e.DataRow("自动替换列") = str
End Select \'注意括号是英文的括号 还是中文的括号

--  作者:zhuya820
--  发布时间:2017/7/30 13:09:00
--  
如何根据字数大小优先替换呀,现在替换随机性的
比例AAABBBAABB数值串
对应替换值不按顺序字典库中,排序以字数为准
AAA-CCC
BB-DD
AA-EE
BBB-FFF
替换值 为
CCC FFF EE DD
应该值应该以最大字符数优先替换小字符数的值
请问以上代码如何修改
谢谢

以上就是说以字符数从最大到最小变量替换查找,
AAA=CCC
AAA不等于EEA
[此贴子已经被作者于2017/7/30 13:26:13编辑过]

--  作者:有点甜
--  发布时间:2017/7/30 15:49:00
--  

你的字典表,要加入一个表达式列,计算字符的个数 len(字典)

 

 

Select Case e.DataCol.Name
    Case "查找列"
        Dim str As String = e.DataRow("查找列") \'批量合成字符集
        For Each dr As DataRow In DataTables("字典库").Select("字典 is not null", "字数 desc")
            str = str.Replace(dr("字典"), dr("替换值"))
        Next
        e.DataRow("自动替换列") = str
End Select \'注意括号是英文的括号 还是中文的括号