⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rpg_fileunpack.cpp

📁 游戏文件打包程序,支持200个文件,在我的程序中已经广泛应用
💻 CPP
字号:
#include <stdio.h>
#include <windows.h>

char bytes;
FILE*fp1;
FILE*fp2;
char fn[256];
char fn2[256];
char fn3[256];
char path[256];
char fn4[256];

void RemoveFileNamePath(const char *pFullName, char *pFileName)
{
	const char *pChar = strrchr(pFullName,'\\');
	if(pChar)
		strcpy(pFileName, ++pChar);
	else
		strcpy(pFileName,pFullName);
}

void main(int args,char*argv[]){
	if(args==3){
	strcpy(fn,argv[1]);
	strcpy(path,argv[2]);
	}else{
	printf("输入包文件名:");
	scanf("%s",fn);
	printf("输入存储路径:");
	scanf("%s",path);
	}
	fp1=fopen(fn,"rb");
	int i=0;
	int adds,adds2;

	do{
		fseek(fp1,i*320,0);
		fscanf(fp1,"%d",&adds);
		printf("\n当前第%d个文件,地址%d",i,adds);

		fseek(fp1,i*320+64,0);
		fread(fn2,256,1,fp1);
		fseek(fp1,(i+1)*320,0);
		fscanf(fp1,"%d",&adds2);

		RemoveFileNamePath(fn2,fn3);
		if(fn3[0]==0){
			break;
		}
		sprintf(fn4,"%s%s",path,fn3);
		fp2=fopen(fn4,"wb");
		
		printf("\n文件大小%d,名称:%s",adds2-adds,fn3);
		fseek(fp1,adds,0);
		for(int i=0;i<adds2-adds;i++){
			fread(&bytes,1,1,fp1);
			fwrite(&bytes,1,1,fp2);
		}

		printf("\n成功存储该文件到:%s",fn4);

		fclose(fp2);
		i++;
	}while(!feof(fp1)&&(fn3[0]!=0));
	fclose(fp1);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -