SQLの窓

2010年07月06日


VB.net : 整数 : カンマ編集/前ゼロ/前スペース/16進数文字列変換

業務処理では、整数を3ケタ毎のカンマで編集表示する事は必ず必要です。また、前ゼロの編集は入力された値を文字列としてのコードとして編集するのに必要です。前スペースの編集は出力処理(主に印刷)の桁あわせに必要な場合があります。

さらに、元データとしては文字列である場合も多いので、いったん整数に変換してから編集する事も多くなると思います
vb.net>str_format.exe
||
|0|
|1,000,000|
------------------------------------
0
1,000,000
------------------------------------
1,000.123
------------------------------------
||
|0|
|1,000,000|
------------------------------------
A
a
------------------------------------
|A|
|a|
------------------------------------
|0010|
------------------------------------
|0010|
------------------------------------
     1,000
------------------------------------
1000000
1000000


Module MyModule

' ********************************
' 数字関係の編集処理
' ********************************
Sub Main()

	' ********************************
	' 整数をカンマ編集
	' ********************************
	Dim nData As Integer = 0

	' 1) 整数そのものを ToString
	' |(縦棒) は、編集文字以外なので、そのまま表示
	' ※ カスタム書式では、他の文字を混在できます
	Console.WriteLine( nData.ToString("|#,#|") )
	Console.WriteLine( nData.ToString("|#,0|") )
	nData = 1000000
	Console.WriteLine( nData.ToString("|#,0|") )

	Console.WriteLine( "------------------------------------" )


	' 以下のようなコードでも可能です( # のような機能はありません )
	' N0 の 0 は小数以下の精度です
	' ※ 標準書式では、他の文字を混在できません
	nData = 0
	Console.WriteLine( nData.ToString("N0") )
	nData = 1000000
	Console.WriteLine( nData.ToString("N0") )

	Console.WriteLine( "------------------------------------" )

	' Decimal は、10進数を表現するオブジェクトです
	' N0 の 0 は小数以下の精度です
	Dim decData As Decimal = 1000.12345
	Console.WriteLine( decData.ToString("N3") )

	Console.WriteLine( "------------------------------------" )

	' Format メソッド
	Console.WriteLine( String.Format( "|{0:#,#}|", 0  ) )
	Console.WriteLine( String.Format( "|{0:#,0}|", 0  ) )
	Console.WriteLine( String.Format( "|{0:#,0}|", 1000000  ) )

	Console.WriteLine( "------------------------------------" )

	' ********************************
	' 整数を16進数
	' ********************************
	nData = 10

	' 整数そのものを ToString( 大文字と小文字 )
	Console.WriteLine( nData.ToString("X") )
	Console.WriteLine( nData.ToString("x") )

	Console.WriteLine( "------------------------------------" )

	' Format メソッド( 大文字と小文字 )
	Console.WriteLine( String.Format( "|{0:X}|", 10  ) )
	Console.WriteLine( String.Format( "|{0:x}|", 10  ) )

	Console.WriteLine( "------------------------------------" )

	' ********************************
	' 整数を前ゼロコードに変換
	' この場合、固定長のコードに変換できます
	' ********************************
	nData = 10

	' 整数そのものを ToString(  )
	Console.WriteLine( nData.ToString("|0000|") )

	Console.WriteLine( "------------------------------------" )

	' Format メソッド( 大文字と小文字 )
	Console.WriteLine( String.Format( "|{0:0000}|", 10  ) )

	Console.WriteLine( "------------------------------------" )

	' ********************************
	' 整数を前スペース文字列に変換
	' 全ての言語共通の方法として、必要な文字列長のスペースを
	' 前につなげて右から必要な文字数の文字列を切り取ります
	' "     Z,ZZ9" (10ケタ) という文字列が欲しい場合
	' ********************************
	nData = 1000

	' まず、Z,ZZ9 部分を作成
	Dim str As String = nData.ToString("#,0")
	' 10ケタのスペースを連結
	str = "          " + str
	' 右から10ケタを取得
	str = str.Substring( str.Length - 10 )
	' 結果
	Console.WriteLine( str )

	Console.WriteLine( "------------------------------------" )


	' ********************************
	' 【補足】16進数文字列を整数に変換する : Integer.Parse
	' ********************************

	' A は 16進数 の 10
	Console.WriteLine( Integer.Parse("A", _
			System.Globalization.NumberStyles.HexNumber) * 100000 )

	' ********************************
	' 【補足】文字列を整数に変換する : Integer.Parse
	' ********************************

	Console.WriteLine( Integer.Parse("10" ) * 100000 )

