TxtAbornを紹介

[話者] TxtAborn(テキストあぼ〜ん)というのを作成した。


これまでに作成したWebAborn(ウェブあぼ〜ん)は、Webブラウザで見るときに、見たくない文字列を置き換えて、見ずにすむソフトだった。


TxtAbornは、青空文庫などのテキストファイルに対して、見たくない文字列を置き換えて、見ずにすむテキストファイルを作るぞ。


[合いの手] その説明ではよくわからないな。具体的に見せて


[話者] こういうふうに使う。
f:id:itouhiro:20121230192215g:plain

TxtAborn.bat にテキストファイルをドラッグ&ドロップすると、ファイル名に「ab_」と付いた別のファイルを生成する。

「ab_」は aborn_ の略だ。 aborn_ というのはさすがにカッコよくない気がしたので ab_ にしたよ。


「ab_」がついたファイルは、WebAborn.user.jsに記録されているNGワードがある行を「■■■■■■」という文字列に置き換えてある。


以下は、「まんじゅう」「饅頭」をNGワードにしたときの変換前・変換後の比較だ。
f:id:itouhiro:20121230192821g:plain


[合いの手] 複数行削れてるような?


[話者] これは右端で折り返して表示しているので、たくさん行があるように見えるけど、実際には2行だよ。


[合いの手] 1行が長いときはかなり文章が削られてしまうんだね。


[話者] 今のところ、改行文字単位で文字列置換するようにしてる。これでしばらく使ってみるよ。


[合いの手] WebブラウザOperaでは、テキストファイル読み込ませて行単位で文字列置換、すでに できてたよね?
参考: http://d.hatena.ne.jp/itouhiro/20120720


[話者] でも、テキストファイルを生成しておくと、WindowsAndroid青空文庫ビューアーで見ることができるからね。縦書きでも見られるぞ。


Androidの「縦書きビューワ」 https://play.google.com/store/apps/details?id=org.example.android.npn2SC1815J.VerticalTextViewer&hl=ja

文章は「太宰治 困惑の弁」 http://www.aozora.gr.jp/cards/000035/card18349.html


[合いの手] ダウンロードはどこ?


[話者] ダウンロードは
https://github.com/itouhiro/txtaborn
の画面右下の[(↓) Download ZIP]をクリックすればいいよ。



追記 2013-10-17

[話者] バージョンアップして、モードを2つ追加した。


置換方法として

  • replace_words 単語単位で置き換え(初期値)
  • delete_one_line 1行まるごと消す (まるでその行がなかったかのようになる)
  • replace_one_line 1行まるごとを1語に置き換え(以前の動作)

の3種類ある。txtaborn.jsのmodeの値で変更できる。


modeがreplace_wordsのときは以下のようになるよ。


[合いの手] ねえ、これってテキストエディターで文字置換するのと同じじゃないの?


[話者] 同じだよ。WebAborn.user.jsに登録された複数のNGワードを文字置換してくれるのが特徴だから、WebAborn使ってない人には意味ないね‥‥。


あとTxtAbornにはサンプルとして、テキストファイル SampleText.txtと、WebAborn.user.js(「饅頭」「まんじゅう」の2語のみ登録)を追加しておいたよ。これを使えば正しく動作するかチェックできるぞ。


[合いの手] これってファイル一つずつしか処理できないけど、たとえば100個のテキストファイルをまとめて処理したいときはどうするの?


[話者] 簡単な構造で説明するか。


C:\a\Dazai_KonWakuNoBen.txt
があったとするぞ。


まずやることは
C:\a
に'txtaborn'フォルダを置く。


すると、TxtAborn.batファイルは
C:\a\txtaborn\TxtAborn.bat
に位置することになる。


で、repeat_txtaborn.batを
C:\a\repeat_txtaborn.bat
に配置する。
中身は、

for %%F in (*.txt) do txtaborn\TxtAborn.bat "..\%%F"

だな。
TxtAbornが実行されるフォルダからみると「*.txt」の個々のファイルは一つ上のフォルダにあるから、%F の前に「..\」が必要なんだ。あとbatファイルに書くときは %F を %%Fと書く。ファイル名に空白があったときのために%%Fをダブルクォーテーションで囲む。


次に TxtAborn.bat 、これはtxtabornフォルダーにあるが、この最終行の

pause

を削除する。これがあると1ファイル処理するごとにEnterかスペース押さなくちゃならないので面倒だからな。


で、あとはrepeat_txtaborn.batをダブルクリック。



私の場合、まずコマンドプロンプト

C:\a> for %F in (*.txt) do echo %F

とやって動作を確かめたりするよ。