疑惑:记录集存为CSV文件
lo0P 2003-08-18 06:07:42 一位CSDn的朋友写的一段代码,我感觉有些问题
bool SaveToFile(const char *FileName,TDataSet *DataSet)
//CSV OutPut
//TXT_FixSeparator::
{
FILE *fstream = fopen(FileName,"w");
int i,count ;
char *s ; //疑惑,不分配内存,直接用指针就可以?
if(!fstream) return false;
count = (DataSet->FieldCount < FieldCount)?DataSet->FieldCount:FieldCount ;
DataSet->DisableControls();
for(DataSet->First();!DataSet->Eof;DataSet->Next())
{
s = StrECopy(buff,DataSet->Fields->Fields[0]->Text.c_str());//buff为何物,全局变量?
//用StrECopy要比+操作符快。
for(i = 1 ; i < count; ++i)
{
*s++ = separator ; //default separator = '0x09' ;//TAB分隔符。
s = StrECopy(s,DataSet->Fields->Fields[i]->Text.c_str());
}
fputs(buff,fstream);
}
DataSet->EnableControls();
fclose(fstream);
return true;
}
怎样才好用呢?