Имя пользователя:
Пароль:
 

Показать сообщение отдельно

Аватара для Creat0R

Must AutoIt


Сообщения: 3054
Благодарности: 1009

Профиль | Сайт | Отправить PM | Цитировать


Вот так по алгоритму :

Код: Выделить весь код
#include <Array.au3>

$sVar = "5-23,45,54,60-62"

$aRange_Array = _GetRangeNumbersArray($sVar)

_ArrayDisplay($aRange_Array)

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
P.S
Не знаю почему, но у меня есть слабость к таким задачкам

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community


Отправлено: 00:08, 11-09-2009 | #4