MTK平台ZCV表格数据导入到cust_battery_meter_table.h

来源:互联网 发布:中国贸易摩擦数据 编辑:程序博客网 时间:2024/06/08 04:50

一、简介

        由于电池供应商给过来的电池参数表格都是xls的,每个项目将xls的数据一一导入到cust_battery_meter_table.h需要花费大量的时间,而且一不小心就容易手动导入中出现部分数据错误。因此继续一种自动化脚本来进行数据的操作。


二、C语言读写xls表格

1、ubuntu默认不支持解析xls的函数,所以首先需要下载libxl库,链接:http://www.libxl.com/

选择:LibXL for Linux 3.6.5   (2015-11-18)

Download

Size: 10 344 757 bytes
MD5: 6534D494A69DCA8FD6B6582D27B68D93

下载解压后进入libxl-3.6.5.0/examples/c++目录下



三、代码编写

1、思路:从cust_battery_meter_table.h文件逐行读取并写入到新创建的copy_cust_battery_meter_table.h,当读取到电量时,从xls表格中查找到对应的OCV值并写入到新建文件,直到最后文件结束。


2、步骤:a、首先将ZCV表格和cust_battery_meter_table.h文件拷贝到libxl-3.6.5.0/examples/c++目录下

                b、在该目录下新建编译的文件read.cpp,并配置好Makfile文件,由于可能你的系统不支持g++,所以还需要安装g++,首先sudo apt-get update,然后sudo apt-get install g++即可


3、代码:由于时间有限,code还没有编写完毕,还处于调试阶段,希望有共同目标的人帮忙一起完善好代码,代码框架优点乱,还请多多包涵。

#include <iostream>#include "libxl.h"#include<sys/stat.h>#include<fcntl.h>  #include<stdio.h>#include <string.h>#include<unistd.h> #include<stdlib.h> #include <cstdlib>using namespace libxl;enum tem{Tdef=0,T0,T1,T2,T3,};enum Rbat{TRdef=5,TR0,TR1,TR2,TR3,};int Tbuf0[200][2];int Tbuf1[200][2];int Tbuf2[200][2];int Tbuf3[200][2];int flag;static int i =2,j=0;int findstr(int dod,int number){    Book* book = xlCreateBook();    //char buf[4];    //ptr=buf;    int voltage;    if(book)    {        if(book->load("example.xls"))        {            Sheet* sheet = book->getSheet(0);            if(sheet)            {//unsigned int i= 1;while(1){sleep(0.1); //调试专用,调试时设置成1sdouble dod_pre = sheet->readNum(i,number);//read xls dod doblue doddod_pre+=0.5;//四舍五入std::cout << "dod=" <<dod<< "  dod_pre=" <<dod_pre<<"  i=" <<i<<std::endl;int dod_new=(int)(dod_pre);std::cout << "dod_new=" <<dod_new<< std::endl;if(dod==0&&dod_new==1){dod_new=0;i=1;}if(dod==dod_new){std::cout << "dod==dod_pre" << std::endl;double vol;int rbat;vol = sheet->readNum(i, number-4);//read xls voltagerbat = sheet->readNum(i, number+1);voltage=(int)(vol*1000);switch(flag){case T0:Tbuf0[j][0]=voltage;Tbuf0[j][1]=rbat;std::cout << "Tbuf0[voltage]=" <<Tbuf0[j][0]<< "  Tbuf0[rbat]=" <<Tbuf0[j][1]<<std::endl;j++;break;case T1:Tbuf1[j][0]=voltage;Tbuf1[j][1]=rbat;std::cout << "Tbuf0[voltage]=" <<Tbuf0[j][0]<< "  Tbuf0[rbat]=" <<Tbuf0[j][1]<<std::endl;j++;break;break;case T2:Tbuf2[j][0]=voltage;Tbuf2[j][1]=rbat;std::cout << "Tbuf0[voltage]=" <<Tbuf0[j][0]<< "  Tbuf0[rbat]=" <<Tbuf0[j][1]<<std::endl;j++;break;break;case T3:Tbuf3[j][0]=voltage;Tbuf3[j][1]=rbat;std::cout << "Tbuf0[voltage]=" <<Tbuf0[j][0]<< "  Tbuf0[rbat]=" <<Tbuf0[j][1]<<std::endl;j++;break;break;default:break;}break;}else i++;}return voltage;    }}   book->release();   }   }int main() {    int from_fd, to_fd;    FILE *fp;    FILE *fp1;    char *line=NULL;    size_t length,length1;    int voltage,col,rbat,next;    char buffer[3]={'{',',','}'};    char str_vol[4],str_dod[2],str_r[4];    from_fd=open("metter.h",O_WRONLY);    fp =fopen("cust_battery_meter_table.h","r");    fp1 =fopen("metter.h","w");    while(length1=getline(&line,&length,fp)){     length = 0;    /*****************判断读取的文件是否结束start*********************/    std::cout << "*line =" <<*line<< std::endl;    if(*line=='H'){sleep(0.1);    std::cout << "*line =" <<*line<< std::endl;     break;    }    /*****************判断读取的文件是否结束end**********************/    while(*(line+length)!='\n'){          if((*(line+length)=='0')&&(*(line+length+1)=='[')){flag = T0;std::cout << "*(line)=" <<*(line)<< std::endl;sleep(0.1);if((*line)=='R'){std::cout << "*(line)1=" <<*(line)<< std::endl;flag = TR0;sleep(0.1);next =0;}}  else if((*(line+length)=='1')&&(*(line+length+1)=='[')){                flag = T1;if(*(line)=='R'){std::cout << "in T0" << std::endl;flag = TR1;next =0;}i=2;j=0;}          else if((*(line+length)=='2')&&(*(line+length+1)=='[')){                flag = T2;sleep(1);if(*(line)=='R')flag = TR2;next =0;i=2;j=0;}          else if((*(line+length)=='3')&&(*(line+length+1)=='[')){                flag = T3;if(*(line)=='R')flag = TR3;next =0;i=2;j=0;}          else if((*(line+length)=='}')&&(*(line+length+1)==';')){flag = Tdef;}              length++;    }    int dod_pre;    int vol;    int a=-1,b=-1,c=-1,d=0;    switch(flag){case T0:std::cout << "in T0" << std::endl;std::cout << line << std::endl;col=0;while(*(line+col)!='\n'){if(*(line+col)=='{'){if(*(line+col+1)=='\n'){std::cout <<"ddddddd="<<d  << std::endl;break;}while(1){if((*(line+col+d)<='9')&&(*(line+col+d)>='0')){std::cout <<"in while(1)"<<*(line+col+d)  << std::endl;break;}d++;}if((*(line+col+d)<='9')&&(*(line+col+d)>='0'))a=*(line+col+d)-'0';else break;if((*(line+col+d+1)<='9')&&(*(line+col+d+1)>='0'))b=*(line+col+d+1)-'0';if((*(line+col+d+2)<='9')&&(*(line+col+d+2)>='0'))c=*(line+col+d+2)-'0';if(b==-1){dod_pre=a;std::cout << "a=?" << std::endl;std::cout << a << std::endl;vol=findstr(dod_pre,26);}else if(b!=-1&&c==-1){dod_pre=a*10+b;vol=findstr(dod_pre,26);}else if(c==0){dod_pre=100;vol=findstr(dod_pre,26);}std::cout << vol << std::endl;sprintf(str_vol, "%d", vol);}if(*(line+col)==','){std::cout <<"vol to int 1" << std::endl;int dd=-1;if(*(line+col+1)=='\n'){std::cout <<"ddddddd="<<d  << std::endl;break;}while(1){if((*(line+col+dd)<='9')&&(*(line+col+dd)>='0')){std::cout <<"in while(1)"<<*(line+col+dd)  <<"dd="<<dd<<std::endl;sleep(0.1);break;}dd++;}if((*(line+col+dd)<='9')&&(*(line+col+dd)>='0')){std::cout <<"str_vol chenleillllllllll" << std::endl;*(line+col+dd)=str_vol[0];std::cout <<line+col+dd+1<< std::endl;}if((*(line+col+dd+1)<='9')&&(*(line+col+dd+1)>='0'))*(line+col+dd+1)=str_vol[1];if((*(line+col+dd+2)<='9')&&(*(line+col+dd+2)>='0'))*(line+col+dd+2)=str_vol[2];if((*(line+col+dd+3)<='9')&&(*(line+col+dd+3)>='0'))*(line+col+dd+3)=str_vol[3];//col++;std::cout <<"vol to int" << std::endl;}col++;}                break;case T1:std::cout << "in T1" << std::endl;std::cout << "old line="<<line << std::endl;col=0;while(*(line+col)!='\n'){if(*(line+col)=='{'){if(*(line+col+1)=='\n'){std::cout <<"ddddddd="<<d  << std::endl;break;}while(1){if((*(line+col+d)<='9')&&(*(line+col+d)>='0')){std::cout << "in while(1)"<<*(line+col+d) << std::endl;break;}d++;}if((*(line+col+d)<='9')&&(*(line+col+d)>='0'))a=*(line+col+d)-'0';else break;if((*(line+col+d+1)<='9')&&(*(line+col+d+1)>='0'))b=*(line+col+d+1)-'0';if((*(line+col+d+2)<='9')&&(*(line+col+d+2)>='0'))c=*(line+col+d+2)-'0';if(b==-1){dod_pre=a;std::cout << "a=?" << std::endl;std::cout << a << std::endl;vol=findstr(dod_pre,19);}else if(b!=-1&&c==-1){dod_pre=a*10+b;vol=findstr(dod_pre,19);}else if(c==0){dod_pre=100;vol=findstr(dod_pre,19);}std::cout << vol << std::endl;sprintf(str_vol, "%d", vol);}if(*(line+col)==','){std::cout <<"vol to int 1" << std::endl;int dd=-1;if(*(line+col+1)=='\n'){std::cout <<"ddddddd="<<d  << std::endl;break;}while(1){if((*(line+col+dd)<='9')&&(*(line+col+dd)>='0')){std::cout <<"in while(1)"<<*(line+col+dd)  <<"dd="<<dd<<std::endl;sleep(0.1);break;}dd++;}if((*(line+col+dd)<='9')&&(*(line+col+dd)>='0')){std::cout <<"str_vol chenleillllllllll" << std::endl;*(line+col+dd)=str_vol[0];std::cout <<line+col+dd+1<< std::endl;}if((*(line+col+dd+1)<='9')&&(*(line+col+dd+1)>='0'))*(line+col+dd+1)=str_vol[1];if((*(line+col+dd+2)<='9')&&(*(line+col+dd+2)>='0'))*(line+col+dd+2)=str_vol[2];if((*(line+col+dd+3)<='9')&&(*(line+col+dd+3)>='0'))*(line+col+dd+3)=str_vol[3];//col++;std::cout <<"vol to int" << std::endl;//}}col++;}                break;case T2:std::cout << "in T2" << std::endl;std::cout << line << std::endl;col=0;while(*(line+col)!='\n'){if(*(line+col)=='{'){if(*(line+col+1)=='\n'){std::cout <<"ddddddd="<<d  << std::endl;break;}while(1){if((*(line+col+d)<='9')&&(*(line+col+d)>='0'))break;d++;}if((*(line+col+d)<='9')&&(*(line+col+d)>='0'))a=*(line+col+d)-'0';else break;if((*(line+col+d+1)<='9')&&(*(line+col+d+1)>='0'))b=*(line+col+d+1)-'0';if((*(line+col+d+2)<='9')&&(*(line+col+d+2)>='0'))c=*(line+col+d+2)-'0';if(b==-1){dod_pre=a;std::cout << "a=?" << std::endl;std::cout << a << std::endl;vol=findstr(dod_pre,12);}else if(b!=-1&&c==-1){dod_pre=a*10+b;vol=findstr(dod_pre,12);}else if(c==0){dod_pre=100;vol=findstr(dod_pre,12);}std::cout << vol << std::endl;sprintf(str_vol, "%d", vol);}if(*(line+col)==','){std::cout <<"vol to int 1" << std::endl;int dd=-1;if(*(line+col+1)=='\n'){std::cout <<"ddddddd="<<d  << std::endl;break;}while(1){if((*(line+col+dd)<='9')&&(*(line+col+dd)>='0')){std::cout <<"in while(1)"<<*(line+col+dd)  <<"dd="<<dd<<std::endl;sleep(0.1);break;}dd++;}if((*(line+col+dd)<='9')&&(*(line+col+dd)>='0')){std::cout <<"str_vol chenleillllllllll" << std::endl;*(line+col+dd)=str_vol[0];std::cout <<line+col+dd+1<< std::endl;}if((*(line+col+dd+1)<='9')&&(*(line+col+dd+1)>='0'))*(line+col+dd+1)=str_vol[1];if((*(line+col+dd+2)<='9')&&(*(line+col+dd+2)>='0'))*(line+col+dd+2)=str_vol[2];if((*(line+col+dd+3)<='9')&&(*(line+col+dd+3)>='0'))*(line+col+dd+3)=str_vol[3];//col++;std::cout <<"vol to int" << std::endl;}col++;}                break;case T3:std::cout << "in T3" << std::endl;std::cout << line << std::endl;col=0;while(*(line+col)!='\n'){if(*(line+col)=='{'){if(*(line+col+1)=='\n'){std::cout <<"ddddddd="<<d  << std::endl;break;}while(1){if((*(line+col+d)<='9')&&(*(line+col+d)>='0'))break;d++;}if((*(line+col+d)<='9')&&(*(line+col+d)>='0'))a=*(line+col+d)-'0';else break;if((*(line+col+d+1)<='9')&&(*(line+col+d+1)>='0'))b=*(line+col+d+1)-'0';if((*(line+col+d+2)<='9')&&(*(line+col+d+2)>='0'))c=*(line+col+d+2)-'0';if(b==-1){dod_pre=a;std::cout << "a=?" << std::endl;std::cout << a << std::endl;vol=findstr(dod_pre,5);}else if(b!=-1&&c==-1){dod_pre=a*10+b;vol=findstr(dod_pre,5);}else if(c==0){dod_pre=100;vol=findstr(dod_pre,5);}std::cout << vol << std::endl;sprintf(str_vol, "%d", vol);}if(*(line+col)==','){std::cout <<"vol to int 1" << std::endl;int dd=-1;if(*(line+col+1)=='\n'){std::cout <<"ddddddd="<<d  << std::endl;break;}while(1){if((*(line+col+dd)<='9')&&(*(line+col+dd)>='0')){std::cout <<"in while(1)"<<*(line+col+dd)  <<"dd="<<dd<<std::endl;sleep(0.1);break;}dd++;}if((*(line+col+dd)<='9')&&(*(line+col+dd)>='0')){std::cout <<"str_vol chenleillllllllll" << std::endl;*(line+col+dd)=str_vol[0];std::cout <<line+col+dd+1<< std::endl;}if((*(line+col+dd+1)<='9')&&(*(line+col+dd+1)>='0'))*(line+col+dd+1)=str_vol[1];if((*(line+col+dd+2)<='9')&&(*(line+col+dd+2)>='0'))*(line+col+dd+2)=str_vol[2];if((*(line+col+dd+3)<='9')&&(*(line+col+dd+3)>='0'))*(line+col+dd+3)=str_vol[3];//col++;std::cout <<"vol to int" << std::endl;}col++;}                break;case TR0:std::cout << "in TR0" << std::endl;std::cout << line << std::endl;col=0;while(*(line+col)!='\n'){str_r[0]=' ';str_r[1]=' ';str_r[2]=' ';str_r[3]=' ';if(*(line+col)=='{'){vol=Tbuf0[next][0];rbat=Tbuf0[next][1];sprintf(str_r, "%d", rbat);int dd=-1;if(*(line+col+1)=='\n'){std::cout <<"break TR0 first {"<<dd  << std::endl;break;}while(1){if((*(line+col+dd)<='9')&&(*(line+col+dd)>='0')){std::cout <<"in while(1)"<<*(line+col+dd)  <<"dd="<<dd<<std::endl;sleep(0.1);break;}dd++;std::cout <<"in while(1)"<<*(line+col+dd)  <<"dd="<<dd<<std::endl;if(dd>10)break;}*(line+col+dd)=' ';*(line+col+dd+1)=' ';*(line+col+dd+2)=' ';*(line+col+dd+3)=' ';if((str_r[0]<='9')&&(str_r[0]>='0')){std::cout <<"str_r chenleillllllllll" << std::endl;*(line+col+dd)=str_r[0];std::cout <<line+col+dd<< std::endl;}if((str_r[1]<='9')&&(str_r[1]>='0'))*(line+col+dd+1)=str_r[1];if((str_r[2]<='9')&&(str_r[2]>='0'))*(line+col+dd+2)=str_r[2];if((str_r[3]<='9')&&(str_r[3]>='0'))*(line+col+dd+3)=str_r[3];next++;std::cout << vol << std::endl;sprintf(str_vol, "%d", vol);}if(*(line+col)==','){std::cout <<"vol to int 1" << std::endl;int dd=-1;if(*(line+col+1)=='\n'){std::cout <<"ddddddd="<<dd  << std::endl;break;}while(1){if((*(line+col+dd)<='9')&&(*(line+col+dd)>='0')){std::cout <<"in while(1)"<<*(line+col+dd)  <<"dd="<<dd<<std::endl;sleep(0.1);break;}if(dd>10)break;dd++;}if((*(line+col+dd)<='9')&&(*(line+col+dd)>='0')){std::cout <<"str_vol chenleillllllllll" << std::endl;*(line+col+dd)=str_vol[0];std::cout <<line+col+dd+1<< std::endl;}if((*(line+col+dd+1)<='9')&&(*(line+col+dd+1)>='0'))*(line+col+dd+1)=str_vol[1];if((*(line+col+dd+2)<='9')&&(*(line+col+dd+2)>='0'))*(line+col+dd+2)=str_vol[2];if((*(line+col+dd+3)<='9')&&(*(line+col+dd+3)>='0'))*(line+col+dd+3)=str_vol[3];//col++;std::cout <<"vol to int" << std::endl;//}}col++;}break;case TR1:std::cout << "in TR1" << std::endl;std::cout << line << std::endl;col=0;//str_r[0]=' ';str_r[1]=' ';str_r[2]=' ';str_r[3]=' ';while(*(line+col)!='\n'){str_r[0]=' ';str_r[1]=' ';str_r[2]=' ';str_r[3]=' ';if(*(line+col)=='{'){vol=Tbuf1[next][0];rbat=Tbuf1[next][1];sprintf(str_r, "%d", rbat);int dd=-1;if(*(line+col+1)=='\n'){std::cout <<"break TR0 first {"<<dd  << std::endl;break;}while(1){if((*(line+col+dd)<='9')&&(*(line+col+dd)>='0')){std::cout <<"in while(1)"<<*(line+col+dd)  <<"dd="<<dd<<std::endl;sleep(0.1);break;}dd++;}*(line+col+dd)=' ';*(line+col+dd+1)=' ';*(line+col+dd+2)=' ';*(line+col+dd+3)=' ';if((str_r[0]<='9')&&(str_r[0]>='0')){std::cout <<"str_r chenleillllllllll" << std::endl;*(line+col+dd)=str_r[0];std::cout <<line+col+dd<< std::endl;}if((str_r[1]<='9')&&(str_r[1]>='0'))*(line+col+dd+1)=str_r[1];if((str_r[2]<='9')&&(str_r[2]>='0'))*(line+col+dd+2)=str_r[2];if((str_r[3]<='9')&&(str_r[3]>='0'))*(line+col+dd+3)=str_r[3];next++;std::cout << vol << std::endl;sprintf(str_vol, "%d", vol);}if(*(line+col)==','){std::cout <<"vol to int 1" << std::endl;int dd=-1;if(*(line+col+1)=='\n'){std::cout <<"ddddddd="<<dd  << std::endl;break;}while(1){if((*(line+col+dd)<='9')&&(*(line+col+dd)>='0')){std::cout <<"in while(1)"<<*(line+col+dd)  <<"dd="<<dd<<std::endl;sleep(0.1);break;}dd++;}if((*(line+col+dd)<='9')&&(*(line+col+dd)>='0')){std::cout <<"str_vol chenleillllllllll" << std::endl;*(line+col+dd)=str_vol[0];std::cout <<line+col+dd+1<< std::endl;}if((*(line+col+dd+1)<='9')&&(*(line+col+dd+1)>='0'))*(line+col+dd+1)=str_vol[1];if((*(line+col+dd+2)<='9')&&(*(line+col+dd+2)>='0'))*(line+col+dd+2)=str_vol[2];if((*(line+col+dd+3)<='9')&&(*(line+col+dd+3)>='0'))*(line+col+dd+3)=str_vol[3];//col++;std::cout <<"vol to int" << std::endl;//}}col++;}break;case TR2:std::cout << "in TR2" << std::endl;std::cout << line << std::endl;col=0;//str_r[0]=' ';str_r[1]=' ';str_r[2]=' ';str_r[3]=' ';while(*(line+col)!='\n'){str_r[0]=' ';str_r[1]=' ';str_r[2]=' ';str_r[3]=' ';if(*(line+col)=='{'){vol=Tbuf2[next][0];rbat=Tbuf2[next][1];sprintf(str_r, "%d", rbat);int dd=-1;if(*(line+col+1)=='\n'){std::cout <<"break TR0 first {"<<dd  << std::endl;break;}while(1){if((*(line+col+dd)<='9')&&(*(line+col+dd)>='0')){std::cout <<"in while(1)"<<*(line+col+dd)  <<"dd="<<dd<<std::endl;sleep(0.1);break;}if(dd>10)break;dd++;}*(line+col+dd)=' ';*(line+col+dd+1)=' ';*(line+col+dd+2)=' ';*(line+col+dd+3)=' ';if((str_r[0]<='9')&&(str_r[0]>='0')){std::cout <<"str_r chenleillllllllll" << std::endl;*(line+col+dd)=str_r[0];std::cout <<line+col+dd<< std::endl;}if((str_r[1]<='9')&&(str_r[1]>='0'))*(line+col+dd+1)=str_r[1];if((str_r[2]<='9')&&(str_r[2]>='0'))*(line+col+dd+2)=str_r[2];if((str_r[3]<='9')&&(str_r[3]>='0'))*(line+col+dd+3)=str_r[3];next++;std::cout << vol << std::endl;sprintf(str_vol, "%d", vol);}if(*(line+col)==','){std::cout <<"vol to int 1" << std::endl;int dd=-1;if(*(line+col+1)=='\n'){std::cout <<"ddddddd="<<d  << std::endl;break;}while(1){if((*(line+col+dd)<='9')&&(*(line+col+dd)>='0')){std::cout <<"in while(1)"<<*(line+col+dd)  <<"dd="<<dd<<std::endl;sleep(0.1);break;}if(dd>10)break;dd++;}if((*(line+col+dd)<='9')&&(*(line+col+dd)>='0')){std::cout <<"str_vol chenleillllllllll" << std::endl;*(line+col+dd)=str_vol[0];std::cout <<line+col+dd+1<< std::endl;}if((*(line+col+dd+1)<='9')&&(*(line+col+dd+1)>='0'))*(line+col+dd+1)=str_vol[1];if((*(line+col+dd+2)<='9')&&(*(line+col+dd+2)>='0'))*(line+col+dd+2)=str_vol[2];if((*(line+col+dd+3)<='9')&&(*(line+col+dd+3)>='0'))*(line+col+dd+3)=str_vol[3];//col++;std::cout <<"vol to int" << std::endl;//}}col++;}break;case TR3:std::cout << "in TR3" << std::endl;std::cout << line << std::endl;col=0;//str_r[0]=' ';str_r[1]=' ';str_r[2]=' ';str_r[3]=' ';while(*(line+col)!='\n'){str_r[0]=' ';str_r[1]=' ';str_r[2]=' ';str_r[3]=' ';if(*(line+col)=='{'){vol=Tbuf3[next][0];rbat=Tbuf3[next][1];sprintf(str_r, "%d", rbat);int dd=-1;if(*(line+col+1)=='\n'){std::cout <<"break TR0 first {"<<dd  << std::endl;break;}while(1){if((*(line+col+dd)<='9')&&(*(line+col+dd)>='0')){std::cout <<"in while(1)"<<*(line+col+dd)  <<"dd="<<dd<<std::endl;sleep(0.1);break;}if(dd>10)break;dd++;}*(line+col+dd)=' ';*(line+col+dd+1)=' ';*(line+col+dd+2)=' ';*(line+col+dd+3)=' ';if((str_r[0]<='9')&&(str_r[0]>='0')){std::cout <<"str_r chenleillllllllll" << std::endl;*(line+col+dd)=str_r[0];std::cout <<line+col+dd<< std::endl;}if((str_r[1]<='9')&&(str_r[1]>='0'))*(line+col+dd+1)=str_r[1];if((str_r[2]<='9')&&(str_r[2]>='0'))*(line+col+dd+2)=str_r[2];if((str_r[3]<='9')&&(str_r[3]>='0'))*(line+col+dd+3)=str_r[3];next++;std::cout << vol << std::endl;sprintf(str_vol, "%d", vol);}if(*(line+col)==','){std::cout <<"vol to int 1" << std::endl;int dd=-1;if(*(line+col+1)=='\n'){std::cout <<"ddddddd="<<dd  << std::endl;break;}while(1){if((*(line+col+dd)<='9')&&(*(line+col+dd)>='0')){std::cout <<"in while(1)"<<*(line+col+dd)  <<"dd="<<dd<<std::endl;sleep(0.1);break;}if(dd>10)break;dd++;}if((*(line+col+dd)<='9')&&(*(line+col+dd)>='0')){std::cout <<"str_vol chenleillllllllll" << std::endl;*(line+col+dd)=str_vol[0];std::cout <<line+col+dd+1<< std::endl;}if((*(line+col+dd+1)<='9')&&(*(line+col+dd+1)>='0'))*(line+col+dd+1)=str_vol[1];if((*(line+col+dd+2)<='9')&&(*(line+col+dd+2)>='0'))*(line+col+dd+2)=str_vol[2];if((*(line+col+dd+3)<='9')&&(*(line+col+dd+3)>='0'))*(line+col+dd+3)=str_vol[3];//col++;std::cout <<"vol to int" << std::endl;//}}col++;}break;default:std::cout << "in Tdef" << std::endl;break;    }    write(from_fd,line,length+1);    std::cout << "new line="<<line << std::endl;    usleep(1000);    }end:    if(from_fd<0)std::cout << "open file error" << std::endl;    //write(from_fd, buffer, 15);    Book* book = xlCreateBook();    if(book)    {        if(book->load("example.xls"))        {            Sheet* sheet = book->getSheet(0);            if(sheet)            {                const char* s = sheet->readStr(2, 1);                if(s) std::cout << s << std::endl;unsigned int i= 1; while(0){    //sheet->colWidth(100);//read xls voltage    //sheet->rowHeight(100);//read xls voltage                    double vol = sheet->readNum(1, 1);//read xls voltage      //if(vol==0)      //  break;           int dod = sheet->readNum(i, 5);//read xls dod                                std::cout << vol << std::endl;    voltage=(int)(vol*1000);    //voltage=voltage*1000;    std::cout << voltage << std::endl;    std::cout << i << std::endl;    sprintf(str_vol, "%d", voltage);    sprintf(str_dod, "%d", dod);    if(dod<10){    write(from_fd, buffer, 1);    write(from_fd, str_dod, 1);    write(from_fd, buffer+1, 1);                    write(from_fd, str_vol, 4);    write(from_fd, buffer+2, 1);    write(from_fd, buffer+1, 1);    write(from_fd, "\n", 1);    }else{    write(from_fd, buffer, 1);    write(from_fd, str_dod, 2);    write(from_fd, buffer+1, 1);                    write(from_fd, str_vol, 4);    write(from_fd, buffer+2, 1);    write(from_fd, buffer+1, 1);                    write(from_fd, "\n", 1);   }    std::cout << str_vol << std::endl;    i++;}                /*int year, month, day;                book->dateUnpack(sheet->readNum(4, 1), &year, &month, &day);                std::cout << year << "-" << month << "-" << day << std::endl;*/            }        }                book->release();    }        return 0;}



0 0
原创粉丝点击