文件的读/写

类别:编程语言 点击:0 评论:0 推荐:

/写入文件,数据集ClientDataSet1里有a,b,c三个字段

if (ClientDataSet1->IsEmpty())
{
 ShowMessage("文件没有内容可以写入!");
 return;
}
SaveDialog1->Title = "选择路径名:";
SaveDialog1->FileName = "模块名" + Date().FormatString("yyyymmdd");
SaveDialog1->DefaultExt = "txt";
SaveDialog1->Filter = "文本文件(*.txt)|(*.txt)|所有文件(*.*)|(*.*)";
ClientDataSet1->First();
while (!ClientDataSet1->Eof)
{
 File * fp = fopen(SaveDialog1->FieldName,"wt");
 fprintf(fp, "%s\t", ClientDataSet1->FieldByName("a")->AsString.Trim());
 fprintf(fp, "%s\t", ClientDataSet1->FieldByName("b")->AsString.Trim());
 fprintf(fp, "%s\n", ClientDataSet1->FieldByName("c")->AsString.Trim());
 ClientDataSet1->Next();
}
fclose(fp);
ShowMessage("写入文件成功!");

//读取文件,存储到数据集ClientDataSet1的a,b,c字段中
int  i=0,ch,ntype=0;
char str[256];
AnsiString a,b,c;
File * fp = fopen(OpenDialog->FileName,"rt");
ClientDataSet1->EmptyDataSet();
while ((ch = fgetc(fp))!=Eof)
switch(ch)
{
 case '\t':
  str[ntype] = '\0';
  switch(i):
  {
   case 0: a = str;break;
   case 1: b = str;break;
   case 2: c = str;bread;
  }
  i++;
  ntype = 0;
  break;
 case '\n':
  str[ntype] = '\0';
  ClientDataSet1->Insert();
  ClientDataSet1->FieldByName("a")->AsString = a.Trim();
  ClientDataSet1->FieldByName("b")->AsString = a.Trim();
  ClientDataSet1->FieldByName("c")->AsString = a.Trim();
  i = 0;
  n = 0;
  break;
 default:
  str[ntype] = ch;
  ntype++;
}
fclose(fp);
ClientDataSet1->Post();
ShowMessage("读取文件成功!");

本文地址:http://com.8s8s.com/it/it28912.htm