Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - скрипт для написания суммы прописью

Ответить
Настройки темы
PowerShell - скрипт для написания суммы прописью

Пользователь


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

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


Код: Выделить весь код
Function Amount {
param ($Argument)

 $Arg1 = @("", "один ", "два ", "три ", "четыре ", "пять ", "шесть ", "семь ", "восемь ", "девять ")
 $Arg2 = @("", "десять ", "двадцать ", "тридцать ", "сорок ", "пятьдесят ", "шестьдесят ", "семьдесят ", "восемьдесят ", "девяносто ")
 $Arg3 = @("", "сто ", "двести ", "триста ", "четыреста ", "пятьсот ", "шестьсот ", "семьсот ", "восемьсот ", "девятьсот ")
 $Arg4 = @("", "одна ", "две ", "три ", "четыре ", "пять ", "шесть ", "семь ", "восемь ", "девять ")
 $Arg5 = @("десять ", "одиннадцать ", "двенадцать ", "тринадцать ", "четырнадцать ", "пятнадцать ", "шестнадцать ", "семнадцать ", "восемнадцать ", "девятнадцать ")
 
 If ($Argument -le 0) {
    "ноль"
   break
 }

 $Units = Levels -Number $Argument -Degree 1 
 $Dozen = Levels -Number $Argument -Degree 2
 $Hundred = Levels -Number $Argument -Degree 3
 $Thousand = Levels -Number $Argument -Degree 4
 $Dozen_Thousand = Levels -Number $Argument -Degree 5
 $Hundred_Thousand = Levels -Number $Argument -Degree 6
 $millions = Levels -Number $Argument -Degree 7
 $Dozen_Millions = Levels -Number $Argument -Degree 8
 
 switch -Regex ($millions) {
        1 {$millions_text = $Arg1[$millions] + "миллион "}
   "[2-4]" {$millions_text = $Arg1[$millions] + "миллиона "}
  "[5-9]" {$millions_text = $Arg1[$millions] + "миллионов "}
     }

 switch -Regex ($Dozen_Millions) {
       1 {$millions_text = $Arg5[$millions] + "миллионов "; break}
  "[2-9]" {$Dozen_Millions_text = $Arg2[$Dozen_Millions]}
 }

switch -regex($Thousand){
     0 { If ($Dozen_Thousand -gt 0) { $Thousand_text = $Arg4[$Thousand] + "тысяч "}}
     1 {$Thousand_text = $Arg4[$Thousand] + "тысяча "}
  "[2-4]" {$Thousand_text = $Arg4[$Thousand] + "тысячи "}
  "[5-9]" {$Thousand_text = $Arg4[$Thousand] + "тысяч "}
 }
 
 switch -Regex ($Dozen_Thousand){
      1 {$Thousand_text = $Arg5[$Thousand] + "тысяч "; break}
"[2-9]" {$Dozen_Thousand_text = $Arg2[$Dozen_Thousand]}
}

 $Hundred_Thousand_text = $Arg3[$Hundred_Thousand]


 If (($Dozen_Thousand -eq 0) -And ($Thousand -eq 0) -And ($Hundred_Thousand -gt 0))
  {
  "тысяч"
  $Hundred_Thousand_text = $Hundred_Thousand_text + " тысяч "
  }


$Units_text = $Arg1[$Units]

switch -Regex ($Dozen){
        1 {$Units_text = $Arg5[$Units]}
  "[2-9]" {$Dozen_text = $Arg2[$Dozen]}
 }
 
 $Hundred_text = $Arg3[$Hundred]

 $Amount = $Dozen_Millions_text + $millions_text + $Hundred_Thousand_text + $Dozen_Thousand_text + $Thousand_text + $Hundred_text + $Dozen_text + $Units_text
 $Amount
} 


Function Levels {
param ($Number, $Degree)
[Math]::Floor([Math]::Floor($Number - ([Math]::Pow(10,$Degree)) * ([Math]::Floor($Number / ([Math]::Pow(10,$Degree))))) / ([Math]::Pow(10,$Degree-1)))
}
Авторство не мое, переписал с Excel. Может пригодится кому.
Это сообщение посчитали полезным следующие участники:

Отправлено: 18:51, 24-04-2015

 


Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - скрипт для написания суммы прописью

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
2003/XP/2000 - Сумма прописью для MS Word версии 2003 и выше Smolenkov_BN Microsoft Office (Word, Excel, Outlook и т.д.) 2 18-08-2013 18:23
RAID - RAID для написания музыки высокого разрешения (96kHz). Нужен совет sad1922 Накопители (SSD, HDD, USB Flash) 10 09-04-2011 23:58
Любой язык - Учебники по JavaScript для написания скриптов для Adobe Photoshop Lan-Laboratory Скриптовые языки администрирования Windows 1 26-05-2010 13:59
.NET - *SOFT* | C# vs PHP для написания небольших скриптов Vlad Drakula Программирование и базы данных 12 30-07-2006 23:25
Посоветуйте лучший редактор для написания сайта renat Вебмастеру 28 09-02-2005 17:51




 
Переход