#$K+◆はじめにHLP000005 ◆変換例 ◆正規表現 ◆Filterモード ◆著作権と履歴
Help for Clipsed Ver.3.30(2002/02/08)
○謝辞
clipsedをダウンロードいただきありがとうございます。
なにかのお役に立てば幸いです。
ソースもつけておりますので、ご自由に改良なさってください。
本ヘルプファイルでは、clipsedの簡易説明をしてあります。
○配布ファイル
readme.txt この簡易説明ファイル
clipsed.exe 実行ファイル
clipsed.hlp ヘルプファイル
clipsed0.ini おきまりの表現ファイル
clipsed1.ini 履歴保存ファイル
bregexp.dll 正規表現エンジン(Tatsuo
Babaさん作成)
source.lzh ソース(VB6)
gpl2_jpn.txt GNU 一般公有使用許諾書
nkf32.dll ネットワーク漢字フィルタ(市川さん、海人さん作成)
DELCTL.EXE 空白以外の制御文字除去フィルター
REV.AWK
文字列反転jgawk用スクリプト
RSCNV.SED 国会図書館雑誌記事目録csv化用sedスクリプト
NL2CSV.AWK 国会図書館雑誌記事目録csv化用awkスクリプト
※フルパッケージ版には、このほかVB6のDLL等が付属します。
○動作環境
Windows95/98/Me/2000/XP
WindowsNTでは未確認
○インストール方法
任意のフォルダを作成しそこに全てのファイルを解凍してください。
このほかに下記のファイルが必要です。ただし、 どちらもWINDOWS98以降には標準添付されているはずです。おちでない場合は、フルパッケージを利用するか、必要なDLL等をvectorその他のサイトからダウンロードしてください。
・VisualBasic V6.0ランタイム
・リッチエディットコントロール
・コモンダイアログ・コントロール
プログラムランチャ等から起動する際は、直接clipsed.exeを指定するのではなく、必ず、ショートカットを作成の上、それを指定して下さい。特に、Filterモードを使う際に必要となります。具体的には、「インストールフォルダ\clipsed.exe.lnk」を指定します。
また、uniqコマンドによる重複行操作ならびに、Filterモードをより高度にお使いいただくためには、後述のFilterモードssort やmtoyoさんのsortf 等をお試しください。その場合は、clipsedのインストールフォルダーに実行ファイルを入れ、ファイル名をsort.exeに変更して下さい。
○アンインストール方法
任意のフォルダに作成した全ファイルを削除して下さい。
なお、レジストリに書き込みは行っておりません。
○注意
・Filterモード ではclipsed.exeがあるディレクトリにcps0.tmp
cps1.tmp という一時ファイルを作成します。同名のファイルがあると上書きされます。また、これらのファイル作成後も自動で削除はしません。もし、必要なら手動で削除してください。
・Filterモードではdos窓と同様に任意のコマンドを実行できます。Filterコマンドに関わらず、ほとんどのプログラムが実行可能です。それゆえ、プログラムの実行にあたっては、各自のリスクでお願いします。
・Filterモードでは、下記のコードを実行しています。
Shell(Environ("ComSpec") & " /c type
cps0.tmp| " & inputRegstr & " > cps1.tmp", vbHide)
#$K+◆はじめにHLP000005 ◆変換例 ◆正規表現 ◆Filterモード ◆著作権と履歴
◆正規表現を使ったsed/grepライクな置換&任意のdosフィルタの実行
Tatsuo Baba(babaq@hi-ho.ne.jp)さん作成の、 Perl5互換の正規表現エンジン(BREGEXP.DLL)
を使用した、クリップボード文字列を対象とした置換ツールです。(通常モード)
各種文字列操作、mime解読(nkf32.dll使用)もできます。
これに加え、任意のdosフィルタを実行できます。(Filterモード
これを使えば、整形、ソート、文字列変換等、あらゆるテキスト処理がきめ細かく実行できます。本物のsedやgrepがそのまま動きますし、パイプラインで複数のコマンドをつなぐこともできます。
Filterモードがあるから「sed/grepライク」な通常モードが不要なわけではありません。perl5互換の拡張された正規表現が使え、かつ、複数行をまとめて扱える点で、通常モードも十二分に使えます。
◆通常モード
・"s"(置換)と"tr"(検索文字クラス置換)が利用できます。
・複数行を処理するとき改行は「\r\n」で表現してください。
例:s/befor/after/gk
tr/[A-Z]/[a-z]/gk
・行頭「^」、または、行末「$」表現を使うと行単位で処理します。
・メタ文字を含む場合は、複数行補助を使うと便利です。
・"m"でgrep(マッチ行抽出)が利用できます。
その際、-vチェックボックスをonにすれば反転もできます。
例:m/パターン/gk
なお、末尾のgkはつぎのような意味をもちます。まず、 gはグローバルを意味し一致した全ての検索対処全てを置換します。
gをつけないと最初に一致したものだけを対象に置換します。また、 kは漢字など英文字以外の文字を処理するときに指定します。また、iオプションをつけると、英字の大文字小文字を同一視します。
詳細については、正規表現の項perlやsedのマニュアル等をご参照ください。正規表現を説明したWebサイトも多くあります。
このようにエディタに比べて柔軟性が高い置換が出来ます。また、置換をセットで履歴に残すので、再利用が少し楽になります。
◆Filterモード
・DOSのフィルタコマンドが使えます。
sed/awk/grep/perl/nkf/xtr等々が実行できます。
フルパスで指定すればパスが通っていなくてもO.Kです。
・標準出力に出力できるソフトならDosの内部コマンドでもO.K.です。
・パイプラインで連結もできます。
例:dir |grep
"^[0-9]"|gawk "{print $4 \"\t\" $1}"|sort
・sed等では、複数のコマンドを書くこともできます。
記憶できるのは横につなげる書式のみです。
コマンドを記述したファイルを指定することもできます。
複雑なことをやろうとすると結構テクニックがいります。たとえば、オプションで二重引用符を用いる際は、\でエスケープが必要です(上述のgawkの例を参照)。一番簡単なのは、テキストファイルにコマンドを書いて、それを指定することです。
記述にあたっては、dosのコマンドラインの仕様を確認して下さい。(windows2000の場合はmicrosoftのページ を参照のこと)。ちなみに、windows2000はDos窓の性能がレスポンスやシェル機能が95や98時代からするとずいぶん非常に良くなっています。95/98等ではdosに降りているので、いくぶんもたついた感じがしますが、2000ではあたかも内部コマンドを実行しているようにしか感じません。
注:dosfilterが途中に「^Z」等の表示不可能なコントロールコードを出力すると、Filterモードは異常終了することがあります。そのような場合は、同梱の「DELCTL.EXE
」をFilterの最後に使用して下さい。例:「xtrnt -w65 -aj| DELCTL」。スペース以外のコントロール文字を消去します。詳細は、Filterモード
★通常モードとFilterモードは冒頭の「s/,m/,tr/」で自動判断します。
◆置換対象
クリップボード文字列を対象としています。しかし、直接クリップボード文字列を書き換えません。いったん、テキストウィンドウに文字を書き出して、それに対して置換を行います。置換前に、テキストウィンドウの内容を書き換えることも可能です。また、置換後に書き換えて、その結果をクリップボードに転送できます。
正規表現とマニュアルによる置換を組み合わせて、手っ取り早く修正したいというのが本ソフトの基本思想だからです。
◆お気に入りのコメント
お気に入りには、コメントを付けることができます。
コメントの付け方:先頭か末尾の【】内にコメントを書きます。
動作:先頭か末尾にある【】内のコメントおよびその直前の空白をお気に入りの表現での選択時に削除します。
#$K+◆はじめにHLP000005 ◆変換例 ◆正規表現 ◆Filterモード ◆著作権と履歴
◆簡単な使用例
おきまりの表現にある下記の表現を使えば、html-->txt変換ツールを使うまでもなく、htmlファイルのタグを取り去ることが出来ます。もちろん、専用ツールを使えば、もっときちんとフォーマットしてくれます。
s/<[^>]*>//gk
さらに、おきまりの表現にある下記の表現を使えば、2行以上に渡る改行を圧縮できます。
s/\r\n(\r\n)*/\r\n/gk
・"m"でgrep(マッチ行抽出)が利用できます。
その際、-vチェックボックスをonにすれば反転もできます。
例:m/パターン/gk
◆置換対象
クリップボード全体を初期状態の置換対象とします。
置換対象は文字列ウィンドウの中の文字ですので、手であらかじめ修正できます。
対象文字列ウィンドウには、リッチエディット・コントロールを利用しています。このため、 テキストエディットコントロールのような64Kバイトの制限はありません。もちろん、お使いの機器のメモリ搭載状況により置換可能な容量は左右されます。
◆複数行置換
置換対象は、標準では改行を含む文字列全体です。ですので、改行を含んだ複数行の置換が割と簡単に出来ます。
本物のsedのようにいちいちホールドスペースに追加する必要はありません。ただし、改行はDOSではCR+LFで表現されているため、\r\nで改行を指定します。
(おまけ)
改行を\r\nで扱えるという仕様を利用し、\rだけを取り去ると、 Excelのセル内改行を利用する際に便利です。 その場合は、文字列全体を「"」で囲むことを忘れずに。他のオフィスソフトでも同様です。
◆複数行置換補助機能
\r\nを入れるのを手伝う複数行置換補助機能があります。
s/置換前/置換後/gk の置換前、置換後文字列を独立に扱うことができます。改行を「\r\n」に変換し、特別な意味を持つメタ文字をエスケープします。これで、複数行に渡る長い文字列やメタ文字を含む置換が楽になると思います。
◆行単位置換
行単位での処理もできます。行頭、行末を意味する 「^」、「$」 をつけると、自動的に行単位で機能します。実際は、まず、を強制的に除去し、それに対して置換をかけ、あとでをに置換しているだけです。ですので、副作用として除去には使えません。行頭や行末の「\r」だけを除去するときには、注意して下さい。なお、エスケープした「\/」や「\$」が出てきてもうまく処理できるようにしたつもりです。
(例)
行頭に「# 」を付加したい場合は、
s/^./# &$/gk
行末の全角または半角の空白を削除したい場合は、
s/[ ]+$//gk
これに加え、タブも削除するのであれば、
s/[ ]+$//gk
(注)画面上は空白ですが、[
]内には半角空白と全角空白が入っています。
◆置換文字列保存機能
起動時クリップボード内容、置換前文字列、置換後文字列、現在のクリップボード文字列を保存します。このため、試行錯誤しながら正規表現を練り上げることが出来ます。
◆クリップボード確認ボタン
クリップボードの内容を確認することができます。このボタンを押すことで、クリップボードの内容が新たな検索対象となります。
◆おきまりの表現と置換履歴
よく使われる表現は、おきまりの表現として保存可能です。
また、置換履歴も保存されます。簡単な2重登録防止機能も付いてます。
これらはどちらもテキストファイルですので、エディタなどで編集できます。
Ver2.01から「正規表現入力」、「おきまりの表現」と書かれている文字をシングルクリックすると、それぞれの履歴ファイルを「標準エディタ」(通常はnotepad)で開くことが出来ます。なお、修正結果を反映させる場合は、再起動して下さい。
※置換履歴は、削除しない限り際限なく増えていきます。起動時間もその分余計にかかるようになる可能性があります。折を見て編集して下さい。編集にはエディタやワープロをお使い下さい。
※正規表現の後ろにメモを付けることが出来ます。私の環境で試したら今のところ特に問題はありません。しかし、これは、BREGEXP.DLLの仕様ですので、未サポートです。
○その他の機能
◆文字種変換
大文字−小文字変換、半角−全角変換、かな−カタカナ変換、半角カナ−全角カナ変換などはメニューから選択するだけで出来ます。
◆連続行削除、連続行抽出
連続する重複行の削除機能があります。また、連続する重複行のみの抽出もできます。重複した全ての行が抽出されるので、結果に対して連続行削除とすると単一化できます。なお、Filterモードでdosの「sort」機能と組み合わせて利用するといいでしょう。
◆文字カウント
置換対象内の文字をカウントします。文字数、行数、バイト数を出力します。
◆mime変換
●概要1
メールは通常JISコードを使っています。
本文は、JISコードを扱えるエディタ等で読めます。
しかしsubject部の-iso-2022-jpで始まるMIMEエンコード部分をデコードできます。
そこで、NKF32.DLLを使用して変換するルーチンを組み込みました。
JISからなる一見文字化けした文字列もsjisに変換されるようです。
ただし、保証の限りではありません。あくまで簡易変換という位置づけです。
なお、試したところ半角カナは全角に変換されるようです。
「mimeデコード」で解読できます。
実際のデコードは、
NKFに-smオプションを付けて実行しています。
sはsjis出力(dos/windowsの基本コードですから)
mはMIMEデコードを意味します。
●概要2
googleでニュースが読めるようになりました。
日本語のニュースも読めます。例えば、fjは以下のURI。
http://groups.google.com/groups?hl=ja&group=fj
しかし、ところどころに下記のような文字化けが見受けられます。
> $BF;O)9);v (B? (1 article)
これは、どうやら、
ESCがなくなった「壊れた(Broken)JISコード」のようです。
そこで、これも解読できるようにしてみました。
「mimeデコードB」で解読できます。
実際のデコードは、
NKFに-smJBオプションを付けて実行しています。
●概要3
時々、メールで、ISO-2022-JPがquoted-printableで変換されているものがあります。
たとえば、下記のような文字化けとなります。
=1B$BEl5~ET9A6hFn@D;3=1B(B
制御文字であるESCが「=1B」に変換されてしまいます。
そこで、これも解読できるようにしてみました。
「mimeデコードQ」で解読できます。
#$K+◆はじめにHLP000005 ◆変換例 ◆正規表現 ◆Filterモード ◆著作権と履歴
以下は、主として通常モードの説明です。
おきまりの表現にあらかじめ登録してあるものの概略説明です。
これを参考に、いろいろと工夫してください。
また、気に入った正規表現があったら教えてください。このclipsedの命は、正規表現にあるわけですから。
なお、正規表現の項
エクセルの場合、タブをセパレータにすると、クリップボードから張り付けると同時にフィールド分割してセルに代入してくれるので、便利です。エクセルでもVBAで正規表現置換関数が作れます が、ちょっとした変換にはclipsedを使う方が手っ取り早いでしょう。
tr/[0-9]/[0-9]/gk 半角数字を全角数字に変換
tr/[0-9]/[0-9]/gk 全角数字を半角数字に変換
tr/[a-z]/[A-Z]/gk 英字の小文字を大文字に変換
tr/[A-Z]/[a-z]/gk 英字の大文字を小文字に変換
s/\r\n\r\n/\r\n/gk 空行削除(少し)
s/\r\n(\r\n)*/\r\n/gk 空行削除(たくさん)全部は消えない可能性有り。
s/<[^>]*>//gk htmlのタグを消去(<H1>などを消す)
s/","/"\t"/gk カンマをタブに変換
s/[()]//gk 「()」を全て消去
s/\r\n/\t/gk 改行をタブに変換
s/\t/\r\n/gk タブを改行に変換
s/\r\n//gk 改行を削除
s/\r\n/"\r\n"/gk 改行の前後に"をつける。csvファイルの作成補助。
s/\\/\//gk \を/に変換
s/[ \t]//gk 半角ブランク、全角ブランク、タブを全て削除
s/\//\\/gk /を\に変換
s/。/。\r\n/gk 。の後に改行を付加。
tr/\(\)/\t /gk 「(」をタブに、「)」を半角ブランクに変換
s/^./# $&/gk 行頭に「#
」をつける。「*」をつけると(s/^.*/# $&/gk)空行にも付加する。
#$K+◆はじめにHLP000005 ◆変換例 ◆正規表現 ◆Filterモード ◆著作権と履歴
perl 正規表現のメタ文字の解説
(主として通常モードを対象とした説明です。Dosのsed等でも大いに参考になりますが、ソフトにより異なる点があることにご留意下さい。)
BabaさんのホームページにあるBregexpの解説から引用させていただきました。オリジナルは、下記にあります。http://www.hi-ho.ne.jp/babaq/bregexp.html
パターンについて
正規表現は、文字列をパターンとして処理します。パターンは、次のように"/"で囲んで指定します。
/パターン/修飾子
パターン文字に"/"を含む場合は、次のようにmを指定して別の文字を使うことができます。
m#パターン#修飾子
パターンの中にはメタ文字という特別の意味を持つ文字があります。このメタ文字をマスターすると正規表現のパワーを実感できます。 BREGEXP.DLLで使えるメタ文字とその意味は、Perl5とほぼ同じです。従ってPerl5での正規表現をそのままBREGEXP.DLLのパターンとして使えます。次にBREGEXP.DLLで使えるメタ文字を示します。
\ 次のメタ文字をクォートする(取り消す)
^ 行の最初にマッチする
. (改行以外の)
すべての文字にマッチする
$ 行の終わりにマッチする
| 選択
() グループ化
[] 文字クラス
\w 単語」の構成文字 (英数字と
"_") にマッチ
\W 単語の構成文字以外にマッチ
\s 空白文字にマッチ
\S 空白文字以外にマッチ
\d 数字にマッチ
\D 数字以外にマッチ
\b 単語の境界にマッチ
\B 単語の境界以外にマッチ
\A 文字列の最初にのみマッチ
\Z 文字列の最後にのみマッチ
\t タブ
\n 改行
\r 復帰
\f 改ページ
\a アラーム (ベル)
\e エスケープ
\033 8 進数で表した文字
\x1b 16 進数で表した文字
\c[ コントロール文字
直前の文字の数量子:
* 0
回以上にマッチ
+ 1
回以上にマッチ
? 1
回または 0 回にマッチ
{n} ちょうど n 回にマッチ
{n,} n 回以上にマッチ
{n,m} n 回以上 m 回以下にマッチ
修飾子は、つぎのようなものです。
k 文字を日本語(SJIS)として扱う(Perlにはこの修飾子はありません)
m 文字列を複数行として扱う(メタ文字$の処理結果に影響を及ぼします)
g 置換:グローバルな置換
c 変換:SEARCHLIST を補集合にする
d 変換:見つかったが置換されなかった文字を削除する
s 変換:置換された文字が重なったときに圧縮する
非互換について
次にような機能は、BREGEXP.DLLではサポートしていません。
●VBなどでパターンに変数名を書いても展開されません
●メタ文字
\G 前回の m//g が終わったところにのみマッチ
●修飾子(パターンの右側につけるパラメータ)
o 一度だけコンパイル
x 拡張正規表現を使用する
e 式の右側の評価を行なう
#$K+◆はじめにHLP000005 ◆変換例 ◆正規表現 ◆Filterモード ◆著作権と履歴
○Filterモード
・DOSのフィルタコマンド(sed/awk/grep/perl/nkf/xtr等々)が使えます。
#「xtrnt -w65」 で整形、実はこれが使いたくてFilterモードを作りました。
#下記の各種toolを入れれば、dos時代のプログラムが生き返ります。
例:gawk "{print NR\" \"$0}" 行番号を振ります。
・標準出力に出力できるソフトならDosの内部コマンドでもO.K.です。
たとえば、clipsed内に表示された文字列をソートする場合には、正規表現入力/Filterコマンド欄に「sort」とだけ入力して下さい。さらに、「sort
/+5」とすれば、5文字目以降の文字列をキーにソートします。
・パイプラインで連結もできます。
例:dir c:\ |sort
なお、xtrは末尾に^Zを付加するようですので、パイプでつなぐと問題が生じる可能性があります。
・sed等では、複数のコマンドを書くこともできます。
記憶できるのは横につなげる書式のみです。
例: sed32 -e "s/a/b/g" -e "s/b/x/g"
もちろん、別途コマンドを記述したファイルを用意すれば、それを指定することもできます。
このあたりは、sed等のマニュアルをご参照下さい。
・batファイルも指定できます。
ただし、この場合は、頭にバッチファイルの中身が付加されます。なお、これは、windows2000でしか確認していません。
NL2CSV.BATの中身
rem 国会図書館雑誌記事文献CD-ROMの出力をCSVにする。
sed -f rscnv.sed |jgawk -f nl2csv.awk
# 別にfilterコマンドボックスに中身の文字列を打ち込めばいいわけですが……。
○Dos Filterコマンドとして代表的なソフト
Dos Filterコマンドとして代表的なソフトをあげておきます。
ダウンロードして、パスの通ったディレクトリ、もしくは、clipsedと同じディレクトリにおいてください。フルパスで指定すればパスが通っていなくてもO.Kです。
なお、事前にdos窓で必ず動作を確認して下さい。
◆sed32 文字列置換
http://www.vector.co.jp/soft/win95/util/se015016.html
◆grep32 文字列検索
http://www.vector.co.jp/soft/win95/util/se015011.html
◆gawk32 awkの32ビット版
http://www.vector.co.jp/soft/win95/util/se015007.html
◆Jgawk awkのマルチバイト対応版
http://www.vector.co.jp/soft/dos/util/se000208.html
◆xtrnt 書式整形xtrの32ビット版
http://www.vector.co.jp/soft/win95/util/se025753.html
◆jperl perl
http://www.vector.co.jp/vpack/browse/pickup/pw2/pw002596.html
◆nkf32 コード変換
http://www.vector.co.jp/soft/win95/util/se031296.html
◆UNIX-like tools UNIXでよく使われる基本的なコマンド群をMS-DOS/Windowsの上に実装
収録コマンド:basename.exe expand.exe ls.exe sort.exe unexpand.execat.exe
false.exe makedir.exe split.exe uniq.execdate.exe fecho.exe mv.exe tail.exe
uudecode.exechmod.exe findf.exe od.exe tee.exe uuencode.execmp.exe fold.exe
pr.exe test.exe wc.execp.exe foreach.exe pwd.exe tman.exe what.exediff.exe
head.exe removedir.exe touch.exe xeq.exeegrep.exe joinf.exe rm.exe tr.exe
http://www.vector.co.jp/soft/win95/util/se010511.html
最新版:ftp://ftp.ics.nara-wu.ac.jp/pub/nide/dosutil/
windows2000用:http://www.piedey.co.jp/softs/ntuxtl.html
◆text一般
http://www.vector.co.jp/vpack/filearea/win95/util/text/index.html
http://www.vector.co.jp/vpack/filearea/dos/util/text/index.html
sortは、恐らく標準でOSについています。もし、付属していない場合、sortの性能に不満がある場合は、Siさんのssort やmtoyoさんのsortf 等をお試しください。その場合は、clipsedのインストールフォルダーに実行ファイルを入れ、ファイル名をsort.exeに変更して下さい。
他のOS付属Filterはdos窓でhelpとすれば参照できます。
○Filterコマンドの例
コマンド |
説明 |
必要ツール |
|
|
|
xtrnt -w65 -ai -aj |
テキスト整形 |
xtr,xtrnt |
cat -n |
行の先頭に行番号を付加 |
UNIX-like tools |
sed -f rscnv.sed |jgawk -f nl2csv.awk |
国会図書館雑誌記事目録のcsv化 |
sed,jgawk |
wc |
行/単語/文字数を数える |
UNIX-like tools |
○スクリプトやプログラムを作りましょう
Filterコマンドボックスでは、外部スクリプトを指定することが出来ます。
たとえば、「jgawk -f rev.awk」とすると(jgawkは事前に入手 して下さい)
文字列を反転できます。なお、jgawkで拡張された関数を使っているためgawkでは動きません。
なんとコードの実態は、たった2行です。
rev.awkの中身からコード部分を抜粋したもの
{
for
(i = jlength($0); i >= 1; i--) {printf( jsubstr($0,i,1) )}
printf
("\n");
}
検索サイトでawk,sed,perl等を検索すると、それらのスクリプトを紹介したページがヒットします。ぜひ、それらを参考にして、スクリプトに挑戦してみて下さい。たとえば、野浪正隆さんの「テキスト処理の日々--JGAWKのある生活--* !ExecFile("http://okumedia.cc.osaka-kyoiku.ac.jp/~kokugo/nonami/awk/main.html")」などがありあます。その中には、goi.awkという小説の語彙出現頻度を調べるスクリプトなどがあります。windows2000でこれを動かすには1行修正が必要ですが。
もちろん、エル・エス・アイ ジャパン(株)社のLSI C-86 Ver. 3.30c試食版(コンパイラ配布パッケージは400KBほどしかありません)などフリーのcコンパイラを使っても、標準入出力を使ったプログラムは10行もあれば書けます。しかし、CPUの性能も上がっていることですし、たいていの場合は、スクリプト系言語の方が生産性は高いと思います。
ちなみに、同梱した空白以外の制御文字除去フィルタ「DELCTL.EXE 」のソースは以下のとおりです。これを、前述のLSI C-86 Ver. 3.30c試食版でコンパイルしています。
#include <stdio.h>
#include <ctype.h>
#include <stdlib.h>
/* 制御文字のうち、空白文字(スペース、水平タブ'\t'、改行'\n'、復帰
'\r' 、
改ページ、'\f'、垂直タブ'\v')以外のものを除去するFilterです。
(c)2002/01/03 Makoto Tomo 改変、再配布は自由です。
*/
main()
{
int
c;
while
((c = getchar()) != EOF) {
if
((isspace(c) ==0) * (iscntrl(c) != 0) ==0) putchar(c);
}
return
EXIT_SUCCESS;
}
○参考
ちなみに、「start http://www.yahoo.co.jp/」とするとホームページが開き、
「start mailto:メールアドレス」とするとメールソフトが立ち上がり、
「start clipsed1.ini」とすると履歴ファイルがiniに関連づけられたエディタで開きます。
startを使うと一種のランチャーとしても使えるという例です。
「help」と打ち込むとdosコマンドのヘルプが、「sort /?」 でsortのヘルプが出てきます。
すべてのコマンドを動作確認できないので、ご自身のリスクでということになりますが、一種、DOS窓としても使えると言うことです。
#$K+◆はじめにHLP000005 ◆変換例 ◆正規表現 ◆Filterモード ◆著作権と履歴
○著作権などの宣言
本プログラムはフリー・ソフトウェアです。あなたは、Free Software Foundationが公表したGNU
一般公有使用許諾の「バージョン2」或いはそれ以降の各バージョンの中からいずれかを選択し、そのバージョンが定める条項に従って本プログラムを再頒布または変更することができます。
本プログラムは有用とは思いますが、頒布にあたっては、市場性及び特定目的適合性についての暗黙の保証を含めて、いかなる保証も行ないません。詳細については GNU 一般公有使用許諾書をお読みください。
あなたは、本プログラムと一緒にGNU 一般公有使用許諾の写しを受け取っているはずです。そうでない場合は、
Free Software Foundation,Inc., 675Mass Ave,
Cambridge, MA 02139, USA へ手紙を書いてください。
なお、BREGEXP.DLLは、Tatsuo Baba(babaq@hi-ho.ne.jp)さん作成のプログラムです。配布条件は、http://www.hi-ho.ne.jp/babaq/index.html
の記述に従ってください。
また、mime変換機能では、海人氏が NKF を Win32 用に移植された NKF32.DLL を使用しています。
NKF32.DLLの呼び出しには、けるべ氏が作成された以下のモジュールならびに関数を使用しています。
この部分の配布規定は、下記の記述に従ってください。
'===== NKF32.DLL Declaration Module for Visual
Basic(32bit) Ver 1.03 =====
'(C)2000-2001 けるべ
'MAIL : kelbe@geocities.co.jp
'HOME : http://www.geocities.co.jp/SilkRoad/4511/
'
'このモジュールは、海人氏が NKF を Win32 用に移植された NKF32.DLL を、
'Microsoft Visual Basic(32bit) から使用するための宣言モジュールです。
'NKF32.DLL および NKF についての詳細は、NKF32.DLL に添付されている
'nkf32.doc をお読み下さい。
'
'NKF32.dllのウェブサイト :
http://www.vector.co.jp/soft/win95/util/se020949.html
'
'なおこのモジュールには、NKF32.DLL の使用を簡単にする関数群も
'含めてあります。あくまでも「サンプル」として含めましたので、
'実際に使用するには少々難がありますのでご注意下さい(^^;
'
'このモジュールの使用・転載条件は NKF32.DLL および NKF に準じます。
'
'************************************************************************
'** Copyright (C) 1987, Fujitsu LTD. (Itaru ICHIKAWA)
'** 連絡先: (株)富士通研究所 ソフト3研 市川 至
'** (E-Mail Address: ichikawa@flab.fujitsu.co.jp)
'**
営利を目的としない限り、このソースのいかなる
'**
複写,改変,修正も許諾します。その際には、この部分を残すこと。
'**
このプログラムについては特に何の保証もしない、悪しからず。
'**
Everyone is permitted to do anything on this program
'**
including copying, modifying, improving
'**
as long as you don't try to make money off it,
'**
or pretend that you wrote it.
'**
i.e., the above copyright notice has to appear in all copies.
'**
THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE.
'***********************************************************************/
また、バージョン番号表示ダイアログボックスは、 VB5標準添付のものをカスタマイズしました。 オリジナルの著作権は、Microsoft社にあります。
clipsed本体の著作権者
塘 誠(とも まこと)
Copyright 2000-2002,
URI http://hp.vector.co.jp/authors/VA021567/
○主な履歴
2002/02/08 3.30
お気に入りコメント機能の改善など。
2002/01/10 3.20
任意のdosフィルタ実行機能を付けました。
2001/12/14 3.10
MIMEデコード機能を付けました。
2001/09/09 2.20 grep機能に反転オプションをつけました.
2001/07/08 2.14 grep機能をつけました.
2001/05/30 2.12 文字列反転機能をつけました.
2001/05/05 2.10 画面構成見直し(変換ボタンのメニュー化など)
2001/01/08 2.01 履歴、おきまりの表現をエディタで開けるようにした。
2000/10/04 2.00 履歴修正のためにエディタを起動できるようにした。
2000/10/04 2.00 Windows2000でも動作するように改善。コンパイラをVB6に変更。
2000/10/01 1.20 重複行抽出機能、自動行単位処理機能、複数行補助機能のメタ文字サポート、半角カナ→全角カナ処理スピードアップなど。
2000/09/11 1.10 行単位処理モードを追加。
2000/09/09 1.07 連続する重複行を削除する機能の追加。
2000/09/08 1.06 半角カナを全角にする機能の追加。
2000/09/01 1.05 ヘルプファイルの作成。HelpDesigner
2000/06/08 1.04 初期検索式をブランクに変更。本マニュアルの整備。
2000/05/07 1.03 置換履歴の簡易2重登録防止機能が効かなくなっていたのを修正。
2000/05/01 1.02 ゴールデンウィークを機に初公開。
(以上)
#$KエクセルでExcelでperl5互換正規表現を使う方法です。
下記を、VBAモジュールに追加します。
正規表現を使ったきめ細かな置換が関数として使えるようになります。
エクセル97でも問題なく使えます。同様に、ワードや普通のVBでも使えます。
---------
cut here --------------
'basp21のbregexpでperl5互換正規表現を使えるようにするための定義です。
'BREGEXP.DLLをWindowsのsystemディレクトリか
'VBアプリケーションを置くディレクトリにコピーしておく必要があります。
'bregexp.dllは、<Tatsuo
Baba> babaq@hi-ho.ne.jpさん作成のdllです。
'http://www.hi-ho.ne.jp/babaq/index.html
から入手可能です。
'正規表現の他にもpopメールが使えるなど、便利な機能満載です。
Private Declare Function Match Lib "bregexp" _
(szRegstr As
String, szTarget As String) As String
Private Declare Function MatchEx Lib "bregexp"
_
(szRegstr As
String, szTarget As String, mode As Long) As Variant
Private Declare Function Replace Lib "bregexp"
_
(szRegstr As
String, szTarget As String) As String
Private Declare Function Translate Lib
"bregexp" _
(szRegstr As
String, szTarget As String, ret As String) As Long
Private Declare Function Split Lib "bregexp" _
(szRegstr As
String, szTarget As String, limit As Long) As Variant
Function xrep(szRegstr, szTarget)
'正規表現が使える置換関数。
'◆Replace
' Replace関数は、文字列中でパターンを検索し、もし見つかれば、置換テキストで置き換えた
' 文字列を返します。
'
szRegstr : パターン。
'
szTarget : 対象文字列。
' 戻り値 : 置換後の文字。
' パターンは、次のように指定します。パターンの詳細は、Perlのマニュアルを参照。
'
s/PATTERN/REPLACEMENT/gikm
'
xrep =
Replace(szRegstr, szTarget)
End Function
Function
xtrans(szRegstr, szTarget)
'◆Translate
'
Translate関数は、検索リスト (SEARCHLIST) に含まれる文字を、対応する置換リスト
'
(REPLACEMENTLIST) の文字に変換します。また、置換または削除が行なわれた、文字数を返します。
'
szRegstr : パターン。
'
szTarget : 対象文字列。
'
ret : 置換後の文字列。
' 戻り値 : 文字数。
' パターンは、次のように指定します。パターンの詳細は、Perlのマニュアルを参照。
'
tr/SEARCHLIST/REPLACEMENTLIST/cds
'
' オプションには、
' c SEARCHLIST を補集合にする
' d 見つかったが置換されなかった文字を削除する
' s 置換された文字が重なったときに圧縮する
' k 日本語を処理する。日本語をシングル文字として処理しない。
'
' 全角ひらがなを半角カナに変換。 → =ASC(xtrans("tr/あ-ん/ア-ン/gk",A2))
Dim ctr As Long
ctr =
Translate(szRegstr, szTarget, xtrans)
End Function
---------
cut here --------------
HLP000001
はじめに
はじめに
id0001:0001
HLP000002
特徴
特徴
id0001:0002
HLP000005
通常モードの簡単な使用例
簡単な使用例;文字種変換;おきまりの表現と置換履歴;置換対象;クリップボード確認ボタン;複数行置換;複数行置換補助機能;置換文字列保存機能
id0001:0003
変換例
変換例
変換例
id0001:0004
正規表現
正規表現
正規表現
id0001:0005
HLP000004
Filterモード
Filterモード
id0001:0006
HLP000003
著作権と履歴
著作権と履歴
id0001:0007
EXCELVBA
エクセルVBAで正規表現を使う
エクセル,EXCEL,VBA