AutoIt - 将1变量拆分为4

时间:2014-07-20 10:45:12

标签: variables split autoit

我有一个4位变量,我希望从0000到9999范围内分成4个单独的变量

    Local $Data ="Element 1|Element 2|Element 3|Element 4"
Local $arr = StringSplit($Data, "|")
If IsArray($arr) Then
    $Imax = Ubound($arr)
    For $i = 0 to $Imax -1 
        Next
EndIf

这是我到目前为止所得到的

我希望它能做到这一点: 让我们说bigvar = 2345

$BigVar=2345 Then
$SmallVar1 = 2
$SmallVar2 = 3
$SmallVar3 = 4
$SmallVar4 = 5

bigvar也一直在变化所以我需要它继续阅读

3 个答案:

答案 0 :(得分:0)

LOL对所有过度杀伤的答案

#include <Array.au3>
Local $parts = StringSplit("1574", "")
_ArrayDisplay($parts)

答案 1 :(得分:-1)

字符串方法

如果您只是想拆分它,可以使用

#include <Array.au3>
Func _Split($BigVar)
  Local $SmallVar[1] = [0]
  For $i = 1 To StringLen($BigVar)
    _ArrayAdd($SmallVar, StringMid($BigVar, $i, 1))
    $SmallVar[0] += 1
  Next
  Return $SmallVar
EndFunc
$Array = _Split("2345")
_ArrayDisplay($Array)

现在你可以使用

$Array[0] = 4 ;Amount of digits
$Array[1] = 2
$Array[2] = 3
$Array[3] = 4
$Array[4] = 5

如果数字可能为123,并且您希望将其解释为0123,因此$SmallVar[1] 0而不是1,则此方法可能符合您的需求:

#include <Array.au3>
Func _Split($BigVar, $Digits = 0)
  Local $SmallVar[1] = [0]
  For $i = 1 To StringLen($BigVar)
    _ArrayAdd($SmallVar, StringMid($BigVar, $i, 1))
    $SmallVar[0] += 1
  Next
  If $Digits = 0 Then Return $SmallVar
  If $SmallVar[0] >= $Digits Then
    For $i = 1 To $SmallVar[0] - $Digits
      _ArrayDelete($SmallVar, $i)
    Next
    $SmallVar[0] = $Digits
    Return $SmallVar
  EndIf
  For $i = 1 To $Digits - $SmallVar[0]
    _ArrayInsert($SmallVar, 1, 0)
  Next
  $SmallVar[0] = $Digits
  Return $SmallVar
EndFunc
$Array = _Split("123", 4) ;4 being the amount of digits
_ArrayDisplay($Array)

上面的代码示例仍适用于此版本,因为数字是一个可选参数,并且将其保留,_Split将像以前一样运行。

答案 2 :(得分:-1)

只需使用modulo 10除法得到单个整数。

#include <array.au3>

Global $BigVar=2345
Global $TmpVar=$BigVar
Global $aResult[StringLen(String($BigVar))]

For $i=UBound($aResult)-1 To 0 Step -1
    $aResult[$i] = Int(Mod($TmpVar, 10))
    $TmpVar /= 10
Next
_ArrayDisplay($aResult)

现在你有一个数组,其中每个大整数都存储在一个单独的字段中。