ini (IniReadSection)要怎么用`` 以前都可以直接用`附源代码[已解决]
本帖最后由 410521a 于 2010-6-22 17:32 编辑已解决``非常感谢``不死鸟
晕打错了`` 对不起`` ` 是 不死草 怎么没人帮忙看看` 以前帮你看过了…… 帮忙说说怎么用呀`` 为什么我以前不加数组`[][]用的就可以``现在不能用了` 回复 4# 410521a
你以前可以用并不证明你使用这个函数的代码正确,只是没有遇到报错的条件而已。
或者说这个函数你一直都是错误的在使用。
IniReadSection()从来就是返回数组的。 搞不懂你为什么要用“收银助手By:陈伟东QQ:36951881-此行勿删!-否则程序将无法正常运行!!”这么长又容易出错的字串做字段名,而且你居然用位置去判断,更增加了出错的几率 IniReadSection
--------------------------------------------------------------------------------
从某标准配置文件(*.ini)中读取某个节中的所有关键字或值.
IniReadSection ( "文件名", "字段名" )
参数
文件名 目标文件名.
字段名 INI文件中的某个字段名.
返回值
成功: 返回二维数组,其中 element 储存着关键字; 而 element 则储存则对应的数值.
失败: 如果不能读取字段, 将设置 @error=1 (INI文件不存在或者字段不存在). ;==============================================================
;比_FileReadToArray之类的读入数组的方法快N~N千倍…
; 说明: 原IniReadSection函数只有在字段中的前32767字符可以被正常返回,本函数无此限制(初衷在于此)。
; 原IniReadSection函数遇到某些文件特殊的回车及换行组合会停止继续而返回,本函数会完整读出。
; 其它与原IniReadSection函数不同:不返回无关键字的值;既无关键字又无值只有等号的也不被返回。
; 语法: _IniReadSection('ini文件路径', '字段名'[, '打开模式'])
; 参数: 可选参数'打开模式',某些ini文件由于编码问题直接FileRead读不到,加个打开参数(如32)就OK了。
; 返回值:成功: 返回一个二维数组,其中:元素=大小、元素=关键字、元素=对应的数值。
; 失败: 返回0。如INI文件读取错误或字段不存在将设置 @error=1;字段内容为空将设置 @error=2
; 作者: Afan -- http://www.autoitx.com
;==============================================================
或者使用Afan大大的 _IniReadSection UDF 回复 8# Hen5ei
搞不懂具体怎么使用` 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
;~ ==============================================================
现在主要是这个不知道怎么写 本帖最后由 Hen5ei 于 2010-6-22 14:41 编辑
ElseIf $userbh = $mdb Then
其中的$mdb = IniReadSection($udata, $userbh)
因为 IniReadSection 成功的返回值如下
成功: 返回二维数组,其中 element 储存着关键字; 而 element 则储存则对应的数值.
所以 $userbh = $mdb 就错了., 应该给为 $userbh = $mdb 或者 $userbh = $mdb
;;=====================以下为数据库=========================================
姓名=张小
性别=女
证件类型=身份证
证件编号=410100000000000000
地址=河南省
根据你提供的INI
$mdb = IniReadSection($udata, "123456")
$mdb = '姓名'$mdb = '性别' $mdb = '证件类型' $mdb = '证件编号' $mdb = '地址'
$mdb = '张小'$mdb = '女' $mdb = '身份证' $mdb = '410100000000000000' $mdb = '河南省'
这样说大概明白了吧 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 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()这个你用错了 回复 12# 不死草
这后边的字段名是我要从 下边这个Input1_1 读到的数据呀`
$userbh = GUICtrlRead($Input1_1,"") $userbh = GUICtrlRead($Input1_1,"")
难道是这个错了? 后边不应该加引号?》
GUICtrlRead ( 控件ID [, 高级] ) LZ不要删除1#问题内容,否则扣分删帖。
页:
[1]
2