示例#1
0
        /// <summary>
        /// Update
        /// </summary>
        /// <param name="dbData">DB data</param>
        /// <returns>error code</returns>
        public SIMCA_READ_ERR_CODE Update(SimcaDbData dbData)
        {
            SIMCA_READ_ERR_CODE result = SIMCA_READ_ERR_CODE.OK;

            foreach (SimcaDataItem item in _simcaDataList)
            {
                if (item.IsTitle)
                {
                    continue;
                }

                // Set peak ID
                result = SetPeakId(dbData, item);
                if (result == SIMCA_READ_ERR_CODE.OK)
                {
                    // Set score plot parameter
                    result = SetScorePlotParam(dbData, item);
                }

                if (result != SIMCA_READ_ERR_CODE.OK)
                {
                    break;
                }
            }

            return(result);
        }
示例#2
0
        /// <summary>
        /// Set paste data
        /// </summary>
        /// <param name="paste">paste data</param>
        /// <param name="dbdata">data base data</param>
        /// <returns>error code</returns>
        public SIMCA_READ_ERR_CODE SetPasteData(string paste, SimcaDbData dbdata)
        {
            SIMCA_READ_ERR_CODE result = SIMCA_READ_ERR_CODE.NG_FORMAT;

            // Empty data
            if (paste == string.Empty)
            {
                return(result);
            }

            // DB data
            SimcaDbData tempDbData = dbdata;

            if (dbdata == null)
            {
                tempDbData = new SimcaDbData();
            }

            // Set data
            try
            {
                Stream stream = new MemoryStream(System.Text.Encoding.GetEncoding("Shift_JIS").GetBytes(paste));

                using (TextFieldParser parser = new TextFieldParser(
                           stream,
                           System.Text.Encoding.GetEncoding("Shift_JIS")))
                {
                    parser.TextFieldType = FieldType.Delimited;
                    parser.SetDelimiters(",");
                    while (parser.EndOfData == false)
                    {
                        result = Add(parser.ReadFields(), tempDbData);
                        if (result != SimcaData.SIMCA_READ_ERR_CODE.OK)
                        {
                            return(result);
                        }
                    }
                }
            }
            catch (Exception)
            {
                return(SimcaData.SIMCA_READ_ERR_CODE.NG_READ);
            }

            // Check data
            if (GetDataCount() <= 0)
            {
                result = SimcaData.SIMCA_READ_ERR_CODE.NG_FORMAT;
            }

            if (SIMCA_READ_ERR_CODE.OK != result)
            {
                return(result);
            }

            result = CheckData(tempDbData.GetSelectedMatrixIndex());
            if (SIMCA_READ_ERR_CODE.NG_CLASS == result)
            {
                if (dbdata == null)
                {
                    result = SIMCA_READ_ERR_CODE.OK;
                }
            }

            return(result);
        }
示例#3
0
        /// <summary>
        /// Add data(1 line)
        /// </summary>
        /// <param name="newData">1 line data</param>
        /// <param name="dbData">DB data</param>
        /// <returns>error code</returns>
        public SIMCA_READ_ERR_CODE Add(string[] newData, SimcaDbData dbData)
        {
            SIMCA_READ_ERR_CODE result = SIMCA_READ_ERR_CODE.OK;

            SimcaDataItem item = new SimcaDataItem();

            item.SetData(newData, Color.LightGreen, -1, -1);

            // Split line data
            if (newData == null)
            {
                return(SIMCA_READ_ERR_CODE.NG_FORMAT);
            }

            if (_simcaDataList.Count() == 0)
            {   // title line
                item.IsTitle = true;

                // Set column count
                this.ColumnCount = newData.Count();

                // Set index data
                result = SetIndexData(newData);
            }
            else
            {   // data line
                if (this.ColumnCount != newData.Count())
                {
                    result = SIMCA_READ_ERR_CODE.NG_FORMAT;
                }
                else
                {
                    // Check loading plot skip data
                    result = CheckSkipData(dbData, item);

                    // Set peak ID
                    if (result == SIMCA_READ_ERR_CODE.OK)
                    {
                        result = SetPeakId(dbData, item);
                    }

                    // Set score plot parameter
                    if (result == SIMCA_READ_ERR_CODE.OK)
                    {
                        result = SetScorePlotParam(dbData, item);
                    }
                }
            }

            if (result == SIMCA_READ_ERR_CODE.OK)
            {
                _simcaDataList.Add(item);
            }

            if (result == SIMCA_READ_ERR_CODE.SKIP)
            {
                result = SIMCA_READ_ERR_CODE.OK;
            }

            return(result);
        }