|
|
|
|
|
定型処理編〜文章整形の基本 |
|
|
|
|
|
文字列の置換から |
|
|
上司 |
まず、文字列処理の基本の置換処理から見ていきましょう。まずは、文字列Sの内容を置換して画面に表示してみます。 |
|
|
|
Sは「猫がにゃ〜にゃ〜と鳴きました。」
Sの「にゃ〜」を「ごろごろ」に置換
それを表示。 |
|
|
|
『置換』命令というのは文字列整形で一番よく使う命令です。何を何に変えるのかを指定して置換します。置換した結果は特殊な変数『それ』に入ります。次に連続して2つの置換をやってみます。 |
|
|
|
それは「猫がにゃ〜にゃ〜と鳴きました。」
「猫」を「犬」に置換
「にゃ〜」を「ワン」に置換
表示。 |
|
|
|
どうでしょうか。今度は、『置換』命令の第一引数を省略して書いてみました。置換命令の説明を見ると以下のようになってます。 |
|
|
|
|
|
|
引数に注目してみましょう。引数の定義は『{文字列=?}SのAをBに|SでAからBへ』です。このうち『{=?}S』というのがポイントです。{=?}というのは、その引数を省略しても良いということです。もし、省略をすると、変数『それ』の値が補完されます。 |
|
|
置換した文字をコピー |
|
|
|
さて、置換が終わったら置換後の文字列を、クリップボードにコピーしてみましょう。クリップボードにコピーしておけば、WordやExcelやメモ帳やメールソフトなどのメニューから[編集
- 貼り付ける]で貼り付けることができるのです。 |
|
|
|
それは「猫がにゃ〜にゃ〜と鳴きました。」
「猫」を「犬」に置換
「にゃ〜」を「ワン」に置換
「鳴き」を「歌い」に置換
それをコピー。
それを表示。 |
|
|
|
これを実行すると、クリップボードに『犬がワンワンと歌いました。』という文字列がコピーされます。『コピー』というのがクリップボードへコピーする命令です。 |
|
|
結果を確認してからコピーする方法 |
|
|
|
文字列を連続して置換できて便利なのは分かりました。結果を確認してからコピーする方法はありますか? |
|
|
|
そうですね。
以下のプログラムを見てください。 |
|
|
|
それは「猫がにゃ〜にゃ〜と鳴きました。」
「猫」を「犬」に置換
「にゃ〜」を「ワン」に置換
それを言う。 |
|
|
|
これを実行するとダイアログに『犬がワンワンと鳴きました。』と表示されるだけです。どうやってコピーするんですか? |
|
|
|
実は『言う』で表示したダイアログの文字の上で右クリックしてください。すると、メッセージをコピーするというメニューが出てきます。そこで結果を確認してコピーすることができるのです。 |
|
|
ファイルから読んで置換してファイルへ保存する技 |
|
|
|
さて、今度はファイルを読んで置換して保存するというプログラムを作ってみます。以下のプログラムを実行すると、「test.txt」というファイルの内容を読んで文字列を置換して、置換した内容を「test.txt」へ保存します。例えばテキストに書かれているメールアドレスを変更してみます。 |
|
|
|
ファイル名は「test.txt」
ファイル名を開く。
「bb@nadesi.com」を「aa@nadesi.com」に置換
ファイル名へ保存。 |
|
|
|
上のプログラムと反復命令を組み合わせることで、フォルダ内のファイル全部を置換することができます。これには、『ファイル列挙』命令と組み合わせます。以下は拡張子が「.txt」のファイルを列挙してそれのメールアドレスを置換する例です。 |
|
|
|
「*.txt」のファイル列挙
それを反復
ファイル名はそれ。
ファイル名を開く。
「bb@nadesi.com」を「aa@nadesi.com」に置換
ファイル名へ保存。 |
|
|
|
上のプログラムは便利だけどいきなり実行すると間違った置換して保存される心配がありそうだわ。 |
|
|
|
そうだね。まずはいきなり保存せず以下のプログラムのように、まず、実行結果を『言う』で確認して問題がなかったら、『保存』に置き換えるといいですね。あと、『ファイル名はそれ』と書かなくても『対象』を使えばもっとプログラムが短くなりますよ。 |
|
|
|
「*.txt」のファイル列挙
それを反復
対象を開く。
「bb@nadesi.com」を「aa@nadesi.com」に置換
言う#対象へ保存。 |
|
|
|
対象に関する説明はこちら |
|
|
> |
|
|
|
次のページ→文字列の整形
前のページ←定型処理目次
|
|