求支持二维数组的版本。试了好多都不行。
而用au3.cc都可以。但我在论坛下的都好像不成功。很是着急。 什么数组,没听说过这种情况 回复 2# netegg上次发的一个贴子,不能生成结果。用au3.cc的版本就行。
#include <file.au3>
#include<array.au3>
Dim $R
For $net1 = 1 To 100000000000
$var = RegEnumKey("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall", $net1)
If @error <> 0 Then ExitLoop
$R[$net1] = "第" & $net1 & "键"
$R[$net1] = $var
ReDim $R
Next
;_ArrayDisplay($R, "")
FileDelete("c:\ok.txt")
FileWrite("c:\ok.txt", _ArrayToString($R, @CRLF))
MsgBox(0,"提示","已经生成请检查!")
用本论坛生成出来是空的。 本帖最后由 netegg 于 2015-4-19 13:11 编辑
回复 3# bhffhzh
#include <file.au3>
#include<array.au3>
Dim $R
For $net1 = 1 To 100000000000
$var = RegEnumKey("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall", $net1)
If @error <> 0 Then ExitLoop
$R[$net1] = "第" & $net1 & "键"
$R[$net1] = $var
ReDim $R
Next
_ArrayDisplay($R, "")
;FileDelete("c:\ok.txt")
_FileWritefromarray("e:\ok.txt", $R)
MsgBox(0,"提示","已经生成请检查!") 看帮助,_ArrayToString函数本不支持二维 以上数组的。楼主一定要用此次函数的话,可如下处理:#include <file.au3>
#include <array.au3>
#RequireAdmin
Dim $R
For $net1 = 1 To 100000000000
$var = RegEnumKey("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall", $net1)
If @error <> 0 Then ExitLoop
_ArrayAdd($R, "第" & $net1 & "键 " & $var)
Next
_ArrayDisplay($R, "")
;FileDelete("F:\ok.txt")
FileWrite("F:\ok.txt", _ArrayToString($R, @CRLF))
MsgBox(0, "提示", "已经生成请检查!") "上次发的一个贴子,不能生成结果。用au3.cc的版本就行。," ,楼主是有几个意思。 Func _Array2D_ToString(Const ByRef $avArray, $sDelim = "|", $iStart = 0, $iEnd = -1, $iDim = 1, $sSubDelim = "", $iSubStart = 0, $iSubEnd = -1)
If $sDelim = Default Then $sDelim = "|"
If $iStart = Default Then $iStart = 0
If $iEnd = Default Then $iEnd = -1
If $iDim = Default Then $iDim = 1
If $sSubDelim = Default Then $sSubDelim = ""
If $iSubStart = Default Then $iSubStart = 0
If $iSubEnd = Default Then $iSubEnd = -1
; Validate the array
If Not IsArray($avArray) Then Return SetError(1, 0, 0)
Local $sResult, $iUbound, $i
Switch UBound($avArray, 0)
Case 1
$iUbound = UBound($avArray) - 1
If $iStart < 0 Then $iStart = 0
If $iEnd < 0 Or $iEnd > $iUbound Then $iEnd = $iUbound
If $iStart > $iEnd Then Return SetError(4, 1, 0)
For $i = $iStart To $iEnd
$sResult &= $avArray [$i] & $sDelim
Next
Case 2
$iUbound = UBound($avArray, $iDim)
Local $iUbound2 = UBound($avArray, Mod($iDim, 2) + 1), $j
If $iStart < 0 Then $iStart = 0
If $iEnd < 0 Or $iEnd > $iUbound - 1 Then $iEnd = $iUbound - 1
If $iSubStart < 0 Then $iSubStart = 0
If $iSubEnd < 0 Or $iSubEnd > $iUbound2 - 1 Then $iSubEnd = $iUbound2 - 1
If $iStart > $iEnd Then Return SetError(4, 1, 0)
If $iSubStart > $iSubEnd Then Return SetError(4, 2, 0)
; Combine the elements into the string.
Switch $iDim
Case 1
For $i = $iStart To $iEnd
For $j = $iSubStart To $iSubEnd
$sResult &= $avArray [$i][$j] & $sSubDelim
Next
$sResult = StringTrimRight($sResult, StringLen($sSubDelim))
$sResult &= $sDelim
Next
Case 2
For $j = $iStart To $iEnd
For $i = $iSubStart To $iSubEnd
$sResult &= $avArray [$i][$j] & $sSubDelim
Next
$sResult = StringTrimRight($sResult, StringLen($sSubDelim))
$sResult &= $sDelim
Next
Case Else
Return SetError(3, 0, 0)
EndSwitch
Case Else
Return SetError(2, 0, 0)
EndSwitch
Return SetError(0, 0, StringTrimRight($sResult, StringLen($sDelim)))
EndFunc ;==>_Array2D_ToString
回复 6# Huiseyu
明显是自己没找到现成的就说不行呗 本帖最后由 bhffhzh 于 2015-4-19 13:46 编辑
我确实用au3.cc就能生成。
http://www.autoitx.com/forum.php?mod=viewthread&from=notice&tid=47690
这是我上次发的一个贴子。 本帖最后由 Huiseyu 于 2015-4-19 13:49 编辑
我确实用au3.cc就能生成。
bhffhzh 发表于 2015-4-19 13:42 http://www.autoitx.com/images/common/back.gif
饭不是米,吃饭不用米可能是你版本问题,我的版本在是这里下载的。测试成功后才回复。这个问题有点复杂了.. 回复 8# netegg
请不要误会。如果要现成的,上次发的贴子,afan版主已经给出现成的了。Local $sR = '', $net1, $var, $sFile = 'c:\ok.txt', $hFO
For $net1 = 1 To 100000000000
$var = RegEnumKey('HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall', $net1)
If @error Then ExitLoop
$sR &= '第' & $net1 & '键' & '=' & $var & @CRLF
Next
$hFO = FileOpen($sFile, 2 + 8)
FileWrite($hFO, $sR)
FileClose($hFO)
MsgBox(0, $sFile, FileRead($sFile)) 本帖最后由 netegg 于 2015-4-19 14:48 编辑
回复 11# bhffhzh
afan这个又不是数组,用的是字符串,另外afan明显没写全,直接做个正则拆出来一样可以实现,这个他拿手 ‘支持二维数组的版本’----这是你的原话 ‘支持二维数组的版本’----这是你的原话
netegg 发表于 2015-4-19 14:42 http://www.autoitx.com/images/common/back.gif
用能用的,做能做的,说有用的。呵呵 本帖最后由 131738 于 2015-4-19 16:52 编辑
而用au3.cc都可以。但我在论坛下的都好像不成功。很是着急。
bhffhzh 发表于 2015-4-19 11:22 http://www.autoitx.com/images/common/back.gif
说说你在这里下的什么版本...............
至少 3.3.12.0 版本及更高版本, 这里有下载的!
页:
[1]
2