Toon posts:

[VB] Integer altijd 4 cijfers breed

Pagina: 1
Acties:
  • 669 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Hoe geef ik aan, binnen VB-script, dat een integer altijd vier cijfers (karakters) breed moet zijn.

Dus:

34 wordt 0034
128 wordt 0128

etc.

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-08 11:40

gorgi_19

Kruimeltjes zijn weer op :9

format het als een string en schrijf een functie waarin je de integer stopt en een string met 4 karakters breedt teruggeeft.

edit:

Bij nader inzien zijn er toch betere mogelijkheden.. :P

[ Voor 139% gewijzigd door gorgi_19 op 14-05-2003 13:24 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Verwijderd

wat gorgi zegt of je pakt de FormatNumber functie...

Verwijderd

Topicstarter
Nee dat is niet wat ik zoek. Dan krijg je:

1028 wordt 1.028

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-08 11:40

gorgi_19

Kruimeltjes zijn weer op :9

Verwijderd schreef op 14 mei 2003 @ 13:36:
Nee dat is niet wat ik zoek. Dan krijg je:

1028 wordt 1.028
Dan werkt mijn methode iig.. :P Hierbij heb je niet het probleem van de automatisch formatting van nummers. :)

edit:
* gorgi_19 slaps Yarvieh around a bit with a large trout >:) :+

[ Voor 50% gewijzigd door gorgi_19 op 14-05-2003 14:21 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Verwijderd

/me slaps gorgi_19 en BL *RTFM* lamme zakken.

Verwijderd

Topicstarter
Kan iemand mij nog iets meer op weg helpen?
format het als een string en schrijf een functie waarin je de integer stopt en een string met 4 karakters breedt teruggeeft.
Klinkt wel aardig maar hoe doe ik dat??

Verwijderd

Zoiets dacht ik:
In VB:
MsgBox (Format(34, "0000"))
In VBS:
MsgBox (right("000" & CStr(34),4))

  • glashio
  • Registratie: Oktober 2001
  • Laatst online: 14-08 08:20

glashio

C64 > AMIGA > PC

Input : intGivenInteger as Integer
Output : strNewInteger as String

strNewInteger = Format(Str(intGivenInteger),"0000")

> Google Certified Searcher
> Make users so committed to Google that it would be painful to leave
> C64 Gospel
> [SjoQ] = SjoQing


Verwijderd

vbscript heeft geen format, en is het verdomme nou echt zo lastig om de handleiding van de functie die ik al gaf er es op na te slaan ipv al deze half meuk oplossingen?!@?!?

  • Flard
  • Registratie: Februari 2001
  • Laatst online: 20-08 14:34
Visual Basic .NET:
1
2
3
Public Function Underlay(ByVal Text As String, ByVal Char As String, ByVal Length As Integer) As String
    Underlay = String(Length - Len(Text), Char) & Text
End Function


Text = de string die ingevuld moet woren
Char = het karakter dat ervoor moet komen
Length = De lengte van de totale string

Dus, als je 38 wilt omzetten in 0038 doe je dat met Underlay("38", "0", 4)

Verwijderd

@Yarvieh: ok, hier is de handleiding: http://msdn.microsoft.com...tml/vsfctformatnumber.asp

Toon jij nu even in VBS hoe je met deze functie een string van 4 tekens met "padded zeroes" voor een willekeurig getal van 0-9999 maakt op een simpelere manier dan
Right("000" & CStr(Number),4)

Nee, Right(FormatNumber ((Number/10000),4,-1),4) lijkt me niet veel beter dan bovenstaande) ;)

  • NetForce1
  • Registratie: November 2001
  • Laatst online: 22-08 23:21

NetForce1

(inspiratie == 0) -> true

In QB kon je een type maken, waarbij je voor elke variabele de maximum lente opgaf
QBasic:
1
2
3
TYPE
  DIM getal AS INTEGER * 4
END TYPE


Zoiets dacht ik

edit:
werkt dus alleen met strings

[ Voor 15% gewijzigd door NetForce1 op 15-05-2003 12:12 ]

De wereld ligt aan je voeten. Je moet alleen diep genoeg willen bukken...
"Wie geen fouten maakt maakt meestal niets!"


  • MissingDog
  • Registratie: Augustus 2002
  • Niet online
iets wat ook moet werken volgens mij...

code:
1
2
3
4
5
GetalString = Str(GetalInteger)

Do
   GetalString = "0" & GetalString
Loop while Len(GetalString)  < 4


hij zal altijd rekenen zonder voorloopnullen en bij weergave van het getal maak je gebruik van deze functie.

[ Voor 29% gewijzigd door MissingDog op 15-05-2003 12:12 ]


Verwijderd

Nee idd ik ging er vanuit dat ie 4000 ingevuld had en dat het daarna 4,000 werd nou die komma weg werken is 'n parameter aan formatnumber.. maar jullie hebben idd gelijk 't kan niet met format number..

Verwijderd

Als je dit gebruikt dan krijg je je vier cijfer;

Code:
format(cstr(getal),"#0000")


Maar je krijgt wel een String terug!!

S6

[ Voor 13% gewijzigd door Verwijderd op 15-05-2003 14:25 ]


  • kenneth
  • Registratie: September 2001
  • Niet online

kenneth

achter de duinen

MissingDog schreef op 15 mei 2003 @ 12:11:
iets wat ook moet werken volgens mij...

code:
1
2
3
4
5
GetalString = Str(GetalInteger)

Do
   GetalString = "0" & GetalString
Loop while Len(GetalString)  < 4


hij zal altijd rekenen zonder voorloopnullen en bij weergave van het getal maak je gebruik van deze functie.
Dan vind ik de oplossing van Flard en Remark stukken netter. Een loop is niet echt efficient ofzo...

Look, runners deal in discomfort. After you get past a certain point, that’s all there really is. There is no finesse here.

Pagina: 1