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

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 好像只能读取一行,还有中间的换行符怎搞?
如果有不同的存放上述字符串到类中的思路,多指教.
...全文
461 12 打赏 收藏 转发到动态 举报
写回复
用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,979

社区成员

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

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