クリップボードの中身を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文で自前でやってしまった…