1

Тема: WSH,VBS,JS: Переделайте пожалуйста функцию из JS в VBS

/**
 * Функция возвращает окончание для множественного числа слова на основании числа и массива окончаний
 * @param  iNumber Integer Число на основе которого нужно сформировать окончание
 * @param  aEndings Array Массив слов или окончаний для чисел (1, 4, 5),
 *         например ['яблоко', 'яблока', 'яблок']
 * @return String
 */
function getNumEnding(iNumber, aEndings)
{
    var sEnding, i;
    iNumber = iNumber % 100;
    if (iNumber>=11 && iNumber<=19) {
        sEnding=aEndings[2];
    }
    else {
        i = iNumber % 10;
        switch (i)
        {
            case (1): sEnding = aEndings[0]; break;
            case (2):
            case (3):
            case (4): sEnding = aEndings[1]; break;
            default: sEnding = aEndings[2];
        }
    }
    return sEnding;
}

2

Re: WSH,VBS,JS: Переделайте пожалуйста функцию из JS в VBS

Попробуйте так:

Option Explicit

Dim i

For i = 0 To 25
	WScript.Echo CStr(i) & " " & GetNumEnding(i, Array("яблоко", "яблока", "яблок"))
Next

WScript.Quit 0

Function GetNumEnding(ByVal lngNumber, arrEndings)
	lngNumber = lngNumber Mod 100
	
	If lngNumber >= 11 And lngNumber <= 19 Then
		GetNumEnding = arrEndings(2)
	Else
		lngNumber = lngNumber Mod 10
		
		Select Case lngNumber
			Case 1
				GetNumEnding = arrEndings(0)
			Case 2, 3, 4
				GetNumEnding = arrEndings(1)
			Case Else
				GetNumEnding = arrEndings(2)
		End Select
	End If
End Function