Клубове Дир.бг
powered by diri.bg
търси в Клубове diri.bg Разширено търсене

Вход
Име
Парола

Клубове
Dir.bg
Взаимопомощ
Горещи теми
Компютри и Интернет
Контакти
Култура и изкуство
Мнения
Наука
Политика, Свят
Спорт
Техника
Градове
Религия и мистика
Фен клубове
Хоби, Развлечения
Общества
Я, архивите са живи
Клубове Дирене Регистрация Кой е тук Въпроси Списък Купувам / Продавам 19:24 22.05.24 
Компютри и Интернет
   >> Visual Basic
*Кратък преглед

Страници по тази тема: 1 | 2 | (покажи всички)
Тема Izpisvane na numberнови  
Автор VBDEV (непознат)
Публикувано31.01.05 23:42



Пичове имате ли да ми услужите с някакъв модул за изписване на числата като текст, примерно като се въведе 123,60лв да го изпише като стодвадесет и три лв. и 60 ст.

Може да е на C , VB или Paskal

Благодарско предварително.



Тема Re: Izpisvane na numberнови [re: VBDEV]  
Автор ЩиpлицМодератор (разузнавач)
Публикувано01.02.05 09:11



Разбира се. Дори мисля, че вече съм го поствал тук. Погледни в темата горе Tips&Tricks.

Ако не можеш да го намериш, след час ще имам време да ти го пусна като модул.

П.П. Сори, няма го там. Сега ще го постна...

...

Файл: modNum2Word.bas

Ползва се: N2W 342.76
(в кода на програмата)

Съдържание:


Option Base 1

Private cResult As String
Private lAnd As Boolean

Function N2W(nNumber As Double) As String
Dim cNumber As String
Dim nGroups As Integer
Dim n As Integer
Dim nDiv As Integer

cResult = ""
nNumber = nNumber * 100
nDiv = nNumber Mod 100
nNumber = nNumber \ 100
lAnd = False
cNumber = Trim(Str(nNumber))
Do Until Len(cNumber) >= 12
cNumber = "0" & cNumber
Loop
nGroups = Int(Len(cNumber) / 3)
For n = 1 To nGroups
Call ProcGroup(Val(Mid(cNumber, n * 3 - 2, 3)), 5 - n)
Next
If nDiv > 0 Then
N2W = LTrim(cResult) + " лв. и " + Str(nDiv) + " ст."
Else
N2W = LTrim(cResult) + " лв."
End If
End Function

Private Sub ProcGroup(nNumber, nGroup)
cGroupS = Array("", " хиляда", " милион", " трилион")
cGroupM = Array("", " хиляди", " милиона", " трилиона")
c3_9 = Array(" три", " четири", " пет", " шест", " седем", " осем", " девет")
c10_19 = Array(" десет", " единаесет", " дванадесет", " тринадесет", " четиринадесет", _
" петнадесет", " шестнадесет", " седемнадесет", " осемнадсесет", " деветнадесет")
c2X_9X = Array(" двадесет", " тридесет", " четиридесет", " петдесет", " шестдесет", _
" седемдесет", " осемдесет", " деветдесет")
c0XX_9XX = Array("", " сто", " двеста", " триста", " четиристотин", " петстотин", _
" шестотин", " седемстотин", " осемстотин", " деветстотин")
Dim n, nleft, nRight1, nRight2, nMid As Integer
Dim lMidNo1 As Boolean
nleft = Int(nNumber / 100)
nRight1 = nNumber Mod 10
nRight2 = nNumber Mod 100
nMid = Int((nNumber Mod 100) / 10)
lMidNo1 = True
If nGroup = 1 And lAnd And nleft > 0 And nRight2 = 0 Then cResult = cResult + " и"
cResult = cResult + c0XX_9XX(nleft + 1)
If (Between(nRight2, 1, 20) Or _
InSet(nRight2, 30, 40, 50, 60, 70, 80, 90)) And (lAnd Or nleft > 0) Then
cResult = cResult + " и"
End If
If nMid > 1 Then
cResult = cResult + c2X_9X(nMid - 1)
If nRight1 > 0 Then cResult = cResult + " и"
ElseIf nMid = 1 Then
lMidNo1 = False
cResult = cResult + c10_19(nRight2 - 9)
End If
If Between(nRight1, 3, 9) And lMidNo1 Then cResult = cResult + c3_9(nRight1 - 2)
If nRight1 = 1 And lMidNo1 Then
If nGroup <> 2 Or nNumber > 1 Then cResult = cResult + " един"
End If
If nRight1 = 2 And lMidNo1 Then cResult = cResult + Iif(nGroup = 2, " две", " два")
If nGroup > 1 And nNumber > 0 Then
lAnd = True
cResult = cResult + Iif(nNumber > 1, cGroupM(nGroup), cGroupS(nGroup))
End If
End Sub

