从文件中读取数据后的存储方法。解决办法
从文件中读取数据后的存储方法。
在一个文件中有两列数据,一列是累计时间(单位小时),一列是温度(单位摄氏度),如下图
h ℃
0.00028 14.484
1.00056 16.446
2.00083 18.474
4.00111 20.472
8.00139 27.412
8.00167 30.415
9.00194 39.323
我定义了一个数据点类来存储文件中的一行数据如下:
class CDataPoint
{
public:
double m_fHours;
double m_fTemperature;
CDataPoint::CDataPoint(double fHours,double fTemperature)
{
m_fHours=fHours;
m_fTemperature=fTemperature;
}
virtual ~CDataPoint();
}
然后又定义了一个数组对象如下:
CPtrArray m_dataArray;
然后将文件中的每一行点存储到数组里
CDataPoint *pNewPoint=new CDataPoint(fHours,fTemperature);
m_dataArray.Add( pNewPoint );
然后想用这些数据点绘曲线,但我觉得程序执行速度慢,请问大家有什么效率高的方法来存储这些数据么?
------解决方案--------------------
如果你小时和温度的数字位数都是固定的,那可以用CStdioFile::ReadString一行一行读取
每读取一行就保存到一个CSting中,然后小时取CString::Left(7),温度取Right(6),然后就用CString::WriteString()分别保存他们,我用这种方法从两个文件中读取10W行然后合并再保存到另一个文件中能在1秒内解决
不知合LZ之意否?
在一个文件中有两列数据,一列是累计时间(单位小时),一列是温度(单位摄氏度),如下图
h ℃
0.00028 14.484
1.00056 16.446
2.00083 18.474
4.00111 20.472
8.00139 27.412
8.00167 30.415
9.00194 39.323
我定义了一个数据点类来存储文件中的一行数据如下:
class CDataPoint
{
public:
double m_fHours;
double m_fTemperature;
CDataPoint::CDataPoint(double fHours,double fTemperature)
{
m_fHours=fHours;
m_fTemperature=fTemperature;
}
virtual ~CDataPoint();
}
然后又定义了一个数组对象如下:
CPtrArray m_dataArray;
然后将文件中的每一行点存储到数组里
CDataPoint *pNewPoint=new CDataPoint(fHours,fTemperature);
m_dataArray.Add( pNewPoint );
然后想用这些数据点绘曲线,但我觉得程序执行速度慢,请问大家有什么效率高的方法来存储这些数据么?
------解决方案--------------------
如果你小时和温度的数字位数都是固定的,那可以用CStdioFile::ReadString一行一行读取
每读取一行就保存到一个CSting中,然后小时取CString::Left(7),温度取Right(6),然后就用CString::WriteString()分别保存他们,我用这种方法从两个文件中读取10W行然后合并再保存到另一个文件中能在1秒内解决
不知合LZ之意否?