/// <summary> /// 从文本段填充数据集参数 /// </summary> /// <param name="keyValues">文本段字典</param> /// <param name="parameter">需要完善的参数</param> protected virtual void FillParameterFromTextSegment(Dictionary <string, string> keyValues, FCSFileParameter parameter) { if (keyValues == null) { throw new Exception("Text segment is null,can't analyse and fill parameter"); } if (parameter == null) { throw new Exception("FCS parameter is null,can't edit"); } if (keyValues.ContainsKey(Keys.BeginAnalysisKey) && long.TryParse(keyValues[Keys.BeginAnalysisKey], out long beginAnalysis)) { parameter.AnalysisBegin = beginAnalysis; } if (keyValues.ContainsKey(Keys.EndAnalysisKey) && long.TryParse(keyValues[Keys.EndAnalysisKey], out long endAnalysis)) { parameter.AnalysisEnd = endAnalysis; } if (keyValues.ContainsKey(Keys.BeginDataKey) && long.TryParse(keyValues[Keys.BeginDataKey], out long beginData)) { parameter.DataBegin = beginData; } if (keyValues.ContainsKey(Keys.EndDataKey) && long.TryParse(keyValues[Keys.EndDataKey], out long endData)) { parameter.DataEnd = endData; } if (keyValues.ContainsKey(Keys.BeginSTextKey) && long.TryParse(keyValues[Keys.BeginSTextKey], out long beginSText)) { parameter.STextBegin = beginSText; } if (keyValues.ContainsKey(Keys.EndSTextKey) && long.TryParse(keyValues[Keys.EndSTextKey], out long endSText)) { parameter.STextEnd = endSText; } if (keyValues.ContainsKey(Keys.ByteOrdKey)) { parameter.ByteOrd = ByteOrderConvert.ConvertToEnum(keyValues[Keys.ByteOrdKey]); } if (keyValues.ContainsKey(Keys.DataTypeKey)) { parameter.DataType = DataTypeConvert.ConvertToEnum(keyValues[Keys.DataTypeKey]); } if (keyValues.ContainsKey(Keys.NextDataKey) && long.TryParse(keyValues[Keys.NextDataKey], out long nextData)) { parameter.NextData = nextData; } if (keyValues.ContainsKey(Keys.PARKey) && uint.TryParse(keyValues[Keys.PARKey], out uint par)) { parameter.PAR = par; } if (keyValues.ContainsKey(Keys.TOTKey) && uint.TryParse(keyValues[Keys.TOTKey], out uint tot)) { parameter.TOT = tot; } }
/// <summary> /// 从文本段填充数据集参数 /// </summary> /// <param name="keyValues">文本段字典</param> /// <param name="parameter">需要完善的参数</param> protected override void FillParameterFromTextSegment(Dictionary <string, string> keyValues, FCSFileParameter parameter) { base.FillParameterFromTextSegment(keyValues, parameter); if (keyValues.ContainsKey(Keys.ModeKey) && ModeConvert.ConvertToEnum(keyValues[Keys.ModeKey]) != Mode.L) { throw new Exception("Can't analyse,mode must be L"); } if (keyValues.ContainsKey(Keys.ByteOrdKey) && ByteOrderConvert.ConvertToEnum(keyValues[Keys.ByteOrdKey]) == ByteOrd.Unknown) { throw new Exception("Can't analyse,byteord not supported"); } if (keyValues.ContainsKey(Keys.UnicodeKey) && !"UTF-8".Equals(keyValues[Keys.UnicodeKey].ToUpper()) && !"UTF8".Equals(keyValues[Keys.UnicodeKey].ToUpper())) { throw new Exception("Can't analyse,unicode must be utf-8"); } }