[oodisc] Number in words

Alexej Kryukov akrioukov на newmail.ru
Вт Окт 7 15:03:43 MSD 2003


On Tuesday 07 October 2003 10:48, Vladimir Bukhal wrote:
> Добрый день.
> Предлагаю для тестирования новую версию (но не окончательную)
> библиотеки CyrillicTools. Название изменено временно с целью мирного
> сосуществования обоих вариантов.
> Произведены следующие доработки по сравнению с ночным релизом:
> 1. исправлена ошибка в getFraction.
> 2. исправлена ошибка при округлении.
> 3. расширен диапазон конвертируемых числел
> 999 999 999 999,999
> 4. функция InsertSumLiterally может вызываться как без параметров (в
> этом случае используется русский язык и рубли), так и с варьируемым
> числом параметров. функция предназначена для замены выделенных ячеек
> (в таблице) или фрагментов текста(текстовый документ) на их
> представление прописью. Вызов может быть осуществлен
> SumLiterally->InsertSumLiterally
> 5.добавлен диалог, в котором определяются параметры вызова
> InsertSumLiterally. Он вызывается с помощью SumLitManage->main
>
> 6.В RecodeCyr инициализация массивов замены перенесена в вызов
> main(), во избежание ее реинициализации для каждого листа электронной
> таблицы.

Первые замечания такие.

1) Надо поправить iMaxNum соответственно тому пределу, который
на данный момент имеет место.

2) Я полагаю, что знаки арифметических операций надо отделять
пробелами. Или, если против этого есть возражения, давайте их,
наоборот, нигде не выделять. Но единый стиль должен иметь место.

3) Надо убрать функцию propis, раз уж мы остановились на варианте
InsertSumLiterally.

4) Всё-таки набор функций getSpecialCase, getCase, да еще и двойной
вариант выбора формы в getSumLiterally выглядит некрасиво. Пожалуй,
я вынужден согласиться, что падежные формы лучше инициализовать 
на этапе пользовательской функции, чтобы getSumLiterally к 
getCase больше не обращалась. Только имена переменных надо дать
осмысленные и чтобы начинались на букву s: не form1, form2, form3, а,
скажем, sNominativeSingular, sGenitiveSingular, sGenitivePlural.
Конечно, очень жаль, что в StarBasic не работают структуры.

5) Диалог мне нравится, но надо бы его немного подкорректировать:
контролы выровнять по одним и тем же границам и добавить кнопку
"О программе" (две кнопки смотрятся сиротливо). Кстати, почему
по-русски? Быть может, менять интерфейс диалога вместе с выбором
языка в нем?

6) Если есть диалог, то его текущие установки должны сохраняться.
У меня в этой области есть наработки, но это потребует ввода
дополнительного модуля для работы с конфигурацией и дополнительного
файла xcs.

7) Всё же мне представляется, что повторная инициализация таблиц
перекодировки -- меньшее зло, чем использование глобальных
переменных. Тут уж мы расплачиваемся за то, что хотели предусмотреть
отдельный вызов для перекодировки отдельного листа.

Своего варианта библиотеки пока не предлагаю во избежание путаницы ;)




Подробная информация о списке рассылки Oo-discuss