12/12/2004
Опубликована версия 3.02

7/10/2004
Опубликована версия 3.01


Как сделать

Как сделать файл прописи.

Чтобы открыть файл *.spl сделайте следующее:
1. Откройте блокнот (Notepad.exe).
2. Выберите меню Файл\Открыть.
3. В поле "Тип файлов" выберите "Все файлы".
4. Выберите папку калькулятора и щелкните по файлу *.spl.

С точки зрения грамматики русского языка файл можно было бы сделать
намного проще, однако, я надеюсь, что можно будет переделать файл
и под другие языки, а так как о структуре и грамматике этих самых
других языков, я имею весьма смутное представление, то файл намеренно
сделан максимально подробным.

Структура файла следующая:
Секция [Main] содержит данные о языке и валюте файла, отражаемые в программе.
Секция [Zero] содержит написания нулевых значений в рублях и копейках.

[Zero]
Zero=ноль рублей
Zero1=00 копеек

Остальные секции [T0],[T1],[T2],[T3],[T4] (Копейки,рубли,тысячи,
миллионы,миллиарды) идентичны по виду:

[T1]
Numbers=один,два,три,четыре,пять,шесть,семь,восемь,девять,
AfterTen=одиннадцать,двенадцать,тринадцать,четырнадцать,пятнадцать,шестнадцать,
семнадцать,восемнадцать,девятнадцать,
Tens=десять,двадцать,тридцать,сорок,пятьдесят,шестьдесят,семьдесят,восемьдесят,
девяносто,
Hundreds=сто,двести,триста,четыреста,пятьсот,шестьсот,семьсот,восемьсот,девятьсот,
VariantsCurr=рубль,рубля,рублей,
ForNumbersCurr=122233333
ForAfterTenCurr=333333333
ForTensCurr=333333333
ForHundredsCurr=333333333

[T2]
Numbers=одна,две,три,четыре,пять,шесть,семь,восемь,девять,
AfterTen=T1
Tens=T1
Hundreds=T1
Variants=тысяча,тысячи,тысяч,
VariantsCurr=рублей,
ForNumbers=122233333
ForAfterTen=333333333
ForTens=333333333
ForHundreds=333333333
ForNumbersCurr=111111111
ForAfterTenCurr=111111111
ForTensCurr=111111111
ForHundredsCurr=111111111

... и могут содержать (или, если не надо, не содержать) следующие строки:
Numbers - написания для цифр 1..9 (один,два,три и т.д.)
AfterTen - написания для чисел 11..19 (одиннадцать,двенадцать и т.д.)
Tens - написания для чисел 10..90 (десять,двадцать и т.д.)
Hundreds - написания для чисел 100..900 (сто,двести и т.д.)

Variants - варианты написания окончаний разрядов, например в секции
[T2] (Тысячи) это будет - тысяча,тысячи,тысяч, (одна тысяча рублей,
пять тысяч рублей),а в секции [T1] (Рубли), вообще не будет.
VariantsCurr - варианты написания валюты для данного разряда. Например
любая сумма в тысячах всегда кончается на "рублей" (одна тысяча рублей,
пять тысяч рублей),а вот сумма в рублях может заканчиваться на
рубль,рубля,рублей, (один рубль, три рубля, пять рублей)

ForNumbers - какое именно окончание разряда принимать для чисел 1..9.
Т.е. если в секции [T2]:
Variants=тысяча,тысячи,тысяч,
ForNumbers=122233333 , это означает, что для суммы 1000 (первая цифра
в строке) мы принимаем первый вариант написания разряда (одна тысяча),
для сумм 2000-4000 (2-4 цифры в строке) - второй вариант (две тысячи),
для сумм 5000-9000 (5-9 цифры в строке) - третий вариант (пять тысяч).

ForAfterTen - то же самое, для чисел 11000-19000 (В секции [T2])
ForTens - то же самое, для чисел 10000-90000 (В секции [T2])
ForHundreds - то же самое, для чисел 100000-900000 (В секции [T2])
Как видно в секции [T2] во всех этих строках принят третий вариант
(любое число в указанных диапазонах заканчивается на "тысяч",
например семьдесят тысяч рублей).

ForNumbersCurr, ForAfterTenCurr, ForTensCurr, ForHundredsCurr - то же
самое, только не для окончаний разрядов, а для окончаний валют (т.е.
показывает, какой вариант валюты из строки VariantsCurr принимать
для данного числа).

В случае, если написание какой-либо строки в какой-либо секции совпадает
с описанием такой же строки в другой секции, то в данной строке
достаточно дать ссылку на другую секцию.
Например:
В секции [T2] строки AfterTen,Tens и Hundreds совпадают по написанию
с аналогичными строками из секции [T1], поэтому:

AfterTen=T1
Tens=T1
Hundreds=T1

... А вот строка Numbers не совпадает:
[T1]
Numbers=один,два,три,четыре,пять,шесть,семь,восемь,девять,

[T2]
Numbers=одна,две,три,четыре,пять,шесть,семь,восемь,девять,

Поэтому эта строка описана полностью.

Простейший пример:
Переделаем файл для отображения сумм в долларах и центах на русском языке.
Простейший анализ показывает, что в секциях [T1]..[T4] достаточно
переделать строки VariantsCurr=доллар,доллара,долларов, а в секции
[T0], кроме VariantsCurr=цент,цента,центов, надо также переделать
строку Numbers, было Numbers=T2 (одна копейка, две копейки),
станет Numbers=T1 (один цент, два цента).

Уважаемые пользователи!
Если у Вас получится создать другой файл прописи, пришлите его
пожалуйста на адрес программы thecalc@narod.ru . Он будет
опубликован с указанием Вашего авторства. Если же создать или
заставить работать такой файл не удаться, напишите, будем
решать проблему.

Используются технологии uCoz