| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 785 人关注过本帖
标题:文件太大出现问题,求解决
只看楼主 加入收藏
ouyangouyang
Rank: 7Rank: 7Rank: 7
等 级:黑侠
帖 子:273
专家分:579
注 册:2009-10-8
结帖率:96%
收藏
已结贴  问题点数:0 回复次数:14 
文件太大出现问题,求解决
我是这样的打开一个txt文件进行读写操作,我试过打开一个小文件还可以,但是大文件出现问题了,说明一下我的这个txt文件有6M,求解决
搜索更多相关主题的帖子: 文件 
2011-08-12 09:52
ouyangouyang
Rank: 7Rank: 7Rank: 7
等 级:黑侠
帖 子:273
专家分:579
注 册:2009-10-8
收藏
得分:0 
这是代码,看看喔
Private Sub Command1_Click()
Dim c, s As String
Dim i, j, a As Integer
Dim x As Boolean
Open "C:\Documents and Settings\Administrator\桌面\1.txt" For Input As #1
Do While Not EOF(1)
Line Input #1, c
If (Mid(c, 1, 1) = "卷" Or Mid(c, 1, 1) = "第") Then
x = True
i = 0
For j = 2 To Len(c)
If (Mid(c, j, 1) = "零") Then
i = i + 0
ElseIf (Mid(c, j, 1) = "0") Then
i = i * 10
ElseIf (Mid(c, j, 1) = "一" Or Mid(c, j, 1) = "1") Then
i = i + 1
ElseIf (Mid(c, j, 1) = "二" Or Mid(c, j, 1) = "2") Then
i = i + 2
ElseIf (Mid(c, j, 1) = "三" Or Mid(c, j, 1) = "3") Then
i = i + 3
ElseIf (Mid(c, j, 1) = "四" Or Mid(c, j, 1) = "4") Then
i = i + 4
ElseIf (Mid(c, j, 1) = "五" Or Mid(c, j, 1) = "5") Then
i = i + 5
ElseIf (Mid(c, j, 1) = "六" Or Mid(c, j, 1) = "6") Then
i = i + 6
ElseIf (Mid(c, j, 1) = "七" Or Mid(c, j, 1) = "7") Then
i = i + 7
ElseIf (Mid(c, j, 1) = "八" Or Mid(c, j, 1) = "8") Then
i = i + 8
ElseIf (Mid(c, j, 1) = "九" Or Mid(c, j, 1) = "9") Then
i = i + 9
ElseIf (Mid(c, j, 1) = "十") Then
i = i * 10
ElseIf (Mid(c, j, 1) = "百") Then
i = i * 10
ElseIf (Mid(c, j, 1) = "卷") Then
i = i
Else: x = False
End If
Next j
End If
Open "d:\" & Str(i) & ".txt" For Append As #2
Print #2, c
Close #2
Loop
Close #1
If x = True Then
End If
End Sub

多少恨, 昨夜梦魂中。 还似旧时游上苑, 车如流水马如龙; 花月正春风!
2011-08-12 09:53
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4947
专家分:30084
注 册:2008-10-15
收藏
得分:4 
没看懂你要干什么,只是觉得这段代码没什么问题,但执行起来效率有点问题。

If (Mid(c, j, 1) = "零") Then
i = i + 0
ElseIf (Mid(c, j, 1) = "0") Then
i = i * 10
ElseIf (Mid(c, j, 1) = "一" Or Mid(c, j, 1) = "1") Then
i = i + 1
ElseIf (Mid(c, j, 1) = "二" Or Mid(c, j, 1) = "2") Then
i = i + 2
ElseIf (Mid(c, j, 1) = "三" Or Mid(c, j, 1) = "3") Then
i = i + 3
ElseIf (Mid(c, j, 1) = "四" Or Mid(c, j, 1) = "4") Then
i = i + 4
ElseIf (Mid(c, j, 1) = "五" Or Mid(c, j, 1) = "5") Then
i = i + 5
ElseIf (Mid(c, j, 1) = "六" Or Mid(c, j, 1) = "6") Then
i = i + 6
ElseIf (Mid(c, j, 1) = "七" Or Mid(c, j, 1) = "7") Then
i = i + 7
ElseIf (Mid(c, j, 1) = "八" Or Mid(c, j, 1) = "8") Then
i = i + 8
ElseIf (Mid(c, j, 1) = "九" Or Mid(c, j, 1) = "9") Then
i = i + 9
ElseIf (Mid(c, j, 1) = "十") Then
i = i * 10
ElseIf (Mid(c, j, 1) = "百") Then
i = i * 10
ElseIf (Mid(c, j, 1) = "卷") Then
i = i
Else: x = False
End If

