如何读取文件,逐行拆分记录并将其保存到数据库中

时间:2012-01-13 08:00:49

标签: c# asp.net

A.O.A

我想拆分以下代码并将其保存到数据库中:

31201011281853000100000000710003

分割的格式是

31

(2010-11-28,18 53) yyyy-mm-dd,hr-min

0001 

0000000071 

0003

首先我必须上传包含这些代码的文件,然后逐行读取每个记录,按照上面提到的格式拆分每一行,然后将其保存到数据库。

3 个答案:

答案 0 :(得分:4)

使用StreamReader逐行读取文件,并使用String.substring方法提取子字符串。

答案 1 :(得分:2)

I +1 AVD的答案,但我想我会把它充实,以防万一OP无法自行解决。


上传文件后,您需要使用streamreader课程阅读。使用流读取器,您可以将每行读入变量,然后使用substring执行拆分。

StreamReader位于System.IO名称空间中。

using System.IO;
//------------

string line;
string s1;
string s2;
string s3;
string s4;
string s5;

using (StreamReader reader = new StreamReader("file.txt"))
{
   line = reader.ReadLine();  // 31201011281853000100000000710003
   s1 = line.substring(0,2);  // 31
   s2 = line.substring(3,12); // 201011281853
   s3 = line.substring(13,4); // 0001
   s4 = line.substring(14,10);// 0000000071 
   s5 = line.substring(15,4); // 0003

   // Pass s1-s5 to your insert/update statements in DAL.
}

答案 2 :(得分:0)

我从这开始:var records = File.ReadAllLines(@"C:\test.txt").Select(line => Regex.Match(line, @"(\d{2})(\d{12})(\d{4})(\d{10})(\d{4})").Groups.Cast<Group>().Skip(1).Select((g,i) => i == 1 ? DateTime.ParseExact(g.Value, "yyyyMMddHmm", null).ToString("(yyyy-MM-dd,H mm)") :g.Value ).ToList());

嗯...确保你有一台宽屏显示器:)