close

說明:

使用oleDB讀取純文字檔Text的資料,首先一般利用存文字檔存取資料類似Excel的功能,會有區隔每隔資料與每列資料的規則。

通常我們區隔每隔資料會以Tab鍵區分之。區隔每列資料會以換行之。

 

例如:

07  

 

我們使用oleDB讀取Text的資料,跟之前寫的另外兩篇文章的流程與Code類似,但因為csv、Text沒有工作表,相對來講Code比較簡潔。

【C#】《oleDB》如何讀取Excel特定工作表的資料

http://ww0o0ww.pixnet.net/blog/post/64004239

 

【C#】《oleDB》如何讀取csv(逗號分隔值)的資料

 http://ww0o0ww.pixnet.net/blog/post/66205084

 

來看一下讀取Text的步驟:

步驟1:設定Text的屬性、路徑。

步驟2:依照Text的屬性及路徑開啟檔案

步驟3:讀檔,並將其資料存入List

步驟4:關閉檔案

 


 

/*步驟1:設定Text的屬性、路徑*/

//設定讀取的csv屬性(Extended Properties須為文字)
string strCon = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\Test.csv;Extended Properties='Text;HDR=NO;IMEX=1'";

 

/*步驟2:依照Text的屬性及路徑開啟檔案*/

//Text路徑及相關資訊匯入
OleDbConnection GetTXT = new OleDbConnection(strCon);
DataTable Table = new DataTable();

//打開檔案
GetTXT.Open();

 

/*步驟3:讀檔,並將其資料存入List*/

OleDbDataAdapter daTXT = new OleDbDataAdapter("SELECT * FROM [Test.txt]", GetTXT);
oledb_comDatafeed.Fill(Table);


//讀取csv資料並存入List
string[] TXTData;
List<string> ListTXT = new List<string>();
foreach (DataRow dr in Table.Rows)
{
    foreach (DataColumn dc in Table.Columns)
    {
        //Text檔案以 “Tab按鍵” 作為分隔,讀取後Tab按鍵會讀為\t,
        //因此刪除\t,並以Split分割字串,        
        //接下來會以Text檔案的每一列資訊存入TXTData
        TXTData = Regex.Split(dr[dc.ColumnName].ToString(), @"\t");

        //將每一列的TXTData的資料存入ListTXT
        foreach (string SingleData in TXTData)
        {
            //將字串存入ListTXT
            ListTXT.Add(SingleData);
        }
    }
}

 

/*步驟4:關閉檔案*/

//結束關閉讀檔(必要,不關會有error)
GetTXT.Close();

 


 

Input:

07  

 

Output:

ListTXT[0]="1";
ListTXT[1]="2";
ListTXT[2]="3";
ListTXT[3]="4";
ListTXT[4]="5";
ListTXT[5]="6";
ListTXT[6]="7";
ListTXT[7]="8";
ListTXT[8]="9";
ListTXT[9]="10";
ListTXT[10]="11";
ListTXT[11]="12";
ListTXT[12]="13";
ListTXT[13]="14";
ListTXT[14]="15";

 


 

結論:

以oleDB讀取檔案一共有Excel、csv、Text,將在下次比較相異之處。

 

 

arrow
arrow
    創作者介紹
    創作者 Thisway 的頭像
    Thisway

    Thisway的部落格

    Thisway 發表在 痞客邦 留言(1) 人氣()