bhffhzh 发表于 2015-4-19 11:22:09

求支持二维数组的版本。试了好多都不行。

而用au3.cc都可以。但我在论坛下的都好像不成功。很是着急。

netegg 发表于 2015-4-19 11:41:31

什么数组,没听说过这种情况

bhffhzh 发表于 2015-4-19 12:26:33

回复 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 12:54:28

本帖最后由 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,"提示","已经生成请检查!")

shqf 发表于 2015-4-19 13:07:01

看帮助,_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, "提示", "已经生成请检查!")

Huiseyu 发表于 2015-4-19 13:12:06

"上次发的一个贴子,不能生成结果。用au3.cc的版本就行。," ,楼主是有几个意思。

netegg 发表于 2015-4-19 13:17:53

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

netegg 发表于 2015-4-19 13:22:28

回复 6# Huiseyu
明显是自己没找到现成的就说不行呗

bhffhzh 发表于 2015-4-19 13:42:26

本帖最后由 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:45:19

本帖最后由 Huiseyu 于 2015-4-19 13:49 编辑

我确实用au3.cc就能生成。
bhffhzh 发表于 2015-4-19 13:42 http://www.autoitx.com/images/common/back.gif


    饭不是米,吃饭不用米可能是你版本问题,我的版本在是这里下载的。测试成功后才回复。这个问题有点复杂了..

bhffhzh 发表于 2015-4-19 13:48:38

回复 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:41:02

本帖最后由 netegg 于 2015-4-19 14:48 编辑

回复 11# bhffhzh
afan这个又不是数组,用的是字符串,另外afan明显没写全,直接做个正则拆出来一样可以实现,这个他拿手

netegg 发表于 2015-4-19 14:42:50

‘支持二维数组的版本’----这是你的原话

Huiseyu 发表于 2015-4-19 14:46:12

‘支持二维数组的版本’----这是你的原话
netegg 发表于 2015-4-19 14:42 http://www.autoitx.com/images/common/back.gif


    用能用的,做能做的,说有用的。呵呵

131738 发表于 2015-4-19 16:37:01

本帖最后由 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
查看完整版本: 求支持二维数组的版本。试了好多都不行。