Foxtable(狐表)用户栏目专家坐堂 → 不知道为什么每次运行这个代码都会卡死?


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

主题:不知道为什么每次运行这个代码都会卡死?

美女呀,离线,留言给我吧!
youkacard
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:269 积分:1847 威望:0 精华:0 注册:2014/11/9 21:57:00
不知道为什么每次运行这个代码都会卡死?  发帖心情 Post By:2015/6/8 16:19:00 [只看该作者]

Dim sx() As String = {"鼠","牛","虎","兔","龙","蛇","马","羊","猴","鸡","狗","猪"}
Dim i As Integer = 1
Dim x As Integer = 1
Dim y As Integer = 0
Dim result As String
Do While x < 3600
    If CStr(i).Contains("4") = False Then
        If x Mod 30 = 0 Then
            y = y + 1
        End If
        If y > 11 Then
            y = 0
        End If
        If y < 12 Then
            result &= "NO." & Format(i,"00000000") & "-" & sx(y) & vbcrlf
            i = i + 1
        End If
        x = x + 1
    End If
Loop
FileSys.WriteAllText("c:\test.txt",result,False,Encoding.Default)

求指点问题出在哪里?我自己测试了下  好像是 CStr(i).Contains("4") = False 这个条件加上去之后就死,但是好像没问题啊

 回到顶部
美女呀,离线,留言给我吧!
youkacard
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:269 积分:1847 威望:0 精华:0 注册:2014/11/9 21:57:00
  发帖心情 Post By:2015/6/8 16:41:00 [只看该作者]

图片点击可在新窗口打开查看召唤版主

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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2015/6/8 16:42:00 [只看该作者]

X自增放到IF条件内.   那永远都不会触发.死循环了

自增请放到条件外


Dim sx() As String = {"鼠","牛","虎","兔","龙","蛇","马","羊","猴","鸡","狗","猪"}
Dim i As Integer = 1
Dim x As Integer = 1
Dim y As Integer = 0
Dim result As String
Do While x < 3600
    If CStr(i).Contains("4") = False Then
        If x Mod 30 = 0 Then
            y = y + 1
        End If
        If y > 11 Then
            y = 0
        End If
        If y < 12 Then
            result &= "NO." & Format(i,"00000000") & "-" & sx(y) & vbcrlf
            i = i + 1
        End If
        
    End If
x = x + 1
Loop
FileSys.WriteAllText("c:\test.txt",result,False,Encoding.Default)

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/6/8 16:46:00 [只看该作者]

 不要乱写代码,直接说你的逻辑。

 回到顶部
美女呀,离线,留言给我吧!
youkacard
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:269 积分:1847 威望:0 精华:0 注册:2014/11/9 21:57:00
  发帖心情 Post By:2015/6/8 16:46:00 [只看该作者]

可是放在条件外,到3就断开了,不会继续执行了

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/6/8 16:50:00 [只看该作者]

 直接说你要做什么啊

 回到顶部
美女呀,离线,留言给我吧!
youkacard
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:269 积分:1847 威望:0 精华:0 注册:2014/11/9 21:57:00
  发帖心情 Post By:2015/6/8 16:58:00 [只看该作者]

从NO.0000001开始顺延3600个,包含4跳过,每30个号码就是一个生肖,比方说生肖鼠的号段是NO.0000001-NO.00000033...一次类推,12个剩下分完360个数据后,又开始分配剩下的数据,直到分完3600个数据

 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/6/8 17:12:00 [只看该作者]

Dim sx() As String = {"鼠","牛","虎","兔","龙","蛇","马","羊","猴","鸡","狗","猪"}
Dim result As String = ""
Dim i As Integer = 1
Dim count As Integer = 1
Dim sidx As Integer = 0
Do While i <= 3600
    If CStr(i).Contains("4") = False Then
        result &= "NO." & Format(i,"00000000") & "-" & sx(sidx) & vbcrlf
        If count Mod 30 = 0 Then
            sidx += 1
            If sidx > 11 Then
                sidx = 0
            End If
        End If
        count += 1
    End If
    i = i + 1
Loop
FileSys.WriteAllText("c:\test.txt",result,False,Encoding.Default)

 回到顶部
美女呀,离线,留言给我吧!
youkacard
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:269 积分:1847 威望:0 精华:0 注册:2014/11/9 21:57:00
  发帖心情 Post By:2015/6/8 17:27:00 [只看该作者]

以下是引用大红袍在2015/6/8 17:12:00的发言:
Dim sx() As String = {"鼠","牛","虎","兔","龙","蛇","马","羊","猴","鸡","狗","猪"}
Dim result As String = ""
Dim i As Integer = 1
Dim count As Integer = 1
Dim sidx As Integer = 0
Do While i <= 3600
    If CStr(i).Contains("4") = False Then
        result &= "NO." & Format(i,"00000000") & "-" & sx(sidx) & vbcrlf
        If count Mod 30 = 0 Then
            sidx += 1
            If sidx > 11 Then
                sidx = 0
            End If
        End If
        count += 1
    End If
    i = i + 1
Loop
FileSys.WriteAllText("c:\test.txt",result,False,Encoding.Default)

但是按照这样,生成出来的数据不够3600个,只有2500多


 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/6/8 17:30:00 [只看该作者]

Dim sx() As String = {"鼠","牛","虎","兔","龙","蛇","马","羊","猴","鸡","狗","猪"}
Dim result As String = ""
Dim i As Integer = 1
Dim count As Integer = 1
Dim sidx As Integer = 0
Dim maxcount As Integer = 3600
Do While i <= maxcount
    If CStr(i).Contains("4") = False Then
        result &= "NO." & Format(i,"00000000") & "-" & sx(sidx) & vbcrlf
        If count Mod 30 = 0 Then
            sidx += 1
            If sidx > 11 Then
                sidx = 0
            End If
        End If
        count += 1
    Else
        maxcount += 1
    End If
    i = i + 1
Loop
FileSys.WriteAllText("c:\test.txt",result,False,Encoding.Default)

 回到顶部