セーブとロードの関数

アバター
yamip
記事: 0
登録日時: 14年前

セーブとロードの関数

投稿記事 by yamip » 14年前

CODE:

#include 
#include 

//セーブの関数
int Save_Setup( char *locationname , char *filename , void (*p_save)( FILE *fp ) )
/* ************************************* *
 * locationname ファイルフォルダー名     *
 * filename     ファイル名               *
 * p_save       保存ルールを設定した関数 *
 * ************************************* */
{
	FILE *fp = NULL;
	char p_name[256]={0,};
	/*セーブ用フォルダー作成*/
	if( locationname == NULL ){
		/*なんにもしない*/
	}else if( /*io.h*/_access( locationname , 0 ) == -1 ){
		/*direct.h*/_mkdir( locationname );
	}
	if( locationname == NULL ){
		sprintf_s( p_name , "backup" );
	}else{
		sprintf_s( p_name , "%s/backup" , locationname );
	}
	
	if( /*io.h*/_access( p_name , 0 ) == -1 ){
			/*direct.h*/_mkdir( p_name );
	}
	/*セーブ用データ作成*/
	if( locationname == NULL ){
		sprintf_s( p_name , "%s" , filename );
	}else{
		sprintf_s( p_name , "%s/%s" , locationname , filename );
	}
	if( ( fp = fopen( p_name , "w" ) ) == NULL ){
		 DxLib_End();
	}
	/*保存ルールを設定した関数*/
	p_save( fp );
	fclose( fp );
	return 1;
}

//ロードの関数
int Load_Setup ( char *locationname , char *filename , void (*p_load)( FILE *fp ) )
/* *************************************** *
 * locationname ファイルフォルダー名       *
 * filename     ファイル名                 *
 * p_load       ロードルールを設定した関数 *
 * *************************************** */
{
	FILE *fp = NULL;
	char p_name[256]={0,};
	if( locationname == NULL ){
		sprintf_s( p_name , "%s" , filename );
	}else{
		sprintf_s( p_name , "%s/%s" , locationname , filename );
	}
	if( /*io.h*/_access( p_name , 0 ) == -1 ){
		return -1;
	}
	if( ( fp = fopen( p_name ,"r") ) == NULL ){
		fclose( fp );
		 DxLib_End(); 
	}
	p_load( fp );
	fclose( fp );
	return 1;
}


コメントはまだありません。