クリップボードの中身をHTMLエンコードに変換する「clip2HtmlEncode」を作った。ウィンドウが無い、コピペを支援するツールです。

bluewindとかのランチャに登録するとステキ。

重要な用事に寝過ごして出れなくてむしゃくしゃして30分ぐらいで作った。

実行ファイル(exe)ソースコード(VisualStudio2003 C#)アーカイブディレクトリ

blogにソースコードを貼り付ける時、>や&のような特殊記号は<とか書かないと化けてしまうので、それを変換するアプリです。preタグ使うのが正道だけど、MovableTypeの設定で改行を<br>にするようにしてると行間がこんな事になってしまうので。

Readme.txt より

————–

■実行手順

1.HTML変換したいテキストを、「Ctrl+C」などでコピーしてから

2.clip2HtmlEncode.exe から起動

3.一瞬黒い画面が出ます

4.「Ctrl+V」でメモ帳などに貼り付けてみると

  既に変換されています

■タブ幅

デフォルトでタブ幅4です。個人のこだわりがあると思うので

clip2HtmlEncode-tab2.exe(タブ幅2)

clip2HtmlEncode-tab8.exe(タブ幅8)

を用意しました

■動作環境

Windows2000,XPでの動作を確認しています。

Microsoft .NET Framework1.1が必要です。

起動しない場合は[スタート]→[Windows Update]をしてみてください。

それでも駄目なら、

.NET Framework1.1

http://www.microsoft.com/downloads/details.aspx?FamilyID=262d25e3-f589-4842-8157-034d1e7cf3a3&DisplayLang=ja

をインストールしてみてください。

————–

サンプルとして、ソースコードを貼り付けておく。こんな感じになりますよ↓↓



usingSystem;

usingSystem.Windows.Forms;

namespaceClipBoardTool

{

///



///clipboardtohtmlEncode

///(e.g.”->” “)

///


classclip2htmlEncode

{

///

///アプリケーションのメインエントリポイントです。

///


[STAThread]

staticvoidMain(string[]args)

{

IDataObjectiData=Clipboard.GetDataObject();//クリップボード取得

if(iData.GetDataPresent(DataFormats.Text))//テキストデータなら

{

Clipboard.SetDataObject(//変換して、入れ替える

htmlEncode(iData.GetData(DataFormats.Text).ToString())

,true

);

Console.WriteLine(“Successed”);

}

}

///



///HTMLの特殊文字に変換する

///


///
///

publicstaticstringhtmlEncode(stringstr)

{

stringresult=””;

for(inti=0;i
{

switch(str[i])

{

case’¥”‘:

result+=”"”;

break;

case’&’:

result+=”&”;

break;

case’<':

result+=”<“;

break;

case’>’:

result+=”>”;

break;

case”:

result+=” “;

break;

case’c’:

result+=”©”;

break;

case’¥¥’:

result+=”¥”;

break;

case”:

result+=”        “;

break;

default:

result+=str[i];

break;

}

}

returnresult;

}

///



///HTMLの特殊文字から元に戻す

///


///
///

publicstaticstringhtmlDecode(stringstr)

{

stringresult=””;

returnresult;

}

}

}

■参考

DOBON.NET .NET Tips – クリップボードに文字列をコピーする、クリップボードから文字列を取得する

System.Windows.Forms.Clipboard.SetDataObject()とGetDataObject()が使える

@IT:.NET TIPS 文字列やテキストをHTMLエンコードするには? – C# VB.NET

System.Web.HttpUtility.HtmlEncode()でできるらしい。作ってから気付いた。switch文で自前でやってしまった…