Foxtable(狐表)用户栏目专家坐堂 → 请教


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

主题:请教

美女呀,离线,留言给我吧!
采菊东篱下
  11楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1879 积分:10352 威望:0 精华:0 注册:2019/4/6 8:45:00
  发帖心情 Post By:2020/2/7 11:48:00 [只看该作者]

把数据改为500,依然报错,看来我改代码还是有问题!

图片点击可在新窗口打开查看此主题相关图片如下:qq图片2.png
图片点击可在新窗口打开查看


 回到顶部
帅哥,在线噢!
有点蓝
  12楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:105936 积分:538749 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/2/7 12:13:00 [只看该作者]

看8楼

 回到顶部
美女呀,离线,留言给我吧!
采菊东篱下
  13楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1879 积分:10352 威望:0 精华:0 注册:2019/4/6 8:45:00
  发帖心情 Post By:2020/2/7 12:40:00 [只看该作者]

谢谢指教,看了你的代码了,你是添加行,我这代码是在已添加好行数的基础上把生成的数据填上去,还有你的代码把生成的数据个数统计改为2020依然超出计算范围,没数据生成,不是已经定义数据型为Long吗?它的取值范围是 -9223372036854775808 到 9223372036854775807。我试了很多次这程序生成的数值个数取值最多为1020左右,输入1025已经报错了,生成的值是2222222022,远没超出Long的取值范围,为什么就不行了呢?这是一位教授出的题,他要求不能用计算机数,但我想过不行,想知道结果就计算机算算,可终得不到我要的结果,迷惑。

 回到顶部
帅哥,在线噢!
有点蓝
  14楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:105936 积分:538749 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/2/7 14:23:00 [只看该作者]

i=cint("2".PadRight(k+1,"0"))

改为

i=clng("2".PadRight(k+1,"0"))

如果在已经有的行里填充,参考

DataTables("表A").StopRedraw
Dim dr As DataRow
For i As Integer = 0 To lst.Count - 1
    dr = DataTables("表A").DataRows(i)
    dr("第一列") = s
Next
DataTables("表A").ResumeRedraw


 回到顶部
美女呀,离线,留言给我吧!
采菊东篱下
  15楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1879 积分:10352 威望:0 精华:0 注册:2019/4/6 8:45:00
  发帖心情 Post By:2020/2/7 17:10:00 [只看该作者]

你这代码我执行了一下也报错,如果我已添加了一些行,但不够生成的数字所要行数,不够的行数再继续添加,我想了一直代码,可不对,比较乱,请指教。
Dim lst As new List(of Long)
Dim i As Long = 0
Dim p1 As String = "0$"
Dim p2 As String = "^[0,2]+$"
Dim p3 As String = "^2+$"
Dim p4 As String = "0[2]+$"
Dim r As New System.Text.RegularExpressions.Regex(p2)

Do While lst.Count < 2020
    Dim i2 As String= i.Tostring
    Dim k As Long = i2.length
    If r.IsMatch(i2,p2) Then
        lst.Add(i)
        If r.IsMatch(i2,p1) Then
            i += 2
        ElseIf r.IsMatch(i2,p4) Then
            Dim s2 As String = System.Text.RegularExpressions.Regex.replace(i2,p4,"")
            i=clng(s2 & "2".PadRight(k-s2.Length,"0"))
        ElseIf r.IsMatch(i2,p3) Then
            i=clng("2".PadRight(k+1,"0"))
        Else
            i += 18
        End If
    Else
        i += 2
    End If
Loop
'Dim dr As DataRow
'For Each s As Long In lst
    ''Output.Show(s)
    'dr = DataTables("表A").AddNew
    'dr("鼠数") = s
'Next

DataTables("表A").StopRedraw
Dim dr As DataRow
For Each s As Long In lst
    For a As Integer = 0 To lst.Count - 1
        If a <= CurrentTable.Position           
             dr = DataTables("表A").DataRows(a)
            dr("鼠数") = s
            DataTables("表A").ResumeRedraw
        Else
            dr = DataTables("表A").AddNew
            dr("鼠数") = s
        End If
    Next
Next
[此贴子已经被作者于2020/2/7 17:24:52编辑过]

 回到顶部
帅哥,在线噢!
有点蓝
  16楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:105936 积分:538749 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/2/7 17:22:00 [只看该作者]

DataTables("表A").StopRedraw
Dim dr As DataRow
For i As Integer = 0 To lst.Count - 1
    If i < DataTables("表A").DataRows.Count
        dr = DataTables("表A").DataRows(i)
    Else
        dr = DataTables("表A").AddNew
    End If
    dr("第一列") = s
Next
DataTables("表A").ResumeRedraw

 回到顶部
美女呀,离线,留言给我吧!
采菊东篱下
  17楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1879 积分:10352 威望:0 精华:0 注册:2019/4/6 8:45:00
  发帖心情 Post By:2020/2/7 17:38:00 [只看该作者]

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

[此贴子已经被作者于2020/2/7 17:41:51编辑过]

 回到顶部
帅哥,在线噢!
有点蓝
  18楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:105936 积分:538749 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/2/7 17:44:00 [只看该作者]

'Dim d As Long
Dim lst As new List(of Long)
Dim i As Long = 0
Dim p1 As String = "0$"
Dim p2 As String = "^[0,2]+$"
Dim p3 As String = "^2+$"
Dim p4 As String = "0[2]+$"
Dim r As New System.Text.RegularExpressions.Regex(p2)

Do While lst.Count < 2020
    Dim i2 As String= i.Tostring
    Dim k As Long = i2.length
    If r.IsMatch(i2,p2) Then
        lst.Add(i)
        If r.IsMatch(i2,p1) Then
            i += 2
        ElseIf r.IsMatch(i2,p4) Then
            Dim s2 As String = System.Text.RegularExpressions.Regex.replace(i2,p4,"")
            i=clng(s2 & "2".PadRight(k-s2.Length,"0"))
        ElseIf r.IsMatch(i2,p3) Then
            i=clng("2".PadRight(k+1,"0"))
        Else
            i += 18
        End If
    Else
        i += 2
    End If
Loop

DataTables("表A").StopRedraw
Dim dr As DataRow
For i = 0 To lst.Count - 1
    If i < DataTables("表A").DataRows.Count
        dr = DataTables("表A").DataRows(i)
    Else
        dr = DataTables("表A").AddNew
    End If
    dr("鼠数") = lst(i)
Next
DataTables("表A").ResumeRedraw


 回到顶部
客人(116.27.*.*)
  19楼


  发帖心情 Post By:2020/2/7 17:44:00 [只看该作者]

要用IE才能上传 Foxtable文件,QQ浏览器不能上传!

 回到顶部
美女呀,离线,留言给我吧!
采菊东篱下
  20楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1879 积分:10352 威望:0 精华:0 注册:2019/4/6 8:45:00
  发帖心情 Post By:2020/2/7 17:52:00 [只看该作者]

你的代码还是有点问题,我改过来后终于行了,谢谢。
Dim lst As new List(of Long)
Dim i As Long = 0
Dim p1 As String = "0$"
Dim p2 As String = "^[0,2]+$"
Dim p3 As String = "^2+$"
Dim p4 As String = "0[2]+$"
Dim r As New System.Text.RegularExpressions.Regex(p2)

Do While lst.Count < 2020
    Dim i2 As String= i.Tostring
    Dim k As Long = i2.length
    If r.IsMatch(i2,p2) Then
        lst.Add(i)
        If r.IsMatch(i2,p1) Then
            i += 2
        ElseIf r.IsMatch(i2,p4) Then
            Dim s2 As String = System.Text.RegularExpressions.Regex.replace(i2,p4,"")
            i=clng(s2 & "2".PadRight(k-s2.Length,"0"))
        ElseIf r.IsMatch(i2,p3) Then
            i=clng("2".PadRight(k+1,"0"))
        Else
            i += 18
        End If
    Else
        i += 2
    End If
Loop

DataTables("表A").StopRedraw
Dim dr As DataRow
For a As Integer = 0 To lst.Count - 1
    If a < DataTables("表A").DataRows.Count
        dr = DataTables("表A").DataRows(a)
    Else
        dr = DataTables("表A").AddNew
    End If
    dr("鼠数") = lst(a)
Next
DataTables("表A").ResumeRedraw
[此贴子已经被作者于2020/2/7 17:52:13编辑过]

 回到顶部
总数 36 上一页 1 2 3 4 下一页