HTAをもっと流行らせる計画
レス数が950を超えています。1000を超えると書き込みができなくなります。
0962デフォルトの名無しさん
2008/09/04(木) 00:16:36あやしい変換ツール作った
以下を適当な名前.htaで保存して、テキストエリアにwin32api.txtをコピペしマウスのフォーカスをはずすと変換
As 〜の基本的な型は用意されてる前提でチェックせず変換してるので注意
特に、構造体の入れ子は処理してないんでそこら辺は自分でやってくれ(デフォルトの型以外はクォーテーションはずすだけでいいはず)
<html>
<head>
<script>
function conv(obj){
obj.value=obj.value
.replace(/(Declare| *')[^\r\n]*/g,'') //コメントと関数のプロトタイプ宣言を消去
.replace(/Public Const ([^\r\n']+)/g,"var $1;") //定数を宣言
.replace(/&H([0-9A-Z]+)\D?/g,"0x$1") //VBからJS的な表記に直す
.replace(/ Or /g," || ")
.replace(/ And /," && ")
.replace(/ {4}/g,'\t') //スペース4つをタブに
.replace(/([^\s]+) *As *([^\s]+)/g,"\"$1\",\"$2\",")
.replace(/([\r\n]*?)Type (\w+)(([^\r\n]+[\r\n]+)+?)End Type/g,'\nvar $2=WScript.CreateObject("SfcMini.Structure");$1$2(\n$3);')
.replace(/\([\r\n]+[^\r\n]+/g,'(')
.replace(/,(\s+\);)/g,"$1")
.replace(/([\r\n]+){3,}/g,'$1');
}
</script>
</head>
<body>
<textarea onblur='conv(this)' rows="30" cols="100"></textarea>
</body>
</html>
レス数が950を超えています。1000を超えると書き込みができなくなります。