unity - CSV File Read, CSV 파일 읽기 (Android possible)


1. Excel Write


2. Save another


3. Save&Setting File form And File name


4. Open to txt





5. Save another


6. Set Str EnCoding - UTF-8


7. Inport to unity





8. Setting Unity And Show




class TestCSV
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
32
33
34
35
36
37
38
39
40
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
 
public class TestCSV : MonoBehaviour
{
 
    public string m_strCSVFileName = string.Empty;
 
    class TempData
    {
        public int index;
        public string testString;
        public int testInt;
        public float testFloat;
    }
 
    List<TempData> m_tempData = new List<TempData>();
 
    // Start is called before the first frame update
    void Start()
    {
        List<Dictionary<stringobject>> m_dictionaryData = CSVReader.Read(m_strCSVFileName);
 
        for (int i = 0; i < m_dictionaryData.Count; i++)
        {
            m_tempData.Add(new TempData());
 
            m_tempData[i].index = int.Parse((m_dictionaryData[i]["Index"].ToString()));
            m_tempData[i].testString = m_dictionaryData[i]["TestString"].ToString();
            m_tempData[i].testInt = int.Parse(m_dictionaryData[i]["TestInt"].ToString());
            m_tempData[i].testFloat = float.Parse(m_dictionaryData[i]["TestFloat"].ToString());
        }
 
        for(int i =0; i< m_tempData.Count; i++)
        {
            Debug.Log("Index : "+m_tempData[i].index + ", TestString : " + m_tempData[i].testString + ", TestInt : " + m_tempData[i].testInt + ", TestFloat : " + m_tempData[i].testFloat);
        }
    }
}
cs

class CSVReader
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
using UnityEngine;
using System.Collections.Generic;
using System.Text.RegularExpressions;
 
public class CSVReader
{
    public static string SPLIT_RE = @",(?=(?:[^""]*""[^""]*"")*(?![^""]*""))";
    public static string LINE_SPLIT_RE = @"\r\n|\n\r|\n|\r";
    public static char[] TRIM_CHARS = { '\"' };
 
    public static List<Dictionary<stringobject>> Read(string file)
    {
        var list = new List<Dictionary<stringobject>>();
        TextAsset data = Resources.Load(file) as TextAsset;
 
        var lines = Regex.Split(data.text, LINE_SPLIT_RE);
 
        if (lines.Length <= 1return list;
        
        var header = Regex.Split(lines[0], SPLIT_RE);
        for (var i = 1; i < lines.Length; i++)
        {
 
            var values = Regex.Split(lines[i], SPLIT_RE);
            if (values.Length == 0 || values[0== ""continue;
 
            var entry = new Dictionary<stringobject>();
            for (var j = 0; j < header.Length && j < values.Length; j++)
            {
                string value = values[j];
                value = value.TrimStart(TRIM_CHARS).TrimEnd(TRIM_CHARS).Replace("\\""");
                object finalvalue = value;
                int n;
                float f;
                if (int.TryParse(value, out n))
                {
                    finalvalue = n;
                }
                else if (float.TryParse(value, out f))
                {
                    finalvalue = f;
                }
                entry[header[j]] = finalvalue;
            }
            list.Add(entry);
        }
        return list;
    }
}
cs



댓글

댓글 쓰기