/************************************************************************
*									*
*		敵の名前変更ルーチン（ＦＯＲ　ツール）			*
*									*
************************************************************************/

#include <stdio.h>

#define unchar	unsigned char
#define unshort unsigned short

#define ON	1
#define OFF	0

FILE *fpd,*fpr,*fpw;

void	en_name_chg();

char		in_file[30];
char		out_file[30];

char		chg_before[7];
char		chg_after[7];
int		end_code = 0;

void main()
{
	/****** データ入力 ******/
	printf("変換前の名前を入力してください\t\t\t");
	fgets(chg_before, sizeof(chg_before), stdin);
	printf("変換後の名前を入力してください\t\t\t");
	fgets(chg_after, sizeof(chg_after), stdin);
	chg_before[strlen(chg_before)-1] = '\0';
	chg_after[strlen(chg_after)-1]   = '\0';

	/****** 変換ファイルネームファイルＯＰＥＮ ******/
	fpd = popen("ls -F *.end2","r");
	while (fgets(in_file, 256, fpd) != NULL){
		printf("変換するファイル名\t\t%s", in_file);
		in_file[strlen(in_file)-1]       = '\0';

		strcpy( out_file, in_file );
		out_file[strlen(out_file)-1]    = '\0';

		/****** 変換前ファイルＯＰＥＮ ******/
		if( !( fpr = fopen( in_file,"r" ) ) ){
			printf( "can't open (%s) !!\n", in_file );
			exit(1);
		}

		/****** 変換後ファイルＯＰＥＮ ******/
		if( !(fpw = fopen( out_file,"w" )) ){
			printf( "can't open (%s) !!\n", out_file );
			exit(1);
		}

		/****** 敵の名前変換 ******/
		en_name_chg();

		/****** ファイルＣＬＯＳＥ ******/
		fclose( fpr );
		fclose( fpw );

	}

	/****** ファイルＣＬＯＳＥ ******/
	fclose( fpd );
}

/****************************************************************
*	敵の名前変換						*
****************************************************************/
void en_name_chg()
{

	/****** 変数宣言 ******/
	char	read_buf[256];
	char	check_data[256];
	int	end_flag = 0;
	int	i,j,chg_sum;

	/****** 敵の名前テーブル作成 ******/
	if( fgets( read_buf, 3, fpr ) == NULL ){
		printf( "あっか〜ん！\n" );
		exit(1);
	}
	for( i=0; i<2; i++ ){
		if( fputc( read_buf[i], fpw ) == EOF ){
			printf( "敵の名前テーブルファイル書き込みエラー！！\n" );
			exit(1);
		}
	}
	chg_sum = 0;
	do {
		if( fgets( read_buf, 8, fpr ) == NULL ){
			printf( "%d 個変換\t\tおわり！\n",chg_sum );
			end_flag = 1;
		}
		else{
			strcpy( check_data, read_buf );
			check_data[5] = '\0';
			if( strcmp( check_data, chg_before ) == 0 ){
				for( i=0;i<5;i++ ){
					read_buf[i] = chg_after[i];
				}
				chg_sum = chg_sum+1;
			}
			for( i=0; i<7; i++ ){
				if( fputc( read_buf[i], fpw ) == EOF ){
					printf( "敵の名前テーブルファイル書き込みエラー！！\n" );
					exit(1);
				}
			}
		}
	} while( end_flag == 0 );
}
