簡單來說是一種通用的、相對簡單的檔案格式、並且不是一種單一的、定義明確的格式,它被廣泛用於在電腦間傳遞資料。
詳細內容 逗號分隔值
應此 在不使用資料庫情況下,Csv是一個很好的選擇
在C#中,存讀文件中可以使用 FileStream,讓開發者簡略了許多,
所以簡單的應用,程式非常的短。
讀取.Csv
使用FileStream 記得using System.IO
並且為了不讓記憶體一直肥大,記得將 FileStream 釋放掉。
// filePath 為文件位置
文件的編碼模式可於 sr 最後修改 (Encoding.UTF8)
public void OpenReadCSV(string filePath)
{
FileStream fs = new FileStream(filePath, System.IO.FileMode.Open, System.IO.FileAccess.Read);
StreamReader sr = new StreamReader(fs, Encoding.UTF8);
//記錄每次讀取的一行記錄
string strLine = "";
string[] tableString = null;
//逐行讀取CSV中的數據
while ((strLine = sr.ReadLine()) != null)
{
tableString = strLine.Split(',');
textBox1.Text = tableHead[0];
textBox2.Text = tableHead[1];
textBox3.Text = tableHead[2];
textBox4.Text = tableHead[3];
}
sr.Close();
fs.Close();
}
儲存.Csv
FileStream fs = new FileStream(fileName, System.IO.FileMode.Create, System.IO.FileAccess.Write);
StreamWriter sw = new StreamWriter(fs, System.Text.Encoding.Default);
string[] dt = new string[4];
string data = "";
//將MainFrom內的testBox內容存入矩陣
var formTextBox = this.Controls.OfType<TextBox>();
for (int i=0;i<4;i++) {
string TextBoxName = "textBox"+(i+1);
TextBox myTB = formTextBox.Where(g => g.Name == TextBoxName).SingleOrDefault();
dt[i] = myTB.Text;
}
//寫出列名稱
for (int i = 0; i < dt.Length; i++)
{
data += dt[i].ToString();
if (i < dt.Length - 1)
{
data += ",";
}
}
sw.WriteLine(data);
sw.Close();
fs.Close();
MessageBox.Show("保存成功!");
簡易範例檔下載
沒有留言:
張貼留言