这一堆代码改成:
前面再定义一个变量:
dim cd as string 


程序代码:
cd = Mid(c, j, 1)
Select Case cd
Case "", ""
    i = i + 0
Case "0", "", ""
    i = i * 10
Case "", "1"
    i = i + 1
Case "", "2"
    i = i + 2
Case "", "3"
    i = i + 3
Case "", "4"
    i = i + 4
Case "", "5"
    i = i + 5
Case "", "6"
    i = i + 6
Case "", "7"
    i = i + 7
Case "", "8"
    i = i + 8
Case "", "9"
    i = i + 9
Case Else
    x = False
End Select

授人于鱼,不如授人于渔
早已停用QQ了
2011-08-12 10:59
ouyangouyang
Rank: 7Rank: 7Rank: 7
等 级:黑侠
帖 子:273
专家分:579
注 册:2009-10-8
收藏
得分:0 
这还不是一样,if改成case,没有解决问题喔

多少恨, 昨夜梦魂中。 还似旧时游上苑, 车如流水马如龙; 花月正春风!
2011-08-12 11:11
zhuyongxing
Rank: 6Rank: 6
等 级:侠之大者
威 望:1
帖 子:234
专家分:482
注 册:2009-8-5
收藏
得分:4 
先把记录定义成数组。然后在处理数组估计就快不少
2011-08-12 12:15
zhuyongxing
Rank: 6Rank: 6
等 级:侠之大者
威 望:1
帖 子:234
专家分:482
注 册:2009-8-5
收藏
得分:0 
回复 楼主 ouyangouyang
把文件发我看看QQ308749442
2011-08-12 12:16
ouyangouyang
Rank: 7Rank: 7Rank: 7
等 级:黑侠
帖 子:273
专家分:579
注 册:2009-10-8
收藏
得分:0 
我的意思是这样的,我想看《资治通鉴》文件太大在MP4上不好看,我就想把文件分成一卷一卷的看,因为在每卷的开头都有一行“第XXX卷”的字样,我就编写一个程序分成一卷一卷的并且生成XXX.txt文件,我在一个小的文件试过还可以,但是在6M大的文件就不可以了,工程文件就是添加一个按钮就可以了

多少恨, 昨夜梦魂中。 还似旧时游上苑, 车如流水马如龙; 花月正春风!
2011-08-12 12:42
zhuyongxing
Rank: 6Rank: 6
等 级:侠之大者
威 望:1
帖 子:234
专家分:482
注 册:2009-8-5
收藏
得分:0 
看这个人的态度【这还不是一样,if改成case,没有解决问题喔 】 这样的人不值得大家去帮。他说他说管理阶层人物。和拿工资的不是一个层次的。
2011-08-12 16:31
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4947
专家分:30084
注 册:2008-10-15
收藏
得分:0 
你现在是 这个大文件出现什么状况? 运行过慢?程序死掉?
还是 生成的结果不对。你总要说出错误的种类来吧。要我们猜迷?

我说把 if 改成 case ,也只是针对你程序里的运行效率来说,又没说可以修改这个问题。

授人于鱼,不如授人于渔
早已停用QQ了
2011-08-12 16:58
bczgvip
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:66
帖 子:1310
专家分:5312
注 册:2009-2-26
收藏
得分:4 
呃,用正则吧。标题有规律的话就行。
2011-08-12 18:50
快速回复:文件太大出现问题,求解决
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.028633 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved