#include <Array.au3>
$aSource = _GetRangeNumbersArray('1-9')
_ArrayDisplay($aSource)
Dim $iAdd = 0
If Mod($aSource[0], 4) Then ; проверка "разбиваемости" страниц в блок по 4
$iAdd = 4 - Mod($aSource[0], 4)
EndIf
ReDim $aSource[UBound($aSource) + $iAdd] ; корректировка, если страниц мало
$aSource[0] = UBound($aSource) - 1
For $i = UBound($aSource) - $iAdd To UBound($aSource) - 1 ; обзываем недостающие страницы
$aSource[$i] = 'bulk'
Next
_ArrayDisplay($aSource)
Dim $aResult[$aSource[0]/4][2], $iCounter = 0
For $i = 1 To $aSource[0]/2 Step 2 ; заполнение выходного массива парами страниц
$aResult[$iCounter][0] = $aSource[$i] & '-' & $aSource[$aSource[0] - $iCounter*2] ; левый столбец - лицевые
$aResult[$iCounter][1] = $aSource[$i + 1] & '-' & $aSource[$aSource[0] - $iCounter*2 - 1] ; правый - оборотка
$iCounter += 1
Next
_ArrayDisplay($aResult)
Func _GetRangeNumbersArray($sString, $sStr_Delim = ",", $sRange_Delim = "-")
Local $aStr_Split = StringSplit($sString, $sStr_Delim)
Local $aRetArr[1], $aRange_Split, $iFor, $iTo
For $i = 1 To $aStr_Split[0]
If StringInStr($aStr_Split[$i], $sRange_Delim) Then
$aRange_Split = StringSplit($aStr_Split[$i], $sRange_Delim)
$iFor = Number($aRange_Split[1])
$iTo = Number($aRange_Split[$aRange_Split[0]])
For $j = $iFor To $iTo ;От первого к последнему
$aRetArr[0] += 1
ReDim $aRetArr[$aRetArr[0] + 1]
$aRetArr[$aRetArr[0]] = $j
Next
Else
$aRetArr[0] += 1
ReDim $aRetArr[$aRetArr[0] + 1]
$aRetArr[$aRetArr[0]] = $aStr_Split[$i]
EndIf
Next
Return $aRetArr
EndFunc ;==>_GetRangeNumbersArray