有时需将特定格式的文本文件转化为内存表后,进行查询等操作很方便,就写了个转化的类:
文本文件格式如:|name|sex|age|...|
如果文件内容都是同种类似格式的话,则可以采用如下方法:1public static DataTable ConvertToDataTable (string FilePath, string TableName,string[] FieldsInArray)
2{
3DataTable dt = new DataTable(TableName);
4
5for (int i = 0; i < FieldsInArray.Length; i++)
6{
7dt.Columns.Add(new DataColumn(FieldsInArray[i], typeof(string)));
8}
9
10StreamReader sr = null;
11try
12{
13FileStream fs = File.Open(FilePath, FileMode.Open, FileAccess.Read);
14
15sr = new StreamReader(fs, Encoding.Default);
16
17string strRead;
18
19while (true)
20{
21strRead = sr.ReadLine();
22
23if (string.IsNullOrEmpty(strRead))
24break;
25string[] aryVale = strRead.Split('|');
26
27DataRow dr = dt.NewRow();
28for (int k = 0; k < FieldsInArray.Length; k++)
29{
30dr[FieldsInArray[k]] = aryVale[k];
31}
32dt.Rows.Add(dr);
33
34}
35}
36catch (Exception e)
37{
38log.Error("------------------------------------------------------------------------------------------------");
39log.Error("Load Text File[" + FilePath + "] Error: ", e);
40log.Error("------------------------------------------------------------------------------------------------");
41}
42finally
43{
44sr.Close();
45}
46![]()
47return dt;
48}
49}