Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.03.2012, 16:31   #1
Mint86
Пользователь
 
Аватар для Mint86
 
Регистрация: 17.07.2008
Сообщений: 81
По умолчанию Пропись числа на другом языке

Друзья, на форуме не нашел. Возможно плохо искал (если так, каюсь). Есть задача написать сумму прописью на другом языке, скажем на турецком. Планирую использовать для нестандартных символов функцию chrW(код символа)
В правильном ли направлении я иду? Может есть более легкие или не легкие пути?

Пример: 153 (сто пятьдесят три) на русском, это же на турецком (yüz elli üç)
Mint86 вне форума Ответить с цитированием
Старый 28.03.2012, 16:45   #2
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

а напишите-ка сюда по турецки:
1 -
2 -
3 - üç
...
19 -
20 -
30 -
...
90 -
100 -
200 -
...
900 -
1000 -
1000000 -
1000000000 -
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 28.03.2012, 16:54   #3
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Я таким макаром переделывал русскую UDF на латышский - тоже с помощью ChrW().
Т.к. формирование чисел в обоих языках одинаковое. Кстати, как с этим в турецком?
А борьбу с полом числительных сделал просто - сделал две версии функции
Т.е. в одной версии один, два и т.д., в другой одна, две и т.д.
Хотя можно было аргумент добавить, но поленился - мне формулы менять не надо, один раз в бланк прописал - и на века
А там ещё варианты с нулём и без, со скобками и без (чтоб в строке формул не городить заодно)...
webmoney: E265281470651 Z422237915069 R418926282008

Последний раз редактировалось Hugo121; 28.03.2012 в 16:57.
Hugo121 вне форума Ответить с цитированием
Старый 28.03.2012, 17:16   #4
Mint86
Пользователь
 
Аватар для Mint86
 
Регистрация: 17.07.2008
Сообщений: 81
По умолчанию

В принципе правила почти такие же как и в русском языке. В примере это видно.

Думаю всё таки придется пойти путём использования chrw

0 ноль – sıfır
1 один – bir
2 два – iki
3 три – üç
4 четыре – dört
5 пять – beş
6 шесть – altı
7 семь – yedi
8 восемь – sekiz
9 девять – dokuz
10 десять – on
11 одиннадцать – on bir
12 двенадцать – on iki
13 тринадцать – on üç
14 четырнадцать – on dört
15 пятнадцать – on beş
16 шестнадцать – on altı
17 семнадцать – on yedi
18 восемнадцать – on sekiz
19 девятнадцать – on dokuz
20 двадцать – yirmi
30 тридцать – otuz
40 сорок - kırk
50 пятьдесят - elli
60 шестьдесят - altmış
70 семьдесят - yetmiş
80 восемьдесят - seksen
90 девяносто - doksan
100 сто - yüz
200 двести - iki yüz
300 триста - üç yüz
400 четыреста - dört yüz
500 пятьсот - beş yüz
600 шестьсот - altı yüz
700 семьсот - yedi yüz
800 восемьсот - sekiz yüz
900 девятьсот - dokuz yüz
1000 тысяча - bin
миллион - milyon
миллиард – milyarüz

Последний раз редактировалось Mint86; 28.03.2012 в 17:18.
Mint86 вне форума Ответить с цитированием
Старый 28.03.2012, 22:59   #5
MCH
Форумчанин
 
Регистрация: 21.11.2010
Сообщений: 326
По умолчанию

судя по всему, правила проще чем в русском (по крайне мере в числах 11-19)
MCH вне форума Ответить с цитированием
Старый 28.03.2012, 23:49   #6
MCH
Форумчанин
 
Регистрация: 21.11.2010
Сообщений: 326
По умолчанию

Проверте, я правильно понял?
Вложения
Тип файла: rar turkish.rar (9.9 Кб, 29 просмотров)
MCH вне форума Ответить с цитированием
Старый 28.03.2012, 23:54   #7
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

и в сотнях. я зауважал турецкий за логичные числительные. сейчас поправлю свои прописи.
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 29.03.2012, 01:27   #8
Казанский
Старожил
 
Аватар для Казанский
 
Регистрация: 31.12.2010
Сообщений: 2,133
По умолчанию

Доделал свою функцию отсюда: http://www.planetaexcel.ru/forum.php?thread_id=948
Теперь с выбором языка (по умолчению русский).

Код:
Function num2text_word(x As Long, Optional Lang As Long = 1049) As String

With CreateObject("word.document")
    .Range.LanguageID = Lang
    .Fields.Add .Range, Type:=-1, Text:="=" & x & " \* cardtext"
    num2text_word = Replace(.Range.Text, vbCr, "")
    .Close 0
End With
End Function
Для турецкого второй аргумент 1055, для английского 1033 и т.д.
Если подключить Reference на Microsoft Word Object Library, можно использовать константы ворда wdTurkish, wdEnglishUS и т.д.
exceleved@yandex.ru Яндекс.Деньги: 410011500007619
Казанский вне форума Ответить с цитированием
Старый 29.03.2012, 03:22   #9
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

и свои прописи прицеплю. по турецки получилось мягко говоря "не очень" - турецкие буквы подвели.
зато все остальное - прописывает.
Если кто подскажет как затолкать турецких букв в названия числительных буду очень признателен.
Вложения
Тип файла: rar Пропись.rar (20.5 Кб, 28 просмотров)
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 29.03.2012, 06:29   #10
Mint86
Пользователь
 
Аватар для Mint86
 
Регистрация: 17.07.2008
Сообщений: 81
По умолчанию

Спасибо всем друзья. Остановился всё таки на функции chrw. Муторно конечно, но что подулаешь такова жизнь...
Mint86 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
преобразование цыфрового значения денег в пропись ruslan46321 Microsoft Office Excel 12 09.10.2011 00:57
Как наследоваться от класса написанного на другом языке? Дупло Помощь студентам 0 14.09.2011 13:30
Пропись триггера в Delphi shishechka Помощь студентам 2 04.02.2010 13:42
Программа на русском языке в Windows XP на другом языке... Как? 29bit Свободное общение 4 01.02.2008 17:24
Число в пропись Shavminator Microsoft Office Excel 6 07.01.2008 10:32