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;
            }
        }
View Code

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
View Code

应用的类方法:

   /// <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;
        }
View Code

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;
            }
        }

 

posted @ 2015-04-08 11:58  王小贝  阅读(754)  评论(0)    收藏  举报