developer's diary

最近はc#のエントリが多いです

秀丸のマクロを他の言語で実行する(php編)


php.mac(秀丸から実行するマクロファイル)

if( selecting == 1 ) {
    run "php \"C:\\Program Files\\Hidemaru\\mac\\test.php\"  < con > con ";
}

test.php(php.macから実行するphpのソース)

<?php
while ($line = fgets(STDIN)) {
  print str_replace("\r\n", "", $line)."a\n";
}
?>

※秀丸のマクロのパスを「C:\Program Files\Hidemaru\mac」として記述しています。(動的にパスを編集できる方法を知ってれば是非教えてください!)

選択した範囲にたいしてphpで編集されます。

例えば以下のようなデータを選択した場合。

1234
12345
123456

下記結果になります。

1234a
12345a
123456a

ソースの修正履歴を残したい場合の例(php編)

test.phpを下記のように編集してみる

<?php
print "// --- add start --- ".date("Y/m/d")." ---#\n";
while ($line = fgets(STDIN)) {
  print $line;
}
print "// --- add  end  --- ".date("Y/m/d")." ---#";
?>

上記の例だと

1234
12345
123456

下記結果になります。

// --- add start --- 2008/11/29 ---#
1234
12345
123456
// --- add  end  --- 2008/11/29 ---#