Exemplo n.º 1
0
    public bool ParseData(Stream data)
    {
        long num = 0L;

        string[] formats = new string[4]
        {
            "MM/dd/yyyy H:mm:ss",
            "M/dd/yyyy H:mm:ss",
            "MM/dd/yyyy HH:mm:ss",
            "M/dd/yyyy HH:mm:ss"
        };
        TextFieldParser textFieldParser = new TextFieldParser(data);

        textFieldParser.TextFieldType = FieldType.Delimited;
        textFieldParser.SetDelimiters(",");
        textFieldParser.TrimWhiteSpace = true;
        Directory.CreateDirectory(path + "\\" + name);
        try {
            DateTime dateTime;
            while (!textFieldParser.EndOfData)
            {
                string[] array = textFieldParser.ReadFields();
                bool     num2  = DateTime.TryParseExact(array[1] + " " + array[2], formats, CultureInfo.InvariantCulture, DateTimeStyles.AllowLeadingWhite | DateTimeStyles.AllowTrailingWhite | DateTimeStyles.AllowInnerWhite | DateTimeStyles.AssumeUniversal, out dateTime) & long.TryParse(array[3], out num);
                dateTime.ToLocalTime();
                string text  = dateTime.Date.ToString("yyyyMMdd");
                string text2 = dateTime.TimeOfDay.ToString("hhmmss");
                if (num2)
                {
                    int      num3 = labels.data.IndexOfKey(num);
                    DateTime t    = (num3 <= -1) ? dateTime : ((DateTime)labels.data.GetByIndex(num3));
                    if (!labels.data.ContainsKey(num))
                    {
                        labels.add(dateTime, num);
                        if (num == 1)
                        {
                            StreamWriter streamWriter = File.CreateText(path + "\\" + name + "\\PN@_PC@000001_GR@01_DA@" + text + "_TI@" + text2 + ".csv");
                            streamWriter.Write("PN@_PC@000001_GR@01_DA@" + text + "_TI@" + text2);
                            streamWriter.Close();
                        }
                        else
                        {
                            StreamWriter streamWriter2 = File.CreateText(path + "\\" + name + "\\PN@" + num + "_PC@000001_GR@01_DA@" + text + "_TI@" + text2 + ".csv");
                            streamWriter2.Write("PN@" + num + "_PC@000001_GR@01_DA@" + text + "_TI@" + text2);
                            streamWriter2.Close();
                        }
                    }
                    if (labels.data.ContainsKey(num) && dateTime > t)
                    {
                        labels.data.SetByIndex(labels.data.IndexOfKey(num), dateTime);
                        if (num == 1)
                        {
                            StreamWriter streamWriter3 = File.CreateText(path + "\\" + name + "\\PN@_PC@000001_GR@01_DA@" + text + "_TI@" + text2 + ".csv");
                            streamWriter3.Write("PN@_PC@000001_GR@01_DA@" + text + "_TI@" + text2);
                            streamWriter3.Close();
                        }
                        else
                        {
                            StreamWriter streamWriter4 = File.CreateText(path + "\\" + name + "\\PN@" + num + "_PC@000001_GR@01_DA@" + text + "_TI@" + text2 + ".csv");
                            streamWriter4.Write("PN@" + num + "_PC@000001_GR@01_DA@" + text + "_TI@" + text2);
                            streamWriter4.Close();
                        }
                    }
                }
            }
            data.Position = 0L;
            TextFieldParser textFieldParser2 = new TextFieldParser(data);
            textFieldParser2.TextFieldType = FieldType.Delimited;
            textFieldParser2.SetDelimiters(",");
            textFieldParser2.TrimWhiteSpace = true;
            if (labels.data.Count > maxlabels)
            {
                labels.data.Clear();
                while (!textFieldParser2.EndOfData)
                {
                    string[] array2 = textFieldParser2.ReadFields();
                    if (DateTime.TryParseExact(array2[1] + " " + array2[2], formats, CultureInfo.InvariantCulture, DateTimeStyles.AllowWhiteSpaces, out dateTime) & long.TryParse(array2[3], out num))
                    {
                        labels.add(dateTime, num);
                    }
                }
            }
        }
        catch (Exception ex) {
            Trace.WriteLine("PLC " + name + ":" + ex.Message);
        }
        return(true);
    }