Beispiel #1
0
static
void inter_storage_save_sub(struct storage *data, FILE *fp)
{
    FString line = storage_tostr(data);
    if (line)
        FPRINTF(fp, "%s\n", line);
}
Beispiel #2
0
//---------------------------------------------------------
// 倉庫データを書き込む
int inter_storage_save()
{
	struct DBIterator* iter;
	DBKey key;
	struct storage_data* data;
	FILE *fp;
	int lock;
	if( (fp=lock_fopen(storage_txt,&lock))==NULL ){
		ShowError("int_storage: can't write [%s] !!! data is lost !!!\n",storage_txt);
		return 1;
	}

	iter = storage_db->iterator(storage_db);
	for( data = (struct storage_data*)iter->first(iter,&key); iter->exists(iter); data = (struct storage_data*)iter->next(iter,&key) )
	{
		int account_id = key.i;
		char line[65536];
		storage_tostr(line,account_id,data);
		fprintf(fp,"%s\n",line);
 	}
	iter->destroy(iter);

	lock_fclose(fp,storage_txt,&lock);
	return 0;
}
int inter_storage_save_sub(DBKey key,void *data,va_list ap)
{
	char line[65536];
	FILE *fp;
	storage_tostr(line,(struct storage *)data);
	fp=va_arg(ap,FILE *);
	if(*line)
		fprintf(fp,"%s" RETCODE,line);
	return 0;
}
Beispiel #4
0
/*==========================================
 * 倉庫データの同期
 *------------------------------------------
 */
static int storagedb_txt_sync_sub(void *key, void *data, va_list ap)
{
	char line[65536];
	FILE *fp;

	storage_tostr(line, (struct storage *)data);
	fp = va_arg(ap, FILE *);
	if(*line)
		fprintf(fp, "%s" NEWLINE, line);

	return 0;
}
//---------------------------------------------------------
// 倉庫データを書き込む
int inter_storage_save()
{
	char line[65536];
	int i;
	FILE *fp;

	fp=fopen(storage_txt,"w");
	if(fp==NULL)
		return 0;
	for(i=0;i<storage_num;i++){
		storage_tostr(line,&storage[i]);
		if(line[0])
			fprintf(fp,"%s" RETCODE,line);
	}
	fclose(fp);
	
	return 0;
}