[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

microsoft.public.dotnet.framework

Can I use an IFormatProvider to do this?

0to60

7/8/2008 12:07:00 PM

I have to write to a fixed field file, and I have to format my numbers in a
particular way. I have to front pad them with 0's, and I have to write the
decimal value 3.14 as "314". So for example, if its a 8 character field I'd
have to write:

"00000314"

I looked at MS' formatting documentation (IFormatProvider, IFormatable) but
the docs were complicated and I suspect there's a better explanation for me.
Can someone tell me what's the easiest way to go about this? I'll need to
be able to specify the fixed field width and the number of decimal places.

4 Answers

Alberto Poblacion

7/8/2008 12:17:00 PM

0

"0to60" <holeshot60_nospam@yahoo.com> wrote in message
news:exbKhMP4IHA.4272@TK2MSFTNGP03.phx.gbl...
>I have to write to a fixed field file, and I have to format my numbers in a
>particular way. I have to front pad them with 0's, and I have to write the
>decimal value 3.14 as "314". So for example, if its a 8 character field
>I'd have to write:
>
> "00000314"
>
> I looked at MS' formatting documentation (IFormatProvider, IFormatable)
> but the docs were complicated and I suspect there's a better explanation
> for me. Can someone tell me what's the easiest way to go about this? I'll
> need to be able to specify the fixed field width and the number of decimal
> places.

One easy way to do it is String.Format:

decimal n = 3.14m;
string formatted = string.Format("{0:0000000#}", n*100);

By editing the format string and adding additional parameters, you can
format all the values that go into one record for your file in one go.


0to60

7/8/2008 1:07:00 PM

0

Alberto Poblacion wrote:

> One easy way to do it is String.Format:
>
> decimal n = 3.14m;
> string formatted = string.Format("{0:0000000#}", n*100);
>
> By editing the format string and adding additional parameters, you can
> format all the values that go into one record for your file in one go.

Perfect!

Now, is there a way to front pad a string with spaces? I need fixed width
strings, and they have to be front padded with spaces.

0to60

7/8/2008 1:41:00 PM

0

"0to60" <holeshot60_nospam@yahoo.com> wrote in message
news:eN3EMuP4IHA.1200@TK2MSFTNGP04.phx.gbl...
> Alberto Poblacion wrote:
>
>> One easy way to do it is String.Format:
>>
>> decimal n = 3.14m;
>> string formatted = string.Format("{0:0000000#}", n*100);
>>
>> By editing the format string and adding additional parameters, you can
>> format all the values that go into one record for your file in one go.
>
> Perfect!
>
> Now, is there a way to front pad a string with spaces? I need fixed width
> strings, and they have to be front padded with spaces.

Nevermind, I got it.

Ciaran O''Donnell

7/8/2008 4:18:00 PM

0

For the people that still want the answer to this.

string newString = oldString.PadLeft(100,' ');

will pad the left hand side up to 100 characters and PadRight will do it to
the right hand side.

--
Ciaran O''Donnell
http://wannabedeveloper.space...


"0to60" wrote:

> Alberto Poblacion wrote:
>
> > One easy way to do it is String.Format:
> >
> > decimal n = 3.14m;
> > string formatted = string.Format("{0:0000000#}", n*100);
> >
> > By editing the format string and adding additional parameters, you can
> > format all the values that go into one record for your file in one go.
>
> Perfect!
>
> Now, is there a way to front pad a string with spaces? I need fixed width
> strings, and they have to be front padded with spaces.
>
>