+++ /dev/null
-using System;\r
-using System.Collections.Generic;\r
-using System.Text;\r
-\r
-namespace FDK\r
-{\r
- public class C変換\r
- {\r
- // プロパティ\r
-\r
- public static readonly string str16進数文字 = "0123456789ABCDEFabcdef";\r
- public static readonly string str36進数文字 = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";\r
- \r
-\r
- // メソッド\r
-\r
- public static bool bONorOFF( char c )\r
- {\r
- return ( c != '0' );\r
- }\r
-\r
- public static double DegreeToRadian( double angle )\r
- {\r
- return ( ( Math.PI * angle ) / 180.0 );\r
- }\r
- public static double RadianToDegree( double angle )\r
- {\r
- return ( angle * 180.0 / Math.PI );\r
- }\r
- public static float DegreeToRadian( float angle )\r
- {\r
- return (float) DegreeToRadian( (double) angle );\r
- }\r
- public static float RadianToDegree( float angle )\r
- {\r
- return (float) RadianToDegree( (double) angle );\r
- }\r
-\r
- public static int n値を範囲内に丸めて返す( int n値, int n最小値, int n最大値 )\r
- {\r
- if( n値 < n最小値 )\r
- return n最小値;\r
-\r
- if( n値 > n最大値 )\r
- return n最大値;\r
-\r
- return n値;\r
- }\r
- public static int n値を文字列から取得して範囲内に丸めて返す( string str数値文字列, int n最小値, int n最大値, int n取得失敗時のデフォルト値 )\r
- {\r
- int num;\r
- if( ( int.TryParse( str数値文字列, out num ) && ( num >= n最小値 ) ) && ( num <= n最大値 ) )\r
- return num;\r
-\r
- return n取得失敗時のデフォルト値;\r
- }\r
- // #23568 2010.11.04 ikanick add\r
- public static int n値を文字列から取得して範囲内にちゃんと丸めて返す(string str数値文字列, int n最小値, int n最大値, int n取得失敗時のデフォルト値)\r
- {\r
- // 1 と違って範囲外の場合ちゃんと丸めて返します。\r
- int num;\r
- if (int.TryParse(str数値文字列, out num)) {\r
- if ((num >= n最小値) && (num <= n最大値))\r
- return num;\r
- if ( num < n最小値 )\r
- return n最小値;\r
- if ( num > n最大値 )\r
- return n最大値;\r
- }\r
-\r
- return n取得失敗時のデフォルト値;\r
- }\r
- // --------------------ここまで-------------------------/\r
- public static float n値を文字列から取得して範囲内にちゃんと丸めて返す( string str数値文字列, float n最小値, float n最大値, float n取得失敗時のデフォルト値 )\r
- {\r
- // 1 と違って範囲外の場合ちゃんと丸めて返します。\r
- float num;\r
- if ( float.TryParse( str数値文字列, out num ) )\r
- {\r
- if ( ( num >= n最小値 ) && ( num <= n最大値 ) )\r
- return num;\r
- if ( num < n最小値 )\r
- return n最小値;\r
- if ( num > n最大値 )\r
- return n最大値;\r
- }\r
-\r
- return n取得失敗時のデフォルト値;\r
- }\r
- public static int n値を文字列から取得して返す( string str数値文字列, int n取得失敗時のデフォルト値 )\r
- {\r
- int num;\r
- if( !int.TryParse( str数値文字列, out num ) )\r
- num = n取得失敗時のデフォルト値;\r
-\r
- return num;\r
- }\r
- \r
- public static int n16進数2桁の文字列を数値に変換して返す( string strNum )\r
- {\r
- if( strNum.Length < 2 )\r
- return -1;\r
-\r
- int digit2 = str16進数文字.IndexOf( strNum[ 0 ] );\r
- if( digit2 < 0 )\r
- return -1;\r
-\r
- if( digit2 >= 16 )\r
- digit2 -= (16 - 10); // A,B,C... -> 1,2,3...\r
-\r
- int digit1 = str16進数文字.IndexOf( strNum[ 1 ] );\r
- if( digit1 < 0 )\r
- return -1;\r
-\r
- if( digit1 >= 16 )\r
- digit1 -= (16 - 10);\r
-\r
- return digit2 * 16 + digit1;\r
- }\r
- public static int n36進数2桁の文字列を数値に変換して返す( string strNum )\r
- {\r
- if( strNum.Length < 2 )\r
- return -1;\r
-\r
- int digit2 = str36進数文字.IndexOf( strNum[ 0 ] );\r
- if( digit2 < 0 )\r
- return -1;\r
-\r
- if( digit2 >= 36 )\r
- digit2 -= (36 - 10); // A,B,C... -> 1,2,3...\r
-\r
- int digit1 = str36進数文字.IndexOf( strNum[ 1 ] );\r
- if( digit1 < 0 )\r
- return -1;\r
-\r
- if( digit1 >= 36 )\r
- digit1 -= (36 - 10);\r
-\r
- return digit2 * 36 + digit1;\r
- }\r
- public static int n小節番号の文字列3桁を数値に変換して返す( string strNum )\r
- {\r
- if( strNum.Length >= 3 )\r
- {\r
- int digit3 = str36進数文字.IndexOf( strNum[ 0 ] );\r
- if( digit3 < 0 )\r
- return -1;\r
-\r
- if( digit3 >= 36 ) // 3桁目は36進数\r
- digit3 -= (36 - 10);\r
-\r
- int digit2 = str16進数文字.IndexOf( strNum[ 1 ] ); // 2桁目は10進数\r
- if( ( digit2 < 0 ) || ( digit2 > 9 ) )\r
- return -1;\r
-\r
- int digit1 = str16進数文字.IndexOf( strNum[ 2 ] ); // 1桁目も10進数\r
- if( ( digit1 >= 0 ) && ( digit1 <= 9 ) )\r
- return digit3 * 100 + digit2 * 10 + digit1;\r
- }\r
- return -1;\r
- }\r
- \r
- public static string str小節番号を文字列3桁に変換して返す( int num )\r
- {\r
- if( ( num < 0 ) || ( num >= 3600 ) ) // 3600 == Z99 + 1\r
- return "000";\r
-\r
- int digit4 = num / 100;\r
- int digit2 = ( num % 100 ) / 10;\r
- int digit1 = ( num % 100 ) % 10;\r
- char ch3 = str36進数文字[ digit4 ];\r
- char ch2 = str16進数文字[ digit2 ];\r
- char ch1 = str16進数文字[ digit1 ];\r
- return ( ch3.ToString() + ch2.ToString() + ch1.ToString() );\r
- }\r
- public static string str数値を16進数2桁に変換して返す( int num )\r
- {\r
- if( ( num < 0 ) || ( num >= 0x100 ) )\r
- return "00";\r
-\r
- char ch2 = str16進数文字[ num / 0x10 ];\r
- char ch1 = str16進数文字[ num % 0x10 ];\r
- return ( ch2.ToString() + ch1.ToString() );\r
- }\r
- public static string str数値を36進数2桁に変換して返す( int num )\r
- {\r
- if( ( num < 0 ) || ( num >= 36 * 36 ) )\r
- return "00";\r
-\r
- char ch2 = str36進数文字[ num / 36 ];\r
- char ch1 = str36進数文字[ num % 36 ];\r
- return ( ch2.ToString() + ch1.ToString() );\r
- }\r
-\r
- #region [ private ]\r
- //-----------------\r
-\r
- // private コンストラクタでインスタンス生成を禁止する。\r
- private C変換()\r
- {\r
- }\r
- //-----------------\r
- #endregion\r
- } \r
-}\r