#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main()
{
	int result = 1;
	int fileno, location;
	long i = 0;
	long num;
	unsigned long cnt = 0;

	char buffer1[101+1];
	char *buffer2;
	char fnm[7]; 

	char sdata1[10+1];
	char sdata2[1+1];
	unsigned long uldata1;
	char result0[2] = "0";
	char result1[2] = "1";

	FILE *fp1 = NULL;
	FILE *fp2 = NULL;


	int j = 0;

	for(j = 1; j <= 4; j++)
	{
        	//fp1 = fopen("/app_data/satcs/aliase_mst/mst_test", "r");//PL 마스터 파일 읽기
		//fp1 = fopen("/app_data/satcs/aliase_mst/aliase_mst01", "r");//PL 마스터 파일 읽기


		printf("/app_data/satcs/aliase_mst/aliase_mst%.02d 교통카드 PL 마스터 적용시작\n", j);
		sprintf(fnm,"/app_data/satcs/aliase_mst/aliase_mst%.02d", j); 
		fp1 = fopen(fnm, "r");
		if(fp1 == NULL)
		{
			printf("f1 file error\n");
			return 0;	
		}
	

		while(1)
		{
			fgets(buffer1, sizeof(buffer1), fp1);
			if(feof(fp1)) break;

			sprintf(sdata1, "%.10s", buffer1+9);
			sprintf(sdata2, "%.1s", buffer1+89);

			uldata1 = atol(sdata1);

			//printf("uldata1 : %ld,  ", uldata1);
			//printf("sdata2 : %s \n", sdata2);
		
			num = uldata1;

			fileno = num/100000000; 
			location = num%100000000;

			if( location == 0)
			{
				fileno--;
				location = 100000000;
			}

			sprintf(fnm, "/app_data/satcs/BASEINFO/PLBASE/PLMST%.03d", fileno);
			//printf("filename : %s\n", fnm);
			//printf("location : %ld\n", location);

			fp2 = fopen(fnm, "r+");
			if(fp2 == NULL)
			{
				printf("PLMST file(%s)open error!\n", fnm);
				return 0;
			}
		
			buffer2 = (char *)malloc(sizeof(char));
	
			fseek(fp2, location-1, SEEK_SET);
		

			//printf("파일명 : %s, 파일위치 : %d\n\n", fnm, location);
		
			if( !strcmp(sdata2, "1") )
			{
				fprintf(fp2, result1);
				cnt++;
			}
			else if( !strcmp(sdata2, "0") )
			{
				fprintf(fp2, result0);
				cnt++;
			}
			else
			{
				printf("교통카드 PL 마스터 형식 오류");
				continue;
			}


			if(cnt % 1000000 == 0)
			{
				printf("교통카드 PL 마스터 %ld건 처리 완료\n", cnt);		
			}
			fclose(fp2);

		}
		printf("/app_data/satcs/aliase_mst/aliase_mst%.02d 교통카드 PL 마스터 %ld건 적용완료\n", j, cnt);
		cnt = 0;

		fclose(fp1);
	}


	printf("교통카드 PL 마스터 전체 처리 완료!\n");
	return 0;
}
