VC++ 关于文件合并和读取
VC++6.0的已知一个bmp文件,一个wav文件。我想把它们2个合成一个文件存储在硬盘上,比如说新的文件格式*.bw,有什么解决方法?然后我想把*.bw读取还原成一个b...
VC++ 6.0的
已知一个bmp文件,一个wav文件。我想把它们2个合成一个文件存储在硬盘上,比如说新的文件格式*.bw,有什么解决方法?
然后我想把*.bw读取还原成一个bpm和wav,怎么做?
有哪本书里面详细讲解了么? 展开
已知一个bmp文件,一个wav文件。我想把它们2个合成一个文件存储在硬盘上,比如说新的文件格式*.bw,有什么解决方法?
然后我想把*.bw读取还原成一个bpm和wav,怎么做?
有哪本书里面详细讲解了么? 展开
展开全部
用二进制读写方式:
分别以二进制打开两个文件,然后按一定顺序输出到另一个.bw文件即可。
也可以使用压缩ZIP和加密方式:
可以自己网上所有 VC压缩和解压
有很多源码和说明。
比如这里:http://download.csdn.net/detail/night_legend/1071613
分别以二进制打开两个文件,然后按一定顺序输出到另一个.bw文件即可。
也可以使用压缩ZIP和加密方式:
可以自己网上所有 VC压缩和解压
有很多源码和说明。
比如这里:http://download.csdn.net/detail/night_legend/1071613
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
可以在新文件的头部存放一些文件信息的数据比如这个文件中合并了多少个文件,
每个文件的文件名称,大小,属性,在新文件的中的开始位位置....
然后把要合并的文件,依次写到新文件中
还原时,读取新文件的头部,取出合并文件的信息,再从新文件中读取合并文件的数据,写到另一个文件中.
每个文件的文件名称,大小,属性,在新文件的中的开始位位置....
然后把要合并的文件,依次写到新文件中
还原时,读取新文件的头部,取出合并文件的信息,再从新文件中读取合并文件的数据,写到另一个文件中.
追问
道理我倒是知道,关键是具体的实现怎么弄的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
typedef struct tagNewFileHead
{
DWORD cbSize;
DWORD dwFileCount;//文件数目
DWORD pFileList; //指向
}TNewFileHead;
typdef struct tagFileInfo
{
DWORD cbSize;
char achName[MAX_PATH]; //文件名称
DWORD dwSize;//文件大小
}TFileInfo;
//合并的时候,假如有2个文件,b.avi,a.txt. -->c.bm
1.填充TNewFileHead tNewFileHead;
tNewFileHead.cbSize = sizeof(TNewFileHead );
tNewFileHead.dwFileCount = 2;
tNewFileHead.pFileList = ( sizeof(TNewFileHead ));
FILE * f = fopen("c.bm","wb");
fwirte(&tNewFileHead , 1, tNewFileHead.cbSize, f);
2.文件类表
TFileInfo tFileInfo= {0};
tFileInfo.cbSize = sizeof(tFileInfo);
memcpy(tFileInfo.achName , "a.rmvb" , strlen("a.rmvb"));
tFileInfo.dwSize = //文件的大小,自己查一下怎么得到文件大小
fwirte(&tFileInfo, 1, tFileInfo.cbSize, f);
类似在填充所有的文件信息
3。就是安顺序把所有的文件写到这个文件中
4.读取的时候,写读取头,在读取文件类表,一个一个解析就好了
{
DWORD cbSize;
DWORD dwFileCount;//文件数目
DWORD pFileList; //指向
}TNewFileHead;
typdef struct tagFileInfo
{
DWORD cbSize;
char achName[MAX_PATH]; //文件名称
DWORD dwSize;//文件大小
}TFileInfo;
//合并的时候,假如有2个文件,b.avi,a.txt. -->c.bm
1.填充TNewFileHead tNewFileHead;
tNewFileHead.cbSize = sizeof(TNewFileHead );
tNewFileHead.dwFileCount = 2;
tNewFileHead.pFileList = ( sizeof(TNewFileHead ));
FILE * f = fopen("c.bm","wb");
fwirte(&tNewFileHead , 1, tNewFileHead.cbSize, f);
2.文件类表
TFileInfo tFileInfo= {0};
tFileInfo.cbSize = sizeof(tFileInfo);
memcpy(tFileInfo.achName , "a.rmvb" , strlen("a.rmvb"));
tFileInfo.dwSize = //文件的大小,自己查一下怎么得到文件大小
fwirte(&tFileInfo, 1, tFileInfo.cbSize, f);
类似在填充所有的文件信息
3。就是安顺序把所有的文件写到这个文件中
4.读取的时候,写读取头,在读取文件类表,一个一个解析就好了
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询