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)); }
/// <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); } }