文件的读/写

/写入文件,数据集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("读取文件成功!");

  • 0
    点赞
  • 0
    收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:大白 设计师:CSDN官方博客 返回首页
评论

打赏作者

earwig20002000

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值