Forex_Strategy_Builder.JForex_Import.ImportTicks C# (CSharp) Method

ImportTicks() private method

private ImportTicks ( JForex_Data_Files file ) : void
file JForex_Data_Files
return void
        void ImportTicks(JForex_Data_Files file)
        {
            StreamReader streamReader = new StreamReader(file.FilePath);
            FileStream   outStream    = new FileStream(file.FileTargetPath, FileMode.Create);
            BinaryWriter binaryWriter = new BinaryWriter(outStream);

            DateTime time = DateTime.MinValue;
            int volume = 0;
            List<double> reccord = new List<double>();
            int count1MinBars = 1;
            int totalVolume   = 0;

            string dateFormat = "yyyy.MM.dd HH:mm:ss";

            char fieldSplitter = ',';

            IFormatProvider formatProvider = System.Globalization.CultureInfo.InvariantCulture;
            string line = "";

            try
            {
                DateTime tickTime;
                double bid;
                while (!streamReader.EndOfStream)
                {
                    line = streamReader.ReadLine();
                    if (line.StartsWith("Time"))
                        continue; // Skips annotation line.
                    string[] data = line.Split(new char[] { fieldSplitter });
                    DateTime t = DateTime.ParseExact(data[0], dateFormat, formatProvider);
                    tickTime = new DateTime(t.Year, t.Month, t.Day, t.Hour, t.Minute, 0);
                    bid = StringToDouble(data[2]);

                    if (tickTime.Minute != time.Minute || volume == 0)
                    {

                        if (volume > 0 && !IsWeekend(time))
                        {
                            FilterReccord(reccord);
                            SaveReccord(binaryWriter, time, volume, reccord);
                            count1MinBars++;
                        }

                        time = tickTime;
                        volume = 0;
                        reccord.Clear();
                        reccord.Add(bid);
                    }
                    else if (reccord.Count > 0 && bid != reccord[reccord.Count - 1])
                    {
                        reccord.Add(bid);
                    }

                    volume++;
                    totalVolume++;
                }
                if (volume > 0 && !IsWeekend(time))
                {
                    FilterReccord(reccord);
                    SaveReccord(binaryWriter, time, volume, reccord);
                    count1MinBars++;
                }
            }
            catch (Exception excaption)
            {
                MessageBox.Show(excaption.Message);
            }

            streamReader.Close();
            binaryWriter.Close();
            outStream.Close();

            volume--;
            totalVolume--;
            count1MinBars--;

            SetInfoText(file.Symbol + " " + Language.T("Ticks") + " - " + (Language.T("Ticks")).ToLower() + ": " + totalVolume.ToString()
                 + " - 1M " + (Language.T("Bars")).ToLower() + ": " + count1MinBars.ToString() + Environment.NewLine);
        }