Foxtable(狐表)用户栏目专家坐堂 → 这样的比对结果如何才能实现


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

主题:这样的比对结果如何才能实现

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


加好友 发短信
等级:超级版主 帖子:111427 积分:567211 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/6/29 9:38:00 [显示全部帖子]

Dim s1 As String = "苹果9g,香蕉9g,西瓜6g,葡萄6g"
Dim s2 As String = "橘子9g,苹果6g,芒果6g,西瓜9g"

Dim p As String = "[\u4e00-\u9fa5]"

Dim str As String = ""

For Each s As String In s1.Split(",")
    Dim g As String = System.Text.RegularExpressions.Regex.Replace(s , p , "")
    Dim n As String = s.Replace(g, "")
    If s2.Contains(n) Then
        For Each m As String In s2.Split(",")
            If m.Contains(n) Then
                Dim g2 As String = System.Text.RegularExpressions.Regex.Replace(m , p , "")
                Dim k1 As String = Val(g)
                Dim k2 As String = Val(g2)
                If k1 <> k2 Then
                    str = str & "," & n & IIf(k1 > k2, "少", "多") & Math.Abs(k1 - k2) & "克"
                End If 
            End If 
        Next 
    End If 
Next
str = str.Trim(",")
Output.Show(str)

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


加好友 发短信
等级:超级版主 帖子:111427 积分:567211 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/6/30 8:53:00 [显示全部帖子]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.zip


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


加好友 发短信
等级:超级版主 帖子:111427 积分:567211 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/6/30 20:42:00 [显示全部帖子]

成分对比和数量对比有什么区别?按什么规则计算?

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


加好友 发短信
等级:超级版主 帖子:111427 积分:567211 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/6/30 22:04:00 [显示全部帖子]

Dim s1 As String = "苹果2克,芒果9克,葡萄9克"


Dim p As String = "[\u4e00-\u9fa5]"

For Each r As Row In Tables("配方表").rows
    Dim str As String = ""
    Dim str2 As String = ""
    Dim lst As New List(Of String)
    Dim lst2 As New List(Of String)
    Dim cf As Boolean = False
    For Each s As String In s1.Split(",")
        Dim g As String = System.Text.RegularExpressions.Regex.Replace(s , p , "")
        Output.Show(g)
        Dim n As String = s.Replace(g, "").Replace("克", "")
        Dim k1 As String = Val(g)
        Output.Show("n--------" & n & ",k1=" & k1)
        If r("成分").Contains(n) Then
            lst.Add(n)
            For Each m As String In r("成分").Split(",")
                Output.Show("m=" & M)
                Dim g2 As String = System.Text.RegularExpressions.Regex.Replace(m , p , "")
                If cf = False Then
                    lst2.Add(m.Replace(g2, "").Replace("克", ""))
                End If
                If m.Contains(n) Then
                    Dim k2 As String = Val(g2)
                    Output.Show("--g2=" & g2 & ",k2=" & k2)
                    If k1 <> k2 Then
                        str = str & "," & n & IIf(k1 > k2, "少", "多") & Math.Abs(k1 - k2) & "克"
                        Output.Show("str=" & str)
                    End If 
                End If 
            Next
            cf = True
        Else
            str2 = str2 & ",少了" & n 
        End If
    Next
    str = str.Trim(",")
    For Each a As String In lst2
        If lst.Contains(a) = False Then
            str2 = str2 & ",多了" & a
        End If 
    Next
    r("数量对比") = str
    r("成分对比") = str2
Next

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


加好友 发短信
等级:超级版主 帖子:111427 积分:567211 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/7/2 9:20:00 [显示全部帖子]

数据问题,分隔符有些是逗号,有些是顿号。请统一一下

 回到顶部