有時候我們僅僅需要用到簡單的幾個資料,沒有必要在資料庫中建立單獨的表去儲存這些資料然後去串連資料庫等等。
例如:我們的程式中只需要給幾個人定時發送郵件,而這幾個人的郵件地址則可以放到txt文檔中,然後讀取出來即可。
從txt讀取出來的資料,最好放到DataTable返回,這樣主程式中就可以遍曆DataTable。
之前有想到把這些資料放到數組中,但是這些資料的長度不定,所以定義數組存在不確定性,最好的選擇還是DataTable,代碼如下:
記事本路徑:
//添加引用
using System.Data.SqlClient;
using System.IO;
//記事本路徑(最好用相對路徑) public static string strNoCheckGroup = @"..\..\MailAddress\MailAddress.txt";
//ReadTXT public static System.Data.DataTable ReadTXT(string dirTXT) { StreamReader objReader = new StreamReader(dirTXT); System.Data.DataTable dt = new System.Data.DataTable(); dt.Columns.Add("DN", System.Type.GetType("System.String")); string sLine = ""; while (sLine != null) { sLine = objReader.ReadLine(); if (sLine != null && !sLine.Equals("")) { DataRow dr = dt.NewRow(); dr["DN"] = sLine; dt.Rows.Add(dr); } } objReader.Close(); return dt; } //WriteTXT public static void WriteTXT(string dirTXT, System.Data.DataTable dt) { FileStream fs = new FileStream(dirTXT, FileMode.Create); StreamWriter sw = new StreamWriter(fs); //開始寫入 for (int i = 0; i < dt.Rows.Count; i++) { sw.Write(dt.Rows[i][0].ToString() + " " + dt.Rows[i][1].ToString() + " " + dt.Rows[i][2].ToString() + " " + dt.Rows[i][3].ToString() + " " + dt.Rows[i][4].ToString() + "\r\n"); } //清空緩衝區 sw.Flush(); //關閉流 sw.Close(); fs.Close(); } //WriteTXT public static void WriteStringToTXT(string dirTXT, string str) { FileStream fs = new FileStream(dirTXT, FileMode.Create); StreamWriter sw = new StreamWriter(fs); //開始寫入 sw.Write(str + "\r\n"); //清空緩衝區 sw.Flush(); //關閉流 sw.Close(); fs.Close(); }
讀取string欄位存放到List<string> 中,獲得電腦IP地址(多張網卡):
public static List<string> ipList = new List<string>(); public static void IpAddress() { try { string localIP = ""; System.Net.IPAddress[] addressList = Dns.GetHostEntry(Dns.GetHostName()).AddressList; foreach (IPAddress ip in addressList) { if (ip.AddressFamily == AddressFamily.InterNetwork) { localIP = ip.ToString(); ipList.Add(localIP); } } } catch (Exception) { ipList.Add("0.0.0.0"); }} public static void GetIPAddress() { IpAddress(); for (int i = 0; i < ipList.Count; i++) { Console.WriteLine(ipList[i]); } }