检查CSV文件的格式

能检查到的错误类型:

1:连续两个逗号;

2:最后一个字符为逗号;

3:列数不一致;

4:某行为空。

bool  checkCsvFormat(const char * csvFileName)
{
 fstream fin(csvFileName,ios::in);
 char  str[500];
    int colNum=0,nextColNum=0,line=0;
 while(fin.getline(str,500))
 {  
  line++;
  string temp=str;
  int len=temp.length(); 
  if(""==temp)//空行
  {
       printf("The line %d is empty!",line);
    return false;
  }
  if(','==temp[0])//第一个字符为逗号
  {
       printf("The first char is \",\"at the line %d!",line);
    return false;
  }
  if(','==temp[len-1])//最后一个字符为逗号
  {
       printf("The last char is \",\"at the line %d!",line);
    return false;
  }
  int num=0;
  for(int i=1;i<len-1;i++)
  { 
   if(','==temp[i])//连续两个逗号
   {  
    if(','==temp[i+1])
    {
     printf("There are two \",\"continuously at the line %d!",line);
     return false;
    }
    else
    {
     num++;
    }
   }
  }
  if(1==line)
  {
   colNum=num;
  }
  else
  {
   nextColNum=num;
  }
  if(line>=2)
  {
   if(nextColNum!=colNum)//列数不等
   {
    printf("The number of columns at the line %d is different from before it!",line);
    //printf("column =%d,nextColNum=%d",colNum ,nextColNum);
    return false;
   }
  }
  
 }
 fin.close();
 return true;
}

     

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值