C# Txt文件处理方法
将Txt文本作为数据库的处理方法,必须将文本内容按照规定的格式来录入。例如:发布文件|设计源文件|设计资料|备案资料|网站信息|制作文件&
1、首先读取Txt文本内容:
/// <summary> /// 读取文件内容 /// </summary> /// <param name="RUrl">文件链接</param> /// <returns></returns> public string ReadText(string RUrl) { StreamReader sr = new StreamReader(RUrl, Encoding.UTF8); string Con = sr.ReadLine(); sr.Close(); return Con; }
2、将读取内容生成DataTable:
/// <summary> /// 将文本内容读取成DataTable /// </summary> /// <returns></returns> public DataTable GetProjectList() { try { DataTable dt = new DataTable(); DataColumn dc = null; dc = dt.Columns.Add("id", Type.GetType("System.String")); dc = dt.Columns.Add("P_Name", Type.GetType("System.String")); dc = dt.Columns.Add("P_Url", Type.GetType("System.String")); dc = dt.Columns.Add("P_State", Type.GetType("System.String")); dc = dt.Columns.Add("P_DateTime", Type.GetType("System.String")); string ProjectCon = ReadText(Project);//项目内容 string[] ProjectList = ProjectCon.Split('&'); if (ProjectList.Length > 0) { foreach (string WList in ProjectList) { if (WList != "") { DataRow rows = dt.NewRow(); string[] PList = WList.Split('|'); rows["id"] = PList[0]; rows["P_Name"] = PList[1]; rows["P_Url"] = PList[2]; rows["P_State"] = PList[3]; rows["P_DateTime"] = PList[4]; dt.Rows.Add(rows); } } DataTable dtCopy = dt.Copy(); DataView dv = dt.DefaultView; dv.Sort = "P_DateTime desc"; dv.ApplyDefaultSort = true; dtCopy = dv.ToTable(); return dt; } else return null; } catch { return null; } }
3、对文本的增删改
#region 项目修改添加删除 /// <summary> /// 项目添加 /// </summary> /// <param name="model"></param> /// <returns></returns> public bool ProjectAdd(MProject model) { string AddCon = model.ID + "|" + model.P_Name + "|" + model.P_Url + "|" + model.P_State + "|" + model.P_DateTime + "&" + ReadText(Project); if (WreatText(Project, AddCon)) { return true; } return false; } /// <summary> /// 项目添加 /// </summary> /// <param name="model"></param> /// <returns></returns> public bool ProjectAdd(DataTable Dt) { string AddCon = DateTableCon(Dt); if (WreatText(Project, AddCon)) { return true; } return false; } /// <summary> /// 项目修改 /// </summary> /// <param name="model"></param> /// <returns></returns> public bool ProJectUpdata(MProject model) { DataTable dt = GetProjectList(); DataRow DtRows = dt.Select("id='" + model.ID + "'")[0]; dt.Rows.Remove(DtRows); dt.Rows.Add(GetProJectRows(model, dt)); return ProjectAdd(dt); } /// <summary> /// 删除内容 /// </summary> /// <param name="ID">ID</param> /// <returns></returns> public bool ProJectDelete(string ID) { try { DataTable dt = GetProjectList(); DataRow DtRows = dt.Select("id='" + ID + "'")[0]; dt.Rows.Remove(DtRows); return true; } catch { return false; } } #endregion
应用的类方法:
/// <summary> /// 返回RroJectRows 内容 /// </summary> /// <param name="model"></param> /// <returns></returns> private DataRow GetProJectRows(MProject model, DataTable dt) { if (model != null) { DataRow rows = dt.NewRow(); rows["id"] = model.ID; rows["P_Name"] = model.P_Name; rows["P_Url"] = model.P_Url; rows["P_State"] = model.P_State; rows["P_DateTime"] = model.P_DateTime; return rows; } else return null; } /// <summary> /// 根据ID获取指定内容 /// </summary> /// <param name="ID"></param> /// <returns></returns> public MProject GetProjectCon(string ID) { try { DataTable dt = GetProjectList(); DataRow DtRows = dt.Select("id='" + ID + "'")[0]; MProject model = new MProject(); if (DtRows != null) { model.ID = DtRows[0].ToString(); model.P_Name = DtRows[1].ToString(); model.P_Url = DtRows[2].ToString(); model.P_State = DtRows[3].ToString(); model.P_DateTime = Convert.ToDateTime(DtRows[4]); return model; } else { return null; } } catch { return null; } } /// <summary> /// 将DataTable读取成规定格式 /// </summary> /// <param name="dt"></param> /// <returns></returns> private string DateTableCon(DataTable dt) { string Con = ""; if (dt.Rows.Count > 0) { foreach (DataRow rows in dt.Rows) { Con += rows["ID"].ToString() + "|"; Con += rows["P_Name"].ToString() + "|"; Con += rows["P_Url"].ToString() + "|"; Con += rows["P_State"].ToString() + "|"; Con += rows["P_DateTime"].ToString() + "&"; } } return Con; }
model代码:
public class MProject { /// <summary> /// 项目情况内容 /// </summary> public string ID { get; set; } public string P_Name { get; set; } public string P_Url { get; set; } public string P_State { get; set; } public DateTime P_DateTime { get; set; } }
文本写入代码:
/// <summary> /// 将内容写入Text文件 /// </summary> /// <param name="RUrl">文件地址</param> /// <param name="Con">内容</param> /// <returns></returns> public bool WreatText(string RUrl, string Con) { try { FileStream fs = new FileStream(RUrl, FileMode.Open, FileAccess.ReadWrite); fs.Seek(0, SeekOrigin.Begin); fs.SetLength(0); StreamWriter sw = new StreamWriter(fs); sw.WriteLine(Con); sw.Close(); fs.Close(); return true; } catch { return false; } }

浙公网安备 33010602011771号