On-line: гостей 0. Всего: 0 [подробнее..]
АвторСообщение



Пост N: 179
Зарегистрирован: 03.12.08
ссылка на сообщение  Отправлено: 23.10.14 11:13. Заголовок: Функция перевода числа в слово "Одна тысяча двести пятьдесят..."


Подскажите функцию перевода числа в слово (предложение)

например 1250 = "Одна тысяча двести пятьдесят..."
и так далее ....

И заодно - как посоветуете реализовать показ больших чисел (деньги) в таблицах и LABEL :
2500000 наподобие 2.500.000 или 2'500'000




Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 5 [только новые]







Пост N: 426
Зарегистрирован: 08.07.06
ссылка на сообщение  Отправлено: 23.10.14 11:37. Заголовок: По первой части - вы..


По первой части - выложу вечером функцию, которая работает лет 15.

По второй - для этого существует TRANSFORM() с времен Clipper S'87

Спасибо: 0 
ПрофильЦитата Ответить
Администратор




Пост N: 3217
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 23.10.14 12:46. Заголовок: См. модуль harbour&#..


См. модуль harbour\contrib\hbmisc\numtxtru.prg, функция NumToTxtRU

Спасибо: 1 
ПрофильЦитата Ответить
постоянный участник




Пост N: 3669
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 23.10.14 12:53. Заголовок: Pasha пишет: См. мо..


Pasha пишет:

 цитата:
См. модуль harbour\contrib\hbmisc\numtxtru.prg, функция NumToTxtRU



Блин, а я тоже не знал что есть уже готовая функция вв Харборе.
Спасибо БОЛЬШОЕ !

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 180
Зарегистрирован: 03.12.08
ссылка на сообщение  Отправлено: 23.10.14 16:26. Заголовок: Интуитивно мог догад..


Интуитивно мог догадаться .... NumToTxtRU :) , правда без 'RU' .....

По второму вопросу - дополняю :
Есть сумма , например : 2 500 300 р . Хочу чтоб выводилось как 2'500'300 р
Учитывать нужно что число знаков может быть от 1 до 10 .... и чтоб лишние апострофы не выводились ....



Спасибо: 0 
ПрофильЦитата Ответить
Администратор




Пост N: 3218
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 23.10.14 17:01. Заголовок: Function StrBlankC(n..


Function StrBlankC(nSum, nLen, nDec, lS)
Local c := Str(nSum, nLen, nDec), cRet := '', cDec, ser, s1

if nDec > 0
cDec := Right(c, nDec + 1)
c := Left(c, len(c) - nDec - 1)
endif
ser := len(c)
while ser > 0
s1 = min(ser, 3)
cRet = Right(c, s1) + cRet
ser -= s1
c = left(c, ser)
if ser > 0
cRet = if(Empty(c), ' ', "'") + cRet
endif
enddo
if nDec > 0
cRet += cDec
endif
if nSum == 0 .and. lS == nil
cRet = space(len(cRet))
endif
Return cRet


Спасибо: 1 
ПрофильЦитата Ответить
Ответ:
1 2 3 4 5 6 7 8 9
большой шрифт малый шрифт надстрочный подстрочный заголовок большой заголовок видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки моноширинный шрифт моноширинный шрифт горизонтальная линия отступ точка LI бегущая строка оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 18
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет