请问如何把几个文本文件合并成一个文件?必要时再恢复原样?

seabird125 2006-02-07 04:37:33
比如 1.txt, 2.txt, 3.txt
合并为4.txt

必要时把4.txt按照原样再拆分为1.txt,2.txt,3.txt


我的思路是这样,先写个文件头,记录下来各文件的长度,写文件时的位置,然后把三个文件顺序写进4.txt里面,拆分的时候先读文件头,然后按文件指针的位置来读数据,恢复原来的文件。
问题是,我一写文件头,剩下的内容写到4.txt里面,中文就成乱码了,为什么?
有什么别的方法吗,急坏我了!!谢谢大侠们!!!
...全文
197 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
rainstormmaster 2006-02-07
  • 打赏
  • 举报
回复
//读数据的时候也是 byte()= inputB(lof(文件号),文件号)

这么读不行,读出来的数据已经被改变了

直接用get获得数据
vansoft 2006-02-07
  • 打赏
  • 举报
回复
啊累?

用壓縮啊,把三個文件壓縮成一個嘛。
還原時就解壓縮。
zyl910 2006-02-07
  • 打赏
  • 举报
回复
文本文件是指只存放文本数据的文件,记事本把你的文件头也认成文本数据了

若不加文件头,那就没办法恢复原样

你改一下你的复合文件的后缀名算了
seabird125 2006-02-07
  • 打赏
  • 举报
回复
我访问文件的时候是用的 byte()啊.还是不行.
用put #文件号,,byte()写到文件里
读数据的时候也是 byte()= inputB(lof(文件号),文件号)

文件的头信息是我自己定义的一个类型
type
firstfilepos as long
firstfilelenth as long
secondfilepos as long
secondfilelenth as long
thirdfilepos as long
thirdfilelenth as long
end type

也没有用string
zyl910 2006-02-07
  • 打赏
  • 举报
回复
VB的String是Unicode格式的,而传统的文本是ANSI+DBCS格式
所以VB在读写外部数据时,对String的数据会进行自动转换,这样的自动转换经常会破坏数据


你访问文件的时候用Byte数组就行了

7,764

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