Beispiel #1
0
 public static void SizeDB(SocialExplorer.IO.FastDBF.DbfFile odbf, ref int res)
 {
     var rec = new SocialExplorer.IO.FastDBF.DbfRecord(odbf.Header);
     odbf.Read(0, rec);
     do res++;
     while (odbf.ReadNext(rec));
 }
Beispiel #2
0
        /// <summary>
        /// Sprawdzanie, czy podana sciezka zawiera pliki FKi
        /// </summary>
        /// <param name="p">sciezka programu</param>
        /// <param name="encode">kodowanie plików</param>
        /// <returns></returns>
        public static bool PathIsOK(string p, System.Text.Encoding encode)
        {
            var db = new SocialExplorer.IO.FastDBF.DbfFile(encode);

            try
            {
                db.Open(System.IO.Path.Combine(p, "WZ.DBF"), System.IO.FileMode.Open);
                db.Close();
                db.Open(System.IO.Path.Combine(p, "WZA.DBF"), System.IO.FileMode.Open);
                db.Close();
                db.Open(System.IO.Path.Combine(p, "PZ.DBF"), System.IO.FileMode.Open);
                db.Close();
                db.Open(System.IO.Path.Combine(p, "ZAL.DBF"), System.IO.FileMode.Open);
                db.Close();
                db.Open(System.IO.Path.Combine(p, "TSZ.DBF"), System.IO.FileMode.Open);
                db.Close();
                db.Open(System.IO.Path.Combine(p, "KONTRAH.DBF"), System.IO.FileMode.Open);
                db.Close();
                return(true);
            }
            catch { return(false); }
            finally { db.Close(); }
        }
        /// <summary>
        /// Importa um arquivo DBF para um <see cref="System.Data.DataTable"/>.
        /// </summary>
        /// <param name="p_filename">Nome do arquivo DBF.</param>
        private void ImportDBF(string p_filename)
        {
            Spartacus.Utils.File v_file;
            System.Data.DataTable v_table;
            System.Data.DataRow v_row;
            SocialExplorer.IO.FastDBF.DbfFile v_dbf;
            SocialExplorer.IO.FastDBF.DbfRecord v_record;

            try
            {
                v_file = new Spartacus.Utils.File(1, 1, Spartacus.Utils.FileType.FILE, p_filename);
                v_table = new System.Data.DataTable(v_file.v_name.Replace("." + v_file.v_extension, ""));

                v_dbf = new SocialExplorer.IO.FastDBF.DbfFile(System.Text.Encoding.UTF8);
                v_dbf.Open(p_filename, System.IO.FileMode.Open);

                for (int i = 0; i < v_dbf.Header.ColumnCount; i++)
                {
                    if (v_dbf.Header[i].ColumnType != SocialExplorer.IO.FastDBF.DbfColumn.DbfColumnType.Binary &&
                        v_dbf.Header[i].ColumnType != SocialExplorer.IO.FastDBF.DbfColumn.DbfColumnType.Memo)
                        v_table.Columns.Add(v_dbf.Header[i].Name, typeof(string));
                }

                v_record = new SocialExplorer.IO.FastDBF.DbfRecord(v_dbf.Header);
                while (v_dbf.ReadNext(v_record))
                {
                    if (! v_record.IsDeleted)
                    {
                        v_row = v_table.NewRow();
                        for (int i = 0; i < v_record.ColumnCount; i++)
                        {
                            if (v_dbf.Header[i].ColumnType != SocialExplorer.IO.FastDBF.DbfColumn.DbfColumnType.Binary &&
                                v_dbf.Header[i].ColumnType != SocialExplorer.IO.FastDBF.DbfColumn.DbfColumnType.Memo)
                            {
                                v_row[i] = v_record[i].Trim();
                            }
                        }
                        v_table.Rows.Add(v_row);
                    }
                }

                v_dbf.Close();

                this.v_set.Tables.Add(v_table);
            }
            catch (Spartacus.Utils.Exception e)
            {
                throw new Spartacus.Utils.Exception("Erro ao carregar o arquivo {0}.", e, p_filename);
            }
            catch (System.Exception e)
            {
                throw new Spartacus.Utils.Exception("Erro ao carregar o arquivo {0}.", e, p_filename);
            }
        }