搜索
查看: 1085|回复: 6

请教,读INI文件失败返回什么

[复制链接]

1

主题

2

帖子

14

积分

新手入门

Rank: 1

积分
14
发表于 2017-12-30 17:11:26 | 显示全部楼层 |阅读模式
刚开始学习,请教下
INI,如果读失败,返回的是什么

库代码如下:
        read = function(app,key ,default = ""){
                        var getlen=512
            var len,val = GetPrivateProfileString(app,key,default,getlen*2,getlen,path)
            while(len >= getlen-2){
                getlen+=512;
                len,val = GetPrivateProfileString(app,key,default,getlen*2,getlen,path)
            }
            if(!len)
                return;
               
            if(!key) {
                return ..string.split(..string.fromUnicode(val,,len-1),'\0');
            }
            else {
                return ..string.fromUnicode(val,,len);
            }
        };

成功是有返回,LEN =0,此时返回什么,
回复

使用道具 举报

185

主题

2541

帖子

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
13974
发表于 2017-12-30 17:54:13 | 显示全部楼层
成功有返回值,没成功就没有返回值。
你自己都贴出来的 return; 就是无返回值,基础知识先看一下语法手册。

aardio里所有应当有返回值的库函数,失败都是返回null(也就是没有值),或 false
这种千篇一律的话,库函数那么多,我没必要千万遍的重复写吧?!


回复

使用道具 举报

12

主题

679

帖子

4008

积分

荣誉会员

子非魚、安知魚之樂

Rank: 8Rank: 8

积分
4008
发表于 2017-12-30 17:57:07 | 显示全部楼层
论坛要求发帖带代码,不是要你们复制库代码
不知道返回什么 自己动手试一下不就知道了?

把范例复制过来 修改一下:
//读写ini文件
import console;
import fsys.ini

//打开文件,支持内嵌资源文件
//如果文件不存在则自动创建新文件
ini=fsys.ini("\配置文件.ini")

//读取小节对象
sec = ini.getSection("小节名称")

//读写值
sec.项名称 = 123;

//读取一个不存在的小节对象
var a = ini.read("小节名","项名称");

console.log(
type(a) )
//保存
sec.save()

console.pause();

运行一下,
现在知道返回什么了吧



回复

使用道具 举报

185

主题

2541

帖子

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
13974
发表于 2017-12-30 17:59:46 | 显示全部楼层
我等会再改一下文档,这句话大部分函数都写了,有少部分没有写的。
通用规律,有返回值的函数,失败一般都是返回null(没错有返回值),特殊情况下有时候会返回false

有返回值的函数,一般会返回2个值,即:
return null,错误信息

但错误信息不一定会提供,类似这个函数,错误信息就没什么意义了
回复

使用道具 举报

6

主题

12

帖子

120

积分

一级会员

Rank: 2

积分
120
发表于 2017-12-30 18:02:55 | 显示全部楼层
返回null吧,return默认返回null
  1. import console
  2. import fsys.ini
  3. var a=fsys.ini("/1.ini")
  4. a.write("名字","北京","32")
  5. a.write("名字","兰州","18")
  6. var c=a.read("名字","天津")
  7. console.dump(type(c),c)
  8. console.pause(true)
复制代码

你测试下不就知道了
回复

使用道具 举报

185

主题

2541

帖子

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
13974
发表于 2017-12-30 18:49:19 | 显示全部楼层
确实我对这个ini文件格式没有对 json这些文件格式那么重视,库函数说明写的比较简单。
aardio的库太多,有少部分可能没照顾那么好,刚才我已经补充了一下fsys.ini的文档。

在aardio语句手册->函数返回值
这一节我再加了一大段重点讲了一下关于库函数为什么都是失败返回null的这个规则

如果大家下次还发现有这样的情况,可以告诉我改进
回复

使用道具 举报

1

主题

2

帖子

14

积分

新手入门

Rank: 1

积分
14
 楼主| 发表于 2017-12-31 10:54:32 | 显示全部楼层
Jacen.He 发表于 2017-12-30 18:49
确实我对这个ini文件格式没有对 json这些文件格式那么重视,库函数说明写的比较简单。
aardio的库太多,有 ...

谢谢答复,AARDIO这个软件很好用,里面包含的东西很多,继续学习中!!!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

手机版|未经许可严禁引用或转载本站文章|站长邮箱|aardio.com|aardio官方社区 ( 皖ICP备09012014号 )

GMT+8, 2018-12-14 02:01 , Processed in 0.093750 second(s), 22 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表