Exemplo n.º 1
0
        private List <LogFileInfo> GetLogFiles(USeProductManager productManager)
        {
            DirectoryInfo klineDir     = new DirectoryInfo(m_kLineFolder);
            string        searchParten = "";

            if (m_cycle == USeCycleType.Day)
            {
                searchParten = "1day-*.csv";
            }
            else if (m_cycle == USeCycleType.Min1)
            {
                searchParten = "1min-*.csv";
            }
            else
            {
                throw new NotSupportedException(string.Format("未知的周期类型文件:{0}", m_cycle));
            }
            FileInfo[] klineFiles = klineDir.GetFiles(searchParten);

            List <LogFileInfo> logFileList = new List <LogFileInfo>();

            foreach (FileInfo fileItem in klineFiles)
            {
                //if (fileItem.Name.StartsWith("1min-cu1707") || fileItem.Name.StartsWith("1day-cu1707"))
                {
                    LogFileInfo logFileInfo = LogFileInfo.ParseLogFile(fileItem, productManager);
                    logFileList.Add(logFileInfo);
                }
            }

            return(logFileList);
        }
        public override bool Run()
        {
            USeProductManager varietiesManager = CreateVarietiesManager();

            DirectoryInfo klineDir = new DirectoryInfo(m_kLineFolder);

            FileInfo[] klineFiles = klineDir.GetFiles("1min-*.csv");

            List <LogFileInfo> logFileList = new List <LogFileInfo>();

            foreach (FileInfo fileItem in klineFiles)
            {
                //if (fileItem.Name.StartsWith("1min") || fileItem.Name.StartsWith("1day"))
                //if (fileItem.Name.StartsWith("1min-cu1707"))//  || fileItem.Name.StartsWith("1day"))
                {
                    LogFileInfo logFileInfo = LogFileInfo.ParseLogFile(fileItem, varietiesManager);
                    logFileList.Add(logFileInfo);
                }
            }

            if (logFileList.Count < 0)
            {
                string text = "无可导入文件";
                m_eventLogger.WriteInformation(text);
                USeConsole.WriteLine(text);
                return(true);
            }

            int index = 0;

            foreach (LogFileInfo file in logFileList)
            {
                index++;
                try
                {
                    ClosePrice2Importer importer = new ClosePrice2Importer(file);

                    List <ClosePrice2Entity> closePriceList = importer.ParseClosePrice2();
                    string text = string.Format("解析{0}.{1}午盘数据完成,共计{2}条",
                                                importer.InstrumentCode, importer.Market, closePriceList.Count);
                    USeConsole.WriteLine(text);
                    Stopwatch stopWathch = new Stopwatch();
                    stopWathch.Start();
                    SaveClosePrice2Data(importer.Market, closePriceList);
                    stopWathch.Stop();
                    long useSecondes = stopWathch.ElapsedMilliseconds / 1000;
                    USeConsole.WriteLine(string.Format("导入{0}.{1}午盘数据完成,共计{2}条,耗时{3}秒,平均速度{4}/秒,Finish{5}/{6}",
                                                       importer.InstrumentCode, importer.Market, closePriceList.Count, useSecondes,
                                                       useSecondes > 0 ? closePriceList.Count / useSecondes : 0, index, logFileList.Count));
                }
                catch (Exception ex)
                {
                    string text = string.Format("导入数据失败,文件路径:{0},错误:{1}", file.FileInfo.FullName, ex.Message);
                    m_eventLogger.WriteInformation(text);
                    USeConsole.WriteLine(text);
                }
            }

            return(true);
        }