예제 #1
0
        // 全部解析点击事件
        private void AllStart_Click(object sender, EventArgs e)
        {
            // 所有的路径处理
            string filePath = txtFilePath.Text;
            string savePath = txtSavePath.Text;

            if (string.IsNullOrEmpty(filePath) || string.IsNullOrEmpty(savePath))
            {
                MessageBox.Show("请选择数据文件与保存路径", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
                return;
            }
            string saveFilePath = savePath + "\\" + FileHelper.GetFileNameNoExtension(filePath) + ".txt";

            if (FileHelper.IsExistFile(saveFilePath))
            {
                FileHelper.ClearFile(saveFilePath);
            }
            else
            {
                FileHelper.CreateFile(saveFilePath);
            }
            MsAnalyzeUtil.Init(saveFilePath);

            // 开始解析
            ClearShow();
            AddShow("说明", "开始进行文本解析");
            AddShow("说明", "保存文件路径:" + saveFilePath);
            try
            {
                Stopwatch stopwatch = Stopwatch.StartNew();
                // 获取文件的所有字节信息
                byte[] allDatas = FileHelper.ReadFileByteData(filePath);

                // 进行全部文件的解析导出
                MsAnalyzeUtil.GetChrom(allDatas);
                stopwatch.Stop();
                AddShow("说明", "文件解析完成。用时(ms):" + stopwatch.ElapsedMilliseconds);
            }
            catch (Exception ex)
            {
                AddShow("错误", "文件解析错误:" + ex.Message);
            }
            Process.Start("explorer.exe", savePath);
        }
예제 #2
0
        // 测试解析点击事件
        private void TestStart_Click(object sender, EventArgs e)
        {
            string filePath = txtFilePath.Text;

            if (string.IsNullOrEmpty(filePath))
            {
                MessageBox.Show("请选择数据文件", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
                return;
            }

            ClearShow();

            try
            {
                // 获取文件的所有字节信息
                byte[] allbytes = FileHelper.ReadFileByteData(filePath);
                AddShow("总体", "总字节数:" + allbytes.Length);
                AddLine();

                // 获取头信息
                int sNumber = MsAnalyzeUtil.GetIntLitter(allbytes, 278, 281 - 278 + 1);
                AddShow("头信息", "色谱数据数量:" + sNumber);
                int startB = MsAnalyzeUtil.GetIntLitter(allbytes, 260, 263 - 260 + 1);
                AddShow("头信息", "第一个色谱数据起点:" + startB);
                AddLine();

                // 第一个色谱数据
                int sStartA = 2 * (startB - 1);
                int zStartB = MsAnalyzeUtil.GetIntLitter(allbytes, sStartA, 4);
                AddShow("色谱数据", "第一个色谱的质谱地址:" + zStartB);
                int sTime = MsAnalyzeUtil.GetIntLitter(allbytes, sStartA + 4, 4);
                AddShow("色谱数据", "第一个色谱的保留时间(ms):" + sTime);
                AddShow("色谱数据", "第一个色谱的保留时间(m):" + MsAnalyzeUtil.MsToMin(sTime));
                int sAbundance = MsAnalyzeUtil.GetIntLitter(allbytes, sStartA + 8, 4);
                AddShow("色谱数据", "第一个色谱的信号值:" + sAbundance);
                AddLine();

                // 第一个质谱数据
                int zStartA = zStartB * 2;
                int zTime   = MsAnalyzeUtil.GetIntLitter(allbytes, zStartA, 4);
                AddShow("质谱头", "第一个质谱的保留时间(ms):" + zTime);
                AddShow("质谱头", "第一个质谱的保留时间(m):" + MsAnalyzeUtil.MsToMin(zTime));
                int zNumber = MsAnalyzeUtil.GetIntLitter(allbytes, zStartA + 10, 2);
                AddShow("质谱头", "第一个质谱的峰个数:" + zNumber);
                int zMaxMass = MsAnalyzeUtil.GetIntLitter(allbytes, zStartA + 12, 2);
                AddShow("质谱头", "第一个质谱最高峰的质量数:" + zMaxMass);
                int zMaxAbundance = MsAnalyzeUtil.GetIntLitter(allbytes, zStartA + 14, 2);
                AddShow("质谱头", "第一个质谱最高峰的信号值:" + zMaxAbundance);
                AddLine();

                // 第一个色谱的所有质谱点
                zStartA = zStartA + 16;
                int zMass = MsAnalyzeUtil.GetIntLitter(allbytes, zStartA, 2);
                AddShow("质谱数据", "第一个质谱第一峰的质量数:" + zMass);
                int zAbundance = MsAnalyzeUtil.GetIntLitter(allbytes, zStartA + 2, 2);
                AddShow("质谱数据", "第一个质谱第一峰的信号值:" + zAbundance);
                zStartA = zStartA + 4;
                zMass   = MsAnalyzeUtil.GetIntLitter(allbytes, zStartA, 2);
                AddShow("质谱数据", "第一个质谱第二峰的质量数:" + zMass);
                zAbundance = MsAnalyzeUtil.GetIntLitter(allbytes, zStartA + 2, 2);
                AddShow("质谱数据", "第一个质谱第二峰的信号值:" + zAbundance);
                AddLine();

                // 第二个色谱数据
                sStartA = sStartA + 12;
                zStartB = MsAnalyzeUtil.GetIntLitter(allbytes, sStartA, 4);
                AddShow("色谱数据", "第二个色谱的质谱地址:" + zStartB);
                sTime = MsAnalyzeUtil.GetIntLitter(allbytes, sStartA + 4, 4);
                AddShow("色谱数据", "第二个色谱的保留时间(ms):" + sTime);
                AddShow("色谱数据", "第二个色谱的保留时间(m):" + MsAnalyzeUtil.MsToMin(sTime));
                sAbundance = MsAnalyzeUtil.GetIntLitter(allbytes, sStartA + 8, 4);
                AddShow("色谱数据", "第二个色谱的信号值:" + sAbundance);
            }
            catch (Exception ex)
            {
                AddShow("错误", "文件解析错误:" + ex.Message);
            }
        }