예제 #1
0
 /// <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));
 }
예제 #2
0
 /// <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);
     }
 }