处理CSV格式行的算法

将一行CSV(Comma Separated Value)格式的字符串分解成字符串列表,比如

一行csv格式数据:1,aa,"aa,bb","a,""b""",a

分解后:

1

aa

aa,bb

a,"b"

这里下载一个简单的源程序.

界面:

 

         private  List < string >  SpliteLine( string  line)
        {
            List
< string >  list  =   new  List < string > ();
            
int  count  =   0 ;
            
string  field  =   string .Empty;
            
foreach  ( char  c  in  line)
            {
                
if  (c  ==   ' , ' )
                {
                    
if  (count  %   2 == 0 ) // 已经选择了一个列的数据
                    {
                        
if  (field.Length  >   0 )
                        {
                            
if  (field.IndexOf( ' " ' ==   0 )
                            {
                                field 
=  field.Substring( 1 );
                            }

                            
if  (field.LastIndexOf( ' " ' ==  field.Length  -   1 )
                            {
                                field 
=  field.Substring( 0 , field.Length  -   1 );
                            }

                            field 
=  field.Replace( "/ "/" " "/ " " );
                        }

                        list.Add(field);
                        field 
=   string .Empty;
                    }
                    
else
                    {
                        field 
+=  c;
                    }
                }
                
else   if  (c  ==   ' " ' )
                {
                    field 
+=  c;
                    count
++ ;
                }
                
else
                {
                    field 
+=  c;
                }

            }

            
if  (field  !=   string .Empty)
            {
                list.Add(field);
                field 
=   string .Empty;
            }
            
return  list;
        }
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值