| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3509 人关注过本帖
标题:[求助]如何把已经转化为CString类型的CTime数据转化回CTime类型???
只看楼主 加入收藏
xigong
Rank: 1
等 级:新手上路
威 望:1
帖 子:19
专家分:0
注 册:2006-9-2
收藏
 问题点数:0 回复次数:10 
[求助]如何把已经转化为CString类型的CTime数据转化回CTime类型???

问题如上所诉。
我正在做一个记事本,其中用到了CTime类型的数据,现在要保存这些数据,好像必须把CTime类型的数据转换为CString 类型的才能写入文件,我用了CTime::Format()函数将CTime 变量格式化。但现在有个问题是如何将这些数据转回CTime类并写入内存。我不知道该去那找这个函数,还请知道的人给指点指点,给我一个合适的函数。谢谢。

搜索更多相关主题的帖子: CTime CString 类型 数据 
2006-09-11 22:17
yeshirow
Rank: 4
等 级:贵宾
威 望:10
帖 子:854
专家分:0
注 册:2006-6-8
收藏
得分:0 

不要將 CTime 改成 CString 保存啊, 直接保存 CTime 數據啊.
Dialog 的吧.

有 CFile 將 CTime 寫入文件, 下次讀取就方便了.


原來朋友仔感情再天真, 亦是我永遠也會愛惜的人, 明日愛他人, 也記住學會不要緊; 原來朋友比戀人更高分, 亦讓我開始懂得不記恨, 若大家都敏感, 我更要永遠記得拒絕再因小事怪人, 爲何沒有這條校訓...Twins-朋友仔 MCSD Training
2006-09-11 22:48
xigong
Rank: 1
等 级:新手上路
威 望:1
帖 子:19
专家分:0
注 册:2006-9-2
收藏
得分:0 

哦,是这样,谢谢啦。我去试试。

2006-09-11 23:09
xigong
Rank: 1
等 级:新手上路
威 望:1
帖 子:19
专家分:0
注 册:2006-9-2
收藏
得分:0 

我在Onsave()函数里写了下面的一段代码
CFile outfile;
outfile.Open("H:\\Jishi\\记事本time.txt",CFile::modeCreate);
int i;
for(i=0;i<=Num;i++)
{
outfile.Write(&Myevent[i].date,sizeof(Myevent[i].date));
outfile.Write(&Myevent[i].time,sizeof(Myevent[i].time));
}
其中Myevent[i]是一个类的对象,date和 time是对象的数据。这样写编译链接都没错,但是运行时点“保存”是就出现了“H:\Jishi\记事本time.txt无法存取”的警告,不知为何。知道的大虾们帮帮忙吧,谢谢了。

2006-09-12 12:04
xigong
Rank: 1
等 级:新手上路
威 望:1
帖 子:19
专家分:0
注 册:2006-9-2
收藏
得分:0 

刚才问老师了,似乎CFile::Write()不支持CTime类型的输入。怎么办,有没有更好的办法?求助啊,我的小学期马上就要结束了,还请诸位帮帮忙啊。谢过了先。

2006-09-12 14:03
Bekky
Rank: 3Rank: 3
等 级:新手上路
威 望:7
帖 子:354
专家分:0
注 册:2006-5-29
收藏
得分:0 
好像没有这样的函数,一定要回复这个类变量吗?用读出来的数据新建一个行不行??

要知道MFC的精髓之一就是你刚才说的那样,把保存在文件的类再回复出来,呵呵。

我的编译环境为WinXp + VC 6.0 http://blog..cn/yobo
2006-09-12 14:26
aogun
Rank: 5Rank: 5
等 级:贵宾
威 望:17
帖 子:638
专家分:0
注 册:2006-4-5
收藏
得分:0 
你写入的不过是二进制数据,没有支不支持的说法,outfile.Open("H:\\Jishi\\记事本time.txt",CFile::modeCreate | CFile::modeReadWrite);,另外,你这样写需要注意类中的数据没有指针之类的,或者类中的成员中没有指针

世界上总共有 10 种人,一种懂得什么是二进制 ,一种不懂。
2006-09-12 15:28
myajax95
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:30
帖 子:2978
专家分:0
注 册:2006-3-5
收藏
得分:0 
他们老师大概的意思是所有由CObject继承下来的class都直接支持CArchive的Serialization。把一堆不同类型的变量直接"<<"进去,读取的时候再直接">>"出来。但CTime不是从CObject继承下来的,所以没什么好办法了,转成long,int或者string之类的凑合着存吧。
用CFile或者CArchive读取没多少好处。MFC这方面作的不好。

http://myajax95./
2006-09-13 16:37
xigong
Rank: 1
等 级:新手上路
威 望:1
帖 子:19
专家分:0
注 册:2006-9-2
收藏
得分:0 

谢谢8楼的回答,我确实是这么做的,效果不错,问题已经得到了很好的解决.

2006-09-16 19:50
wfpb
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:2188
专家分:0
注 册:2006-4-2
收藏
得分:0 
以下是引用myajax95在2006-9-13 16:37:02的发言:
他们老师大概的意思是所有由CObject继承下来的class都直接支持CArchive的Serialization。把一堆不同类型的变量直接"<<"进去,读取的时候再直接">>"出来。但CTime不是从CObject继承下来的,所以没什么好办法了,转成long,int或者string之类的凑合着存吧。
用CFile或者CArchive读取没多少好处。MFC这方面作的不好。


不怕出现以前的状况啊?要再来几个追根到底的,呵呵,恐怕你受不了~!

SERIAL_DYNAMIC(...,...)
SERIAL_IMPLEMENT()


[glow=255,red,2]wfpb的部落格[/glow] 学习成为生活的重要组成部分!
2006-09-16 20:07
快速回复:[求助]如何把已经转化为CString类型的CTime数据转化回CTime类型???
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017564 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved