Foxtable(狐表)用户栏目专家坐堂 → 急需大批量并按排序号顺序动态字符替换公式


  共有2259人关注过本帖树形打印复制链接

主题:急需大批量并按排序号顺序动态字符替换公式

帅哥哟,离线,有人找我吗?
zhuya820
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:243 积分:1819 威望:0 精华:0 注册:2016/1/21 12:44:00
急需大批量并按排序号顺序动态字符替换公式  发帖心情 Post By:2017/7/29 20:37:00 [只看该作者]

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

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By: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
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:243 积分:1819 威望:0 精华:0 注册:2016/1/21 12:44:00
  发帖心情 Post By:2017/7/30 11:49:00 [只看该作者]

那部分替换如何实现
[此贴子已经被作者于2017/8/15 8:29:55编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By: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
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:243 积分:1819 威望:0 精华:0 注册:2016/1/21 12:44:00
  发帖心情 Post By: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编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By: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 '注意括号是英文的括号 还是中文的括号


 回到顶部