private static void GenerateJsonStr(List <CsvGridData> variableNameList, List <CsvGridData> variableTypeList, string[] csvRowData, ref JArray jArray)
    {
        if (csvRowData.Length <= 0 || string.IsNullOrEmpty(csvRowData[0]))
        {
            return;
        }

        Dictionary <string, CsvVariableData> map = GenerateVariableNameToGridDataMap(variableNameList, variableTypeList);
        JObject obj = new JObject();

        jArray.Add(obj);
        foreach (string variableName in map.Keys)
        {
            CsvVariableData variableData = map[variableName];
            object          property     = m_parser.Parse(variableData, csvRowData);
            if (property != null)
            {
                obj.Add(new JProperty(variableData.variableName, property));
            }
        }

//		for (int i = 0; i < variableNameList.Count; i++)
//		{
//			CsvGridData gridData = variableNameList[i];
//			if (gridData.col >= 0 && gridData.col < csvRowData.Length)
//			{
//				object property = m_parser.Parse(variableTypeList[i].content, csvRowData[gridData.col]);
//				obj.Add(new JProperty(variableNameList[i].content, property));
//			}
//		}
    }
Esempio n. 2
0
    public virtual object Parse(CsvVariableData data, string[] rowData)
    {
        switch (data.variableType)
        {
        case INT:
            return(IntParse(data, rowData));

        case STRING:
            return(StringParse(data, rowData));

        case BOOL:
            return(BoolParse(data, rowData));

        case FLOAT:
            return(FloatParse(data, rowData));

        case LONG:
            return(LongParse(data, rowData));

        case LIST_STRING:
            return(ListStringParse(data, rowData));

        case LIST_INT:
            return(ListIntParse(data, rowData));

        case LIST_FLOAT:
            return(ListFloatParse(data, rowData));
        }
        return(null);
    }
Esempio n. 3
0
    private string StringParse(CsvVariableData data, string[] rowData)
    {
        string v = string.Empty;

        if (Check(data, rowData))
        {
            return(rowData[data.cols[0]]);
        }
        return(v);
    }
Esempio n. 4
0
    private int IntParse(CsvVariableData data, string[] rowData)
    {
        int v = 0;

        if (Check(data, rowData))
        {
            if (!int.TryParse(rowData[data.cols[0]], out v))
            {
                DebugError("IntParse", rowData[data.cols[0]]);
            }
        }
        return(v);
    }
Esempio n. 5
0
    private List <string> ListStringParse(CsvVariableData data, string[] rowData)
    {
        List <string> list = new List <string>();

        for (int i = 0; i < data.cols.Count; i++)
        {
            int col = data.cols[i];
            if (!string.IsNullOrEmpty(rowData[col]))
            {
                list.Add(rowData[col]);
            }
        }
        return(list);
    }
Esempio n. 6
0
    private long LongParse(CsvVariableData data, string[] rowData)
    {
        long v = 0;

        if (Check(data, rowData))
        {
            if (!long.TryParse(rowData[data.cols[0]], out v))
            {
                DebugError("LongParse", rowData[data.cols[0]]);
            }
        }

        return(v);
    }
Esempio n. 7
0
    private float FloatParse(CsvVariableData data, string[] rowData)
    {
        float v = 0f;

        if (Check(data, rowData))
        {
            if (!float.TryParse(rowData[data.cols[0]], out v))
            {
                DebugError("FloatParse", rowData[data.cols[0]]);
            }
        }

        return(v);
    }
Esempio n. 8
0
    private bool BoolParse(CsvVariableData data, string[] rowData)
    {
        bool v = true;

        if (Check(data, rowData))
        {
            if (!bool.TryParse(rowData[data.cols[0]], out v))
            {
                DebugError("BoolParse", rowData[data.cols[0]]);
            }
        }

        return(v);
    }
Esempio n. 9
0
    private List <float> ListFloatParse(CsvVariableData data, string[] rowData)
    {
        List <float> list = new List <float>();

        for (int i = 0; i < data.cols.Count; i++)
        {
            int col = data.cols[i];
            if (!string.IsNullOrEmpty(rowData[col]))
            {
                float v = FloatParse(rowData[col]);
                list.Add(v);
            }
        }

        return(list);
    }
Esempio n. 10
0
    private bool Check(CsvVariableData data, string[] rowData)
    {
        bool succss = true;

        for (int i = 0; i < data.cols.Count; i++)
        {
            if (!(data.cols.Count > 0 && data.cols[i] >= 0 && data.cols[i] < rowData.Length &&
                  !string.IsNullOrEmpty(rowData[data.cols[i]])))
            {
                succss = false;
                break;
            }
        }

        return(succss);
    }
    private static string GenerateCsStr(string name, List <CsvGridData> variableTypeList, List <CsvGridData> variableNameList)
    {
        StringBuilder code = new StringBuilder();

        code.AppendLine("/**************************************************************************************************");
        code.AppendLine("                                   自动生成代码  请勿手动修改");
        code.AppendLine("**************************************************************************************************/");
        code.AppendLine();

        //Append using
        code.AppendLine("using System.Collections;");
        code.AppendLine("using System.Collections.Generic;");
        code.AppendLine("using UnityEngine;");
        code.AppendLine();

        //Append config class
        code.AppendLine("[System.Serializable]");
        code.AppendLine(string.Format("public class {0} : ConfigBase", name));
        code.AppendLine("{");
        string className = string.Format("{0}_Data", name);

        code.AppendLine(string.Format("	public List<{0}> _datas = new List<{1}>();", className, className));
        code.AppendLine("}");
        code.AppendLine();

        //Append config data class
        code.AppendLine("[System.Serializable]");
        code.AppendLine(string.Format("public class {0}_Data : ConfigData", name));
        code.AppendLine("{");
        Dictionary <string, CsvVariableData> map = GenerateVariableNameToGridDataMap(variableNameList, variableTypeList);

        foreach (string variableName in map.Keys)
        {
            CsvVariableData data     = map[variableName];
            string          type     = m_parser.ParseVariableType(data.variableType);
            string          varName  = data.variableName;
            string          variable = string.Format("	public {0} {1};", type, varName);
            code.AppendLine(variable);
        }
        code.AppendLine("}");

        return(code.ToString());
    }
    private static Dictionary <string, CsvVariableData> GenerateVariableNameToGridDataMap(List <CsvGridData> variableNameList,
                                                                                          List <CsvGridData> variableTypeList)
    {
        Dictionary <string, CsvVariableData> map = new Dictionary <string, CsvVariableData>();

        for (int i = 0; i < variableNameList.Count; i++)
        {
            CsvGridData variableNameData = variableNameList[i];
            CsvGridData variableTypeData = variableTypeList[i];
            if (!map.ContainsKey(variableNameData.content))
            {
                CsvVariableData data = new CsvVariableData(variableNameData.content, variableTypeData.content);
                data.PushCol(variableNameData.col);
                map.Add(variableNameData.content, data);
            }
            else
            {
                CsvVariableData data = map[variableNameData.content];
                data.PushCol(variableNameData.col);
            }
        }

        return(map);
    }