diff --git a/Assets/2_Codes/CSVReader.cs b/Assets/2_Codes/CSVReader.cs new file mode 100644 index 00000000..a00db7cd --- /dev/null +++ b/Assets/2_Codes/CSVReader.cs @@ -0,0 +1,90 @@ +using UnityEngine; +using System.Collections.Generic; +using System.IO; + +public static class CSVReader +{ + public static Dictionary> Read(string filePath) + { + Dictionary> dict = new Dictionary>(); + TextAsset textData = Resources.Load("CSV/" + filePath); + + using (StringReader reader = new StringReader(textData.text)) + { + string[] headers = reader.ReadLine().Split(','); + reader.ReadLine(); // Skip the second line with column descriptions + + int rowIndex = 0; + string line; + while ((line = reader.ReadLine()) != null) + { + string[] values = line.Split(','); + Dictionary entry = new Dictionary(); + + for (int i = 0; i < headers.Length; i++) + { + string key = headers[i]; + string prefix = key.Substring(0, 2); + + if (values.Length > i) + { + string value = values[i]; + + switch (prefix) + { + case "n_": + entry.Add(key, int.Parse(value)); + break; + case "l_": + entry.Add(key, System.Numerics.BigInteger.Parse(value)); + break; + case "f_": + entry.Add(key, float.Parse(value)); + break; + case "s_": + case "e_": + entry.Add(key, value); + break; + case "b_": + entry.Add(key, value == "1" ? true : false); + break; + default: + entry.Add(key, value); + break; + } + } + else + { + switch (prefix) + { + case "n_": + entry.Add(key, 0); + break; + case "l_": + entry.Add(key, System.Numerics.BigInteger.Zero); + break; + case "f_": + entry.Add(key, 0.0f); + break; + case "s_": + case "e_": + entry.Add(key, ""); + break; + case "b_": + entry.Add(key, false); + break; + default: + entry.Add(key, ""); + break; + } + } + } + + dict.Add(rowIndex, entry); + rowIndex++; + } + } + + return dict; + } +} diff --git a/Assets/2_Codes/CSVReader.cs.meta b/Assets/2_Codes/CSVReader.cs.meta new file mode 100644 index 00000000..49291b04 --- /dev/null +++ b/Assets/2_Codes/CSVReader.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 5ad5e21c7776cd94aa69632a4ea49e37 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: