本帖最后由 dunphy 于 2014-9-28 13:58 编辑
回复 10# hmcmmmmm
#include <MsgBoxConstants.au3>
#include <StringConstants.au3>
#include <array.au3>
_Example1()
Func _Example1()
Local $Get_Parent_ID = "Tornado|config7"
Local $File_Name_Array = StringSplit($Get_Parent_ID, '|', 1) ;注意这里的标志的意思
;$STR_CHRSPLIT (0) = 分隔符字符串中的每个字符都将作为分隔标志 (默认值)
;$STR_ENTIRESPLIT (1) = 以整个分隔符字符串作为分隔标志
; $STR_NOCOUNT (2) = 禁用返回表示元素数量的第一个元素 - 方便使用基于 0 开始的数组.
;(此时的数组大小由 UBound() 函数检测).
;常量定义在 StringConstants.au3
;返回一个数组, 第一个元素 ($aArray[0]) 保存拆分后的子串数量,
;其余元素 ($aArray[1],$aArray[2] 等等) 则保存拆分后的每个子字符串.
;如果标志 = 2, 则返回第一元素不表示子串数量
$Config_Name = $File_Name_Array[2] ;这里相当于又创建了个数组。 ;在我的WIN7专业版 3.3.12.0下执行无错 但调试第二句不显示??
_ArrayDisplay($File_Name_Array, "例1File_Name") ;显示出来的数组有三个元素,第一个是数组的个数,第二个元素是TOrnado,第三个元素是config7
_ArrayDisplay($Config_Name, "例1id") ;看到没有,这里调试不显示。。。。问题就在 $Config_Name = $File_Name_Array[2] 这种赋值方式书写很不规范。
EndFunc ;==>_Example1
;;=======================对比示例
_Example2()
Func _Example2()
Local $Get_Parent_ID = "Tornado|config7"
Local $File_Name_Array = StringSplit($Get_Parent_ID, '|', 1)
_ArrayDisplay($File_Name_Array, "例2File_Name")
Local $Config_Name[5] ;创建数组 并多创建二个元素,让你看得更仔细
$Config_Name[0] = $File_Name_Array[0] ; $Config_Name第一个元素被赋值为$File_Name_Array[0]即原数组的个数,,
$Config_Name[1] = $File_Name_Array[1] ;第二个元素赋值TOrnado
$Config_Name[2] = $File_Name_Array[2] ;第三个元素赋值config7
;; $Config_Name[3] = $File_Name_Array[3] ;如果你把这个加上肯定会出错
;;;;;因为原数组中只有三个元素,即 $File_Name_Array[0], $File_Name_Array[1], $File_Name_Array[2]
;; 少一个不会错,能少不能多。。。。
;;这样数组的下标才不会越界...
;;这里说明一下,你可以随意把你想要的值赋到数组的任一行。这样就能如你所愿,让$File_Name_Array[2]的值 config7赋给新数组$Config_Name[1]
;; $Config_Name[0] = $File_Name_Array[1]
;; $Config_Name[1] = $File_Name_Array[2]
_ArrayDisplay($Config_Name, "例2ID")
EndFunc ;==>_Example2
|