前回は、
バッチ利用例で一番多いのは、
前回の宿題の回答
「c:\windows\tmp」
宿題の回答、
「c:\windows\tmp\aa.csv」から「\\FILESV\aa.csv」へファイル移動
「ファイルコピー」
コメントと変数
2回目の講義に入る前に、
1.コメントの指定
コメントの指定には、
#コメントです。
//コメントです。
2.変数の指定
変数の考え方はPHPと一緒で、
また、
以下は、
あああとは文字列
いいいとは整数
うううとは配列
3.インデント
なでしこは、
以下は、
もし、あああ=いいいならば
「あああといいいは同じです。」と言う。
違えば
「あああといいいは違います。」と言う。
文字列の検索
今回は、
ワイルドカードを利用する
まずは、
また、
ワイルドカードを使う場合の、
AがBにワイルドカードマッチ
この場合、
検索文字とは配列
パスとは文字列
パス=『子供の時の愛読書は「西遊記」が第一である。これ等は今日でも僕の愛読書である。比喩談としてこれほどの傑作は、西洋には一つもないであらうと思ふ。名高いバンヤンの「天路歴程」なども到底この「西遊記」の敵ではない。それから「水滸伝」も愛読書の一つである。これも今以て愛読してゐる。一時は「水滸伝」の中の一百八人の豪傑の名前を悉く諳記(あんき)してゐたことがある。その時分でも押川春浪氏の冒険小説や何かよりもこの「水滸伝」だの「西遊記」だのといふ方が遥かに僕に面白かつた。』
パスを反復//変数(パス)の中のデータを反復して、一行づつ処理しています。
対象が「*西遊記*」にワイルドカードマッチ
もし、それが空でなければ
それを検索文字に配列追加//マッチしたデータを検索文字(配列変数)に積み重ねるように追加してます。
検索文字を言う。//検索結果の表示
終わる。
このプログラムを実行すると、

複数のキーワードで検索する
次は、
#パスと言う変数にデータを放り込みます。
パス=『子供の時の愛読書は「西遊記」が第一である。これ等は今日でも僕の
愛読書である。比喩談としてこれほどの傑作は、西洋には一つもないであらうと
思ふ。名高いバンヤンの「天路歴程」なども到底この「西遊記」の敵ではない。
それから「水滸伝」も愛読書の一つである。これも今以て愛読してゐる。一時は
「水滸伝」の中の一百八人の豪傑の名前を悉く諳記(あんき)してゐたことがあ
る。その時分でも押川春浪氏の冒険小説や何かよりもこの「水滸伝」だの
「西遊記」だのといふ方が遥かに僕に面白かつた。』
検索文字とは配列
パスを反復
対象が「*天路歴程*西遊記*」にワイルドカードマッチ
もしそれが空でなければ
それを検索文字に配列追加
検索文字を言う//検索結果の表示
終わる。
このプログラムを実行すると、

正規表現を利用する
もうひとつ、
今回は、
正規表現を使う場合の、
AをBに正規表現マッチ
この場合、
#パスと言う変数にデータを放り込みます。
パス=『子供の時の愛読書は「西遊記」が第一である。これ等は今日でも僕の
愛読書である。比喩談としてこれほどの傑作は、西洋には一つもないであらうと
思ふ。名高いバンヤンの「天路歴程」なども到底この「西遊記」の敵ではない。
それから「水滸伝」も愛読書の一つである。これも今以て愛読してゐる。一時は
「水滸伝」の中の一百八人の豪傑の名前を悉く諳記(あんき)してゐたことがあ
る。その時分でも押川春浪氏の冒険小説や何かよりもこの「水滸伝」だの
「西遊記」だのといふ方が遥かに僕に面白かつた。』
検索文字とは配列
パスを反復
対象が「^愛読書.*」に正規表現マッチ
もしそれが空でなければ
それを検索文字に配列追加
検索文字を言う//検索結果の表示
終わる。
このプログラムを実行してみましょう。きちんと検索対象の行だけが表示されたはずです。

ファイルの入出力と連動
ここまではデータを直接プログラム内に書きましたが、
ファイルを読み込む場合の、
A(対象のファイル)を毎行読む。
この命令は対象のファイルを一行ずつメモリに読み込みます。ほとんどの場合、
では、
『子供の時の愛読書は「西遊記」が第一である。これ等は今日でも僕の
愛読書である。比喩談としてこれほどの傑作は、西洋には一つもないであらうと
思ふ。名高いバンヤンの「天路歴程」なども到底この「西遊記」の敵ではない。
それから「水滸伝」も愛読書の一つである。これも今以て愛読してゐる。一時は
「水滸伝」の中の一百八人の豪傑の名前を悉く諳記(あんき)してゐたことがあ
る。その時分でも押川春浪氏の冒険小説や何かよりもこの「水滸伝」だの
「西遊記」だのといふ方が遥かに僕に面白かつた。
1982/10/08』
テキストファイルが保存ができたら、
検索文字とは空//変数(検索文字)の初期化
「c:\aozora.txt」を毎行読んで反復。
対象を「^愛読書.*」で正規表現マッチ
もしそれが空でなければ
それを検索文字に配列追加
検索文字を「{デスクトップ}load.txt」に保存//検索結果をデスクトップのload.txtに保存しました。
#検索文字を「C:\Users\choco\Desktop\load.txt」に保存//これでも上と同じです。
終わる。
プログラムを実行してみましょう。デスクトップ画面に
文字列の置換
次は、
- 「西遊記」
を 「孫悟空」 に書き換えます。 - 「1982/
10/ 08」 を 「10月8日」 に書き換えます。
文字列を置換する場合の、
- 以下の命令は読んで字の如く、対象の文字列をそのまま置換します。
AをBに置換。
- 以下の命令は正規表現を利用した置換ですので、正規表現の書式にマッチした文字列を置換します。
AのBをCへ正規表現置換。
プログラムは以下のようになります。
「c:\aozora.txt」を毎行読んで反復
もし、対象が「*西遊記*」にワイルドカード一致ならば
対象の「西遊記」を「孫悟空」に正規表現置換、それを検索文字に配列追加//置換対象が見つかったら置換します。
違えば、もし、対象が「(\d+)/(\d+)/(\d+)」に正規表現一致ならば
対象の「(\d+)/(\d+)/(\d+)」を「$2月$3日」へ正規表現置換、それを検索文字に配列追加//置換対象が見つかったら置換します。
違えば
対象を検索文字に配列追加
検索文字を「{デスクトップ}load2.txt」に保存//検索結果をデスクトップのload2.txtに保存しました。
終わる。
後は、

内容は、
今回は、