みぃちゃんの頭の中はおもちゃ箱

略してみちゃばこ。泣いたり笑ったり

タブをスペースに変換

2011年03月17日 21時47分58秒 | IT・デジタル
Excelで作った表をEメールの本文に挿入する必要が出てきました。ファイルに保存するときのオプションを見てみましたが、どうやら各列をスペースで揃えてテキスト出力する機能はないようです。とりあえずタブ区切りテキストで出力して、タブをスペースに変換することにしましょう。

タブをスペースに変換するツールがどこかにあったよね? 昔Cか何かで作って\binに入れといたはず。どこだっけ? あれ? 見つからない。ない、ない……。

変換ツールを探すのが面倒なので、さくっと書きました。使用言語はPerl。メモを兼ねてブログにUPしておきます。名前はuntab.plとしておきます。

$tabstop = 8;
while (<>) {
	$pos = 0;
	while (($pos = index( $_, "\t", $pos)) >= $[) {
		substr( $_, $pos, 1) = ' ' x ($tabstop - $pos % $tabstop);
	}
	print;
}
exit;


最後のexitはなくても動作しますが、ブログで公開するときはソースコードの終わりを明示したくて。

目の前のデータ処理が片付いた後は、少しオプションを追加して正規ツール化。実用に供しています。