Private Function Between(xValue, xLo, xUp) As Boolean
If xValue >= xLo And xValue <= xUp Then
Between = True
Else
Between = False
End If
End Function

Private Function InSet(xValue, ParamArray xArray())
Dim n
For n = LBound(xArray) To UBound(xArray)
If xValue = xArray(n) Then
InSet = True
Exit For
End If
Next
End Function



Щирлиц<P ID="edit"><FONT class="small"><EM>Редактирано от Щиpлиц на 01.02.05 09:17.</EM></FONT></P>

Редактирано от Щиpлиц на 01.02.05 09:19.



Тема Re: Izpisvane na numberнови [re: Щиpлиц]  
Авторniki (Нерегистриран)
Публикувано01.02.05 19:10



zdrasti

nowobranec sym w access-a, no imam i az edna forma w koqto trqbwa da ima slowom cifrite. Bi li obqsnil kyde da paste-na tozi kod koito si pusnal?



Тема Re: Izpisvane na numberнови [re: niki]  
Автор ЩиpлицМодератор (разузнавач)
Публикувано01.02.05 20:45



Ако ти трябва за Access, ще трябва да се допише още една функция от 5 реда.

Кода се копира като текст, и се записва в .BAS файл, който добавяш към проекта. Във VBA под Excel или Access можеш да си отвориш нов модул (или ако имаш някакъв общ модул), в който да наринеш този код. Работи.


Щирлиц

Тема На полето, [re: niki]  
Автор Smile (мълчалива)
Публикувано02.02.05 10:14



в което пишеш цифрата натискаш properties и си избираш условие on enter, on change.... и като кликнеш срещу него ти се появява малко меню, от което избираш event procedure - отваря се editor и там пляскаш тази процедура. Преди това текстовто поле трябва да си го създал във формата (ако е примерно с име slovom), адреса на полето е me!slovom, и в него трябва да сложиш резултата от процедурата т.е. да напишеш me!slovom=едикаквоси.



Тема Re: На полето,нови [re: Smile]  
АвторNiki (Нерегистриран)
Публикувано02.02.05 19:33



Smile, опитах да вкарам в процедурата поствана от Щирлиц и описана от теб, но нещо не става. Може ли да ти пратя на emaila базата ми да я погледнеш и ако можеш да направиш словом някоя от цифрите? Архива е около 200 КВ?



Тема Давайнови [re: Niki]  
Автор Smile (мълчалива)
Публикувано03.02.05 09:22



smilem@abv.bg
И пиши subject щото като нищо ще те резна.

Редактирано от Smile на 03.02.05 11:32.



Тема Re: Izpisvane na numberнови [re: Щиpлиц]  
Автор DDeli (Maya - 25.11.02)
Публикувано06.02.05 16:32



А пък на мен ми трябва да изписва сложом на ангийски (в инвойсите). Някой да има идея?



Тема Ама тая функция на Щирлиц нещо не работи!нови [re: Щиpлиц]  
АвторUSER (Нерегистриран)
Публикувано06.02.05 22:44



Пуснах я тая функция аз и като и подам параметър 12 тя ми връща
сто сто сто сто тринадесет лв. :))



Тема Re: Ама тая функция на Щирлиц нещо не работи!нови [re: USER]  
Автор ЩиpлицМодератор (разузнавач)
Публикувано07.02.05 11:07



А тези редове има ли ги там:

Option Base 1


Private cResult As String
Private lAnd As Boolean


?

Без Option Base 1 няма да тръгне нормално. ;о)


Щирлиц


Страници по тази тема: 1 | 2 | (покажи всички)
*Кратък преглед
Клуб :  


Clubs.dir.bg е форум за дискусии. Dir.bg не носи отговорност за съдържанието и достоверността на публикуваните в дискусиите материали.

Никаква част от съдържанието на тази страница не може да бъде репродуцирана, записвана или предавана под каквато и да е форма или по какъвто и да е повод без писменото съгласие на Dir.bg
За Забележки, коментари и предложения ползвайте формата за Обратна връзка | Мобилна версия | Потребителско споразумение
© 2006-2024 Dir.bg Всички права запазени.