我想分裂下面的代碼,並保存到數據庫:
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