powered by simpleCommunicator - 2.0.58     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Convert VBA to JavaScript
6 сообщений из 6, страница 1 из 1
Convert VBA to JavaScript
    #38462971
Joris
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день, всем!
Уважаемые кто нибудь может перевести этот макрос на JavaScript или помочь сделат функцию сумма прописью, что бы сумму выводило на этом языке, макрос не мой нашел в инете, хотелось бы перевести на JavaScript, чтобы использовать в Asp.Net, пожалуйста переведите этот макрос...
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
Option Explicit
Function SumPropTajik(n As Double) As String
Dim ed, des, sot, ten, razr
Dim i As Integer, somoni As String, diram As String, str As String, s As String

ed = Array("", "ÿê ", "äó ", "ñå ", "÷îð ", "ïàí÷ ", "øàø ", "õàôò ", "õàøò ", "íóõ ")
ten = Array("äàõ ", "¸çäàõ ", "äóâîçäàõ ", "ñåíçäàõ ", "÷îðäàõ ", "ïîíçäàõ ", "øîíçäàõ ", "õàáäàõ ", "õàæäàõ ", "íóçäàõ ")
des = Array("", "", "áèñò", "ñè", "÷èë", "ïàí÷îõ", "øàñò", "õàôòîä", "õàøòîä", "íàâàä")
sot = Array("", "ÿêñàä", "äóñàä", "ñåñàä", "÷îðñàä", "ïàí÷ñàä", "øàøñàä", "õàôòñàä", "õàøòñàä", "íóõñàä")
razr = Array("", "õàçîð", "ìèëëèîí", "ìèëëèàðä")

If n >= 1000000000000# Or n < 0 Then SumPropTajik = CVErr(xlErrValue): Exit Function
If Round(n, 2) < 1 Then
    str = "&#241;&#232;&#244;&#240; "
Else
    somoni = Left(Format(n, "000000000000.00"), 12)
    For i = 0 To 3
        s = Mid(somoni, i * 3 + 1, 3)
        str = str & sot(CInt(Left(s, 1))) & IIf(Left(s, 1) = "0", "", IIf(Right(s, 2) = "00", " ", "&#243; "))
        If Mid(s, 2, 1) = "1" Then
            str = str & ten(CInt(Right(s, 1)))
        Else
            str = str & des(CInt(Mid(s, 2, 1)))
            str = str & IIf(CInt(Mid(s, 2, 1)) > 1 And Right(s, 1) <> "0", "&#243; ", IIf(CInt(Mid(s, 2, 1)), " ", ""))
            str = str & ed(CInt(Right(s, 1)))
        End If
        If s <> "000" And i < 3 Then str = str & razr(3 - i) & IIf(CDbl(Mid(somoni, i * 3 + 4)) > 0, "&#243; ", " ")
    Next i
End If
diram = Right(Format(n, "0.00"), 2)
str = Replace(Replace(str, "&#241;&#232;&#243; ", "&#241;&#232;&#226;&#243; "), "&#255;&#234;&#241;&#224;&#228; ", "&#241;&#224;&#228; ") & "&#241;&#238;&#236;&#238;&#237;&#232;" & IIf(diram <> "00", " " & diram & " &#228;&#232;&#240;&#224;&#236;", "")
SumPropTajik = UCase(Left(str, 1)) & Mid(str, 2)
End Function


Заранее спасибо!
...
Рейтинг: 0 / 0
Convert VBA to JavaScript
    #38463000
Joris
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
Function SumPropTajik(n As Double) As String
Dim ed, des, sot, ten, razr
Dim i As Integer, somoni As String, diram As String, str As String, s As String

ed = Array("", "yak ", "du ", "se ", "chor ", "panj ", "shash ", "haft ", "hasht ", "nuh ")
ten = Array("dah ", "yozdah ", "duvozdah ", "senzdah ", "chordah ", "ponzdah ", "shonzdah ", "habdah ", "hajdah ", "nuzdah ")
des = Array("", "", "bist", "ci", "chil", "panjoh", "shast", "haftod", "hashtod", "navad")
sot = Array("", "yaksad", "dusad", "sesad", "chorsad", "panjsad", "shashsad", "haftsad", "hashtsad", "nuhsad")
razr = Array("", "hazor", "milion", "miliard")

