/// <summary> /// Cria ou reescreve um arquivo contendo: nome da tabela; nome das colunas; valores das celulas, presentes em um array de tabelas(datatables). /// </summary> /// <param name="db">List<DataTables> As tabelas que serão salvas no arquivo</param> /// <param name="filePath">Caminho até a pasta que será salvo o arquivo. formato: "Caminho\para\o\arquivo\nomeDoArquivo.extenção"</param> public static void TablesToFile(List<DataTable> db, string filePath) { List<string> file = new List<string>(); foreach (DataTable table in db) { file.Add("[" + table.TableName + "]"); string columns = ""; for (int i = 0; i < table.Columns.Count - 1; i++) { columns += table.Columns[i].ToString() + separator; } columns += table.Columns[table.Columns.Count - 1].ToString(); file.Add(columns); foreach (DataRow row in table.Rows) { string items = ""; for (int i = 0; i < row.ItemArray.Length - 1; i++) { items += row.ItemArray[i].ToString() + separator; } items += row.ItemArray[row.ItemArray.Length - 1].ToString(); file.Add(items); } } DirMngr dir = new DirMngr(filePath); dir.Overwrite(CryptMngr.EncryptText(file)); }
/// <summary> /// Lê um arquivo contendo: nome da tabela; nome das colunas; valores das celulas, presentes em um arquivo. /// </summary> /// <param name="db">List<DataTables>A variavel na qual serão salvas as tabelas</param> /// <param name="filePath">Caminho até a pasta que será aberto o arquivo. formato: "Caminho\para\o\arquivo\nomeDoArquivo.extenção"</param> public static void fileToTables(out List<DataTable> db, string filePath) { DirMngr dir = new DirMngr(filePath); db = new List<DataTable>(); List<string> file = CryptMngr.DecryptText(dir.ReadAll()); try { //separar as tabelas do array de string e depois transforma-las em datatables e inseri-las na lista de datatables int startIn = 0; while (startIn < file.Count) { db.Add(tableSeparator(ref file, ref startIn)); } } catch (Exception e) { throw new Exception("Possivelmente o arquivo está ilegivel, corrompido ou em branco. Mais Detalhes:\n\n" + e.Message + "\n\n" + e); } }