format Blog

给我个权限,我format你的硬盘.

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
在处理CSV文件的时候发现,不能简单的用逗号来拆分内容,如果在双引号里面有逗号,那么这行将解析错误。最后找到个用正则表达式来splite的简单方面。原理就是用","来作为拆分的标记。

         /// <summary>
        
/// 把一个CSV文件读到一个DataTable中
        
/// </summary>
        
/// <param name="strpath">文件完整路径</param>
        
/// <returns>DataTable</returns>
        public static DataTable GetTable(string strpath)
        {
            Regex reg 
= new Regex("\",\"");
            
int intColCount = 0;
            DataTable mydt 
= new DataTable("myTableName");

            
//DataColumn mydc;
            
//DataRow mydr;

            
//string strpath = "";
            string strline;
            
string[] aryline;

            StreamReader mysr 
= new StreamReader(strpath,System.Text.Encoding.Default);
            strline 
= mysr.ReadLine();

            aryline 
= reg.Split(strline);

            intColCount 
= aryline.Length;
            
for (int i = 0; i < aryline.Length; i++)
            {
                DataColumn mydc 
= new DataColumn(aryline[i].Replace("\""""), typeof(string));
                mydt.Columns.Add(mydc);
            }
            
            
while ((strline = mysr.ReadLine()) != null)
            {
                aryline 
= reg.Split(strline);
                
                DataRow mydr 
= mydt.NewRow();
                
for (int i = 0; i < intColCount; i++)
                {
                    mydr[i] 
= aryline[i].Replace("\"","");
                }
                mydt.Rows.Add(mydr);
            }
            
return mydt;
        }
posted on 2006-07-26 14:04  format  阅读(1493)  评论(1编辑  收藏  举报