Foxtable(狐表)用户栏目专家坐堂 → [求助]跨表引用


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

主题:[求助]跨表引用

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


加好友 发短信
等级:五尾狐 帖子:1141 积分:11272 威望:0 精华:0 注册:2017/9/26 16:30:00
[求助]跨表引用  发帖心情 Post By:2021/3/25 12:21:00 [只看该作者]

老师好!

我把单词表里包含的词性缩写,在词性表里找到后,赋值中文词性。遇到“pron.”时,会把“n.”的词性也提取出来。

怎样避免这类重复提取?

谢谢!


图片点击可在新窗口打开查看此主题相关图片如下:截屏图片.jpg
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:截屏图片1.jpg
图片点击可在新窗口打开查看 

 

......

    Case "中文"
        Dim str As String = ""
        For Each dr As DataRow In DataTables("词性表").DataRows
            If e.DataRow("中文").Contains(dr("词性缩写")) Then
                str += dr("词性") & ";"
            End If
            e.DataRow("词性") = str.Trim(";")
        Next  



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


加好友 发短信
等级:超级版主 帖子:110450 积分:562116 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/3/25 13:40:00 [只看该作者]

If ("." & e.DataRow("中文")).Contains("." & dr("词性缩写")) Then

 回到顶部
帅哥哟,离线,有人找我吗?
天一生水
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1141 积分:11272 威望:0 精华:0 注册:2017/9/26 16:30:00
  发帖心情 Post By:2021/3/25 20:14:00 [只看该作者]

谢谢!

忘了这种多词性的情况,是不是需要去掉第一次包含的字符后,再循环一次?


图片点击可在新窗口打开查看此主题相关图片如下:截屏图片 (1).jpg
图片点击可在新窗口打开查看
[此贴子已经被作者于2021/3/25 20:30:47编辑过]

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


加好友 发短信
等级:超级版主 帖子:110450 积分:562116 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/3/25 20:35:00 [只看该作者]

这种没有办法,没有规律的规则无法处理

 回到顶部
帅哥哟,离线,有人找我吗?
天一生水
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1141 积分:11272 威望:0 精华:0 注册:2017/9/26 16:30:00
  发帖心情 Post By:2021/3/25 22:45:00 [只看该作者]

这样可以,但是运行的慢一些。

......

Case "中文"
        Dim str As String = ""
        Dim rgx As New RegularExpressions.Regex("[^a-zA-Z\.\/]")    '只允许英文字母及英文句号-取反
        For Each dr As DataRow In DataTables("词性表").DataRows
            If  e.DataRow("中文") <> "" Then
                Dim sts() As String = rgx.Replace(e.DataRow("中文"),"").split(".")  
                For Each st As String In sts
                    If st = dr("词性缩写").replace(".","") Then
                        str += dr("词性") & ";"
                    End If
                    e.DataRow("词性") = str.Trim(";")
                Next
            End If
        Next

......


 回到顶部