diff options
Diffstat (limited to 'marching/Assets/ThirdParty/CSV-Parser/CSV Parser/src')
6 files changed, 0 insertions, 247 deletions
diff --git a/marching/Assets/ThirdParty/CSV-Parser/CSV Parser/src/CSVParser.cs b/marching/Assets/ThirdParty/CSV-Parser/CSV Parser/src/CSVParser.cs deleted file mode 100644 index c886c19..0000000 --- a/marching/Assets/ThirdParty/CSV-Parser/CSV Parser/src/CSVParser.cs +++ /dev/null @@ -1,181 +0,0 @@ -/* - * CSV Parser for C#. - * - * These codes are licensed under CC0. - * https://github.com/yutokun/CSV-Parser - */ - -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.IO; -using System.Text; -using System.Text.RegularExpressions; -using System.Threading.Tasks; - -namespace yutokun -{ - public static class CSVParser - { - /// <summary> - /// Load CSV data from specified path. - /// </summary> - /// <param name="path">CSV file path.</param> - /// <param name="delimiter">Delimiter.</param> - /// <param name="encoding">Type of text encoding. (default UTF-8)</param> - /// <returns>Nested list that CSV parsed.</returns> - public static List<List<string>> LoadFromPath(string path, Delimiter delimiter = Delimiter.Auto, Encoding encoding = null) - { - encoding = encoding ?? Encoding.UTF8; - - if (delimiter == Delimiter.Auto) - { - delimiter = EstimateDelimiter(path); - } - - var data = File.ReadAllText(path, encoding); - return Parse(data, delimiter); - } - - /// <summary> - /// Load CSV data asynchronously from specified path. - /// </summary> - /// <param name="path">CSV file path.</param> - /// <param name="delimiter">Delimiter.</param> - /// <param name="encoding">Type of text encoding. (default UTF-8)</param> - /// <returns>Nested list that CSV parsed.</returns> - public static async Task<List<List<string>>> LoadFromPathAsync(string path, Delimiter delimiter = Delimiter.Auto, Encoding encoding = null) - { - encoding = encoding ?? Encoding.UTF8; - - if (delimiter == Delimiter.Auto) - { - delimiter = EstimateDelimiter(path); - } - - using (var reader = new StreamReader(path, encoding)) - { - var data = await reader.ReadToEndAsync(); - return Parse(data, delimiter); - } - } - - static Delimiter EstimateDelimiter(string path) - { - var extension = Path.GetExtension(path); - if (extension.Equals(".csv", StringComparison.OrdinalIgnoreCase)) - { - return Delimiter.Comma; - } - - if (extension.Equals(".tsv", StringComparison.OrdinalIgnoreCase)) - { - return Delimiter.Tab; - } - - throw new Exception($"Delimiter estimation failed. Unknown Extension: {extension}"); - } - - /// <summary> - /// Load CSV data from string. - /// </summary> - /// <param name="data">CSV string</param> - /// <param name="delimiter">Delimiter.</param> - /// <returns>Nested list that CSV parsed.</returns> - public static List<List<string>> LoadFromString(string data, Delimiter delimiter = Delimiter.Comma) - { - if (delimiter == Delimiter.Auto) throw new InvalidEnumArgumentException("Delimiter estimation from string is not supported."); - return Parse(data, delimiter); - } - - static List<List<string>> Parse(string data, Delimiter delimiter) - { - ConvertToCrlf(ref data); - - var sheet = new List<List<string>>(); - var row = new List<string>(); - var cell = new StringBuilder(); - var insideQuoteCell = false; - var start = 0; - - var delimiterSpan = delimiter.ToChar().ToString().AsSpan(); - var crlfSpan = "\r\n".AsSpan(); - var oneDoubleQuotSpan = "\"".AsSpan(); - var twoDoubleQuotSpan = "\"\"".AsSpan(); - - while (start < data.Length) - { - var length = start <= data.Length - 2 ? 2 : 1; - var span = data.AsSpan(start, length); - - if (span.StartsWith(delimiterSpan)) - { - if (insideQuoteCell) - { - cell.Append(delimiter.ToChar()); - } - else - { - AddCell(row, cell); - } - - start += 1; - } - else if (span.StartsWith(crlfSpan)) - { - if (insideQuoteCell) - { - cell.Append("\r\n"); - } - else - { - AddCell(row, cell); - AddRow(sheet, ref row); - } - - start += 2; - } - else if (span.StartsWith(twoDoubleQuotSpan)) - { - cell.Append("\""); - start += 2; - } - else if (span.StartsWith(oneDoubleQuotSpan)) - { - insideQuoteCell = !insideQuoteCell; - start += 1; - } - else - { - cell.Append(span[0]); - start += 1; - } - } - - if (row.Count > 0 || cell.Length > 0) - { - AddCell(row, cell); - AddRow(sheet, ref row); - } - - return sheet; - } - - static void AddCell(List<string> row, StringBuilder cell) - { - row.Add(cell.ToString()); - cell.Length = 0; // Old C#. - } - - static void AddRow(List<List<string>> sheet, ref List<string> row) - { - sheet.Add(row); - row = new List<string>(); - } - - static void ConvertToCrlf(ref string data) - { - data = Regex.Replace(data, @"\r\n|\r|\n", "\r\n"); - } - } -} diff --git a/marching/Assets/ThirdParty/CSV-Parser/CSV Parser/src/CSVParser.cs.meta b/marching/Assets/ThirdParty/CSV-Parser/CSV Parser/src/CSVParser.cs.meta deleted file mode 100644 index fb3cd58..0000000 --- a/marching/Assets/ThirdParty/CSV-Parser/CSV Parser/src/CSVParser.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 1dcf43e5bd8e0204580fc6899a086b00 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/marching/Assets/ThirdParty/CSV-Parser/CSV Parser/src/Delimiter.cs b/marching/Assets/ThirdParty/CSV-Parser/CSV Parser/src/Delimiter.cs deleted file mode 100644 index b32dcc3..0000000 --- a/marching/Assets/ThirdParty/CSV-Parser/CSV Parser/src/Delimiter.cs +++ /dev/null @@ -1,9 +0,0 @@ -namespace yutokun -{ - public enum Delimiter - { - Auto, - Comma, - Tab - } -} diff --git a/marching/Assets/ThirdParty/CSV-Parser/CSV Parser/src/Delimiter.cs.meta b/marching/Assets/ThirdParty/CSV-Parser/CSV Parser/src/Delimiter.cs.meta deleted file mode 100644 index 8f7cf00..0000000 --- a/marching/Assets/ThirdParty/CSV-Parser/CSV Parser/src/Delimiter.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: e0e2bb27fdbb714468ca87aeaf607331 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/marching/Assets/ThirdParty/CSV-Parser/CSV Parser/src/DelimiterExtensions.cs b/marching/Assets/ThirdParty/CSV-Parser/CSV Parser/src/DelimiterExtensions.cs deleted file mode 100644 index a38371d..0000000 --- a/marching/Assets/ThirdParty/CSV-Parser/CSV Parser/src/DelimiterExtensions.cs +++ /dev/null @@ -1,24 +0,0 @@ -using System; -using System.ComponentModel; - -namespace yutokun -{ - public static class DelimiterExtensions - { - public static char ToChar(this Delimiter delimiter) - { - // C# 7.3: Unity 2018.2 - 2020.1 Compatible - switch (delimiter) - { - case Delimiter.Auto: - throw new InvalidEnumArgumentException("Could not return char of Delimiter.Auto."); - case Delimiter.Comma: - return ','; - case Delimiter.Tab: - return '\t'; - default: - throw new ArgumentOutOfRangeException(nameof(delimiter), delimiter, null); - } - } - } -} diff --git a/marching/Assets/ThirdParty/CSV-Parser/CSV Parser/src/DelimiterExtensions.cs.meta b/marching/Assets/ThirdParty/CSV-Parser/CSV Parser/src/DelimiterExtensions.cs.meta deleted file mode 100644 index d98b86d..0000000 --- a/marching/Assets/ThirdParty/CSV-Parser/CSV Parser/src/DelimiterExtensions.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 7b9ab5b183dd311459e9893fe735bea6 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: |