2012-01-13 37 views
-1

AOA如何通過線讀取文件,分割記錄行,並將它們保存到數據庫

我想分裂下面的代碼,並保存到數據庫:

31201011281853000100000000710003 

分裂的格式是

31 

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

0001 

0000000071 

0003 

首先,我必須上傳一個包含這些代碼的文件,然後逐行讀取每條記錄,按上述格式拆分每行,然後將其保存到數據庫中。

+5

您是否嘗試過在你自己? – simchona 2012-01-13 08:02:12

+1

-1膳食在車輪水平的問題。 – 2012-01-13 09:08:13

回答

4

使用StreamReader可逐行讀取文件並使用String.substring方法提取子字符串。

2

我+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. 
} 
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());

嗯......確保你有一個寬屏顯示器,然後:)

相關問題