private void GetTxtDataAndWriteCit(string txtPath, string citPath, List <ChannelNew> channelList) { CitFileHelper citHelper = new CitFileHelper(); int[] bnyChannelArr = channelList.Where(s => s.BNYChannelId >= 0).Select(s => s.BNYChannelId).ToArray(); int sampleNum = 50000; long startPosition = 1; long endPosition = sampleNum; long lineCount = common.GetTextLineCount(txtTxtPath.Text); int pageCount = 0; double realPageCount = lineCount * 1.0 / (sampleNum); pageCount = (int)realPageCount; List <float[]> txtDataList = new List <float[]>(); List <float[]> resultList = new List <float[]>(); float[] fvalue = new float[sampleNum]; for (int i = 0; i < pageCount; i++) { txtDataList = common.GetTxtData(txtPath, startPosition, endPosition); long temp = endPosition; endPosition = endPosition + sampleNum; startPosition = temp + 1; resultList.Clear(); for (int j = 0; j < channelList.Count; j++) { if (channelList[j].BNYChannelId >= 0) { if (channelList[j].BNYChannelId == 0) { if (channelList[j].dataChannelInfo.sNameEn == "KM") { fvalue = txtDataList[channelList[j].BNYChannelId].Select(p => ((float)(int)p)).ToArray(); } else if (channelList[j].dataChannelInfo.sNameEn == "M") { var kmValues = txtDataList[channelList[j].BNYChannelId]; float[] fvalueNew = new float[sampleNum]; for (int k = 0; k < kmValues.Length; k++) { if (k == 20861) { } string[] strValues = kmValues[k].ToString("F3").Split('.'); if (strValues.Length == 1) { fvalueNew[k] = 0; } else { fvalueNew[k] = Convert.ToSingle(strValues[1]); } } fvalue = fvalueNew; } else { float aa1 = txtDataList[channelList[j].BNYChannelId][20860]; float aa2 = txtDataList[channelList[j].BNYChannelId][20861]; float aa3 = txtDataList[channelList[j].BNYChannelId][20862]; fvalue = txtDataList[channelList[j].BNYChannelId]; } } else { float aa1 = txtDataList[channelList[j].BNYChannelId][20860]; float aa2 = txtDataList[channelList[j].BNYChannelId][20861]; float aa3 = txtDataList[channelList[j].BNYChannelId][20862]; fvalue = txtDataList[channelList[j].BNYChannelId]; } } else { fvalue = new float[txtDataList[0].Length]; } resultList.Add(fvalue); } citHelper.WriteChannelDataFloat(citPath, resultList); //if (tokenSource.IsCancellationRequested) //{ // throw new OperationCanceledException(); //} } if (realPageCount % ((int)realPageCount) > 0) { startPosition = pageCount * sampleNum + 1; endPosition = lineCount; txtDataList = common.GetTxtData(txtPath, startPosition, endPosition); resultList.Clear(); for (int j = 0; j < channelList.Count; j++) { if (channelList[j].BNYChannelId >= 0) { if (channelList[j].BNYChannelId == 0) { if (channelList[j].dataChannelInfo.sNameEn == "KM") { fvalue = txtDataList[channelList[j].BNYChannelId].Select(p => ((float)(int)p)).ToArray(); } else if (channelList[j].dataChannelInfo.sNameEn == "M") { //fvalue = txtDataList[channelList[j].BNYChannelId].Select(p => (p - (int)p) * 1000).ToArray(); var kmValues = txtDataList[channelList[j].BNYChannelId]; float[] fvalueNew = new float[sampleNum]; for (int k = 0; k < kmValues.Length; k++) { string[] strValues = kmValues[k].ToString("F3").Split('.'); if (strValues.Length == 1) { fvalueNew[k] = 0; } else { fvalueNew[k] = Convert.ToSingle(strValues[1]); } } fvalue = fvalueNew; } else { fvalue = txtDataList[channelList[j].BNYChannelId]; } } else { fvalue = txtDataList[channelList[j].BNYChannelId]; } } else { fvalue = new float[txtDataList[0].Length]; } resultList.Add(fvalue); } citHelper.WriteChannelDataFloat(citPath, resultList); } }
/// <summary> /// 获取BNY数据并向cit文件中写入数据 /// </summary> /// <param name="channelList"></param> private void GetBnyDataAndWriteCit(string citPath, string bnyPath, List <ChannelNew> channelList) { CitFileHelper citHelper = new CitFileHelper(); int[] bnyChannelArr = channelList.Where(s => s.BNYChannelId >= 0).Select(s => s.BNYChannelId).ToArray(); int sampleNum = 50000; long startPosition = 0; long endPosition = 0; long bnyFileLength = common.GetBNYLastPosition(bnyPath); int pageCount = 0; double realPageCount = bnyFileLength * 1.0 / (sampleNum * BNYFile.GetChannelSize()); if (realPageCount % ((int)realPageCount) > 0) { pageCount = ((int)realPageCount) + 1; } else { pageCount = (int)realPageCount; } List <float[]> bnyList = new List <float[]>(); List <float[]> resultList = new List <float[]>(); float[] fvalue = new float[sampleNum]; for (int i = 0; i < pageCount; i++) { bnyList = common.GetBNYData(bnyPath, sampleNum, startPosition, ref endPosition); startPosition = endPosition; resultList.Clear(); for (int j = 0; j < channelList.Count; j++) { if (channelList[j].BNYChannelId >= 0) { if (bnyList[channelList[j].BNYChannelId].Length < sampleNum) { fvalue = new float[bnyList[channelList[j].BNYChannelId].Length]; if (channelList[j].BNYChannelId == 2) { if (channelList[j].dataChannelInfo.sNameEn == "KM") { fvalue = bnyList[channelList[j].BNYChannelId].Select(p => ((float)(int)p)).ToArray(); } else if (channelList[j].dataChannelInfo.sNameEn == "M") { fvalue = bnyList[channelList[j].BNYChannelId].Select(p => (p - (int)p) * 1000).ToArray(); } else { fvalue = bnyList[channelList[j].BNYChannelId]; } } else { fvalue = bnyList[channelList[j].BNYChannelId]; } } else { if (channelList[j].BNYChannelId == 2) { if (channelList[j].dataChannelInfo.sNameEn == "KM") { fvalue = bnyList[channelList[j].BNYChannelId].Select(p => ((float)(int)p)).ToArray(); } else if (channelList[j].dataChannelInfo.sNameEn == "M") { fvalue = bnyList[channelList[j].BNYChannelId].Select(p => (p - (int)p) * 1000).ToArray(); } else { fvalue = bnyList[channelList[j].BNYChannelId]; } } else { fvalue = bnyList[channelList[j].BNYChannelId]; } } } else { fvalue = new float[bnyList[0].Length]; } resultList.Add(fvalue); } citHelper.WriteChannelDataFloat(citPath, resultList); if (tokenSource.IsCancellationRequested) { throw new OperationCanceledException(); } } }
private void WriteCitData(string citFilePath, List <float[]> dataList) { citHelper.WriteChannelDataFloat(citFilePath, dataList); }