我想分裂下面的代码,并保存到数据库:
31201011281853000100000000710003
分裂的格式是
31
(2010-11-28,18 53) yyyy-mm-dd,hr-min
0001
0000000071
0003
首先,我必须上传一个包含这些代码的文件,然后逐行读取每条记录,按上述格式拆分每行,然后将其保存到数据库中。
我想分裂下面的代码,并保存到数据库:
31201011281853000100000000710003
分裂的格式是
31
(2010-11-28,18 53) yyyy-mm-dd,hr-min
0001
0000000071
0003
首先,我必须上传一个包含这些代码的文件,然后逐行读取每条记录,按上述格式拆分每行,然后将其保存到数据库中。
使用StreamReader
可逐行读取文件并使用String.substring方法提取子字符串。
我+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.
}
我开始与此: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());
嗯......确保你有一个宽屏显示器,然后:)
您是否尝试过在你自己? – simchona 2012-01-13 08:02:12
-1膳食在车轮水平的问题。 – 2012-01-13 09:08:13