public static List <string> ExtractNodeByPrefix(DBC_Row node, string prefix) { if (node == null || !node.HasFields) { return(null); } return(node.SelectFieldsByPrefix(prefix)); }
public static string[] ExtractStringArray(DBC_Row node, string nodeName, string[] defaultVal) { List <string> list = ExtractStringList(node, nodeName, defaultVal); if (null != list) { return(list.ToArray()); } else { return(null); } }
public static T[] ExtractNumericArray <T>(DBC_Row node, string nodeName, T[] defaultVal) { List <T> list = ExtractNumericList <T>(node, nodeName, defaultVal); if (null != list) { return(list.ToArray()); } else { return(null); } }
public static string ExtractString(DBC_Row node, string nodeName, string defaultVal) { string result = defaultVal; if (node == null || !node.HasFields || node.SelectFieldByName(nodeName) == null) { return(result); } string nodeText = node.SelectFieldByName(nodeName); if (!String.IsNullOrEmpty(nodeText)) { result = nodeText; } return(result); }
public static List <T> ExtractNumericList <T>(DBC_Row node, string nodeName, T defaultVal, bool isMust) { List <T> result = new List <T>(); if (node == null || !node.HasFields || node.SelectFieldByName(nodeName) == null) { return(result); } string nodeText = node.SelectFieldByName(nodeName); if (!String.IsNullOrEmpty(nodeText)) { result = Converter.ConvertNumericList <T>(nodeText); } return(result); }
/** * @brief 返回文本,根据行、列号 * * @param rowIndex * @param colIndex * * @return */ public string GetField(int rowIndex, int colIndex) { if (rowIndex < 0 || rowIndex >= m_RowNum || colIndex < 0 || colIndex >= m_ColumNum) { return(""); } DBC_Row dbRow = GetRowByIndex(rowIndex); if (dbRow != null) { return(dbRow.SelectFieldByIndex(colIndex)); } return(""); }
public bool CollectDataFromDBC(string file) { long t1 = TimeUtility.Instance.GetElapsedTimeUs(); bool result = true; DBC document = new DBC(); document.Load(HomePath.Instance.GetAbsolutePath(file)); long t2 = TimeUtility.Instance.GetElapsedTimeUs(); long t3 = TimeUtility.Instance.GetElapsedTimeUs(); for (int index = 0; index < document.RowNum; index++) { try { DBC_Row node = document.GetRowByIndex(index); if (node != null) { TData data = new TData(); bool ret = data.CollectDataFromDBC(node); if (ret && !m_DataContainer.ContainsKey(data.GetId())) { m_DataContainer.Add(data.GetId(), data); } else { string info = string.Format("DataTempalteMgr.CollectDataFromDBC collectData Row:{0} failed!", index); LogUtil.Error(info); LogUtil.CallStack(); result = false; } } } catch (System.Exception ex) { LogUtil.Error("CollectData failed. file:{0} rowIndex:{1}\nException:{2}\n{3}", file, index, ex.Message, ex.StackTrace); } } long t4 = TimeUtility.Instance.GetElapsedTimeUs(); //LogUtil.Info("text load {0} parse {1}, file {2}", t2 - t1, t4 - t3, file); return(result); }
public static List <string> ExtractStringList(DBC_Row node, string nodeName, string[] defaultVal) { List <string> result = new List <string>(); if (node == null || !node.HasFields) { return(result); } string nodeText = node.SelectFieldByName(nodeName); if (!String.IsNullOrEmpty(nodeText)) { result = Converter.ConvertStringList(nodeText); } else if (null != defaultVal) { result.AddRange(defaultVal); } return(result); }
public static bool ExtractBool(DBC_Row node, string nodeName, bool defaultVal) { bool result = defaultVal; if (node == null || !node.HasFields || node.SelectFieldByName(nodeName) == null) { return(result); } string nodeText = node.SelectFieldByName(nodeName); if (!String.IsNullOrEmpty(nodeText)) { if (nodeText.Trim().ToLower() == "true" || nodeText.Trim().ToLower() == "1") { result = true; } if (nodeText.Trim().ToLower() == "false" || nodeText.Trim().ToLower() == "0") { result = false; } } return(result); }
public static T ExtractNumeric <T>(DBC_Row node, string nodeName, T defaultVal) { T result = defaultVal; if (node == null || !node.HasFields || node.SelectFieldByName(nodeName) == null) { return(result); } string nodeText = node.SelectFieldByName(nodeName); if (!String.IsNullOrEmpty(nodeText)) { try { result = (T)Convert.ChangeType(nodeText, typeof(T)); } catch (System.Exception ex) { LogUtil.Error("ExtractNumeric {0} {1} Exception:{2}/{3}", nodeName, nodeText, ex.Message, ex.StackTrace); throw; } } return(result); }
/** * @brief 从文本文件流中读取 * * @param sr * * @return */ private bool LoadFromStream_Text(StreamReader sr) { //-------------------------------------------------------------- //临时变量 List <string> vRet = null; string strLine = ""; //读第一行,标题行 strLine = sr.ReadLine(); //读取失败,即认为读取结束 if (strLine == null) { return(false); } vRet = ConvertStringList(strLine, new string[] { "\t" }); if (vRet == null || vRet.Count == 0) { return(false); } m_Header = vRet; // 读第二行,类型行 strLine = sr.ReadLine(); // 读取失败,即认为读取结束 if (strLine == null) { return(false); } vRet = ConvertStringList(strLine, new string[] { "\t" }); if (vRet == null || vRet.Count == 0) { return(false); } m_Types = vRet; //-------------------------------------------------------------- //初始化 int nRecordsNum = 0; int nFieldsNum = vRet.Count; //-------------------------------------------------------------- //开始读取 DBC_Row dbcRow = null; do { vRet = null; dbcRow = null; //读取一行 strLine = sr.ReadLine(); //读取失败,即认为读取结束 if (strLine == null) { break; } //是否是注释行 if (strLine.StartsWith("#")) { continue; } //分解 vRet = ConvertStringList(strLine, new string[] { "\t" }); //列数不对 if (vRet.Count == 0) { continue; } if (vRet.Count != nFieldsNum) { //补上空格 if (vRet.Count < nFieldsNum) { int nSubNum = nFieldsNum - vRet.Count; for (int i = 0; i < nSubNum; i++) { vRet.Add(""); } } } //第一列不能为空 if (string.IsNullOrEmpty(vRet[0])) { continue; } dbcRow = new DBC_Row(this, nRecordsNum); dbcRow.Data = vRet; m_DataBuf.Add(dbcRow); nRecordsNum++; } while (true); //-------------------------------------------------------- //生成正式数据库 m_ColumNum = nFieldsNum; m_RowNum = nRecordsNum; //-------------------------------------------------------- //创建索引 CreateIndex(); return(true); }
public static T ExtractNumeric <T>(DBC_Row node, string nodeName, T defaultVal, bool isMust) { return(ExtractNumeric <T>(node, nodeName, defaultVal)); }
public static bool ExtractBool(DBC_Row node, string nodeName, bool defaultVal, bool isMust) { return(ExtractBool(node, nodeName, defaultVal)); }
public static string ExtractString(DBC_Row node, string nodeName, string defaultVal, bool isMust) { return(ExtractString(node, nodeName, defaultVal)); }