CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C++ Builder >  基础类

__读ini文件中的数值问题__???

楼主kingeboy(㊣周傳雄㊣)2005-06-04 16:19:28 在 C++ Builder / 基础类 提问

我的ini文件里面存的是TRect类型用","号分开的值,如80,20,160,60然后是怎么在程序里面很方便的读出,转换成TRect类型,我现在是先读出字符串,然后再把字符串中的数字判断","号分别提取出来,但是这样做效率太低了,还请DX们救我! 问题点数:0、回复次数:15Top

1 楼F117p(走两步,你走两步?)回复于 2005-06-04 18:06:45 得分 0

不明白,为什么不直接用ReadInteger和WriteInteger?Top

2 楼kingeboy(㊣周傳雄㊣)回复于 2005-06-04 19:09:11 得分 0

不行我的值存的格式是  
  rc=80,20,160,60  
  这样的  
  如果换成就太多值了  
  rcL=80  
  rcT=20  
  rcR=160  
  rcB=60  
  我有好多个这样的TRect结构要存暂时用的是把值当做字符串读出来在用一个函数把字符串分段转换成int然后在赋给TRect结构.Top

3 楼xpdavis(咕嘟-不想孤独)回复于 2005-06-04 19:22:24 得分 0

int   i[4];  
  AnsiString   str   =   "80,20,160,60";  
  str.scanf("%d,%d,%d,%d",   i,   &i[1],   &i[2],   &i[3]);Top

4 楼kese(可可)回复于 2005-06-04 19:26:53 得分 0

你可以利用分隔符(,)将字符串分割然后AnsiString::ToInt()  
  楼主这个问题应该自己解决,而且像这样的东西放在配置文件中是不合理的Top

5 楼F117p(走两步,你走两步?)回复于 2005-06-04 22:53:00 得分 0

没试过  
   
  给你参考:考虑用一种算法,将4个数经过某个算法后得到一个数。  
  然后在读取的时候再逆算法,还原出来。  
   
  如可以:a,b,c,d           x=1*a+10*b+100*c+1000*dTop

6 楼kingeboy(㊣周傳雄㊣)回复于 2005-06-06 10:40:19 得分 0

回   xpdavis(咕嘟)    
  scanf不是AnsiString类型的成员函数啊  
   
  我现在就是用","号分割读取的,就想有没有好用的方法Top

7 楼gxd305()回复于 2005-06-06 13:19:49 得分 0

学学       流  
  诸如  
  istream  
  ostream  
  iostream  
  fstream  
  stringstream  
  之类的东西  
  就可以如  
  xpdavis(咕嘟)  
  所用的方法了Top

8 楼xpdavis(咕嘟-不想孤独)回复于 2005-06-06 13:40:54 得分 0

int   i[4];  
  AnsiString   str   =   "80,20,160,60";  
  sscanf(str.c_str(),   "%d,%d,%d,%d",   i,   &i[1],   &i[2],   &i[3]);  
  Top

9 楼kese(可可)回复于 2005-06-06 14:48:25 得分 0

xpdavis(咕嘟)   兄弟的方法很好。只是希望给出一个能在windows中运行的代码,而不是在dos下运行的。  
  期待你解决这个问题。  
  Top

10 楼cczlp(不惑)回复于 2005-06-06 15:03:09 得分 0

xpdavis(咕嘟)的方法  
  int   i[4];  
  AnsiString   str   =   "80,20,160,60";  
  sscanf(str.c_str(),   "%d,%d,%d,%d",   i,   &i[1],   &i[2],   &i[3]);  
  是在windows下用的.  
  别忘了加上#include   <stdio.h>  
  Top

11 楼kese(可可)回复于 2005-06-06 15:06:22 得分 0

我的意思是在窗口中运行,而不是控制台中Top

12 楼titan_ysl(泰坦)回复于 2005-06-06 15:15:33 得分 0

我一般是直接把数据封在结构里存盘,一来存取方便,二来用户也不容易任意修改。Top

13 楼kingeboy(㊣周傳雄㊣)回复于 2005-06-07 10:01:50 得分 0

回   xpdavis(咕嘟)    
  你的方法很好用谢谢了!Top

14 楼xpdavis(咕嘟-不想孤独)回复于 2005-06-07 10:04:07 得分 0

回复人:   kese(可可)   (   )   信誉:100     2005-06-06   15:06:00     得分:   0      
     
     
        我的意思是在窗口中运行,而不是控制台中  
       
     
  sscanf和scanf是有区别的,sscanf可以在窗口(图形界面)中使用Top

15 楼kese(可可)回复于 2005-06-07 11:19:04 得分 0

谢谢!我又学了一招。Top

相关问题

  • 怎样取ini文件的参数值
  • 写,读ini文件
  • 关于读取.ini文件?
  • 关于读写INI文件`
  • 怎样读写INI文件
  • 怎么读写INI文件?
  • 读取.INI文件出错
  • 如何读取INI文件
  • 怎样读写ini文件
  • 如何读写INI文件?

关键词

  • 算法
  • 结构
  • xpdavis
  • 字符串
  • ansistring
  • sscanf
  • trect
  • 运行
  • 方法
  • scanf

得分解答快速导航

  • 帖主:kingeboy

相关链接

  • CSDN Blog
  • 技术文档
  • 代码下载
  • 第二书店
  • 读书频道

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo