从文本文件中读入的数据如何保存?谢谢!

echocheng 2003-09-18 05:50:56
我想实现的功能是:从一个文本文件读出我需要的数据,然后在Form1中显示出来。现在我可以实现从文本文件读出数据这部分,但是读入的数据如何保存,我不是太清楚。下面是我的部分代码:
AnsiString FileName;
FileName = "read-file.txt";//从这个文本文件中读出我需要的数据,内容见下面
ifstream ifs(FileName.c_str());
if (!ifs)
{
ShowMessage("不能打开文件'" + FileName + "'进行读取。");
return ;
}

while(!ifs.eof())
{
TPoint DotPoint;
string Caption;
double Value;
ifs >> DotPoint.x >> DotPoint.y >> Caption >> Value;//-----(1)
.....
}
第一次执行到(1)时,DotPoint.x 的内容为50,DotPoint.y 的内容为50,Caption 的值为流量一 ,Value为50;即read-file.txt第一行的内容
第二次运行到(1)时,读取的值是read-file.txt第二行的内容

文本read-file.txt的内容
50 50 流量一 50
100 100 流量二 100
.................

请问我读入的数据应该如何保存呀?请说的稍微详细一些,多谢了!
...全文
122 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
GeoPhoenix 2003-09-18
  • 打赏
  • 举报
回复
不知道你的数据是否已经存在一个文本文件了,如果这个问件已经存在,不知道你要干什么,如果就像你所说的那样,在Form上放一个memo控件就可以了
读入数据 memo1->Lines->LoadFromFile(FileName);
如果要保存数据 Memo1->Lines->SaveToFile(FileName)就Ok了,所见即所得
如果你还想对读入的数据进行什么处理的话,那么读入数据就比较麻烦一点
定义一个如下的结构
struct Node
{
int x;
int y;
char index[10];
int stream;
};
将一行数据读入一个结构,如果事先知道有多少行,可直接定义一个结构数组,如果不知道行数,可使用一个TList 将每一个结构插入这个TList中,再进行处理,处理完毕后
在存盘,存盘的例子如下
Node demo;
FILE *fp;
fp =fopen(FileName,"wt");
fprintf(fp,"%d %d %s %d",demo.x,demo.y,demo.index,demo.stream);
如果是一个结构数组,循环,如果TList将每一个结构从TList中取出来,再按照上面的例子进行存盘

}


echocheng 2003-09-18
  • 打赏
  • 举报
回复
自己up下!
weibz0525 2003-09-18
  • 打赏
  • 举报
回复
不用文本显示控件,那就只好拿canvas画上去了,:)
echocheng 2003-09-18
  • 打赏
  • 举报
回复
to: warton(无形无声)
我想用vector来保存,这样好吗?
我现在还在测试,还没有实现我要的结果!
你说用Memo来操作,是把Memo放在Form上面吗?这样在Form上不就多了一个Memo控件吗?

文本数据库操作这个我该怎么操作,我没有用过!
多谢!

warton 2003-09-18
  • 打赏
  • 举报
回复
数据的值你肯定要在程序中保存下来吧,每一行保存到一个结构里!
到最后再把它们都写回到文件就行了
要简单的话,用个Memo来操作还是很方便

其实你这种文件最好当文本数据库操作
echocheng 2003-09-18
  • 打赏
  • 举报
回复
显示文本我可以用动态生成Image实现,然后用TextOut来输出文本
下面是我要实现的简单界面,太丑了,不过我想意思还是能表达一些!

----------|
|流量一 50|
|—————|


-----------|
|流量二 100 |
|—————-|

上面这些文本框显示的位置就是由read-file.txt中的数据来决定,显示的内容也是
echocheng 2003-09-18
  • 打赏
  • 举报
回复
是这样的,我要在Form1上显示一些数据,数据显示的位置,信息,值等都是由另外一个文本文件提供的。所以我需要先从外面的文本文件读出要显示的位置,信息,值等,然后再在Form1中显示出来。Form1中除了显示显示一些我要显示的数据,其余没有任何东西!
我想我的叙述还清楚吧?
CCLIS 2003-09-18
  • 打赏
  • 举报
回复
看不懂你的目的。
sigui 2003-09-18
  • 打赏
  • 举报
回复
你是在bcb下编写windows应用程序吗,为什么不用bcb自己的控件,来个Memo不什么都解决了?

13,825

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