Foxtable(狐表)用户栏目专家坐堂 → 输出问题


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

主题:输出问题

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/2/13 10:42:00 [显示全部帖子]

1、输出为txt,如

 

http://www.foxtable.com/webhelp/scr/0435.htm

 

2、操作excel,参考

 

http://www.foxtable.com/webhelp/scr/1144.htm

 

3、生成临时表,参考

 

http://www.foxtable.com/webhelp/scr/0679.htm

 


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/2/13 10:58:00 [显示全部帖子]

比如

 

Dim s1 As List(of String)
Dim s2 As List(of String)
S1 = DataTables("专利交易库").GetValues("专利名称")
S2= DataTables("专利交易库").GetValues("交易要求")
For Each s22 As String In s2
    For Each s11 As String In s1
        Dim count As Integer = s11.Length
        For i As Integer = count -2 To 1 Step -1
            For j As Integer = count - i To 0 Step -1
                Dim s As String = s11.SubString(j,i)
                If s22.Contains(s) And i >1 Then
                    Dim dr As  DataRow = DataTables("专利交易库").Find("交易要求 = '" & s22 & "'") 
                      Dim ddr As  DataRow = DataTables("专利交易库").Find("专利名称 = '" & s11 & "'") 
                        If dr IsNot Nothing And ddr IsNot Nothing Then  
                    output.show("可能与买方QQ:" & dr("qq") & "要求:" & s22 & "           " & "匹配的QQ:" & ddr("QQ") & "专利是:" & s11 & "                 匹配有" & i & "个" & "  " & "          匹配的字符是:" & s & "              " & "相似度:" & Format(i/s11.Length,"#0.00%") )
                    output.show("")
                    output.show("")
exit for
                          End If            
                End If
            Next
        Next
    Next
Next

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/2/13 11:16:00 [显示全部帖子]

Dim s1 As List(of String)
Dim s2 As List(of String)
S1 = DataTables("专利交易库").GetValues("专利名称")
S2= DataTables("专利交易库").GetValues("交易要求")
For Each s22 As String In s2
    For Each s11 As String In s1
        Dim count As Integer = s11.Length
        Dim flag As Boolean = False
        For i As Integer = count -2 To 1 Step -1
            For j As Integer = count - i To 0 Step -1
                Dim s As String = s11.SubString(j,i)
                If s22.Contains(s) And i >1 Then
                    Dim dr As  DataRow = DataTables("专利交易库").Find("交易要求 = '" & s22 & "'")
                    Dim ddr As  DataRow = DataTables("专利交易库").Find("专利名称 = '" & s11 & "'")
                    If dr IsNot Nothing And ddr IsNot Nothing Then
                        output.show("可能与买方QQ:" & dr("qq") & "要求:" & s22 & "           " & "匹配的QQ:" & ddr("QQ") & "专利是:" & s11 & "                 匹配有" & i & "个" & "  " & "          匹配的字符是:" & s & "              " & "相似度:" & Format(i/s11.Length,"#0.00%") )
                        output.show("")
                        output.show("")
                        flag = True
                        Exit For
                    End If
                End If
            Next
            If flag = True Then Exit For
        Next
    Next
Next

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/2/13 14:39:00 [显示全部帖子]

1、循环2000行,再循环2000行,就是 400000 次,然后还循环每一个字符,假如每次10个字符,那就是 40万*10*10=4千万 次比较,肯定比较慢。

 

2、你试试把find去掉测试

 

Dim s1 As List(of String)
Dim dt As Date = Date.Now
Dim s2 As List(of String)
Dim m As Integer =0
S1 = DataTables("专利交易库").GetValues("专利名称")
S2= DataTables("专利交易库").GetValues("交易要求")
For Each s22 As String In s2
    For Each s11 As String In s1
        Dim count As Integer = s11.Length
        Dim flag As Boolean = False
        For i As Integer = count -2 To 1 Step -1
            For j As Integer = count - i To 0 Step -1
                Dim s As String = s11.SubString(j,i)
                If s22.Contains(s) And i >1 And S Like "?[!生产装置设备一种产品实用新型方法用于的]" Then
                   
                    'Dim dr As  DataRow = DataTables("专利交易库").Find("交易要求 = '" & s22 & "'")
                    'Dim ddr As  DataRow = DataTables("专利交易库").Find("专利名称 = '" & s11 & "'")
                    'If dr IsNot Nothing And ddr IsNot Nothing Then
                        m=m+1
                        output.show("可能与买方QQ:" & "" & "要求:" & s22 & "           " & "匹配的QQ:" & "" & "专利是:" & s11 & "                 匹配有" & i & "个" & "  " & "          匹配的字符是:" & s & "              " & "相似度:" & Format(i/s11.Length,"#0.00%") )
                        output.show("")
                        output.show("")
                        flag = True
                        Exit For
                    'End If
                End If
                If flag = True Then Exit For
            Next
        Next
    Next
   
   
Next


output.show("")
output.show("")
output.show("共比较  " & m &  "  条数据")
Output.Show("共耗时  " & (Date.now - dt).TotalSeconds & " 秒")


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/2/13 15:03:00 [显示全部帖子]

那你试试用多线程处理

 

http://www.foxtable.com/mobilehelp/scr/3269.htm

 

 


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/2/13 15:04:00 [显示全部帖子]

 

多线程处理的时候,把第二个循环写成函数,也就是开启1千多个线程,一个线程处理一个【交易要求】。

 

 


 回到顶部