/// <summary> /// 从数据库中读取数据 /// </summary> /// <returns></returns> public static bool ReadFromDb() { DataTable dt = null; try { dt = SqlHelper.GetInstance(ConfigProxy.ConnectionString).ExecuteDataTable(ConfigProxy.SelectSQL); } catch (Exception ex) { Console.WriteLine("读取数据库失败" + ex.ToString()); return(false); } try { for (int i = 0; i < dt.Rows.Count; i++) { if (i % 100 == 0) { Console.WriteLine("正在处理第" + i + "数据"); } InputItem item = new InputItem(); item.UserContent = dt.Rows[i][0] == null ? string.Empty : dt.Rows[i][0].ToString().Trim(); item.BizName = dt.Rows[i][1] == null ? string.Empty : dt.Rows[i][1].ToString().Trim(); item.OperaName = dt.Rows[i][2] == null ? string.Empty : dt.Rows[i][2].ToString().Trim(); //短信总数加1 SumCount++; if (item.IsRec) { //短信内容已经识别 RecCount++; continue; } else { //未识别 RefuseCount++; } //保留预处理之前的短信 string temp = item.UserContent; //短信内容预处理 item.UserContent = SMSPreProc.PreProc(item.UserContent); #region 空短信 //空短信 if (string.IsNullOrEmpty(item.UserContent)) { EmptyCount++; EmptyList.Add(temp); continue; } #endregion #region 应该识别而没有识别的短信 //应该识别而没有识别 if (SMSProxy.DicItems.ContainsKey(item.UserContent)) { SMSCount++; //如果已经统计过,数目加1 if (SMSDic.ContainsKey(item.UserContent)) { SMSDic[item.UserContent]++; } else { SMSDic.Add(item.UserContent, 1); } SMSList.Add(temp); continue; } #endregion #region 长短信 int length = ConfigProxy.SMSMaxLen; if (temp.Length > length) { LongSMSCount++; LongSMSList.Add(temp); continue; } #endregion #region 单字短信 if (item.UserContent.Length <= 1) { DanziCount++; //加入预处理之前的短信内容 DanziList.Add(temp); if (DanziDic.ContainsKey(item.UserContent)) { DanziDic[item.UserContent]++; } else { DanziDic.Add(item.UserContent, 1); } continue; } #endregion #region 纯数字短信 if (TextCommonFunctions.IsNumber(item.UserContent)) { PureNumSMSCount++; PureNumList.Add(temp); if (PureNumDic.ContainsKey(item.UserContent)) { PureNumDic[item.UserContent]++; } else { PureNumDic.Add(item.UserContent, 1); } continue; } #endregion #region 完全乱码 if (TextCommonFunctions.IsFullGarbled(item.UserContent)) { FullGarbledCount++; //保留预处理之前的短信 FullGarbledList.Add(temp); if (FullGarbledDic.ContainsKey(item.UserContent)) { FullGarbledDic[item.UserContent]++; } else { FullGarbledDic.Add(item.UserContent, 1); } continue; } #endregion #region 出现在SMSRefuse.txt拒识表中的短信 if (SMSRefuseProxy.DicItems.ContainsKey(item.UserContent)) { SMSRefuseCount++; SMSRefuseList.Add(temp); if (SMSRefuseDic.ContainsKey(item.UserContent)) { SMSRefuseDic[item.UserContent]++; } else { SMSRefuseDic.Add(item.UserContent, 1); } continue; } #endregion #region 出现在Talking.txt中的短信 if (TalkingProxy.DicItems.ContainsKey(item.UserContent)) { SMSTalkingCount++; SMSTalkingList.Add(temp); if (SMSTalkingDic.ContainsKey(item.UserContent)) { SMSTalkingDic[item.UserContent]++; } else { SMSTalkingDic.Add(item.UserContent, 1); } continue; } #endregion #region 其它类型的短信,作为单条处理 OtherCount++; OtherList.Add(temp); if (OtherDic.ContainsKey(item.UserContent)) { OtherDic[item.UserContent]++; } else { OtherDic.Add(item.UserContent, 1); } #endregion } } catch (Exception ex) { Console.WriteLine(ex.ToString()); return(false); } return(true); }
/// <summary> /// 读取Excel数据 /// </summary> /// <returns></returns> public static bool ReadExcel() { Workbook workbook = null; Cells cells = null; try { workbook = new Workbook(); workbook.Open(ConfigProxy.InputFile); cells = workbook.Worksheets[0].Cells; } catch (Exception ex) { Console.WriteLine(ex); return(false); } try { //3列 第1列 用户短信 第二列 业务名 第三 操作名 for (int i = 1; i < cells.Rows.Count; i++) { if (i % 1000 == 0) { Console.WriteLine("正在处理第" + i + "数据"); } InputItem item = new InputItem(); item.UserContent = cells.Rows[i][0].Value == null ? string.Empty : cells.Rows[i][0].Value.ToString().Trim(); item.BizName = cells.Rows[i][1].Value == null ? string.Empty : cells.Rows[i][1].Value.ToString().Trim(); item.OperaName = cells.Rows[i][2].Value == null ? string.Empty : cells.Rows[i][2].Value.ToString().Trim(); //短信总数加1 SumCount++; if (item.IsRec) { //短信内容已经识别 RecCount++; continue; } else { //未识别 RefuseCount++; } //保留预处理之前的短信 string temp = item.UserContent; //短信内容预处理 item.UserContent = SMSPreProc.PreProc(item.UserContent); #region 空短信 //空短信 if (string.IsNullOrEmpty(item.UserContent)) { EmptyCount++; EmptyList.Add(temp); continue; } #endregion #region 应该识别而没有识别的短信 //应该识别而没有识别 if (SMSProxy.DicItems.ContainsKey(item.UserContent)) { SMSCount++; //如果已经统计过,数目加1 if (SMSDic.ContainsKey(item.UserContent)) { SMSDic[item.UserContent]++; } else { SMSDic.Add(item.UserContent, 1); } SMSList.Add(temp); continue; } #endregion #region 长短信 int length = ConfigProxy.SMSMaxLen; if (temp.Length > length) { LongSMSCount++; LongSMSList.Add(temp); continue; } #endregion #region 单字短信 if (item.UserContent.Length <= 1) { DanziCount++; //加入预处理之前的短信内容 DanziList.Add(temp); if (DanziDic.ContainsKey(item.UserContent)) { DanziDic[item.UserContent]++; } else { DanziDic.Add(item.UserContent, 1); } continue; } #endregion #region 纯数字短信 if (TextCommonFunctions.IsNumber(item.UserContent)) { PureNumSMSCount++; PureNumList.Add(temp); if (PureNumDic.ContainsKey(item.UserContent)) { PureNumDic[item.UserContent]++; } else { PureNumDic.Add(item.UserContent, 1); } continue; } #endregion #region 完全乱码 if (TextCommonFunctions.IsFullGarbled(item.UserContent)) { FullGarbledCount++; //保留预处理之前的短信 FullGarbledList.Add(temp); if (FullGarbledDic.ContainsKey(item.UserContent)) { FullGarbledDic[item.UserContent]++; } else { FullGarbledDic.Add(item.UserContent, 1); } continue; } #endregion #region 出现在SMSRefuse.txt拒识表中的短信 if (SMSRefuseProxy.DicItems.ContainsKey(item.UserContent)) { SMSRefuseCount++; SMSRefuseList.Add(temp); if (SMSRefuseDic.ContainsKey(item.UserContent)) { SMSRefuseDic[item.UserContent]++; } else { SMSRefuseDic.Add(item.UserContent, 1); } continue; } #endregion #region 出现在Talking.txt中的短信 if (TalkingProxy.DicItems.ContainsKey(item.UserContent)) { SMSTalkingCount++; SMSTalkingList.Add(temp); if (SMSTalkingDic.ContainsKey(item.UserContent)) { SMSTalkingDic[item.UserContent]++; } else { SMSTalkingDic.Add(item.UserContent, 1); } continue; } #endregion #region 其它类型的短信,作为单条处理 OtherCount++; OtherList.Add(temp); if (OtherDic.ContainsKey(item.UserContent)) { OtherDic[item.UserContent]++; } else { OtherDic.Add(item.UserContent, 1); } #endregion } } catch (Exception ex) { Console.WriteLine(ex); return(false); } return(true); }