Пример #1
0
        //Добавление записи текущего измерения в архив для датчика в канале ch
        public void WriteToArhiv(SChanalMET ch, SPointMET point)
        {
            StreamWriter writer = null;

            if (!File.Exists(ch.FileNameArchiv))
            {
                writer = CreateFileArhiv(ch);
            }
            else
            {
                writer = new StreamWriter(ch.FileNameArchiv, true);//открываем файл БД
            }

            if (writer != null)
            {
                //                if (ch.Points.Count > 0)
                //                    writer.WriteLine(GetStringFromPoint(ch.Points[ch.Points.Count - 1]));
                writer.WriteLine(GetStringFromPoint(point));
                writer.Close();
                writer = null;
            }
            else
            {
                Program.txtlog.WriteLineLog("MET:Ошибка записи в архив: " + ch.FileNameArchiv, 1);
            }
        }
Пример #2
0
        //пересоздаем архив для датчика в канале i
        public void SaveToArhiv(int i)
        {
            if ((Channal.Count <= 0) || (i >= Channal.Count))
            {
                Program.txtlog.WriteLineLog("MET:Отсутсвуют данные для датчика в канале: " + i, 1);
                return;
            }
            SChanalMET   ch     = Channal[i];
            StreamWriter writer = CreateFileArhiv(ch);

            if (writer != null)
            {
                for (int j = 0; j < ch.Points.Count; j++)//перебор точек измерения для датчика
                {
                    writer.WriteLine(GetStringFromPoint(ch.Points[j]));
                }
                writer.Close();
                writer = null;
                Program.txtlog.WriteLineLog("MET:Данные успешно перезаписаны.", 0);
            }
            else
            {
                Program.txtlog.WriteLineLog("MET:Ошибка записи в файл данных: " + ch.FileNameArchiv, 1);
            }
        }
Пример #3
0
        //Чтение из файла
        public void LoadFromFile()
        {
            StreamReader reader;

            try
            {
                for (int i = 0; i < Channal.Count; i++)//перебор каналов
                {
                    SChanalMET ch = Channal[i];
                    if (!File.Exists(ch.FileNameArchiv))
                    {
                        continue;
                    }
                    else
                    {
                        reader = new StreamReader(ch.FileNameArchiv);//открываем файл БД
                    }
                    if (reader != null)
                    {
                        string str = reader.ReadLine();
                        str = reader.ReadLine();
                        str = reader.ReadLine();
                        str = reader.ReadLine();
                        str = reader.ReadLine();
                        do
                        {
                            str = reader.ReadLine();
                            string[]  strarr = str.Split('|');
                            SPointMET point;
                            if (strarr.Length > 7)
                            {
                                point.Datetime    = Convert.ToDateTime(strarr[0]);
                                point.Temperature = double.Parse(strarr[1].Replace(",", CultureInfo.InvariantCulture.NumberFormat.NumberDecimalSeparator), CultureInfo.InvariantCulture);
                                point.NPI         = double.Parse(strarr[2].Replace(",", CultureInfo.InvariantCulture.NumberFormat.NumberDecimalSeparator), CultureInfo.InvariantCulture);
                                point.VPI         = double.Parse(strarr[3].Replace(",", CultureInfo.InvariantCulture.NumberFormat.NumberDecimalSeparator), CultureInfo.InvariantCulture);
                                point.PressureZ   = double.Parse(strarr[4].Replace(",", CultureInfo.InvariantCulture.NumberFormat.NumberDecimalSeparator), CultureInfo.InvariantCulture);
                                point.PressureF   = double.Parse(strarr[5].Replace(",", CultureInfo.InvariantCulture.NumberFormat.NumberDecimalSeparator), CultureInfo.InvariantCulture);
                                point.CurrentR    = double.Parse(strarr[6].Replace(",", CultureInfo.InvariantCulture.NumberFormat.NumberDecimalSeparator), CultureInfo.InvariantCulture);
                                point.CurrentF    = double.Parse(strarr[7].Replace(",", CultureInfo.InvariantCulture.NumberFormat.NumberDecimalSeparator), CultureInfo.InvariantCulture);

                                ch.Points.Add(point);
                            }
                        } while (!reader.EndOfStream);
                        Program.txtlog.WriteLineLog("MET:Архив данных загружен из файла: " + ch.FileNameArchiv, 0);
                        reader.Close();
                        reader = null;
                    }
                    else
                    {
                        Program.txtlog.WriteLineLog("MET:Ошибка доступа к файлу архива: " + ch.FileNameArchiv, 1);
                        continue;
                    }
                }
            }
            catch
            {
                Program.txtlog.WriteLineLog("MET:Критическая ошибка чтения архива!", 1);
            }
        }
Пример #4
0
        //создаем файл  архива на диске
        private StreamWriter CreateFileArhiv(SChanalMET ch)
        {
            StreamWriter writer = null;

            writer = File.CreateText(ch.FileNameArchiv);//создаем файл БД
            if (writer != null)
            {
                writer.WriteLine(string.Format("Архив данных датчика"));
                writer.WriteLine(string.Format("Канал:{0}; Заводской номер:{1}", ch.ChannalNummber, ch.FactoryNumber));
                writer.WriteLine("-----------------------------------------------------------------------------------------------");
                writer.WriteLine(HeaderString);
                writer.WriteLine("-----------------------------------------------------------------------------------------------");
            }
            return(writer);
        }
Пример #5
0
        //конструктор класса
        //вход: число каналов и заводской номер датчика в каждом канале
        public CResultMET(int ChannalCount, int[] FN)
        {
            StreamWriter fs;

            for (int i = 0; i < ChannalCount; i++)
            {
                SChanalMET ch = new SChanalMET(i + 1, FN[i]);
                Channal.Add(ch);
                Directory.CreateDirectory("MET");
                Directory.CreateDirectory("Archiv/MET");
                string filename = string.Format("MET/MET_Result{0}.txt", ch.ChannalNummber);
                fs = File.CreateText(filename);//создаем файл канала
                fs.WriteLine(string.Format("Результаты измерений датчика в канале {0}, заводской номер {1}", ch.ChannalNummber, ch.FactoryNumber));
                fs.WriteLine("-----------------------------------------------------------------------------------------------------------------------------");
                fs.WriteLine(HeaderString);
                fs.WriteLine("-----------------------------------------------------------------------------------------------------------------------------");
                fs.Flush();
                FileStream.Add(fs);
            }
        }