如何将三个文件整合成为一个单独的文件?

freebird_china 2000-07-28 04:53:00
各位大虾:
小弟,有一个问题向诸位讨教!
我有三个文件 .mdb .ini .txt 想把这三个文件整合到一个文件中,这个文件就以bak
作为扩展名吧。问如何用vb实现。那如何还原呢?请帮帮小弟!50分

...全文
240 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
lty 2000-07-31
  • 打赏
  • 举报
回复
最简单的方法!
把.mdb中的某表添一个备注字段,然后把.ini和.txt装进去不就完了。
UserReg 2000-07-28
  • 打赏
  • 举报
回复
根据TopHead大虾的观点,俺来为你写程序:
Private Type FileHead
filename As String * 1024
filelength As Long
End Type

Private Sub Command1_Click()
Dim vrSrcFiles(2)
vrSrcFiles(0) = "c:\1.cll"
vrSrcFiles(1) = "c:\a.cll"
vrSrcFiles(2) = "c:\hehe.cll"

MergeFilesToFile "c:\test.dat", vrSrcFiles
End Sub

Private Function MergeFilesToFile(szDestFile As String, vrSrcFiles As Variant) As Boolean
On Error GoTo Err_MergeFilesToFile
If Not IsArray(vrSrcFiles) Then
MergeFilesToFile = False
Exit Function
End If

Dim iFiles As Integer
iFiles = 0
For i = LBound(vrSrcFiles) To UBound(vrSrcFiles)
If Dir(vrSrcFiles(i)) <> "" Then
iFiles = iFiles + 1
End If
Next
If iFiles < 1 Then
MergeFilesToFile = False
Exit Function
End If

Open szDestFile For Binary As #1
Put #1, , iFiles
Dim recFileHead As FileHead
For i = LBound(vrSrcFiles) To UBound(vrSrcFiles)
If Dir(vrSrcFiles(i)) <> "" Then
With recFileHead
.filelength = FileLen(vrSrcFiles(i))
.filename = vrSrcFiles(i)
End With
Put #1, , recFileHead
End If
Next

Dim vrFileBuf() As Byte
For i = LBound(vrSrcFiles) To UBound(vrSrcFiles)
If Dir(vrSrcFiles(i)) <> "" Then
If ReadFileToBuffer(vrSrcFiles(i), vrFileBuf) = True Then
Put #1, , vrFileBuf
End If
End If
Next

Close #1
MergeFilesToFile = True
Err_MergeFilesToFile:
MsgBox Err.Description
MergeFilesToFile = False
End Function

Private Function SplitFileToFiles(szDestFile As String) As Boolean
On Error GoTo Err_SplitFileToFiles
If Dir(szDestFile) = "" Then
SplitFileToFiles = False
Exit Function
End If
Open szDestFile For Binary As #1
Dim iFiles As Integer
Get #1, , iFiles
If iFiles > 0 Then
Dim arrFiles(iFiles) As FileHead
For i = 1 To iFiles
Get #1, , arrFiles(i)
Next

Dim vrFileBuf
For i = 1 To iFiles
ReDim vrFileBuf(arrFiles(i).filelength)
Get #1, , vfFilebuf
SaveBufferToFile arrFiles(i).filename, vrFileBuf
Next
End If
Close #1
SplitFileToFiles = True
Exit Function
Err_SplitFileToFiles:
MsgBox Err.Description
SplitFileToFiles = False
End Function

Private Function ReadFileToBuffer(ByVal szFile As String, vrBuf As Variant) As Boolean
On Error GoTo Err_ReadFileToBuffer
If Dir(szFile) = "" Then
ReadFileToBuffer = False
Exit Function
End If

Dim lLen As Long
lLen = FileLen(szFile)
ReDim vrBuf(lLen)

Open szFile For Binary As #2
Get #2, , vrBuf
Close #2
ReadFileToBuffer = True
Exit Function
Err_ReadFileToBuffer:
ReadFileToBuffer = False
End Function

Private Function SaveBufferToFile(ByVal szFile As String, ByRef vrBuf As Variant) As Boolean
On Error GoTo Err_SaveBufferToFile
SaveBufferToFile = False
If Trim(szFile) = "" Or IsNull(vrBuf) Then
Exit Function
End If
Open szFile For Binary As #2
Put #2, , vrBuf
Close #2
SaveBufferToFile = True
Exit Function
Err_SaveBufferToFile:
SaveBufferToFile = False
End Function

TopHead 2000-07-28
  • 打赏
  • 举报
回复
在合并的时候将原来的文件名、大小等等信息写到新的文件中的开始部分,在还原的时候通过读取这些信息来还原原来的文件,我做过类似的程序,是进行文件切割的,可以将一个大的文件切割成若干个小文件,然后再还原成原来的文件。
Un1 2000-07-28
  • 打赏
  • 举报
回复
用12个字节分别记录各个文件的大小然后读入bt数组在存盘。

7,759

社区成员

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

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