您的位置:程序门 -> vb ->



getprivateprofilestring的section设置为null无法取值


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


getprivateprofilestring的section设置为null无法取值
发表于:2007-03-23 09:41:36 楼主
ini文件中是这样的内容,没有section段
inputfilepath=d:\renkeiprm\inputfile
outputfilepath=d:\renkeiprm\outputfile
backupfilepath=d:\renkeiprm\backupfile
keepbackupfile=30

我在程序中这样写的
private   declare   function   getprivateprofilestring   lib   "kernel32 "   _
        alias   "getprivateprofilestringa "   _
        (byval   lpapplicationname   as   string,   _
          byval   lpkeyname   as   string,   _
          byval   lpdefault   as   string,   _
          byval   lpreturnedstring   as   string,   _
          byval   nsize   as   long,   _
          byval   lpfilename   as   string)   as   long

inifilename   =   app.path   &   "\filechng.ini "
strret   =space(255)      
keyname   =   "inputfilepath "
isize   =   getprivateprofilestring(vbnullstring,   keyname,   " ",strret   ,   len(strret),   inifilename)
if   isize   =   0   then
      strret   =   "not   found "
else
      strret   =   left(strret   ,   isize)
end   if
msgbox   (isize   &   ", "   &   strret   )

为什么一直无法取到inputfilepath的值?
msdn上说lpapplicationname为null的时候,可以取到所有的section的值
可是这里我用遍了vbnullstring,vbnull,vbnullchar,0&,byval   0&
api的声明中改了byval   lpapplicationname   as   string   为any,long都不行,无法取到值,为什么会出现这样的情况啊?
是不是strret的长度设置太短或设置错误?
可是我把长度加大也是一样的情况,我都快急疯了,哪位老大可以帮我把问题解决啊?
注意:section一定要为null,客户不想设置section,指定section的情况下我也能取到值
发表于:2007-03-23 09:45:381楼 得分:0
在线急盼高手出现,能取到值立刻给分!!!
发表于:2007-03-23 10:06:132楼 得分:0
为什么没人来看啊?
是觉得这个问题太简单了吗?
发表于:2007-03-23 10:13:113楼 得分:0
自己读文件好了,line   input
发表于:2007-03-23 10:20:314楼 得分:0
可是客户是要求用api的.只能照着客户的意思做了
用api应该可以实现的吧,msdn上都这样写了,可是我不知道我的写法错在哪
发表于:2007-03-23 10:32:345楼 得分:0
继续等待高手的出现啊,我也是试了很多方法也没效果,谁能救救我啊
发表于:2007-03-23 11:44:586楼 得分:0
你们客户真厉害,还管你怎么写程序实现功能啊
发表于:2007-03-23 11:55:437楼 得分:0
没有section标记,无法正常调用getprivateprofilestring函数的。
发表于:2007-03-23 13:19:048楼 得分:0
jadeluo(秀峰)   的意思是不是如果没有section标记
就无法通过调用getprivateprofilestring,getprivateprofilesection,getprivateprofileint……
等api来读取ini文件?确定吗?
没有section标记的情况下是不是只能以普通文本文件的形式去读ini文件里的内容啊?
谢谢了
发表于:2007-03-28 17:05:389楼 得分:0
得到路径时会产生一些chr(0)结束符,删除了就行了:
public   function   getini(byval   psection   as   string,   byval   pfilename   as   string,   byval   pkey   as   string)   as   string
    dim   x   as   long,   buff   as   string   *   128
    dim   i   as   integer
    x   =   getprivateprofilestringbykeyname(psection,   pkey,   " ",   buff,   128,   pfilename)
    i   =   instr(buff,   chr(0))   '去掉后面的空值
    getini   =   trim(left(buff,   i   -   1))
end   function


快速检索

最新资讯
热门点击