Wednesday, November 5, 2008

Csharp String.Format

Strings

There really isn�t any formatting within a string, beyond it�s alignment. Alignment works for any argument being printed in a String.Format call.

SampleGenerates
String.Format("->{1,10}<-", "Hello");-> Hello<-
String.Format("->{1,-10}<-", "Hello");->Hello <-

Numbers

Basic number formatting specifiers:

SpecifierTypeFormat Output (Passed Double 1.42)Output (Passed Int -12400)
cCurrency{0:c}$1.42-$12,400
dDecimal (Whole number){0:d}System.FormatException-12400
eScientific{0:e}1.420000e+000-1.240000e+004
fFixed point{0:f}1.42-12400.00
gGeneral{0:g}1.42-12400
nNumber with commas for thousands{0:n}1.42-12,400
rRound trippable{0:r}1.42System.FormatException
xHexadecimal{0:x4}System.FormatExceptioncf90

Custom number formatting:

SpecifierTypeExample Output (Passed Double 1500.42)Note
0Zero placeholder{0:00.0000}1500.4200Pads with zeroes.
#Digit placeholder{0:(#).##}(1500).42
.Decimal point{0:0.0}1500.4
,Thousand separator{0:0,0}1,500Must be between two zeroes.
,.Number scaling{0:0,.} 2Comma adjacent to Period scales by 1000.
%Percent{0:0%}150042%Multiplies by 100, adds % sign.
eExponent placeholder{0:00e+0}15e+2Many exponent formats available.
;Group separatorsee below

The group separator is especially useful for formatting currency values which require that negative values be enclosed in parentheses. This currency formatting example at the bottom of this document makes it obvious:

Dates

Note that date formatting is especially dependant on the system�s regional settings; the example strings here are from my local locale.

SpecifierTypeExample (Passed System.DateTime.Now)
dShort date10/12/2002
DLong dateDecember 10, 2002
tShort time10:11 PM
TLong time10:11:29 PM
fFull date & time December 10, 2002 10:11 PM
FFull date & time (long)December 10, 2002 10:11:29 PM
gDefault date & time10/12/2002 10:11 PM
GDefault date & time (long)10/12/2002 10:11:29 PM
MMonth day patternDecember 10
rRFC1123 date stringTue, 10 Dec 2002 22:11:29 GMT
sSortable date string2002-12-10T22:11:29
uUniversal sortable, local time2002-12-10 22:13:50Z
UUniversal sortable, GMTDecember 11, 2002 3:13:50 AM
YYear month patternDecember, 2002

The �U� specifier seems broken; that string certainly isn�t sortable.

Custom date formatting:

SpecifierTypeExample Example Output
ddDay{0:dd}10
dddDay name{0:ddd}Tue
ddddFull day name{0:dddd}Tuesday
f, ff, �Second fractions{0:fff}932
gg, �Era{0:gg}A.D.
hh2 digit hour{0:hh}10
HH2 digit hour, 24hr format{0:HH}22
mmMinute 00-59{0:mm}38
MMMonth 01-12{0:MM}12
MMMMonth abbreviation{0:MMM}Dec
MMMMFull month name{0:MMMM}December
ssSeconds 00-59{0:ss}46
ttAM or PM{0:tt}PM
yyYear, 2 digits{0:yy}02
yyyyYear{0:yyyy}2002
zzTimezone offset, 2 digits{0:zz}-05
zzzFull timezone offset{0:zzz}-05:00
:Separator{0:hh:mm:ss}10:43:20
/Separator{0:dd/MM/yyyy}10/12/2002

Enumerations

SpecifierType
gDefault (Flag names if available, otherwise decimal)
fFlags always
dInteger always
xEight digit hex.

Some Useful Examples

String.Format("{0:$#,##0.00;($#,##0.00);Zero}",value);

This will output "$1,240.00" if passed 1243.50. It will output the same format but in parentheses if the number is negative, and will output the string "Zero" if the number is zero.

String.Format("{0:(###) ###-####}", 8005551212);

This will output "(800) 555-1212".

Monday, April 28, 2008

.Net Http Post

ASCIIEncoding encoding=new ASCIIEncoding();
string postData="txtValue=value";
byte[] data = encoding.GetBytes(postData);

HttpWebRequest myRequest =
(HttpWebRequest)WebRequest.Create("http://server/Application");
myRequest.Method = "POST";
myRequest.ContentType="application/x-www-form-urlencoded";
myRequest.ContentLength = data.Length;
Stream newStream=myRequest.GetRequestStream();
// Send the data.
newStream.Write(data,0,data.Length);
newStream.Close();
WebResponse webResponse = myRequest.GetResponse();
StreamReader srData = new StreamReader(webResponse.GetResponseStream());
MessageBox.Show(srData.ReadToEnd());

Wednesday, April 16, 2008

WAMP with SVN

Install wamp from http://www.wampserver.com/ (I installed to c:\wamp)
Install subversion
Edit environment path to include c:\svn\bin
Create a repository directory with mkdir c:\Repository
Create a repository with svnadmin.exe create C:\Repository
copy c:\svn\bin\mod_dav_svn.so to C:\wamp\Apache2\modules
copy c:\svn\bin\mod_authz_svn.so to C:\wamp\Apache2\modules
copy c:\svn\bin\intl3_svn.dll to C:\wamp\Apache2\bin
copy c:\svn\bin\libdb44.dll to C:\wamp\Apache2\bin
edit C:\wamp\Apache2\conf\httpd.conf and find and uncomment the following two lines:
LoadModule dav_module modules/mod_dav.so
LoadModule dav_fs_module modules/mod_dav_fs.so
Add these two lines directly below the above two:
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
At the very end of the file add:

DAV svn
SVNPath “C:\Repository”
AuthType Basic
AuthName “Subversion Repository”
AuthUserFile passwd
Require valid-user

Configure Apache Password File:
C:\wamp\Apache2\bin\htpasswd.exe -c C:\wamp\Apache2\passwd admin
This will prompt for a password.
Restart Apache
Test with svn list http://localhost/svn

Thursday, April 3, 2008

Memo

May 17-18. We have a reservation at the Grande Island Resort in Subic http://www.grandeislandresort.com .

Monday, March 17, 2008

Butterfly Sanctuary @ Camp John Hay

pwede na bang pang pro na shot?

Chocolate de Batirol

As seen on TV. sa show na Kay Susan Tayo!!!! sarap ng hot choco dito.

Tuesday, February 19, 2008

Thursday, January 24, 2008

My new toy hehehe. sarap mag laro ng psp.

Tuesday, January 15, 2008

Nextbase

Looks good. Sounds great!!

Kasal.com

YugaTech | Philippines, Technology News & Reviews

PEP News