1. 程式人生 > >【學習記錄】C#儲存資料至CSV文件 & DateTime格式模式控制解釋

【學習記錄】C#儲存資料至CSV文件 & DateTime格式模式控制解釋

資料類的定義:
   public class Result_Display
    {
        private string id;
        public string ID
        {
            get
            {
                return id;
            }
            set
            {
                id = value;
            }
        }
        private string depth;
        public string DEPTH
        {
            get
            {
                return depth;
            }
            set
            {
                depth = value;
            }
        }
        public Result_Display(string id, string depth)
        {
            this.id = id;
            this.depth = depth;
         }
        public Result_Display() { }
        
    }

建立檔案方法:       

        private string CreateFile(string folder, string fileName, string fileExtension)
        {
            FileStream fs = null;
            string filePath = folder + fileName + "." + fileExtension;
            try
            {
                if (!Directory.Exists(folder))
                {
                    Directory.CreateDirectory(folder);
                }
                fs = File.Create(filePath);
            }
            catch (Exception ex)
            { }
            finally
            {
                if (fs != null)
                {
                    fs.Dispose();
                }
            }
            return filePath;
        }
儲存資料主函式:
        private bool SaveDataToCSVFile(Result_Display data, string filePath)
        {
            bool successFlag = true;

            StringBuilder strID = new StringBuilder();
            StringBuilder strValue = new StringBuilder();
            StreamWriter sw = null;

            try
            {
                sw = new StreamWriter(filePath,true);//此處的true代表續寫,false代表覆蓋
                strID.Append(data.ID);
                strID.Append(",");

                sw.Write(strID);    //看個人需要,WirteLine()比Write()字串尾多一個換行符

                strValue.Append(data.DEPTH);

                sw.WriteLine(strValue); 
            }
            catch (Exception ex)
            {
                successFlag = false;
            }
            finally
            {
                if (sw != null)
                {
                    sw.Dispose();
                }
            }

            return successFlag;
        }  

附一張儲存的csv效果圖:


/***************************************************************************/

有時儲存檔案時需要以當前時間進行命名,關於格式控制的解釋如下:

    d 月中的某一天。一位數的日期沒有前導零。 
 dd 月中的某一天。一位數的日期有一個前導零。 
 ddd 週中某天的縮寫名稱,在 AbbreviatedDayNames 中定義。 
 dddd 週中某天的完整名稱,在 DayNames 中定義。 
 M 月份數字。一位數的月份沒有前導零。 
 MM 月份數字。一位數的月份有一個前導零。 
 MMM 月份的縮寫名稱,在 AbbreviatedMonthNames 中定義。 
 MMMM 月份的完整名稱,在 MonthNames 中定義。 
 y 不包含紀元的年份。如果不包含紀元的年份小於 10,則顯示不具有前導零的年份。 
 yy 不包含紀元的年份。如果不包含紀元的年份小於 10,則顯示具有前導零的年份。 
 yyyy 包括紀元的四位數的年份。 
 gg 時期或紀元。如果要設定格式的日期不具有關聯的時期或紀元字串,則忽略該模式。 
 h 12 小時制的小時。一位數的小時數沒有前導零。 
 hh 12 小時制的小時。一位數的小時數有前導零。 
 H 24 小時制的小時。一位數的小時數沒有前導零。 
 HH 24 小時制的小時。一位數的小時數有前導零。 
 m 分鐘。一位數的分鐘數沒有前導零。 
 mm 分鐘。一位數的分鐘數有一個前導零。 
 s 秒。一位數的秒數沒有前導零。 
 ss 秒。一位數的秒數有一個前導零。 
 f 秒的小數精度為一位。其餘數字被截斷。 
 ff 秒的小數精度為兩位。其餘數字被截斷。 
 fff 秒的小數精度為三位。其餘數字被截斷。 
 ffff 秒的小數精度為四位。其餘數字被截斷。 
 fffff 秒的小數精度為五位。其餘數字被截斷。 
 ffffff 秒的小數精度為六位。其餘數字被截斷。 
 fffffff 秒的小數精度為七位。其餘數字被截斷。 
 t 在 AMDesignator 或 PMDesignator 中定義的 AM/PM 指示項的第一個字元(如果存在)。 
 tt 在 AMDesignator 或 PMDesignator 中定義的 AM/PM 指示項(如果存在)。 
 z 時區偏移量(“+”或“-”後面僅跟小時)。一位數的小時數沒有前導零。例如,太平洋標準時間是“-8”。 
 zz 時區偏移量(“+”或“-”後面僅跟小時)。一位數的小時數有前導零。例如,太平洋標準時間是“-08”。 
 zzz 完整時區偏移量(“+”或“-”後面跟有小時和分鐘)。一位數的小時數和分鐘數有前導零。例如,太平洋標準時間是“-08:00”。

eg:DateTime.Now.ToString("HH時mm分ss秒_M月d日");  將輸出類似這種:18時39分20秒_12月11日