Нашел вот такой вариант https://qa-help.ru/questions/vyvesti-chislo-propisyu-8Если не найдешь, то можно через обычный сниппет замены.
Его еще надо вставить в зенку и желательно в own codeНу можно переписать вручную
Я про этот сниппет говорил, может это решение проще для тебя будет.Его еще надо вставить в зенку и желательно в own code
Нашел вот такой вариант https://qa-help.ru/questions/vyvesti-chislo-propisyu-8
но там только русский
int number = int.Parse(project.Variables["number"].Value);
int[] array_int = new int[4];
string[,] array_string = new string[4, 3] {{" миллиард", " миллиарда", " миллиардов"},
{" миллион", " миллиона", " миллионов"},
{" тысяча", " тысячи", " тысяч"},
{"", "", ""}};
array_int[0] = (number - (number % 1000000000)) / 1000000000;
array_int[1] = ((number % 1000000000) - (number % 1000000)) / 1000000;
array_int[2] = ((number % 1000000) - (number % 1000)) / 1000;
array_int[3] = number % 1000;
string result = "";
for (int i = 0; i < 4; i++)
{
if (array_int[i] != 0)
{
if (((array_int[i] - (array_int[i] % 100)) / 100) != 0)
switch (((array_int[i] - (array_int[i] % 100)) / 100))
{
case 1: result += " сто"; break;
case 2: result += " двести"; break;
case 3: result += " триста"; break;
case 4: result += " четыреста"; break;
case 5: result += " пятьсот"; break;
case 6: result += " шестьсот"; break;
case 7: result += " семьсот"; break;
case 8: result += " восемьсот"; break;
case 9: result += " девятьсот"; break;
}
if (((array_int[i] % 100) - ((array_int[i] % 100) % 10)) / 10 != 1)
{
switch (((array_int[i] % 100) - ((array_int[i] % 100) % 10)) / 10)
{
case 2: result += " двадцать"; break;
case 3: result += " тридцать"; break;
case 4: result += " сорок"; break;
case 5: result += " пятьдесят"; break;
case 6: result += " шестьдесят"; break;
case 7: result += " семьдесят"; break;
case 8: result += " восемьдесят"; break;
case 9: result += " девяносто"; break;
}
}
switch (array_int[i] % 10)
{
case 1: if (i == 2) result += " одна"; else result += " один"; break;
case 2: if (i == 2) result += " две"; else result += " два"; break;
case 3: result += " три"; break;
case 4: result += " четыре"; break;
case 5: result += " пять"; break;
case 6: result += " шесть"; break;
case 7: result += " семь"; break;
case 8: result += " восемь"; break;
case 9: result += " девять"; break;
}
}
else switch (array_int[i] % 100)
{
case 10: result += " десять"; break;
case 11: result += " одиннадцать"; break;
case 12: result += " двенадцать"; break;
case 13: result += " тринадцать"; break;
case 14: result += " четырнадцать"; break;
case 15: result += " пятнадцать"; break;
case 16: result += " шестнадцать"; break;
case 17: result += " семнадцать"; break;
case 18: result += " восемннадцать"; break;
case 19: result += " девятнадцать"; break;
}
if (array_int[i] % 100 >= 10 && array_int[i] % 100 <= 19) result += " " + array_string[i, 2] + " ";
else switch (array_int[i] % 10)
{
case 1: result += " " + array_string[i, 0] + " "; break;
case 2:
case 3:
case 4: result += " " + array_string[i, 1] + " "; break;
case 5:
case 6:
case 7:
case 8:
case 9: result += " " + array_string[i, 2] + " "; break;
}
}
return result;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading;
using System.IO;
using System.Text.RegularExpressions;
using ZennoLab.CommandCenter;
using ZennoLab.InterfacesLibrary;
using ZennoLab.InterfacesLibrary.ProjectModel;
using ZennoLab.InterfacesLibrary.ProjectModel.Collections;
using ZennoLab.InterfacesLibrary.ProjectModel.Enums;
using ZennoLab.Macros;
using Global.ZennoExtensions;
using ZennoLab.Emulation;
namespace ZennoLab.OwnCode
{
public class RusNumber
{
//Наименования сотен
private static string[] hunds =
{
"", "сто ", "двести ", "триста ", "четыреста ",
"пятьсот ", "шестьсот ", "семьсот ", "восемьсот ", "девятьсот "
};
//Наименования десятков
private static string[] tens =
{
"", "десять ", "двадцать ", "тридцать ", "сорок ", "пятьдесят ",
"шестьдесят ", "семьдесят ", "восемьдесят ", "девяносто "
};
/// <summary>
/// Перевод в строку числа с учётом падежного окончания относящегося к числу существительного
/// </summary>
/// <param name="val">Число</param>
/// <param name="male">Род существительного, которое относится к числу</param>
/// <param name="one">Форма существительного в единственном числе</param>
/// <param name="two">Форма существительного от двух до четырёх</param>
/// <param name="five">Форма существительного от пяти и больше</param>
/// <returns></returns>
public static string Str(int val, bool male, string one, string two, string five)
{
string[] frac20 =
{
"", "один ", "два ", "три ", "четыре ", "пять ", "шесть ",
"семь ", "восемь ", "девять ", "десять ", "одиннадцать ",
"двенадцать ", "тринадцать ", "четырнадцать ", "пятнадцать ",
"шестнадцать ", "семнадцать ", "восемнадцать ", "девятнадцать "
};
int num = val % 1000;
if(0 == num) return "";
if(num < 0) throw new ArgumentOutOfRangeException("val", "Параметр не может быть отрицательным");
if(!male)
{
frac20[1] = "одна ";
frac20[2] = "две ";
}
StringBuilder r = new StringBuilder(hunds[num / 100]);
if(num % 100 < 20)
{
r.Append(frac20[num % 100]);
}
else
{
r.Append(tens[num % 100 / 10]);
r.Append(frac20[num % 10]);
}
r.Append(Case(num, one, two, five));
if(r.Length != 0) r.Append(" ");
return r.ToString();
}
/// <summary>
/// Выбор правильного падежного окончания сущесвительного
/// </summary>
/// <param name="val">Число</param>
/// <param name="one">Форма существительного в единственном числе</param>
/// <param name="two">Форма существительного от двух до четырёх</param>
/// <param name="five">Форма существительного от пяти и больше</param>
/// <returns>Возвращает существительное с падежным окончанием, которое соответсвует числу</returns>
public static string Case(int val, string one, string two, string five)
{
int t=(val % 100 > 20) ? val % 10 : val % 20;
switch (t)
{
case 1: return one;
case 2: case 3: case 4: return two;
default: return five;
}
}
/// <summary>
/// Перевод целого числа в строку
/// </summary>
/// <param name="val">Число</param>
/// <returns>Возвращает строковую запись числа</returns>
public static string Str(int val) {
bool minus = false;
if (val < 0) { val = -val; minus = true; }
int n = (int)val;
StringBuilder r = new StringBuilder();
if (0 == n) r.Append("0 ");
if (n % 1000 != 0)
r.Append(RusNumber.Str(n, true, "", "", ""));
n /= 1000;
r.Insert(0, RusNumber.Str(n, false, "тысяча", "тысячи", "тысяч"));
n /= 1000;
r.Insert(0, RusNumber.Str(n, true, "миллион", "миллиона", "миллионов"));
n /= 1000;
r.Insert(0, RusNumber.Str(n, true, "миллиард", "миллиарда", "миллиардов"));
n /= 1000;
r.Insert(0, RusNumber.Str(n, true, "триллион", "триллиона", "триллионов"));
n /= 1000;
r.Insert(0, RusNumber.Str(n, true, "триллиард", "триллиарда", "триллиардов"));
if (minus) r.Insert(0, "минус ");
//Делаем первую букву заглавной
r[0] = char.ToUpper(r[0]);
return r.ToString();
}
}
}
int number = int.Parse(project.Variables["number"].Value);
return RusNumber.Str(number);
В гугле все есть, не ленитесь, пользуйтесь поиском)нужно переводить цифры написанные буквами в обычные цифры
желательно на русском и английском.