[eRun 스크립트 팁] 실시간으로 CSV 파일 만들기
                
                    제이피플㈜                
                                                            
            
                                2023.05.24 10:49
                                586
                0
                                            
        본문
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//
//	함수명: 	PROC_SAVE_DATA()
//	리턴형: 	없음
//	파라메터: 없음
//	호출자:	AUTO_CSV_SAVE() 함수
//	함수설명:	설정된 경로의 CSV 파일에 현재 데이터를 문자열(_FormaString)로 만들고 _LogToFileEx 내부함수를 이용하여 Write를 한다.
//			해당경로의 파일이 존재하지 않으면 파일을 새로 생성하고 헤더를 출력한다.
//			파일에 데이터를 한번씩 Write를 한 후에는 개행문자도 Write한다.
//			파일의 다중접근을 보호하기 위해서 _Lock 내부함수를 이용.
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 
void PROC_SAVE_DATA()
{
	string strLogPath, strHeader, strLog;
	int nRet;
	_Lock(10);
	strLogPath = @CSV.저장경로;
	if(strLogPath == "")
		return;
	nRet = _FileAccess(strLogPath, 0);
	// 파일이 없으면 생성하면서 헤더 출력
        // _LogToFileEx 사용방법은 아래와 같이 2가지가 있습니다.
	if(nRet == -1)
	{
    // 방법 1 
		strHeader = "TIME, DIGITAL_STATUS, ANALOG_DATA_INT, ANALOG__FLAOT_FLOAT, STRING_DATA";
		_LogToFileEx(strLogPath, "%s%c",strHeader, 0x0d);
                // 방법 2
                //_LogToFileEx(strLogPath, "TIME, DIGITAL_STATUS, ANALOG_DATA_INT, ANALOG__FLAOT_FLOAT, STRING_DATA%c", 0x0d);
	} 
	strLog = _FormatString("[%d-%02d-%02d %02d:%02d:%02d], %s, %d, %.3f, %s", 
							@SYSTEM.N_YEAR, @SYSTEM.N_MONTH, @SYSTEM.N_DAY, @SYSTEM.N_HOUR, @SYSTEM.N_MIN, @SYSTEM.N_SEC,
							GET_DI_STATUS(), @CSV.DATA1_ANALOG_INT, @CSV.DATA1_ANALOG_FLOAT, @CSV.DATA3_STRING);
	_LogToFileEx(strLogPath, "%s%c",strLog, 0x0d);
	_Unlock(10); 	 
} 
 
                                                                                                                    
댓글목록 0