CSV合并的问题
这样写每次都只读取第一行的资料,要怎么改才能将多个CSV档案合并成一个?假设有300个CSV档,每个档案有1000多行,要合并成一个.
0000.csv ... 0300.csv => AAA.csv
程序代码:
void MergeCSV(int fl,char *Tmp, char *TmpFileNameStr1,int TC) { FILE *stream2,*stream3; int i=0,j=0; char TempString[Max_Size]={0},temp[Max_Size]={0}; stream2 = fopen(TmpFileNameStr1, "a+" ); for (i=0;i<(TC+6);i++) { for (j=0;j<fl;j++) { sprintf(TempString,"%s%04d.csv",Tmp,j); stream3 = fopen( TempString, "r" ); if (fgets(temp, Max_Size, stream3)!=NULL) { int ii=strlen(temp); temp[ii-1]='\0'; fprintf(stream2,"%s",temp); } fclose(stream3); memset(TempString,0,sizeof(TempString)); memset(temp,0,sizeof(temp)); fflush(stream2); } fprintf(stream2,"\n"); } fclose(stream2); }
P.S 资料量很大,无法一次全部读入内存中.
[ 本帖最后由 wube 于 2015-3-9 12:23 编辑 ]