반응형
cvs로 로그를 저장하는 방법은 여러가지가 있으며, FileStream과 StreamWriter를 이용하여 만들어 보겠습니다.
1. 먼저 파일을 만들어 줍니다.
저의 경우 통신이 시작될 때 로그 기록을 위해 파일을 생성하였습니다.
파일생성은 FileStream으로 해줍니다.
1
2
3
4
|
FileStream fs1;
leftFile = "./Log/left_" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".csv";
fs1 = System.IO.File.Create(leftFile);
fs1.Close();
|
cs |
Line 2 : 생성할 파일명을 만들어 줍니다.(저는 현재날짜와 시간이 들어가도록 하였으며, csv파일로 만들도록 하였습니다.
Line 3 : 실제로 파일을 생성합니다.
2. 만들어진 파일에 헤더부분을 만들어 줍니다.
열 별로 어떤항목인지 알 수 있도록 헤더부분을 만들어 줍니다.
파일 내부에 작성은 StreamWriter를 이용합니다.
1
2
3
4
|
StreamWriter streamWriter1;
streamWriter1 = new StreamWriter(leftFile);
streamWriter1.WriteLine("No,Voltage(V), Current(A), State, Time(s), DateTime");
streamWriter1.Close();
|
cs |
Line 3 : CSV파일을 쉼표로 구분하여, 항목순서, 전압, 전류, 상태, 시간, 현재시간 등을 기록하도록 하였습니다.
Line 4 : 쓸 때마다 close를 하여, 중간에 로깅이 중단되더라도 파일이 깨지지 않도록 하였습니다.
3. logging을 합니다.
이제 실제 데이터를 받을 때마다 데이터를 파일에 저장합니다.
1
2
3
|
streamWriter1 = System.IO.File.AppendText(leftFile);
streamWriter1.WriteLine(++no1 + "," + this.lVolText.Text + "," + this.lCurText.Text + "," + this.lState.Text + "," + ((double)timeCnt1) / 100 + "," + DateTime.Now.ToString("yyyy-MM-d HH:m:ss:fff"));
streamWriter1.Close();
|
cs |
Line 1 : AppendText를 사용하여, 앞에 적은 내용의 다음행부터 쓰도록 합니다.
Line 2: 실제 데이터를 쉼표로 구분하여 csv 파일로 저장해 줍니다.
실행 모습입니다.
포트를 열면 즉시 파일 로깅을 시작합니다.
로깅데이터도 잘 저장이 된 것을 확인할 수 있습니다.
반응형
'Study > C#(Window programming)' 카테고리의 다른 글
폴더 만들기 (0) | 2023.12.14 |
---|---|
PCAN USB 데이터 가져와서 뿌리기 예제 (3) | 2021.10.27 |
PCAN USB 연결/해제 하기 (1) | 2021.09.02 |
c# RichTextBox 텍스트 라인 유지(FIFO방식) (0) | 2020.08.20 |
text 창 text 다양한 color 나오게 하기 (0) | 2020.08.15 |