junziyeaicai 发表于 2018-11-4 09:38:30

读取数据到数组,数组下标从0开始,看着不顺眼,想把数据从1开始,怎么办啊?

本帖最后由 junziyeaicai 于 2018-11-4 10:27 编辑

读取数据到数组,数组下标从0开始,看着不顺眼,想把数据从1开始,怎么办啊?
比如我获取的数据如下
Dim $Array

$Array=11
$Array=21
$Array=31
$Array=41
$Array=51

$Array=12
$Array=22
$Array=32
$Array=42
$Array=52

$Array=13
$Array=23
$Array=33
$Array=43
$Array=53
看是看着不顺眼,我想变成下面这样
$Array=11
$Array=21
$Array=31
$Array=41
$Array=51

$Array=12
$Array=22
$Array=32
$Array=42
$Array=52

$Array=13
$Array=23
$Array=33
$Array=43
$Array=53

有没有好用的函数调用一下啊?


afan 发表于 2018-11-4 10:25:33

#include <Array.au3>
_ArrayInsert($Array, 0, '')

junziyeaicai 发表于 2018-11-4 11:07:09

本帖最后由 junziyeaicai 于 2018-11-4 11:20 编辑

afan 发表于 2018-11-4 10:25

好的谢谢,刚才怕麻烦所以发的一维数组,其实我需要的是二维数组,_ArrayInsert($Array, 0, '')好像不能插入二维数组,我自己写了个方法解决了。
#include <Array.au3>

Dim $Array

$Array=11
$Array=21
$Array=31
$Array=41
$Array=51

$Array=12
$Array=22
$Array=32
$Array=42
$Array=52

$Array=13
$Array=23
$Array=33
$Array=43
$Array=53

_ArrayDisplay($Array,"原数组")

$Array = __redim($Array)


_ArrayDisplay($Array,"调整后数组")


Func __redim(ByRef $aArray)
      ;数组1维长度
      Local $u1=UBound($aArray,1)
      ;数组2维长度
      Local $u2=UBound($aArray,2)
      ;调整数组长度+1
      ReDim $aArray[$u1+1][$u2+1]
      ;数组赋值后移
      For $i = $u1 To 1 Step -1
                For $j = $u2 To 1 Step -1
                        $aArray[$i][$j] = $aArray[$i - 1][$j - 1]      
                Next
      Next
      ;无用数组刷写无用数据
      $aArray = ""
      For $i = $u1 To 1 Step -1
                $aArray[$i] = ""
                For $j = $u2 To 1 Step -1
                        $aArray[$j] = ""
                Next
      Next
    Return         $aArray
EndFunc      


duxing 发表于 2018-11-4 21:21:54

这几天在折腾EXCEL和数组之间的切换,正好拿来用了

chishingchan 发表于 2018-11-5 10:45:36

数组的在很多语言中一般是记录数组的数量。

heroxianf 发表于 2018-11-5 15:33:03

这个看使用场景吧,有时候默认从0开始也是比较方便的。

hbwazxf 发表于 2018-11-5 16:52:50

好久没来了。进来学习下……
页: [1]
查看完整版本: 读取数据到数组,数组下标从0开始,看着不顺眼,想把数据从1开始,怎么办啊?