HIR-NET Home 運営者 オンラインソフト パソコン書籍 CG リンク集
パソコン快適操作術目次 インターネット世論調査 コンピューター インターネット

パソコン快適操作術
ファイルに存在するムダな行末空白
平林 雅英

1. ムダな行末空白
2. 行末空白の発生
3. 行末空白の削除
4. 行末空白の自動削除
5. 無料サンプル
目次に戻る



 1. ムダな行末空白

 txtファイルやhtmlファイル、プログラムのソースファイルなどテキスト・ファイルに、行末に無駄な空白があるのを良く見かける。
 空白は画面に表示させても、プリンタに印字させても見えないことが多く、行末空白があっても何も気付かない。
 特にhtmlでは<PRE>タグ内でなければ半角空白はいくつあっても同じだから、行末に無駄な空白があるhtmlファイルをブラウザーで見ても何も気付かない。
 例えば、次の文字A と文字B の間には 10個の半角空白があるだが、1個しかないように見える。

<TT>
 A B
</TT>


 次のように、<PRE>タグを使えば A と B の間には10個の半角空白があるのが分かる。
<PRE>
 A          B
</PRE>
 しかし、どちらの場合も B がなかったら、10個の半角空白の存在は分からないし無意味である。
 htmlファイルでは、あっても見えないものには注釈があるが、それには説明のためという意味があるが、行末空白はまったくの無駄である。


 2. 行末空白の発生

 ではどうして、こうした行末空白が発生してしまうのであろうか。
 エディタ作業で、行末空白が発生しやすいのは空白がいくつか続き、改行の直前にある文字を削除するようなケースである。
 文字Gの次に 3つの空白に続き、文字Hがある例を考えてみよう。半角空白を□、行末の改行を↓で示す。ここでHを削除すると、3つ(3バイト)の行末空白が出来てしまう。

  ABCDEFG□□□H↓

       |
    Hを削除すると
       ↓

  ABCDEFG□□□↓


 このような例はいくらでもある。例えば、ワープロなどで表のようなものを書いているときである。
 C言語などのプログラムでは字下げをするので、行末空白は頻繁に発生する。


 3. 行末空白の削除

 出来てしまった行末空白はエディタなどで使って削除すればよい。もちろん、それを1行1行、1ファイル1ファイルずつ行うのは面倒であるし、間違いも起る。それに内容は変わらないのに、ファイルの日時が新しくなってしまうのも気にかかる。
 こうした問題から、私は dspコマンド(ファイル行末空白削除コマンド)というコマンドを作ることにした。
 このコマンドの簡単な使い方は、
dsp  ファイル名
である。
 例えば、index.html の行末空白(タブを含む)を削除したいときは、次のようにする。
C>dsp index.html↓
index.html:56

1ファイル中1ファイルに合計56バイトの行末空白が存在
 すべての htmlファイル の行末空白を削除したいときは、次のようにすればよい。
C>dsp *.html↓
index.html:56
qa.html   :125
qa2.html  :34
test.html :0
test2.html:28

5ファイル中4ファイルに合計243バイトの行末空白が存在
 もちろん、C言語や C++ のソースファイルでも処理できる。
C>dsp *.c↓
C>dsp *.cpp↓
 こうして dspコマンドで行末空白を削除しても、ファイルの日時は変わらず、削除前の日時を保持する。
 ファイルの日時を保持したくない時は、/tオプションを付けて起動すればよい。
C>dsp *.html /t↓


 4. 行末空白の自動削除

 dspコマンドによる行末空白の自動削除の状況は次のようになる。

 □は半角空白、↓は行末を示す改行


  ABC↓
  ABCD□□□□↓
  □ABCDE□□↓
  □□ABCDE□□↓
  ABCDE□□↓
  ↓
  □□↓
  ABCDEF↓
  ABCDE□↓
  ABC□DEF□↓
  ABCDEFG□□□↓

        |
  dspコマンドによる行末空白削除
        ↓

  ABC↓
  ABCD↓
  □ABCDE↓
  □□ABCDE↓
  ABCDE↓
  ↓
  ↓
  ABCDEF↓
  ABCDE↓
  ABC□DEF↓
  ABCDEFG↓



 6. 無料サンプル
 dsp ファイル行末空白削除コマンド
 サンプル無料ダウンロード dsp.lzh(29Kバイト)





Copyright (C) 1998-2024 Hirabayashi Masahide  プライバシーポリシー