Example #1
0
        public void SetDataHandler(string strColumn, CsvTableDataHandler <T> f)
        {
            if (strColumn == null)
            {
                Debug.Assert(false); return;
            }

            m_dHandlers[strColumn] = f;
        }
        public void SetDataAppend(string strColumn, string strStringName)
        {
            if (string.IsNullOrEmpty(strStringName))
            {
                Debug.Assert(false); return;
            }

            CsvTableDataHandler <PwEntry> f = delegate(string strData,
                                                       PwEntry peContext, string[] vContextRow)
            {
                ImportUtil.AppendToField(peContext, strStringName, strData, m_pd);
            };

            SetDataHandler(strColumn, f);
        }
Example #3
0
        public void Read(CsvStreamReaderEx csr)
        {
            if (csr == null)
            {
                Debug.Assert(false); return;
            }

            string[] vHeader;
            while (true)
            {
                vHeader = csr.ReadLine();
                if (vHeader == null)
                {
                    return;
                }
                if (vHeader.Length == 0)
                {
                    continue;
                }
                if ((vHeader.Length == 1) && (vHeader[0].Length == 0))
                {
                    continue;
                }
                break;
            }

            m_dColumns.Clear();

            CsvTableDataHandler <T>[] vHandlers = new CsvTableDataHandler <T> [vHeader.Length];
            for (int i = vHeader.Length - 1; i >= 0; --i)
            {
                string str = vHeader[i];

                m_dColumns[str] = i;

                CsvTableDataHandler <T> f;
                m_dHandlers.TryGetValue(str, out f);
                vHandlers[i] = f;
            }

            while (true)
            {
                string[] vRow = csr.ReadLine();
                if (vRow == null)
                {
                    break;
                }
                if (vRow.Length == 0)
                {
                    continue;
                }
                if ((vRow.Length == 1) && (vRow[0].Length == 0))
                {
                    continue;
                }

                T t = ((m_fObjectNew != null) ? m_fObjectNew(vRow) : default(T));

                Debug.Assert(vRow.Length == vHandlers.Length);
                int m = Math.Min(vRow.Length, vHandlers.Length);
                for (int i = 0; i < m; ++i)
                {
                    CsvTableDataHandler <T> f = vHandlers[i];
                    if (f != null)
                    {
                        f(vRow[i], t, vRow);
                    }
                }

                if (m_fObjectCommit != null)
                {
                    m_fObjectCommit(t, vRow);
                }
            }
        }