| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1784 人关注过本帖
标题:如何打包多个png,jpg,mp4之类的文件变成一个dat或者arc文件
只看楼主 加入收藏
seahdiao
Rank: 1
来 自:马来西亚
等 级:新手上路
帖 子:21
专家分:0
注 册:2020-3-19
结帖率:100%
收藏
已结贴  问题点数:19 回复次数:4 
如何打包多个png,jpg,mp4之类的文件变成一个dat或者arc文件
如题,上网找的都是要用到linux的库, windows的找了很久都找不到。如果可以的话请大佬写个简单的程序来让我研究研究。感觉大佬。
搜索更多相关主题的帖子: 文件 打包 png jpg dat 
2020-10-17 12:41
seahdiao
Rank: 1
来 自:马来西亚
等 级:新手上路
帖 子:21
专家分:0
注 册:2020-3-19
收藏
得分:0 
上网找了找很像是把文件一binary方式读入,再全部写进去同一个文件。下面是我自己想的方法

程序代码:
    char i;
    FILE* pic=fopen("pic.jpg", "rb"); 
    FILE* pic2= fopen("pic2.jpg", "rb");
    FILE* target = fopen("pakage.dat", "ab");

while (fread(&i, sizeof(char), 1, pic)) {
        i += 2;
        fwrite(&i, sizeof(char), 1, target);

    }
    
    while (fread(&i, sizeof(char), 1, pic2)) {
        i += 2;
        fwrite(&i, sizeof(char), 1, target);

    }



但是这个方法在拆包时候遇到了点问题,无法知道文件大小来拆,下面是我已知文件大小所以才用for loop硬编码进去的

程序代码:
    for (int i = 0; i < 118934; i++) {
        fread(&x, sizeof(char), 1, target);
        x -= 2;
        fwrite(&x, sizeof(char), 1, pic);
    }

    for (int i = 0; i < 117097; i++) {
        fread(&x, sizeof(char), 1, target);
        x -= 2;
        fwrite(&x, sizeof(char), 1, pic2);
    }


请问还有什么更好的解决方法吗?或者如果我的思路错了请告知,感谢大佬
2020-10-19 14:09
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9025
专家分:54030
注 册:2011-1-18
收藏
得分:10 
看不懂你想干什么?

变成一个dat或者arc文件
那dat格式是什么,arc格式是什么?
从二楼的代码来看,又没区分什么是dat格式,什么是arc格式。那你为什么要说 dat格式 和 arc格式?
2020-10-19 15:48
seahdiao
Rank: 1
来 自:马来西亚
等 级:新手上路
帖 子:21
专家分:0
注 册:2020-3-19
收藏
得分:0 
回复 3楼 rjsp
就想学习拆包游戏文件,所以想从打包文件开始学起
2020-10-19 15:52
吹水佬
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:451
帖 子:10607
专家分:43186
注 册:2014-5-20
收藏
得分:10 
网上有不少相关资料,搜搜“打包文件程序” 看看,基本的就是加个包头块(存放文件信息)
2020-10-19 15:55
快速回复:如何打包多个png,jpg,mp4之类的文件变成一个dat或者arc文件
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.028351 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved