Format number field to zero's

I am currently printing out a field that is 12 characters long.  How do I need to write the code so that there are leading zeros in the field.  Basically, what is the code to make it look like the following:

1234567  ==> 000001234567

Always starts off with zeros on the left side and amount on left could vary but always 12 characters, could also be:

123456789 ==> 000123456789
hcougarAsked:
Who is Participating?
 
crazymanCommented:
Here are the results i got using my function and passing the numbers above WITHOUT the zero's..


123456 --> 000000123456
4521458 -> 000004521458
215465542->000215465542
1248 ----->000000001248
45236554 ->000045236554
5452125--->000004542125


If you pass the second parameter as 12 each time my function will always return a 12 digit string with as many leading zero's as is needed, i cant see what is wrong.





0
 
crazymanCommented:
newstring=Format("1234567", "000000000000")
0
 
tureCommented:
hcougar,
Use the FORMAT function, as shown below:

  Dim x As Double
  x = 12345678
  Text1.Text = Format(x, "000000000000")

Ture Magnusson
Karlstad, Sweden
0
Cloud Class® Course: C++ 11 Fundamentals

This course will introduce you to C++ 11 and teach you about syntax fundamentals.

 
hcougarAuthor Commented:
Crazyman, the field is going to vary.  It won't always be "1234567".  I am reading data from a txt file.
0
 
hcougarAuthor Commented:
ture, that is always going to give me 12345678.  The field will vary.
0
 
crazymanCommented:
So in real terms you could have a small function.

Public function ChangeString(OldString as string,NumOfZeros as integer)as string

ChangeString=format(oldString,string(numofzeros,chr(48)))
end function


then use it like

Private Sub Command1_Click()
    MsgBox ChangeString("1234567", 12)
End Sub
0
 
crazymanCommented:
it will work on any number string not just 1234567 ..just replace it.
0
 
crazymanCommented:
1234567 was meant as an example, it will work on any string of numbers you just need to pass what ever your numbers are in place of 1234567
0
 
hcougarAuthor Commented:
Maybe I'm not making this clear.  Here is the data I want to print out.

000000123456
000004521458
000215465542
000000001248
000045236554
000004542125
0
 
GordonpCommented:
hcougar,
The answer both ture and crazyman have gave you, is the right answer.
You should use the Format function for what you want

<textout>=Format(<Value>,"000000000000")

Gordon
0
 
KurvyCommented:
Function AlterString(sText As String) As String
Dim strText As String
Dim lngLen As Long

strText = sText
lngLen = Len(strText)
AlterString = String(12 - lngLen, "0") & strText


End Function

call the function as follows

text1.text=alterstring(text1.text)
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.