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 编辑 ]









