怎么以可视化的方式打开一个数据文件并画出图形?

xintang 2003-10-16 04:08:16
FILE *stream,*stream1;
char FirstLine[512];

OpenDialog1->Options.Clear();
OpenDialog1->Options << ofAllowMultiSelect << ofFileMustExist;
OpenDialog1->Filter = "Text files (*.txt)|*.txt|All files (*.*)|*.*";
OpenDialog1->FilterIndex = 2; // start the dialog showing all files
if (OpenDialog1->Execute())
{
for (int I = 0; I < OpenDialog1->Files->Count; I ++)
{
stream = fopen(OpenDialog1->Files->Strings[I].c_str(), "r");

if (stream)
{
// read the first line from the file
fgets(FirstLine, sizeof(FirstLine), stream);
Memo1->Lines->LoadFromFile(OpenDialog1->FileName);
}
}
}

//char str[481];
float pi,xx,yy,x[481];
int i,j,ll,k;
pi=M_PI;
ll=24;
xx=0.0;yy=0.0;
for(i=1;i<=2*z;i++)
x[i]=0;
circul=998.655396/2;
for(i=0;i<Memo1->Lines->Count;i++)
{
char *str = new char[Memo1->Lines->Count];
StrPCopy(str,Memo1->Lines->Strings[i]);
x[i]=(float) str[i];
x[i]=x[i]+998.655396;
Series2->AddY((x[i]+998.655396),"",clBlue);
}

为什么str数组的值不能传到x[i]中呢?
...全文
67 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
GeoPhoenix 2003-10-16
  • 打赏
  • 举报
回复
可能个人的编程习惯不一样,我也做过类似的程序,但是思路不一样,我的思路是这样的:
将数据按照数据类型,读到相应的数据结构中去(可能是数组),再将数据输出到相应的控件中,比如Memo控件,Image控件(画成图形),从文件中读出数据可采用各种方式,我倒是比较顽固还是喜欢API方式,你的方式先读入数据到Memo控件中,再从控件中取数据,个人认为比较麻烦,存在的问题,楼上说了,还有一句,不知道是干什么的
fgets(FirstLine, sizeof(FirstLine), stream);
程序中没有用到FirstLine
个人意见,仅供参考。
勉励前行 2003-10-16
  • 打赏
  • 举报
回复
x[i]=(float) str[i];
這句有問題, float = (float)Ansistring() ;這個強制轉換是達不到目的的。

這與文件格式有關,
如果是文本文件,可考慮函數 : Extended __fastcall StrToFloat(const AnsiString S);
x[i] = StrToFloat(str[i]);

13,825

社区成员

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

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