Exemple #1
0
        public static CsvData GetValidCsvData(string csvText, GlobalCCSettings gSettings)
        {
            var csvAsList = CsvParser.ReadAsList(csvText);

            CsvData csvData = new CsvData();

            csvData.SetFromList(csvAsList);

            // END マーカーが有効な場合は END 以下を無視するようにする.
            if (gSettings.isEndMarkerEnabled)
            {
                int    endMarkerIndex = gSettings.columnIndexOfEndMarker;
                string marker         = gSettings.endMarker;

                if (endMarkerIndex < 0 || csvData.col <= endMarkerIndex)
                {
                    throw new Exception("無効な columnIndexOfEndMarker です: " + endMarkerIndex);
                }

                for (int i = 0; i < csvData.row; i++)
                {
                    if (csvData.Get(i, endMarkerIndex).Trim() == marker)
                    {
                        csvData = csvData.Slice(0, i);
                        break;
                    }
                }
            }

            // 無効な列を除外する
            csvData = csvData.SliceColumn(gSettings.columnIndexOfTableStart);

            return(csvData);
        }
Exemple #2
0
        private string createAssetName(int rowIndex)
        {
            string fileName = "";

            // キーがある場合は、キーの値をアセット名に含める.
            if (keyIndexes.Length > 0)
            {
                fileName = setting.className;
                for (int j = 0; j < keyIndexes.Length; j++)
                {
                    int keyIndex = keyIndexes[j];
                    fileName += "_" + content.Get(rowIndex, keyIndex).Trim();
                }

                fileName += ".asset";
            }
            else
            {
                fileName = setting.className + rowIndex + ".asset";
            }

            return(fileName);
        }
Exemple #3
0
        public static Field[] GetFieldsFromHeader(CsvData grid)
        {
            var fields = new Field[grid.col];

            for (int i = 0; i < fields.Length; i++)
            {
                fields[i] = new Field();
            }

            // get field names;
            for (int col = 0; col < grid.col; col++)
            {
                string fieldName = grid.Get(0, col);
                fieldName = fieldName.Trim();

                if (fieldName == string.Empty)
                {
                    fields[col].isValid = false;
                    continue;
                }

                fields[col].fieldName = fieldName;
            }

            // set field types;
            for (int col = 0; col < grid.col; col++)
            {
                if (!fields[col].isValid)
                {
                    continue;
                }
                fields[col].typeName = fields[col].fieldName;
            }

            return(fields);
        }
Exemple #4
0
        public static string Generate(string name, CsvData header, CsvData contents)
        {
            Field[] fields = GetFieldsFromHeader(header);

            string classData = "";

            classData += "public enum " + name + "\n";
            classData += "{\n";

            for (int i = 0; i < contents.row; i++)
            {
                int line = i + 2;

#if VERBOSE
                Debug.Log("line:" + line);
#endif

                string eid       = "";
                int    value     = -1;
                bool   isOkEid   = false;
                bool   isOkValue = false;

                for (int j = 0; j < contents.col; j++)
                {
                    Field f = fields[j];
                    if (!f.isValid)
                    {
                        continue;
                    }

                    if (f.fieldName == ID_NAME)
                    {
                        isOkEid = true;
                        eid     = contents.Get(i, j).Trim();
                    }
                    else if (f.fieldName == VALUE_NAME)
                    {
                        isOkValue = true;
                        string vs = contents.Get(i, j).Trim();

                        if (!int.TryParse(vs, out value))
                        {
                            Debug.LogWarningFormat("{0} line {1}: int に変換出来ない値です: \"{2}\"", name, line, vs);
                            isOkValue = false;
                            continue;
                        }
                    }
                }

                if (!isOkEid || !isOkValue)
                {
                    continue;
                }

                classData += string.Format(FIELD_FORMAT, eid, value);
            }

            classData += "}";

            return(classData);
        }
Exemple #5
0
        public static Field[] GetFieldsFromHeader(CsvData csv, GlobalCCSettings gSettings)
        {
            CsvData nameHeaders = csv.Slice(gSettings.rowIndexOfName, gSettings.rowIndexOfName + 1);
            CsvData typeHeaders = csv.Slice(gSettings.rowIndexOfType, gSettings.rowIndexOfType + 1);

            var fields = new Field[csv.col];

            for (int i = 0; i < fields.Length; i++)
            {
                fields[i] = new Field();
            }

            // enabled check
            if (gSettings.rowIndexOfEnabledColumn != -1)
            {
                CsvData enabledHeaders =
                    csv.Slice(gSettings.rowIndexOfEnabledColumn, gSettings.rowIndexOfEnabledColumn + 1);

                for (int col = 0; col < csv.col; col++)
                {
                    string enabledCell = enabledHeaders.Get(0, col);

                    if (!GetEnabledColumn(enabledCell))
                    {
                        fields[col].isValid = false;
                    }
                }
            }

            // get field names;
            for (int col = 0; col < csv.col; col++)
            {
                string fieldName = nameHeaders.Get(0, col);

                fieldName = fieldName.Trim();

                if (fieldName == string.Empty)
                {
                    fields[col].isValid = false;
                    continue;
                }

                fields[col].fieldName = fieldName;
            }

            // set field types;
            for (int col = 0; col < csv.col; col++)
            {
                if (!fields[col].isValid)
                {
                    continue;
                }

                string typeName = typeHeaders.Get(0, col).Trim();

                if (typeName == string.Empty)
                {
                    fields[col].isValid = false;
                    continue;
                }

                fields[col].typeName = typeName;
            }

            return(fields);
        }