By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
434,896 Members | 1,997 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 434,896 IT Pros & Developers. It's quick & easy.

String Formatting (Like in VB)

P: n/a
Hello,

I have a problem, I'm hoping someone can help.

I have a string, lets say: "111111"; // Not always numeric
I have a format mask, lets say: "(00) 0000"; // Again, not always
numeric.

The mask and the value are passed into a method.

private string GiveMeTheFormattedString(string i_Value, string i_Mask)
{

}

I want the output of this method to be: "(11) 1111"

Remember, I can't assume that my input string or my mask will be
numeric and the mask will be different.

Help. :-)

I've tried this:

string retVal = String.Format("{0:" + iMask + "}", i_Value);

No luck, it always comes back as the original input.

I even tried the above hard coding the format mask in, i.e. ("{0:(00)
0000}",i_Value);

still no luck.

Thanks for the help, in advance.

John

Sep 25 '06 #1
Share this Question
Share on Google+
6 Replies


P: n/a
What is the function in VB that you use to do this? More than likely,
it exists in the Microsoft.VisualBasic namespace. You can add a reference
to Microsoft.VisualBasic.dll and use the method that you know will work
(rather than write your own).

Hope this helps.
--
- Nicholas Paldino [.NET/C# MVP]
- mv*@spam.guard.caspershouse.com

<jm*****@forte-industries.comwrote in message
news:11**********************@e3g2000cwe.googlegro ups.com...
Hello,

I have a problem, I'm hoping someone can help.

I have a string, lets say: "111111"; // Not always numeric
I have a format mask, lets say: "(00) 0000"; // Again, not always
numeric.

The mask and the value are passed into a method.

private string GiveMeTheFormattedString(string i_Value, string i_Mask)
{

}

I want the output of this method to be: "(11) 1111"

Remember, I can't assume that my input string or my mask will be
numeric and the mask will be different.

Help. :-)

I've tried this:

string retVal = String.Format("{0:" + iMask + "}", i_Value);

No luck, it always comes back as the original input.

I even tried the above hard coding the format mask in, i.e. ("{0:(00)
0000}",i_Value);

still no luck.

Thanks for the help, in advance.

John

Sep 25 '06 #2

P: n/a

In VB, I'd use the Format function.

As I bring code forward from the VB6 world, I'm supposed to work under
the Mantra:

VB = Bad;
VC# = Good.

:-)

So, if I can do it, I'd like to not use the VB namespace.

John

Sep 25 '06 #3

P: n/a

In VB, I'd use the Format function.

As I bring code forward from the VB6 world, I'm supposed to work under
the Mantra:

VB = Bad;
VC# = Good.

:-)

So, if I can do it, I'd like to not use the VB namespace.

John

Sep 25 '06 #4

P: n/a
Bad mantra, especially if you don't have a C++ background. VB 2005 is just
as expressive as VC#. Yes, there are some differences between the
languages, but they are functionally 99+% identical and both are fully
supported by MS.

Mike Ober.
<jm*****@forte-industries.comwrote in message
news:11*********************@i42g2000cwa.googlegro ups.com...
>
In VB, I'd use the Format function.

As I bring code forward from the VB6 world, I'm supposed to work under
the Mantra:

VB = Bad;
VC# = Good.

:-)

So, if I can do it, I'd like to not use the VB namespace.

John

Sep 25 '06 #5

P: n/a
See inline.

Willy.

<jm*****@forte-industries.comwrote in message
news:11**********************@e3g2000cwe.googlegro ups.com...
| Hello,
|
| I have a problem, I'm hoping someone can help.
|
| I have a string, lets say: "111111"; // Not always numeric
| I have a format mask, lets say: "(00) 0000"; // Again, not always
| numeric.
|

Not sure what you mean with one/both not always being numeric.
But here is how you can format a string.

Here suppose the Mask is ("(000) 0000") and the string something like
"1234567" or " 123.2356" or " +1.234567 " ...
private string GiveMeTheFormattedString(string i_Value, string i_Mask)
{
double dv;
if(Double.TryParse(i_Value, NumberStyles.Number,null, out dv))
return dv.ToString(i_Maks);
else return null;
}

If this doesn't suits your needs you will have to implement your own
IFormatProvider.

| The mask and the value are passed into a method.
|
| private string GiveMeTheFormattedString(string i_Value, string i_Mask)
| {
|
| }
|
| I want the output of this method to be: "(11) 1111"
|
| Remember, I can't assume that my input string or my mask will be
| numeric and the mask will be different.
|
| Help. :-)
|
| I've tried this:
|
| string retVal = String.Format("{0:" + iMask + "}", i_Value);
|
| No luck, it always comes back as the original input.
|
| I even tried the above hard coding the format mask in, i.e. ("{0:(00)
| 0000}",i_Value);
|
| still no luck.
|
| Thanks for the help, in advance.
|
| John
|
Sep 25 '06 #6

P: n/a
jm*****@forte-industries.com wrote:
Hello,

I have a problem, I'm hoping someone can help.

I have a string, lets say: "111111"; // Not always numeric
I have a format mask, lets say: "(00) 0000"; // Again, not always
numeric.

The mask and the value are passed into a method.

private string GiveMeTheFormattedString(string i_Value, string i_Mask)
{

}

I want the output of this method to be: "(11) 1111"

Remember, I can't assume that my input string or my mask will be
numeric and the mask will be different.
OK, so what do you want the output to be in these cases:

input: abcdef
mask: (00) 0000

input: -3.14592536
mask: (0) 0-0 (0)

input: 1A2B3C
mask: 00abcdef

?

IF your input is an integer and you want to use a custom numeric format
string, cast to an integer and use ToString():

string formatted = 111111.ToString("(00) 0000");
// now formatted == "(11) 1111"

To be able to say how to produce results in other cases, we would need
to know what you want to see in those other cases.

--
Larry Lard
la*******@googlemail.com
The address is real, but unread - please reply to the group
For VB and C# questions - tell us which version
Sep 26 '06 #7

This discussion thread is closed

Replies have been disabled for this discussion.