If n >= 1000000000000# Or n < 0 Then SumPropTajik = CVErr(xlErrValue): Exit Function
If Round(n, 2) < 1 Then
    str = "sifr "
Else
    somoni = Left(Format(n, "000000000000.00"), 12)
    For i = 0 To 3
        s = Mid(somoni, i * 3 + 1, 3)
        str = str & sot(CInt(Left(s, 1))) & IIf(Left(s, 1) = "0", "", IIf(Right(s, 2) = "00", " ", "u "))
        If Mid(s, 2, 1) = "1" Then
            str = str & ten(CInt(Right(s, 1)))
        Else
            str = str & des(CInt(Mid(s, 2, 1)))
            str = str & IIf(CInt(Mid(s, 2, 1)) > 1 And Right(s, 1) <> "0", "u ", IIf(CInt(Mid(s, 2, 1)), " ", ""))
            str = str & ed(CInt(Right(s, 1)))
        End If
        If s <> "000" And i < 3 Then str = str & razr(3 - i) & IIf(CDbl(Mid(somoni, i * 3 + 4)) > 0, "u ", " ")
    Next i
End If
diram = Right(Format(n, "0.00"), 2)
str = Replace(Replace(str, "siu ", "sivu "), "yaksad ", "sad ") & "psmoni" & IIf(diram <> "00", " " & diram & " psdiram", "")
SumPropTajik = UCase(Left(str, 1)) & Mid(str, 2)
End Function
...
Рейтинг: 0 / 0
Convert VBA to JavaScript
    #38463037
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
может быстрее будет спросить готовый?
...
Рейтинг: 0 / 0
Convert VBA to JavaScript
    #38463068
Joris
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,

Готовый есть, только не на наш язык)))), на десятки, сотни и т.п. у нас разница есть вот поэтому мучимся...
...
Рейтинг: 0 / 0
Convert VBA to JavaScript
    #38464374
скукотища
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Joris,
тестируй
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
function(n){
    if ('number' !== typeof n) return 'ERROR: Illegal argument type';    
    if (0. > n || 1e12-.01 < n) return 'ERROR: Illegal argument';
    
    var ed = ['', 'yak ', 'du ', 'se ', 'chor ', 'panj ', 'shash ', 'haft ', 'hasht ', 'nuh '],
        ten = ['dah ', 'yozdah ', 'duvozdah ', 'senzdah ', 'chordah ', 'ponzdah ', 'shonzdah ', 'habdah ', 'hajdah ', 'nuzdah '],
        des = ['', '', 'bist', 'ci', 'chil', 'panjoh', 'shast', 'haftod', 'hashtod', 'navad'],
        sot = ['', 'yaksad', 'dusad', 'sesad', 'chorsad', 'panjsad', 'shashsad', 'haftsad', 'hashtsad', 'nuhsad'],
        razr = ['', 'hazor', 'milion', 'miliard'],
        str;
        
    if ( 1. > n ) {
        str = 'sifr ';
    } else {
        var somoni = ('000000000000' + Math.floor(n)).slice(-12);
        str = '';
        for (var i = 0, ss, s, d, e; i < 4; i++) {
            ss = somoni.substring(i*3, i*3+3); 
            s = parseInt(ss.charAt(0)); d = parseInt(ss.charAt(1)); e = parseInt(ss.charAt(2));
            str += sot[s] + (0 == s ? '' : 0 == d+e ? ' ' : 'u ');
            if ( 1 == d ) str += ten[e];
            else str += des[d] + (1 < d && 0 < e ? 'u ' : d ? ' ' : '') + ed[e];
            if ( 3 > i && '000' != ss ) str += razr[3-i] + (0 < parseInt(somoni.substring(i*3+3)) ? 'u ' : ' ');
        }
    }
    var diram = ('00'+Math.round((n - Math.floor(n))*100)).slice(-2);
    str = str.replace(/siu /g, 'sivu ').replace(/yaksad /g, 'sad') + 'psmoni' + ('00' != diram ? ' ' + diram + ' psdiram' : '');
    return str.substring(0, 1).toUpperCase() + str.substring(1);
}

...
Рейтинг: 0 / 0
Convert VBA to JavaScript
    #38464429
Joris
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
скукотища,

Спасибо огромное очень выручили.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Convert VBA to JavaScript
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]