Archief - [PROG] [VB6] cijfers naar tekst

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

Republika

Legacy Member
hoi,

ik ben op zoek naar een manier om in visual basic een prog te schrijven die cijfers naar geschreven tekst moet omzetten. [bv. je typt in teksvak x het cijfer '5' en in tekstvak y komt het woord'vijf']

kan er iemand mij opweg helpen of kent iemand soms een goede tutorial.

dank u.

Blood_Raven

Legacy Member
Ik zou beginnen met het getal onder te verdelen in onderlinge cijfers.
De grootte van het getal kan je achterhalen door steeds door 10 te delen en de rest te laten vallen. Ik weet echter niet meer volkomen welke toepassingen vb hiervoor heeft maar zo zul je het waarschijnlijk ook wel vinden:

'getal x is het te verwerken getal'
'teller bepaalt de grootte'

teller =0;
Do
x = x/10
teller = teller +1
Loop while(x>1)

zoiets ongeveer me dunkt.

Daarna zou ik de getallen onderling afscheiden door de rest van een deling door 10 te blijven doen totdat er niets meer over is en in een array 'input' stoppen.
Zo wordt 5423: 5-4-2-3
(index) = waarde
(4)=5
(3)=4
(2)=2
(1)=1
Daarna zou ik een array maken met tekstvoor de duizendtallen en honderdtallen, etc + ook de getallen kleiner als 10... alles behalve de tientallen deze bevatten wat onregelmatigheden.

vb van de array 'tekst'
(index) = "<tekst>"
(1) = "een"
(2) = "twee"
(3) = "drie"
(4) = "vier"
(5) = "vijf"
(6) = "zes"
(7) = "zeven"
(8) = "acht"
(9) = "negen"

Omdat de tientallen een soort van 'abnormaliteit zijn' zou ik ze in een 2de array 'tientallen' stoppen

(1) = "tien"
(2) = "twintig"
(3) = "dertig"
(4) = "veertig"
(5) = "vijftig"
(6) = "zestig"
(7) = "zeventig"
(8) = "tachtig"
(9) = "negentig"


Hierna kan je met een for lus elk getal afgaan van de gesplitste array getallen en de textstring 'output' declaren.

output = ""
For(i= teller to 1 step -1)
if i%3 >2 AND input(i) <> 1
'Als je je niet bij een tiental bevindt en je komt een "1 "tegen moet je ze niet schrijven. 'een honderd' of 'een duizend' ziet er gewoon ronduit debiel uit
output = output & " " & tekst(i)
end if

if i%3 =2 'als er een tiental gevonden is
output = output & " " & tientallen(i)
end if

'Nu moet je nog de woordjes 'duizend' en honderd op de juiste plaats krijgen
if i = 7 output = output & " miljoen"
if i = 4 output = output & " duizend"
if i%3 = 0 output = output & " honderd"

next i

'offcourse zal je hiermee de specialekes zoals elf, twaalf, etc... niet verwerken deze zijn abnormaal t.o.v. de regel, maar je kan deze eventueel opvangen met if statements
next i

Schiet me niet dood op syntaxis ik ben relatief lui om enige syntaxis in te werken. Ik heb het probleem puur logisch aangepakt en soort van 'code' geschreven ter extra uitleg.
Enfin soit heb deze code ook maar even in 5 minuutjes getype.
Ze is dus zeker nog niet uitgetest en foolproof.
Wanneer ze test zal je werken aan de outputs waar er iets mis is.
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan