Dim FileNo As Integer
FileNo = FreeFile
ResFile = LoadResData(101, "CUSTOM")
Open "C:\x.dll" For Binary As FileNo
Put FileNo , , ResFile
Close FileNo
这样写应该没问题吧?
在向写入 C 盘 x.dll的时候,如果已经存在 x.dll,且 x.dll的文件比 资源文件 里的 大
那么 写入后,x.dll 会出现多余部分···
例如 C盘下存在1个 x.dll 有 123456 字节,如果我写入的是 123450 字节,那么,文件还是123456字节,
会多出6个字节···
难道Open写入的时候,不是全新重新文件的??
只能先删除原来,再重新写入?
5 个解决方案
#1
Open "C:\x.dll" For Binary As FileNo
你这句缺省是复写,你试试写成这样:
Open "C:\x.dll" For Binary access write As FileNo
你这句缺省是复写,你试试写成这样:
Open "C:\x.dll" For Binary access write As FileNo
#2
测试后一样,简单的写个 输出文本内容测试下,应该不是我写得不对,可能本来就是这样
Open "C:\x.txt" For Binary Access Write As #1
Put #1, , "112233"
Close #1
如果c盘下已经有存在 x.txt,内容为 123456789
那么写入 112233后,文本内容是 112233789
写的时候是替换掉原来的,多余的则保留···
Open "C:\x.txt" For Binary Access Write As #1
Put #1, , "112233"
Close #1
如果c盘下已经有存在 x.txt,内容为 123456789
那么写入 112233后,文本内容是 112233789
写的时候是替换掉原来的,多余的则保留···
#3
你这是追加,不是复盖。
先删除了原文件,再写
先删除了原文件,再写
#4
不是追加,是替换····追加会保留原来全部
只能先删除原文件吗?
只能先删除原文件吗?
#5
二进制方式始终是在原文件上进行修改写入,要新建写先用 kill 进行删除。
#1
Open "C:\x.dll" For Binary As FileNo
你这句缺省是复写,你试试写成这样:
Open "C:\x.dll" For Binary access write As FileNo
你这句缺省是复写,你试试写成这样:
Open "C:\x.dll" For Binary access write As FileNo
#2
测试后一样,简单的写个 输出文本内容测试下,应该不是我写得不对,可能本来就是这样
Open "C:\x.txt" For Binary Access Write As #1
Put #1, , "112233"
Close #1
如果c盘下已经有存在 x.txt,内容为 123456789
那么写入 112233后,文本内容是 112233789
写的时候是替换掉原来的,多余的则保留···
Open "C:\x.txt" For Binary Access Write As #1
Put #1, , "112233"
Close #1
如果c盘下已经有存在 x.txt,内容为 123456789
那么写入 112233后,文本内容是 112233789
写的时候是替换掉原来的,多余的则保留···
#3
你这是追加,不是复盖。
先删除了原文件,再写
先删除了原文件,再写
#4
不是追加,是替换····追加会保留原来全部
只能先删除原文件吗?
只能先删除原文件吗?
#5
二进制方式始终是在原文件上进行修改写入,要新建写先用 kill 进行删除。