[.NET][Edge対応版]プログラムコードの変換(C#、VB.NET→HTML)[Page1] [Programming .NET Tips]
[はじめに]
・「[.NET]プログラムコードの変換(C#、VB.NET→HTML)」で
公開しているサンプルソースの改良版です。
・プログラムソース(C#、VB.NET)を
ブログ公開用のHTMLに変換するツールです。
(コード量が膨大の為、変換処理のみ掲載しています。)
[前Verからの改良内容]
前Verでは、コードのコピー機能がIE限定でしたが、Edgeにも対応させるよう改良。
・前Ver:コードのコピー機能がIEのみに対応。
・現Ver:コードのコピー機能をEdgeにも対応。(対応ブラウザ:IE、Edge)
[機能]
プログラムソースの文字列を、HTMLに変換する。
変換後のHTMLは、<table>タグで整形した形になります。
[変換後HTML]
・インデントのスペースが「& nbsp;」に変換され、ブラウザ上でも表示される。
・予約語、コメント、文字列(ダブルコーテーションで囲んだ部分)に色がつく。
・ソースコードをクリップボードにコピーする機能を提供。(「コードのコピー」ボタンを付加)
IE、Edgeで動作確認済。
[制限事項]
・言語は、C#とVB.NETのみです。
但し、VB6やVBA等はVB.NETと言語仕様が似ている為、
制限事項を考慮の上、利用することもできます。
・C#のコメントは、行の先頭の「//」のみサポート。
行の途中の「//」や「/*」~「*/」はサポートしません。
・VB.NETのコメントは、行の先頭の「'」のみサポート。
行の途中の「'」はサポートしません。
[使い方]
(1)ビルド前に、「System.Web」を参照設定に追加する。
追加しないとコンパイルエラーになります。
(2)CodeConverterToHtml クラスのGetInstanceメソッドで、
変換オブジェクトを取得します。
言語の種類(C#かVB.NET)は、GetInstanceメソッドの第1引数で指定します。
(3)CodeConverterToHtml クラスのConvertCodeToHtmlメソッドで、
ソースをHTMLに変換します。
ConvertCodeToHtmlメソッドの仕様
・第1引数:プログラムソースの文字列
・第2引数:整形後HTMLのタイトル。(省略可能)
・戻り値:変換後のHTMLの文字列
変換後の文字列(HTML)は、
<table>タグで整形した形となります。
(<html>タグでは囲みません。)
[改造ポイント]
・拡張性
言語(C#、VB.NET)の固有ロジックを、
CodeConverterToHtml の派生クラスに定義しています。
(VBCodeConverterToHtml、CSharpCodeConverterToHtml)
予約語一覧、キーワードの前景色、背景色、検索条件(正規表現)、変換仕様は、
派生クラスの修正で変更できます。
また、言語を追加する場合も、既存の派生クラスの流用が簡単です。
・予約語一覧
予約語一覧は各派生クラスに定義しています。
予約語の追加、変更、削除が簡単です。
・キーワードの検索条件
正規表現を各派生クラスに定義しています。
正規表現を修正することで、キーワードの検索条件を変更できます。
・キーワードの変換仕様
正規表現の検索結果毎に、
MatchEvaluator()メソッドが呼ばれます。
MatchEvaluator()メソッドの修正で変換仕様を変更できます。
・マルチスレッド対応
スレッドセーフではありません。
派生クラスのGetRegEx() とGetReservedWords()に、
複数スレッドが同時アクセスした場合、
m_RegEx変数、m_ReservedWords変数の値に
矛盾が生じる可能性があります。
ASP.NET等のマルチスレッド環境で安全に使用する為には、
SyncLockで排他をかける必要があります。
[プログラムソース]
ブログの容量制限の為、下記に分けて記述しています。
[.NET][Edge対応版]プログラムコードの変換(C#、VB.NET→HTML)[Page1]
[.NET][Edge対応版]プログラムコードの変換(C#、VB.NET→HTML)[Page2]
[.NET][Edge対応版]プログラムコードの変換(C#、VB.NET→HTML)[Page3]
・「[.NET]プログラムコードの変換(C#、VB.NET→HTML)」で
公開しているサンプルソースの改良版です。
・プログラムソース(C#、VB.NET)を
ブログ公開用のHTMLに変換するツールです。
(コード量が膨大の為、変換処理のみ掲載しています。)
[前Verからの改良内容]
前Verでは、コードのコピー機能がIE限定でしたが、Edgeにも対応させるよう改良。
・前Ver:コードのコピー機能がIEのみに対応。
・現Ver:コードのコピー機能をEdgeにも対応。(対応ブラウザ:IE、Edge)
[機能]
プログラムソースの文字列を、HTMLに変換する。
変換後のHTMLは、<table>タグで整形した形になります。
[変換後HTML]
・インデントのスペースが「& nbsp;」に変換され、ブラウザ上でも表示される。
・予約語、コメント、文字列(ダブルコーテーションで囲んだ部分)に色がつく。
・ソースコードをクリップボードにコピーする機能を提供。(「コードのコピー」ボタンを付加)
IE、Edgeで動作確認済。
[制限事項]
・言語は、C#とVB.NETのみです。
但し、VB6やVBA等はVB.NETと言語仕様が似ている為、
制限事項を考慮の上、利用することもできます。
・C#のコメントは、行の先頭の「//」のみサポート。
行の途中の「//」や「/*」~「*/」はサポートしません。
・VB.NETのコメントは、行の先頭の「'」のみサポート。
行の途中の「'」はサポートしません。
[使い方]
(1)ビルド前に、「System.Web」を参照設定に追加する。
追加しないとコンパイルエラーになります。
(2)CodeConverterToHtml クラスのGetInstanceメソッドで、
変換オブジェクトを取得します。
言語の種類(C#かVB.NET)は、GetInstanceメソッドの第1引数で指定します。
(3)CodeConverterToHtml クラスのConvertCodeToHtmlメソッドで、
ソースをHTMLに変換します。
ConvertCodeToHtmlメソッドの仕様
・第1引数:プログラムソースの文字列
・第2引数:整形後HTMLのタイトル。(省略可能)
・戻り値:変換後のHTMLの文字列
変換後の文字列(HTML)は、
<table>タグで整形した形となります。
(<html>タグでは囲みません。)
| |
[VB.NET]変換機能の使用例 |
[改造ポイント]
・拡張性
言語(C#、VB.NET)の固有ロジックを、
CodeConverterToHtml の派生クラスに定義しています。
(VBCodeConverterToHtml、CSharpCodeConverterToHtml)
予約語一覧、キーワードの前景色、背景色、検索条件(正規表現)、変換仕様は、
派生クラスの修正で変更できます。
また、言語を追加する場合も、既存の派生クラスの流用が簡単です。
・予約語一覧
予約語一覧は各派生クラスに定義しています。
予約語の追加、変更、削除が簡単です。
・キーワードの検索条件
正規表現を各派生クラスに定義しています。
正規表現を修正することで、キーワードの検索条件を変更できます。
・キーワードの変換仕様
正規表現の検索結果毎に、
MatchEvaluator()メソッドが呼ばれます。
MatchEvaluator()メソッドの修正で変換仕様を変更できます。
・マルチスレッド対応
スレッドセーフではありません。
派生クラスのGetRegEx() とGetReservedWords()に、
複数スレッドが同時アクセスした場合、
m_RegEx変数、m_ReservedWords変数の値に
矛盾が生じる可能性があります。
ASP.NET等のマルチスレッド環境で安全に使用する為には、
SyncLockで排他をかける必要があります。
[プログラムソース]
ブログの容量制限の為、下記に分けて記述しています。
[.NET][Edge対応版]プログラムコードの変換(C#、VB.NET→HTML)[Page1]
[.NET][Edge対応版]プログラムコードの変換(C#、VB.NET→HTML)[Page2]
[.NET][Edge対応版]プログラムコードの変換(C#、VB.NET→HTML)[Page3]
| |
[VB.NET]CodeConverterToHtml |
[.NET][Edge対応版]プログラムコードの変換(C#、VB.NET→HTML)[Page2] [Programming .NET Tips]
[はじめに]
「[.NET][Edge対応版]プログラムコードの変換(C#、VB.NET→HTML)[Page1]」からの続きです。
[プログラムソース]
ブログの容量制限の為、下記に分けて記述しています。
[.NET][Edge対応版]プログラムコードの変換(C#、VB.NET→HTML)[Page1]
[.NET][Edge対応版]プログラムコードの変換(C#、VB.NET→HTML)[Page2]
[.NET][Edge対応版]プログラムコードの変換(C#、VB.NET→HTML)[Page3]
「[.NET][Edge対応版]プログラムコードの変換(C#、VB.NET→HTML)[Page1]」からの続きです。
[プログラムソース]
ブログの容量制限の為、下記に分けて記述しています。
[.NET][Edge対応版]プログラムコードの変換(C#、VB.NET→HTML)[Page1]
[.NET][Edge対応版]プログラムコードの変換(C#、VB.NET→HTML)[Page2]
[.NET][Edge対応版]プログラムコードの変換(C#、VB.NET→HTML)[Page3]
| |
[VB.NET]CSharpCodeConverterToHtml.vb |
[.NET][Edge対応版]プログラムコードの変換(C#、VB.NET→HTML)[Page3] [Programming .NET Tips]
[はじめに]
「[.NET][Edge対応版]プログラムコードの変換(C#、VB.NET→HTML)[Page2]」からの続きです。
[プログラムソース]
ブログの容量制限の為、下記に分けて記述しています。
[.NET][Edge対応版]プログラムコードの変換(C#、VB.NET→HTML)[Page1]
[.NET][Edge対応版]プログラムコードの変換(C#、VB.NET→HTML)[Page2]
[.NET][Edge対応版]プログラムコードの変換(C#、VB.NET→HTML)[Page3]
「[.NET][Edge対応版]プログラムコードの変換(C#、VB.NET→HTML)[Page2]」からの続きです。
[プログラムソース]
ブログの容量制限の為、下記に分けて記述しています。
[.NET][Edge対応版]プログラムコードの変換(C#、VB.NET→HTML)[Page1]
[.NET][Edge対応版]プログラムコードの変換(C#、VB.NET→HTML)[Page2]
[.NET][Edge対応版]プログラムコードの変換(C#、VB.NET→HTML)[Page3]
| |
[VB.NET]SqlServerCodeConverterToHtml |