从编辑框中读取数据并保存

Mrtianian 2004-12-01 03:29:32
我想在编辑框中输入:
G00 x0 y0 z0
G01 x1 y1 z1
G02 x89 y78 z67
......
定义该字符串为str_Message,
我定义了一个类来存放数据
class CDot : public CObject
{
private:
double xx;
double yy;
double zz;
CString command;
public:
CDot(double x,double y,double z);
CDot();
virtual ~CDot();
double GetX(){return xx;}
double GetY(){return yy;}
double GetZ(){return zz;}
CString GetCommand(){return command;}
void SetX(double x){xx=x;}
void SetY(double y){yy=y;}
void SetZ(double z){zz=z;}
void SetCommand(CString str){command=str;}

};
我用 CDot dot;
double x,y,z;
char c1,c2,c3;
CString str;
sscanf(str_Message,"%s %c %lf %c %lf %c %lf",
str,&c1,&x,&c2,&y,&c3,&z);//获得x,y,z,str;
dot.SetX(x);
dot.SetY(y);
dot.SetZ(z);
dot.SetCommand(str);
来从编辑框中获得x y z 及str的值并存放到dot对象中
问题是我现在是多行字符串,我只能存取第一行G00 x0 y0 z0 到一个CDot对象dot 中,
但是第二行G01 x1 y1 z1怎么能放到另一个CDot对象中,
同理第三行,第四行,...而sscanf 好像只能读取一行,还有中间的换行符怎搞?
如果有不同的存放上述字符串到类中的思路,多指教.
...全文
463 12 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
Mrtianian 2004-12-13
  • 打赏
  • 举报
回复
多谢连山兄弟,如此热情,感激.
oyljerry 2004-12-03
  • 打赏
  • 举报
回复
CStdioFile
ReadString就是按行读取的
lsvine 2004-12-03
  • 打赏
  • 举报
回复
这样是不是能达到你的目的(读写ini):
[G00]
x=x0
y=y0
z=z0
[G01]
x=x1
y=y1
z=z1
[G02]
x=x89
y=y78
z=z67
lsvine 2004-12-03
  • 打赏
  • 举报
回复
你还是把怎么存、怎么读,要达到什么目的,举一个实例吧
lsvine 2004-12-03
  • 打赏
  • 举报
回复
串行化存取比较容易,如果存的内容结构上一致的话。像这样:
void CListTestDoc::Serialize(CArchive& ar)
{
if (ar.IsStoring())
{
// TODO: add storing code here
for(int i = 0; i < 100; ++i)
{
ar << m_ADMailTel[i];
ar << m_ADStaName[i];
ar << m_ADStyle[i];
}
}
else
{
// TODO: add loading code here
for(int i = 0; i < 100; ++i)
{
ar >> m_ADMailTel[i];
ar >> m_ADStaName[i];
ar >> m_ADStyle[i];
}
}
}
其他的文件操作,我只用过ini的,也比较简单。GetPrivateProfileString和WritePrivateProfileString。
Mrtianian 2004-12-02
  • 打赏
  • 举报
回复
我指的是怎样把字符串提取到CDot类中去
duckypig 2004-12-02
  • 打赏
  • 举报
回复
不好意思,我好像说的太多,我只是想问怎样将上述字符串:
G00 x0 y0 z0
G01 x1 y1 z1
G02 x89 y78 z67
......
作为文件保存后怎样逐行的读入,逐行的分析

/////////////////
保存成文件后用
fgets() 每次就只读一行

同理第三行,第四行,...而sscanf 好像只能读取一行,还有中间的换行符怎搞?
//////////
换行符是'\n'
lsvine 2004-12-02
  • 打赏
  • 举报
回复
可以选择用ListBox,存取安index就行了。
用edit时,要ES_MULTILINE 这种类型,GetLine应该就可以了吧。自己看看msdn关于CEdit和CListBox的资料,很快就解决了。
Mrtianian 2004-12-02
  • 打赏
  • 举报
回复
高手多多指教啊,万分赶紧
Mrtianian 2004-12-02
  • 打赏
  • 举报
回复
不好意思,我好像说的太多,我只是想问怎样将上述字符串:
G00 x0 y0 z0
G01 x1 y1 z1
G02 x89 y78 z67
......
作为文件保存后怎样逐行的读入,逐行的分析
I_Love_CPP 2004-12-01
  • 打赏
  • 举报
回复
http://community.csdn.net/Expert/topic/3142/3142321.xml?temp=.9640161
nastar 2004-12-01
  • 打赏
  • 举报
回复
如果我没理解错,你指的是form上的编辑框?

15,980

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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