标题: [基础] 文件读写(一个奇怪的现象????) [打印本页]
作者: 只爱陌生人 时间: 2006-10-26 15:44 标题: 文件读写(一个奇怪的现象????)
复制内容到剪贴板
代码:
如果把其中的
If basePartLen < 1024 * 5 * 3 Then
miniLoopTime = 0
miniLeft = 0
Else
miniLoopTime = basePartLen \ (1024 * 5)
miniLeft = basePartLen Mod (1024 * 5)
End If
改为
If basePartLen < 1024 * 2 * 3 Then
miniLoopTime = 0
miniLeft = 0
Else
miniLoopTime = basePartLen \ (1024 *2)
miniLeft = basePartLen Mod (1024 * 2)
End If
或者相应地改为(1024*n), 且在后面的redim temp(1024*5) as byte里面作相当地改动,发现:n越大,分割后得到的文件复原后与原文件大小越接近???!!!(我在测试时都是复原后比原文件大)
本来可以只要redim temp(basepartlen) as byte就行,但是不好得到文件读写进度.
我是为了在分割时更准确地知道处理进度的(并用进度条显示出来)。
[ 本帖最后由 只爱陌生人 于 2006-10-26 15:52 编辑 ]
作者: Nothing 时间: 2006-10-26 20:41
这样肯定不行,不要老想关1024,到最后的时候,你必须计算字节数
下面代码供你参考复制内容到剪贴板
代码:
Dim aa() As Byte
Open "c:\1.txt" For Binary As #1
alen = LOF(1)
b = alen Mod 1024
Open "c:\2.txt" For Binary As #2
i = alen
Do While i > 0
If i < 1024 Then
ReDim aa(i)
i = 0
Else
i = i - 1024
ReDim aa(1024)
End If
Get #1, , aa
Put #2, , aa
Loop
Close #2
Close #1
作者: 只爱陌生人 时间: 2006-10-28 10:39 标题: 还真TMD邪了??
在我这台电脑上, 连下面这段代码都运行不正确??!!复制内容到剪贴板
代码:
Private Sub Command1_Click()
Dim temp() As Byte
Open "c:\1.txt" For Binary As #1
ReDim temp(LOF(1)) As Byte
Open "c:\2.txt" For Binary As #2
Get #1, , temp
Put #2, , temp
Close#2
Close #1
Debug.Print "filished......."
end sub
2.txt总比1.txt多出一字节???用其它类型文件也是如此!!!
[ 本帖最后由 只爱陌生人 于 2006-10-28 10:43 编辑 ]
作者: Nothing 时间: 2006-10-28 10:58
这样试试
ReDim temp(LOF(1)-1) As Byte
作者: 只爱陌生人 时间: 2006-10-28 12:25
redim(temp(lof(1)-1) as byte可以是可以,但是
这没道理呀,怎么解释呢???搞不懂!?
作者: Nothing 时间: 2006-10-28 17:38
晕
比如你有1024个字节
redim a(1024) 实际上数组a实际上是有1025个,因为第一个是a(0),最后一个是a(1024)
欢迎光临 编程开发论坛 (http://bbs.lihuasoft.net/) |
Powered by Discuz! 6.0.0 |