Notice
Recent Posts
Recent Comments
Link
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

게임 프로그래밍

[C#] CSV 파일 저장하기 본문

프로그래밍/C#

[C#] CSV 파일 저장하기

Junwe 2020. 2. 19. 16:34

우선 CSV 파일이 먼지 알아보자. 

간단하게 말해서 , 로 구분 되는 데이터이다. 

XML, JSON 등 여러 데이터 저장 포맷이 있는데 csv를 쓰는 이유는 간단하기 때문일것이다.

하지만 간단하기 때문에 문제도 조금 있다. 일단 데이터 오염에 취약하다. 데이터를 그저 ,로 구분 하기 때문이다.

그리고 데이터에 ,를 넣기가 난감하다.

 

일단 알아볼것은 C#으로 csv파일을 어떻게 만들수 있느냐 이다. 사실 엄청 간단하다.

 

1
2
3
4
5
6
7
8
9
10
using (StreamWriter wr = new StreamWriter("path"))
        {
            wr.WriteLine("#TYPE,MoveSpeed");
 
            foreach (var data in datalist)
            {
                wr.WriteLine("{0},{1}",data.data1,data.data2);
            }
        }
http://colorscripter.com/info#e" target="_blank" style="color:#e5e5e5text-decoration:none">Colored by Color Scripter
http://colorscripter.com/info#e" target="_blank" style="text-decoration:none;color:white">cs

처음 값은 데이터 필드로 써주면 될것이다. 그리고 가져올때 필드 값인지 확인하기 위해 나는 데이터 앞에 #을 넣어줬다.

 

이런식으로 저장이 될것이다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
 FileInfo fileInfo = new FileInfo("path");
 
        if (!fileInfo.Exists)// 파일이 있는지 체크
        {
            log("File이 없습니다.")
        }
 
        using (FileStream fs = new FileStream("path"))
        {
            using (StreamReader sr = new StreamReader(fs, Encoding.UTF8, false))
            {
                string strLineValue = null;    // 한번씩 읽어올 문자열
                string[] values = null;        // 문자열을 나눔
                while ((strLineValue = sr.ReadLine()) != null)
                {
                    values = strLineValue.Split(',');    // ,로 Split을해 데이터를 나눈다.
                    if (values[0].Contains("#"))        // #이 있을 경우에는 데이터 필드
                        continue;
 
                    foreach (var data in datalist)
                    {
                        data.data1 = values[0];
                        data.data2 = values[1];
                    }
                }
            }
        }
http://colorscripter.com/info#e" target="_blank" style="color:#e5e5e5text-decoration:none">Colored by Color Scripter
http://colorscripter.com/info#e" target="_blank" style="text-decoration:none;color:white">cs

불러 올때는 이렇게 ,로 Split를 해줘서 하니씩 가져오면 된다. 

'프로그래밍 > C#' 카테고리의 다른 글

[C#] is, as에 대해서  (0) 2020.03.01
[C#] params 가변인자  (0) 2020.03.01
[c#] BinaryFormatter  (0) 2020.01.14
C# &&연산자 팁  (0) 2016.04.25
c# 문자열 합치기  (0) 2015.09.27
Comments