Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   AutoIt (http://forum.oszone.net/forumdisplay.php?f=103)
-   -   [решено] Написать число (http://forum.oszone.net/showthread.php?t=218274)

tehnik_srs 18-10-2011 14:34 1776109

Написать число
 
Добрый день!
Есть ли возможность в AutoIT "написать" числовое значение. Например, если $i = 121, то в $a должно занести 'Сто двадцать один'?

Creat0R 18-10-2011 18:44 1776276

Примерно так (пока только до ста):

Код:

$sText = _NumToText(21)
ConsoleWrite($sText & @LF)

Func _NumToText($iNum)
    $sBasic = StringSplit("Один|Два|Три|Четыре|Пять|Шесть|Семь|Восемь|Девять", "|")
    $s10To20 = StringSplit("Одинадцать|Двенадцать|Тринадцать|Четырнадцать|Пятнадцать|Шестнадцать|Семнадцать|Восемнадцать|Девятнадцать", "|")
    $sTens = StringSplit("Десять|Двадцать|Тридцать|Сорок|Пятьдесят|Шестьдесят|Семьдесят|Восемьдесят|Девяносто", "|")
    $sHundreds = StringSplit("Сто|Двести|Триста|Четыреста|Пятьсот|Шестьсот|Семьсот|Восемьсот|Девятьсот", "|")
    $sTousends = StringSplit("Тысяча|Тысячи|Тысяч", "|")

    For $i = 1 To $sHundreds[0]
        $iNum = StringRegExpReplace($iNum, "^" & $i & "00$", $sHundreds[$i])
    Next

    For $i = 11 To 19
        $iNum = StringRegExpReplace($iNum, "^" & $i & "$", $s10To20[$i-10])
    Next

    For $i = 1 To $sTens[0]
        $iNum = StringRegExpReplace($iNum, "^" & $i & "0$", $sTens[$i])
    Next

    For $i = 1 To $sTens[0]
        $iNum = StringRegExpReplace($iNum, String($i) & "([1-9])", $sTens[$i] & " \1")
    Next

    For $i = 1 To $sBasic[0]
        $iNum = StringReplace($iNum, String($i), $sBasic[$i])
    Next

    Return $iNum
EndFunc


Iska 18-10-2011 19:52 1776315

2All: думаю, можно взять одну из многочисленных реализаций «ЧислоПрописью()» с конкурсов дополнений к Microsoft Office: "Microsoft Office" Extensions число|сумма прописью - Поиск в Google и перевести на AutoIt.

tehnik_srs 19-10-2011 09:41 1776624

Всем спасибо, попробую
Переделал немного, все работает, спс еще раз.


Время: 15:00.

Время: 15:00.
© OSzone.net 2001-