End Sub

End Module



▼ C#
using System;

class MyModule {
    
    // ********************************
    //  
    // ********************************
    static void Main() {
        // ********************************
        //  
        // ********************************
        int nData = 0;
        Console.WriteLine(nData.ToString("|#,#|"));
        Console.WriteLine(nData.ToString("|#,0|"));
        nData = 1000000;
        Console.WriteLine(nData.ToString("|#,0|"));
        Console.WriteLine("------------------------------------");
        nData = 0;
        Console.WriteLine(nData.ToString("N0"));
        nData = 1000000;
        Console.WriteLine(nData.ToString("N0"));
        Console.WriteLine("------------------------------------");
        Decimal decData = 1000.12345m;
        Console.WriteLine(decData.ToString("N3"));
        Console.WriteLine("------------------------------------");
        Console.WriteLine(string.Format("|{0:#,#}|", 0));
        Console.WriteLine(string.Format("|{0:#,0}|", 0));
        Console.WriteLine(string.Format("|{0:#,0}|", 1000000));
        Console.WriteLine("------------------------------------");
        // ********************************
        //  
        // ********************************
        nData = 10;
        Console.WriteLine(nData.ToString("X"));
        Console.WriteLine(nData.ToString("x"));
        Console.WriteLine("------------------------------------");
        Console.WriteLine(string.Format("|{0:X}|", 10));
        Console.WriteLine(string.Format("|{0:x}|", 10));
        Console.WriteLine("------------------------------------");
        // ********************************
        //  
        // ********************************
        nData = 10;
        Console.WriteLine(nData.ToString("|0000|"));
        Console.WriteLine("------------------------------------");
        Console.WriteLine(string.Format("|{0:0000}|", 10));
        Console.WriteLine("------------------------------------");
        // ********************************
        //  
        // ********************************
        nData = 1000;
        string str = nData.ToString("#,0");
        str = ("          " + str);
        str = str.Substring((str.Length - 10));
        Console.WriteLine(str);
        Console.WriteLine("------------------------------------");
        // ********************************
        //  
        // ********************************
        Console.WriteLine((int.Parse("A", System.Globalization.NumberStyles.HexNumber) * 100000));
        // ********************************
        //  
        // ********************************
        Console.WriteLine((int.Parse("10") * 100000));
    }
}



タグ:VB.NET
posted by lightbox at 2010-07-06 12:16 | VB.NET : ベーシック | このブログの読者になる | 更新情報をチェックする
バッチ処理

Microsoft Office
container 終わり

フリーフォントで簡単ロゴ作成
フリーフォントでボタン素材作成
フリーフォントで吹き出し画像作成
フリーフォントではんこ画像作成
ほぼ自由に利用できるフリーフォント
フリーフォントの書体見本とサンプル
画像を大きく見る為のウインドウを開くボタンの作成

Android SDK ポケットリファレンス
改訂版 Webデザイナーのための jQuery入門
今すぐ使えるかんたん ホームページ HTML&CSS入門
CSS ドロップシャドウの参考デモ
Google Hosted Libraries
cdnjs
BUTTONS (CSS でボタン)
イラストAC
ぱくたそ
写真素材 足成
フリーフォント一覧
utf8 文字ツール
右サイド 終わり
base 終わり