TStringList 和 double型数据的转换

lanren_me 2002-12-17 02:06:46
想把TStringList * lt中的数据倒到double *wk中;

memcpy(nk,lt,sizeof(double)*100); 可以运行,但是都是乱码.

问:不用循环语句有没有别的办法把数据相传递.....????????????
...全文
61 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
lanren_me 2002-12-20
  • 打赏
  • 举报
回复
算啦,就用循环吧,虽然这是苯方法...
woainihaha 2002-12-19
  • 打赏
  • 举报
回复
呵呵,使用TStringList添加的Double数据在存放的过程中自动转换为AnsiString了.如果需要取数据的话需要转换,所以无可避免的需要用循环.正如楼上的各位老大所说的,要么用TStream,这样存放的时候和读取的时候可以直接一点.我给你一点建议:1使用动态数组,来存储你原来存放在TStringList里的数据.然后操作就很方便了.2如果数据个数不定,而且需要使用下标操作,要么使用STL,要么使用TList.
copy_paste 2002-12-18
  • 打赏
  • 举报
回复
格式是怎么样的?
既然导入到TMemoryStream中了,为什么还要又导入TStringList中了,浪费。

比如说你的Memo字段的格式都是double连一个double的,导入MemoryStream后是:
TMemoryStream *Stream ....

double *p = (double*)Stream->Memory;

得到首地址后,通过Move, memcpy, strcpy之类的函数将它copy到一个数组中或内存,或者直接使用*p不就完了?
lanren_me 2002-12-18
  • 打赏
  • 举报
回复
我用TMemoryStream* pms从数据库Memo字段读取一系列double的数据;
然后用TStringList加载pms;这时我想把TStringList 中的数据倒到double *

咳,如果使用循环那肯定很容易,但是我不想用这个方法。
因为我的数据量很大...
lanren_me 2002-12-18
  • 打赏
  • 举报
回复
楼上:我就是不想用循环语句啊.
yujui 2002-12-18
  • 打赏
  • 举报
回复
不知这样可不可行...

for(int i=0;i<lt->Count;i++)
*(wk+i)=StrToFloat(lt->Strings[i]);
beanbar 2002-12-18
  • 打赏
  • 举报
回复
循环跟数据量大有什么关系吗?
如果你觉得数据量大,那么你为什么又要放到一个double的地址里面去?
如果不用循环,你怎么去访问这些数据?
不懂你想要干什么,如果你为了考虑节约内存,你选择TStringList本身就是个错误,循环是简单的,而且是不可少的,为什么不用呢?
copy_paste 2002-12-17
  • 打赏
  • 举报
回复
你是怎么存放double数据,
你不应该用TStringList来存放它,你用它里面的什么值属性保存的?
beanbar 2002-12-17
  • 打赏
  • 举报
回复
为了缩短开发时间,并且在牺牲机器的速度和内存的情况下
TStringList可以作为一个对象容器,可以存放字符串和相关的对象。
你的问题这样行不行
for(int i=0;i<lt->Count;i++)
{
TObject* AObj=lt->Object[i];
wk+i=dynamic_cast<double*>(AObj);
}
lanren_me 2002-12-17
  • 打赏
  • 举报
回复
不会吧,我的TStringList结构中存放的都是double 的数据;
RedProgramer 2002-12-17
  • 打赏
  • 举报
回复
TStringList结构与double根本不能通用,不可能直接进行内存操作
lanren_me 2002-12-17
  • 打赏
  • 举报
回复
上楼::如果数据量很大>10万,这时使用的时间是很长的.实际上我的数据量可能还要大~
lanren_me 2002-12-17
  • 打赏
  • 举报
回复
上楼::如果数据量很大>10万,这时使用的时间是很长的.
invalid 2002-12-17
  • 打赏
  • 举报
回复
没有,或者不值得吧。执行循环是计算机的强项。
binbin 2002-12-17
  • 打赏
  • 举报
回复
况且还有数据类型的问题呢.
binbin 2002-12-17
  • 打赏
  • 举报
回复
TStringList不是一个数组啊,内存结构不一样怎么倒???
俺要学习学习.

13,825

社区成员

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

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