找回密码
 加入
搜索
查看: 7808|回复: 15

[AU3基础] ini (IniReadSection)要怎么用`` 以前都可以直接用`附源代码[已解决]

  [复制链接]
发表于 2010-6-21 15:40:00 | 显示全部楼层 |阅读模式
本帖最后由 410521a 于 2010-6-22 17:32 编辑

已解决``非常感谢``不死鸟


晕打错了`` 对不起`` ` 是    不死草
 楼主| 发表于 2010-6-22 00:32:48 | 显示全部楼层
怎么没人帮忙看看`
发表于 2010-6-22 00:35:07 | 显示全部楼层
以前帮你看过了……
 楼主| 发表于 2010-6-22 02:30:30 | 显示全部楼层
帮忙说说怎么用呀`` 为什么我以前不加数组`[][]用的就可以``现在不能用了`
发表于 2010-6-22 03:05:32 | 显示全部楼层
回复 4# 410521a

你以前可以用并不证明你使用这个函数的代码正确,只是没有遇到报错的条件而已。
或者说这个函数你一直都是错误的在使用。
IniReadSection()从来就是返回数组的。
发表于 2010-6-22 03:14:36 | 显示全部楼层
搞不懂你为什么要用“收银助手By:陈伟东QQ:36951881-此行勿删!-否则程序将无法正常运行!!”这么长又容易出错的字串做字段名,而且你居然用位置去判断,更增加了出错的几率
发表于 2010-6-22 10:31:06 | 显示全部楼层
IniReadSection
--------------------------------------------------------------------------------

从某标准配置文件(*.ini)中读取某个节中的所有关键字或值.


IniReadSection ( "文件名", "字段名" )




参数

文件名 目标文件名.
字段名 INI文件中的某个字段名.



返回值

成功: 返回二维数组,其中 element[n][0] 储存着关键字; 而 element[n][1] 则储存则对应的数值.
失败: 如果不能读取字段, 将设置 @error=1 (INI文件不存在或者字段不存在).
发表于 2010-6-22 10:33:18 | 显示全部楼层
;==============================================================
;比_FileReadToArray之类的读入数组的方法快N~N千倍…
; 说明: 原IniReadSection函数只有在字段中的前32767字符可以被正常返回,本函数无此限制(初衷在于此)。
;    原IniReadSection函数遇到某些文件特殊的回车及换行组合会停止继续而返回,本函数会完整读出。
;    其它与原IniReadSection函数不同:不返回无关键字的值;既无关键字又无值只有等号的也不被返回。
; 语法: _IniReadSection('ini文件路径', '字段名'[, '打开模式'])
; 参数: 可选参数'打开模式',某些ini文件由于编码问题直接FileRead读不到,加个打开参数(如32)就OK了。
; 返回值:成功: 返回一个二维数组,其中:元素[0][0]=大小、元素[n][0]=关键字、元素[n][1]=对应的数值。
;    失败: 返回0。如INI文件读取错误或字段不存在将设置 @error=1;字段内容为空将设置 @error=2
; 作者: Afan -- http://www.autoitx.com
;==============================================================


或者使用Afan大大的 _IniReadSection UDF
 楼主| 发表于 2010-6-22 12:59:41 | 显示全部楼层
回复 8# Hen5ei


    搞不懂具体怎么使用`
 楼主| 发表于 2010-6-22 13:05:01 | 显示全部楼层
Func du()

        $userbh = GUICtrlRead($Input1_1,"")

        $mdb = IniReadSection($udata, $userbh)

        If $userbh = "" Or $userbh = "请输入18位用户编号" Then

            MsgBox(64, "提示", "代码项不能为空")

                ControlFocus($Form1, "", $Input1_1)

        ElseIf $userbh = $mdb Then

                duru()

        Else

        $tc = MsgBox(32 + 1, "提示", $userbh & @CRLF & "号码不存在" & @CRLF & "点确定添加新用户!!" & @CRLF & "点取消重新填写!!")

              If $tc = 1 Then

                   GUISwitch($Form2)

                   GUISetState(@SW_SHOW)

                   ControlSetText($Form2, "", $Input2_2, $userbh)

             EndIf

        EndIf        

EndFunc

;~ ==============================================================



现在主要是这个不知道怎么写
发表于 2010-6-22 14:32:54 | 显示全部楼层
本帖最后由 Hen5ei 于 2010-6-22 14:41 编辑
ElseIf $userbh = $mdb Then

其中的  $mdb = IniReadSection($udata, $userbh)
因为 IniReadSection 成功的返回值如下
成功: 返回二维数组,其中 element[n][0] 储存着关键字; 而 element[n][1] 则储存则对应的数值.

所以 $userbh = $mdb 就错了., 应该给为 $userbh = $mdb[0][0] 或者 $userbh = $mdb[0][1]

;;=====================以下为数据库=========================================
[123456]
姓名=张小
性别=女
证件类型=身份证
证件编号=410100000000000000
地址=河南省

根据你提供的INI
$mdb = IniReadSection($udata, "123456")
$mdb[0][0] = '姓名'  $mdb[1][0] = '性别' $mdb[2][0] = '证件类型' $mdb[3][0] = '证件编号' $mdb[4][0] = '地址'
$mdb[0][1] = '张小'  $mdb[1][1] = '女' $mdb[2][1] = '身份证' $mdb[3][1] = '410100000000000000' $mdb[4][1] = '河南省'

这样说大概明白了吧
发表于 2010-6-22 14:53:41 | 显示全部楼层
Func du()
        $userbh = GUICtrlRead($Input1_1,"")
        $mdb = IniReadSection($udata,"123456")
        If $userbh = "" Or $userbh = "请输入18位用户编号" Then
            MsgBox(64, "提示", "代码项不能为空")
                ControlFocus($Form1, "", $Input1_1)
        ElseIf $userbh = $mdb[4][1] Then
                duru()
        Else
        $tc = MsgBox(32 + 1, "提示", $userbh & @CRLF & "号码不存在" & @CRLF & "点确定添加新用户!!" & @CRLF & "点取消重新填写!!")
              If $tc = 1 Then
                   GUISwitch($Form2)
                   GUISetState(@SW_SHOW)
                   ControlSetText($Form2, "", $Input2_2, $userbh)
             EndIf
        EndIf        
EndFunc



其实上面的朋友已经回复了,主要就是IniReadSection()这个你用错了
 楼主| 发表于 2010-6-22 16:05:59 | 显示全部楼层
回复 12# 不死草

这后边的字段名是我要从 下边这个Input1_1 读到的数据呀`
$userbh = GUICtrlRead($Input1_1,"")
 楼主| 发表于 2010-6-22 16:11:10 | 显示全部楼层
$userbh = GUICtrlRead($Input1_1,"")   

难道是这个错了? 后边不应该加引号?》
GUICtrlRead ( 控件ID [, 高级] )
发表于 2010-6-23 14:12:26 | 显示全部楼层
LZ不要删除1#问题内容,否则扣分删帖。
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-10-3 17:20 , Processed in 0.091587 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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