勝手にしやがれ Part2.

【投稿時の注意】
パスワード入力:必須。投稿後の削除時は同じパスワードを使います。
投稿者入力:いまのところ任意。入力を省略すると「名無しさん」がデフォルトで表示されます
Eメール入力:いまのところ任意。
リンクの入力:本文中に http の文字列が含まれると投稿出来ません。URL を貼るときは h 抜きで ttp:// とするなど工夫してみて下さい

1 / 2 ページ 前へ→

【57】RCP32 v2.18β4 不具合報告[9]  /  【119】srepについて[25]  /  【66】難しいのかもしれない要望...[51]  /  【89】掲示板の携帯電話対応[3]  /  【64】Wild(32)の挙動?[14]  /  【54】あれ?[2]  /  【51】レス日付表示フォーマット...[2]  /  【40】WindowsXPでWeb掲示板オフ...[10]  /  【35】RCP32のメッセージ[4]  /  【20】正式オープン[9]  /  

【57】RCP32 v2.18β4 不具合報告
 めざら WEB  - 2008/06/09(月) 11:43 -

引用なし
パスワード
    RCPにはいつもお世話になっています。大事なファイルをバックアップするときなど,RCPなしではいられません。本当にありがとうございます。

 さて,そのバックアップですが,連番バックアップモードでコピー中に不具合が発生しましたので,ご報告します。

環境:WinXP pro sp2 の command.com のDOSプロンプト(VZ ファイラから実行)
VZFL命令文:%!%^RCP32 %[/s+] /b %@1 %2%G
展開命令文:RCP32 /b @[%temp%]\FILES.$$$ [ターゲットDIR]
コピー元:他のPCに割り当てたネットワークドライブ
コピー先:手元の命令を実行したPCのフォルダ

 現象は,コピー先の同名ファイルは正常に連番が付与されましたが,コピー元からファイルが転送されませんでした。要するにバックアップファイルだけが存在している状態です。複写の場合は再度コピー元から転送すれば実害はありませんが,移動の場合がちょっと心配です。
 なお,実行時のメッセージは,Windows側から「正常に実行されています」というようなダイアログが出た後,コマンドラインではエラーにより失敗した旨のメッセージが表示されていました。

 関係はないと思いますが,その後,Windowsの再起動を行うまで,そのDOS窓は起動できなくなりました。これはおそらくVZを常駐させる段階で使用するはずのファイルが上記の理由で存在しなくなり,Windowsアプリケーションを実行させるのに適していないという判断が行われた結果と思われます。

 表示メッセージ等の正確な記録ができていなくて申し訳ありませんが,以上のような状況でした。

【58】Re:RCP32 v2.18β4 不具合報告
 Si  - 2008/06/10(火) 0:55 -

引用なし
パスワード
   どうもいらっしゃいです。
て、またまたバグレポですね、ご不便おかけしてすみません ^^;

Vz はすっかりご無沙汰してますので(テキストエディタ自体使う機会が激減です)、その
まま追試してみることが出来ないためいくつか教えて下さい。

1.レスポンスファイルの中身ですが、パス名は SFN、LFN どちらで記載されるのでしょうか?(これは SFN→LFN 展開がらみのバグかどうかの判断材料にしたいので)

2.%@1 はVzファイラー反対側窓のディレクトリ、って理解で良かったでしたっけ?で、このネットワークドライブのコピー元ファイルは UNCパス名でレスポンスファイルに記載されますか?(UNCパス処理は何かとアレな状態になってますので)

3.そのネットワークドライブに subst コマンドであらかじめドライブレターを割り当てた場合はどうなりますか?

なんだか頓珍漢な質問ばかりな気もして恥ずかしくなってきますが、もういろいろなことを忘れてしまってますのでお付き合い下さい。

あ、もうひとつ。もしすべての処理で LFN だけしか使われていない場合、旧版の 2.18β だとどうなるか?が知りたいです。どこかで SFN が使われている場合は結構です。また2.18βで試される場合はくれぐれもテスト用のコピー元、コピー先を用意して実行して頂くようお願いします。

ちなみに、RCP ダウンロードページで、

> RCP32 2.18β2で UNC パスを指定した時の挙動が変です。エラーでコピー処理に失敗するようです。すぐには原因調査にかかれないので、LFN のみで利用される場合はとりあえず前バージョン(2.18β)をご利用下さい。

とバグ情報を掲載してますが、その後β3、β4 を公開する過程で UNC パスに関わる不具合をどんな風に見直したのか(あるいは見直していないのか)、にわかには思い出せない次第です。

お時間のある時で結構ですのでぼちぼちと情報を頂けると助かります。

【59】Re:RCP32 v2.18β4 不具合報告
 めざら WEB  - 2008/06/12(木) 8:57 -

引用なし
パスワード
    早速有難うございます。

>て、またまたバグレポですね、ご不便おかけしてすみません ^^;

 いやいや、そんなんだけで申し訳ないですね。(^^ゞ
 埼玉人のくせにサッカーにはまったく興味がなくて。

 それでは確認事項です。
1 レスポンスファイルに記載されるファイル名はドライブ名を含むフルパスで、ショートファイル名です。
2 ネットワークドライブは事前にドライブレターが割り振られています。…と言うか、VZ のファイラーではドライブ名がなければアクセスできないです。ですので、レスポンスファイルにはドライブ名を含むフルパスのショートファイル名が記載されます。
3 上記の通り、ドライブ名を振っていますので、subst コマンドで割り当てているのと同じ状況だと思います。

 あと追記ですが、コピー元(ドライブレターを割り振ったネットワークドライブ)の OS は Win98-SE でファイルシステムは FAT32です。コピー先(手元)は WinXP-pro で、NTFS。command.com 下の常駐 VZ ですが、RCP32は Win32コンソールプログラムですから cmd.exe に制御が移っていると思います。なお、関係ないとは思いますが、ansi.sys の代わりに pansi.sys が組込まれています。

 もう一度「ちゃんと」エラーを起こしてエラーメッセージを取得した方がよいですか?

【60】Re:RCP32 v2.18β4 不具合報告
 Si  - 2008/06/12(木) 23:58 -

引用なし
パスワード
   ▼めざらさん:
> 埼玉人のくせにサッカーにはまったく興味がなくて。

^^;

あ、本題です。まとめると、

1.レスポンスファイルに記載されるコピー元ファイル名は SFN でのフルパス名
2.で、コピー元パスはあらかじめドライブレターが割り振られている(UNCパスではない)

となりますか。コピー元がネットワークドライブがらみという要素は考えないで良さそうな気がするのですが、そうするとローカルPC上でも同じ不具合が発生する筈、ということになってしまいますね。その辺りはどうでしょう?

Vz常駐環境ではないのですが、ローカルPC上のコマンドプロンプトで以下を試してみました。

(1)
res_lfn..txt
----------
E:\test0123456789\abcdefghijklmnopqrstuvwxyz1.TXT
E:\test0123456789\longdirname2\abcdefghijklmnopqrstuvwxyz2.TXT
E:\test0123456789\longdirname2\longdirname3\abcdefghijklmnopqrstuvwxyz3.TXT
----------
rcp32 /s /b @res_lfn..txt .\lfn

(2)
res_sfn..txt(res_lfn..txt の中身を SFN で書き換え)
----------
E:\TEST01~1\ABCDEF~1.TXT
E:\TEST01~1\LONGDI~1\ABCDEF~1.TXT
E:\TEST01~1\LONGDI~1\LONGDI~1\ABCDEF~1.TXT
----------
rcp32 /s /b @res_sfn..txt .\sfn

結果は (2)のケースでも(1)同様に正常に連番バックアップが実行されました。

D:\TEST\RCP32B4\sfn\longdirname2\longdirname3>dir /b
abcdefghijklmnopqrstuvwxyz3(000).TXT
abcdefghijklmnopqrstuvwxyz3(001).TXT
abcdefghijklmnopqrstuvwxyz3.TXT

XP Pro SP3、NTFS でコピー元は上記の通り E:\test0123456789 配下のファイル、実行時のカレントディレクトリは D:\TEST\RCP32B4 です。

とりあえず今日はここまで追試してみました。

> もう一度「ちゃんと」エラーを起こしてエラーメッセージを取得した方がよいですか?

とりあえず結構かと思います。週末にでもネットワーク環境で再追試してみる予定ですので、それでも再現しないようだったらお願いするかも知れません。

>なお、関係ないとは思いますが、ansi.sys の代わりに pansi.sys が組込まれています。

これはどうなんでしょうかね?というかこの辺りは良く分からなかったりします ^^;

【61】Re:RCP32 v2.18β4 不具合報告
 Si  - 2008/06/16(月) 0:39 -

引用なし
パスワード
   えー、めざらさんに大変失礼な確認なのですが、

>展開命令文:RCP32 /b @[%temp%]\FILES.$$$ [ターゲットDIR]

これは間違いないでしょうか?もしかして、

RCP32 /b /s+

ということはないですか?というのも

>VZFL命令文:%!%^RCP32 %[/s+] /b %@1 %2%G

ここの [/s+] が気になったのです(今ごろすみません)。

この週末に、ネットワーク上のドライブ(LAN接続型HDD)にコピー元ファイルを置いて試してみたのですが、 (/s+ なしだと)上のレスと同様に正常に連番バックアップコピーがされました。RCP32 の起動オプションは /b /s です。

ちなみに、コピー元ドライブは \\Hd-h\share を Y: に割り当て、

res_sfn_network.txt
----------
Y:\TEST0~VW\ABCDE~8X.TXT
Y:\TEST0~VW\LONGD~_Q\ABCDE~MS.TXT
Y:\TEST0~VW\LONGD~_Q\LONGD~V%\ABCDE~I1.TXT
----------

これをレスポンスファイルに使いました。SFN は ClipName というツールを使って取得しています。

たしか、レスポンスファイル使用時は /s+ オプションを付けると正常に動作しなかったような記憶があります。実際今回も /s+ を付加するとうまくいきませんでした。ただし症状はめざらさんのケースと異なります。

とりあえず今回の追試作業ではこんなところです。

# Vz 1.6 の 製品 FDが見つかり、VZT03K2.LZH も落としてきたのですが、自宅のノートPCには FDD が付いていませんでした ^^;

【62】Re:RCP32 v2.18β4 不具合報告
 めざら WEB  - 2008/06/16(月) 7:56 -

引用なし
パスワード
    いやいや,失礼なんてこと全然ないですよ。

>ここの [/s+] が気になったのです(今ごろすみません)。

 %[option] は,ディレクトリ選択の時だけ指定したオプションを挿入するという書式です。今回の RCP32 によるコピーでは,ディレクトリは選択しておらずファイルだけだったので,この書式は展開されていません。

>たしか、レスポンスファイル使用時は /s+ オプションを付けると正常に動作しなかったような記憶があります。実際今回も /s+ を付加するとうまくいきませんでした。ただし症状はめざらさんのケースと異なります。

 もともと VZ のレスポンスファイル出力機能はディレクトリに対応していませんので,複数のディレクトリを選択してコピーすることはありません。これは VZ 側の問題で,身にしみついています。したがって今回のコピーにおいて,ディレクトリを選択することはなく,/s オプションも展開されないということになります。

># Vz 1.6 の 製品 FDが見つかり、VZT03K2.LZH も落としてきたのですが、自宅のノートPCには FDD が付いていませんでした ^^;

 最近はデスクトップでも FDD の付いていないものがありますからね。BIOSなんかのアップデートなんかどうするんだと思いますが,必要なら USB で外付けするらしいです。割に最近買った ThinkPad には FDD どころか PS2 コネクタすらありませんでした。Lenovo になってから,ThinkPad も変わってしまうようです。
 FDD のない PC には,別の PC からメールなどで送るしかないかな。

【63】Re:RCP32 v2.18β4 不具合報告
 Si  - 2008/06/18(水) 1:21 -

引用なし
パスワード
   いろいろ教えていただきましてありがとうございました。すっかり浦島状態なので助かります。

それで、何とか Vz を入れてみたので実際に追試してみました。結論を先に書いてしまうと、

>現象は,コピー先の同名ファイルは正常に連番が付与されましたが,コピー元からファイルが転送されませんでした。

これは再現しませんでした。普通に連番バックアップと同時にコピー元ファイルの転送も行われるのです。

vzimbj.com に高橋版パッチをあて、vzibmj.def は VZT03K2.LZH の README.TXT にある #if tVZ 以下のブロックを追加しただけの状態、また VZFL.DEF は めざらさんが先頭レスで書かれていた RCP32 の実行コマンドを追記しただけ。あとは何もカスタマイズしていない状態で試してみました。

また、環境変数は vzibmj.com の置いてあるディレクトリを %path% に追加しただけです。VZBAK とか VZ とかの環境変数もあったような気もしますが今回は設定しませんでした。Vz のマニュアルが見つからないので不確かです・・・

参考までに実行過程をキャプチャした画像を下記に置いておきましたので時間のある時にでもみてやってくれますか?

ttp://picasaweb.google.co.jp/int1969/WindowsXPVz16RCP32?authkey=XkU17Xglv-8
(URLの先頭に h を付加して下さい。SPAM対策で、h 付きは禁止語句に指定してあるので)

おいおい、そうじゃないだろ、みたいな点がありましたら何なりと指摘してください。
高橋版で Lf+ にするとファイラーで LFN が表示されたような記憶があるのですが、SFN しか表示されません。これがちょっと気になります(勘違いかな?)。

【160】Re:RCP32 v2.18β4 不具合報告
 konno WEB  - 2008/10/27(月) 0:53 -

引用なし
パスワード
   ▼Siさん:超亀レスですが

>高橋版で Lf+ にするとファイラーで LFN が表示されたような記憶があるのですが、SFN しか表示されません。これがちょっと気になります(勘違いかな?)。

高橋版はWin98系では問題無いのですが、XPなど、WinNT系では、LFNのチェック
ルーチンが変更されたためにフラグが立たず、LFN表示しなくなりました。
これを修正し、CPU負荷軽減対策などを追加した私家版が私のところにあります。
ttp://homepage3.nifty.com/tamaneko/vz.htm#000001

ここのk07r2が最新版ですので、よろしかったらお試しください。

【162】Re:RCP32 v2.18β4 不具合報告
 Si  - 2008/10/29(水) 23:57 -

引用なし
パスワード
   ▼konnoさん:
>ttp://homepage3.nifty.com/tamaneko/vz.htm#000001
>
>ここのk07r2が最新版ですので、よろしかったらお試しください。

私の Vz は FGALDC で配布されていた高橋版が最後で、こうやって後を継いで改良作業が継続されていたとは、申し訳ないことに知りませんでした。

有り難く頂戴致しました。すごいです。

【163】Re:RCP32 v2.18β4 不具合報告
 konno WEB  - 2008/11/01(土) 0:18 -

引用なし
パスワード
   ▼Siさん:
>私の Vz は FGALDC で配布されていた高橋版が最後で、こうやって後を継いで改良作業が継続されていたとは、申し訳ないことに知りませんでした。

いえいえ、私は勝手に改造しているだけでして、機能追加部分は手抜きが多いし、
バグがあっても修正するスキルも無いので、ご利用は自己責任でお願いします。

VZを卒業された方たちは過去など振り返らないので、うちのサイトを見ることも
ないんでしょうね。ちょっぴり感傷的になる・・・秋ですねぇ。(^^;

>有り難く頂戴致しました。すごいです。

DOCがまた超いいかげんで、申し訳ないです。少しずつでも、追記・手直し
していこうと思ってはいるんですが。(^^;

ところで、XPには、RCP.EXEというものが元々あるんですね。どうりで、
16ビット版のRCP.EXEが動かないわけだ。

・ツリー全体表示

【119】srepについて
 文太  - 2008/10/07(火) 23:21 -

引用なし
パスワード
    ついにここまで来てしまいました。
 使い方を教えて欲しいという甘えたお願いです。

C:\>which debug |srep dir

ドライブ C: のボリュームラベルはありません.
ボリュームシリアル番号は 5094-14F9
ディレクトリは C:\WINDOWS\TEMP

_SREP0  $$$    31 08-10-07  23:10
    1 個       31 バイトのファイルがあります.
         1023932928 バイトが使用可能です.

 debug.exeがどこにあるのか検索し(c:/windows/system32/debug.exeと見つかるはず)、それがどんなファイルかを(サイズ、タイムスタンプなど)dirコマンドで表示。
 意図とは違う結果なのです。何がいけないのでしょうか? m(__)m

ディレクトリは C:\WINDOWS\SYSTEM32

DEBUG  EXE   23834 03-04-03  21:00
    1 個      23834 バイトのファイルがあります.
         1023932928 バイトが使用可能です.

 などと表示されることを期待したのですが。m(__)m

【122】Re:srepについて
 Si  - 2008/10/08(水) 1:34 -

引用なし
パスワード
   ▼文太さん:
> ついにここまで来てしまいました。

お、恐れていたことが・・・

WILD や LOGSORT の話題で久しぶりにここの掲示板も枯れ木も山の賑わいとなり、いろいろとコミュニケーションを楽しませて頂いていたのですが、何となく昨日辺りから srep が気になっていたのです。悪い予感が当たってしまいました ^^;

> 使い方を教えて欲しいという甘えたお願いです。

こちらでも試してみました。
使い方は問題なさそうです。期待した動作にならないのは srep 側の問題ですね。

自分でも生DOS以外では動かしたことがなかったような気がします。

LOGSORT の正式版、WILD、srep の 32bit化、何だか一気にいくつも宿題が出てきてしまいましたが、しばし時間を下さい。

【126】Re:srepについて
 文太  - 2008/10/10(金) 18:58 -

引用なし
パスワード
   Siさん

> 使い方は問題なさそうです。期待した動作にならないのは srep 側の問題ですね。

 そうですかぁ。(>_<) m(__)m 
 てっきり使い方がいけないのかと。因みに純Dosでもまったく同じように展開
(?)されているようでした。

> LOGSORT の正式版、WILD、srep の 32bit化、何だか一気にいくつも宿題が出てき
> てしまいましたが、しばし時間を下さい。

 どうぞ、どうぞ、ごゆっくり。一つずつ、一つずつ。

【129】Re:srepについて
 Si  - 2008/10/12(日) 18:01 -

引用なし
パスワード
   ▼文太さん:
>Siさん
>
>> 使い方は問題なさそうです。期待した動作にならないのは srep 側の問題ですね。
>
> そうですかぁ。(>_<) m(__)m 
> てっきり使い方がいけないのかと。因みに純Dosでもまったく同じように展開
>(?)されているようでした。

す、すみません。作者のくせに間違った動作説明をしていました。

SREP の動作の簡単な説明をしますと、

1.最初のコマンドの(stdout への)出力結果をテンポラリファイルに保存します。
  (テンポラリファイル名は毎回保存しなければ、_SREP0.$$$ です)
2.次に2番目のコマンドにはこのテンポラリファイル(のフルパス名)を渡します。

従って、

C:\>which debug |srep dir

を実行したときに、 dir に引数として渡されるのは、_SREP0.$$$ のフルパス名となります。

例えば、
dir /b /s *.pat | srep vzibmj

これは、

vzibmj C:\WINDOWS\Temp\_SREP0.$$$

と展開されます(テンポラリディレクトリが "C:\WINDOWS\Temp"の場合)。
(dir に /s オプションを付けているのはこれをやらないとフルパス名にならないので)

また、
dir /b /s *.pat | srep /@ vzibmj

とやると、

vzibmj @C:\WINDOWS\Temp\_SREP0.$$$

と展開され、_SREP0.$$$ をレスポンスファイルとみなしてそこに(フルパス名で)書かれたファイルを Vz で開きます。

ちなみに、ここで vzibmj.com を直接指定しているのは vz.bat だと何故かうまくいなかかった為です。

dir /b /s *.pat | srep vz.bat
コマンドまたはファイル名が違います.
*** 動作機種が違います(Illegal hardware).

こうなってしまいました。

ということで、正しい回答は、

「期待した動作にならないのは srep 側の仕様です。」

でございます。

# /b オプションの動作が何だか変なことに気付きました。とりあえずこのオプションは見なかったことにしておいて下さい ^^;

【130】Re:srepについて
 文太  - 2008/10/12(日) 23:01 -

引用なし
パスワード
   Siさん

> す、すみません。作者のくせに間違った動作説明をしていました。

 やっぱ。すいません、お手数をお掛けしました。最初そんな気がしたのですが、

C:\>which debug |srep dir

 が現実的な課題だったものですから。(発見はXPのdebug.exeは16ビット・
アプリだったということ、どうでもよい)

 すると、上の課題は、素直に

C:\>which debug
c:/windows/system32/debug.exe        ;これをVzでマニュアル取得

C:\>command.com /cdir c:/windows/system32/debug.exe
が駄目なので(やれやれ)

C:\>command.com /cdir c:\windows\system32\debug.exe    ;手で書き換え
                            (マクロ書くか?)
ドライブ C: のボリュームラベルはありません.
ボリュームシリアル番号は 5094-14F9
ディレクトリは C:\WINDOWS\SYSTEM32

DEBUG  EXE   23834 03-04-03  21:00
    1 個      23834 バイトのファイルがあります.
          933289472 バイトが使用可能です.

しかありませんかね。やれやれだなぁ。「\」と「/」が憎いなぁ、やっぱり。
こんなこと滅多にしないのでよいのですが、やってることがものすごく泥臭くて
惨めなものですから。

因みに、>command.com /cdirは、Vzでコンソールファイルを取るためです。

【131】Re:srepについて
 Si  - 2008/10/14(火) 0:31 -

引用なし
パスワード
   ▼文太さん:
>しかありませんかね。やれやれだなぁ。「\」と「/」が憎いなぁ、やっぱり。

which debug |sed s/\//\\/g

こんなのはどうでしょう?文太さんには釈迦に説法ですね ^^;
うーん、これでも dir コマンドにつながらない・・・

実は、which もどきと dir を合体させたバッチファイルも作ってみたのですが、Vz のコマンドラインからでは出力結果が得られませんでした(dir じゃなくて command /c dir で書きましたけど)。

【132】Re:srepについて
 文太  - 2008/10/14(火) 15:12 -

引用なし
パスワード
   Siさん

> which debug |sed s/\//\\/g
> こんなのはどうでしょう?文太さんには釈迦に説法ですね ^^;

 釈迦説でもないですが、同じソリューションを某所でも提案されました。
 ただ僕は別な場面でも同じ課題にあたったので、昨晩、マクロを書きました。

> うーん、これでも dir コマンドにつながらない・・・

 繋がりません。「c:/hog/foo.txt」を「c:\hog\foo.txt」に変換してPSに
入れるという手前までのマクロでした。で、dirを書き加えて実行。あるいはPF
に入れてタグジャンプ。

>  実は、 which もどきと dir を合体させたバッチファイルも作ってみたのです
> が、 Vz のコマンドラインからでは出力結果が得られませんでした(dir じゃな
> くて command /c dir で書きましたけど)。

 バッチで勝算がありましたでしょうか?
 えーと、XPでのコンソール・ファイルという意味でしょうか? でしたらVz
起動バッチで(autoexec.vzt <- autoexec.ntがオリジナル)、

vkeyc.com
vwx -z2 -l6144 -x1 -v3
pansi.com            ;★コレ
vz -z
cls

 とpansi.comを仕込むといけますよ。
ttp://hp.vector.co.jp/authors/VA003655/
 ですが。

 外れかな?

【133】Re:srepについて
 文太  - 2008/10/14(火) 15:17 -

引用なし
パスワード
    慌てて追記。

 「which もどき」が32ビット・アプリだとたぶん駄目です。16ビットなら
Vzでコンソール・ファイルの参照ができます。

【134】Re:srepについて
 Si  - 2008/10/15(水) 1:18 -

引用なし
パスワード
   ▼文太さん:
> 「which もどき」が32ビット・アプリだとたぶん駄目です。16ビットなら
>Vzでコンソール・ファイルの参照ができます。

あ、書き方が悪かったですね。
「which もどき」は単独のアプリではなくて、ひとつのバッチファイルで "which もどき + dir" を実現する、というものです。

実際のバッチファイルの中身は、

@echo off
for %%I in (%1 %1.com %1.exe %1.bat %1.cmd) do if exist %%~$path:I dir %%~$path:I

これだけです。dir のところは command /cdir に置き換えたりしてみて下さい。

ttp://www.atmarkit.co.jp/fwin2k/win2ktips/319which/which.html

↑ここのサイトを参考にしました。

>とpansi.comを仕込むといけますよ。

pansi.com(pansi.sys) は RCP32 についてのめざらさんとのやりとりの中で出てきたので、その時に一応ダウンロードはしてみました。
が、元々、DOS から Windows2000 まで PC-98x1 ユーザーだった自分には ansi.sys さえ何者なのか良く分からないレベルでして、pansi.com(pansi.sys) も結局落としたままになっています(これでめざらさんとのやりとりも中途半端になってしまったのですが)。

自分の使用環境では、普通に(と書くと語弊がありますが)使う分には素のコマンドプロンプトで問題ないのです(と勝手に思ってます)。

で、再び本題に戻ります。

あれこれ思いつくままに試していたのですが、UNIX-like tools(Ver 4.12f)を使ってみたら、

C:\>xeq dir `which -m -w grep`

ドライブ C: のボリュームラベルはありません.
ボリュームシリアル番号は XXXX-XXXX
ディレクトリは C:\BCB6\BIN

GREP   EXE  102400 02-03-08  6:00
    1 個     102400 バイトのファイルがあります.
         1014699520 バイトが使用可能です.

こんなんが出来ました。
Vz 環境では試してません(素のコマンドプロンプトです)。

【135】おお、できた!(xeq!)
 文太  - 2008/10/15(水) 22:56 -

引用なし
パスワード
   Siさん

 ありがとうございました。xeq (execute なのね)は濃すぎて、まだまだ解析
途上ですが、おもしろいですね。wild に似てるし、そのあたりの原理的なこと
が分かるようになれるみたいで楽しみです。「Dosのワイルドカードの制限っ
てそういうのなの。UNIX は、そうなってるんだ」という具合です。

C:\>xeq dir `which -m -w grep`

ドライブ C: のボリュームラベルはありません.
ボリュームシリアル番号は 5094-14F9
ディレクトリは C:\BIN

GREP   EXE   90959 94-06-02  18:50
    1 個      90959 バイトのファイルがあります.
          932444160 バイトが使用可能です.

C:\>xeq dir `which -m -w debug`

ドライブ C: のボリュームラベルはありません.
ボリュームシリアル番号は 5094-14F9
ディレクトリは C:\WINDOWS\SYSTEM32

DEBUG  EXE   23834 03-04-03  21:00
    1 個      23834 バイトのファイルがあります.
          932444160 バイトが使用可能です.

 For と pansi.com については、まぁまぁ、ということで。いやあ、which あ
るのに、「何でまた?」とすぐ思ってしまう。また、cmd の壁もあるので…。
 そうです、「ふつう」pansi.com は、XPでは必要とされないのです。笑い。
もっとも、Vz用の起動バッチ(アイコン)を作っておいても便利は便利かもし
れませんけれど。めざらさんのところに、親切な案内がありますけれど…。

ttp://homepage3.nifty.com/mezala/vz/env/win/winxp.html

【136】Re:おお、できた!(xeq!)
 文太  - 2008/10/16(木) 23:17 -

引用なし
パスワード
   xeq dir `which -m -w grep` ★

 ああ、「-m、-w」は which のオプションだったんですね。 構文的に当たり前
ですが、xeq のオプションが多すぎて、くらくらしてしまっていたのものですか
ら。

>     -m: パスの区切りを「/」でなく「\」で表示する(MS-DOS format)。

 なんてのがあるなんて。ウルウル。(やっぱ、あのマクロ、意味なかったか。
いえいえ、こんなオプション付けてくれるDos愛好家は、そうそういないので
す。)

 「-w」にも参りましたね。僕の場合(標準なはずですが−−デフォですよね−
−)、pathに入っていましたが。

 上の★は、xeqが特殊なのかと思ったら、

>  [4]「` `」によるコマンド出力の置換
 すごい! 知りませんでした。ありがとうございました。これは、ほんとすごい
や。m(_B_)m

>     ls -l `which -a sort`
>       sortという名前のコマンド全てをls -lする。
>     what `which jgawk`
>       jgawkコマンドに対しwhatを実行。
 なんてサンプルがありました。

 で、話がずれるのですが、この流れで、当然、wild.man (in unix-like tools)
を読んでみたわけです(難い、むずい)。

>       MS-DOS本来のワイルドカードでの「*」とは働きがかなり異なるので
>       注意せよ。DOS本来のワイルドカード解釈では「*」は、ファイル名
>       の本体および拡張子のそれぞれの中において、「*」以降の文字列照
>       合をしない、という意味を持っており(例えば「p*」は「pqr.c」に
>       はマッチしない)

 「MS-DOS 本来」っていっても色々ヴァージョンありますから、ということか
な、と思うのですが、XP、モバギ(dos 6.20 )とも「>dir p*」でマッチして
しまったのですが、実験がどこか間違っておりますでしょうか。 いえ、wild の
作者なら、きっと分かるだろうと…。そうかぁ、ワイルドカードの展開って、そ
う簡単なことじゃないんですね。今頃わかってる…。m(__)m

【137】Re:おお、できた!(xeq!)
 Si  - 2008/10/19(日) 23:29 -

引用なし
パスワード
   ▼文太さん:
>な、と思うのですが、XP、モバギ(dos 6.20 )とも「>dir p*」でマッチして
>しまったのですが、実験がどこか間違っておりますでしょうか。 いえ、wild の
>作者なら、きっと分かるだろうと…。そうかぁ、ワイルドカードの展開って、そ
>う簡単なことじゃないんですね。今頃わかってる…。m(__)m

確かに p* で pqr.c もマッチしてしまいますね。どういうことなのかは・・・
分かりません ^^;

DOS版の UNIX-like tools(Ver 4.12f) は LSI-C で作られているかと思うのですが、確かLSI-C(試食版)は引数でのワイルドカードの扱いがちょっと特殊だったような気がします。これに関連するのかもしれません。真相は分かりませんが。

>もっとも、Vz用の起動バッチ(アイコン)を作っておいても便利は便利かもし
>れませんけれど。めざらさんのところに、親切な案内がありますけれど…。
>
>ttp://homepage3.nifty.com/mezala/vz/env/win/winxp.html

ショートカットから command.com をダイレクトに起動してしまうのですねえ。うーん、こういう発想はなかったです。Windows で Vz使ってるみなさんは(それぞれカスタマイズされているでしょうが)こういう環境が基本なんでしょうね。この辺りに自分のところと「コマンドライン」で一括りに出来ないギャップがあるような気がします。

余談ですが、文太さんが133番のレスで書かれているのを見て自分が Vz から離れてしまった背景をようやく思い出しました。

コマンドプロンプトはソフト開発で利用する機会が多いのですが(なんて言って長い間サボりっぱなしでしたが)、そうです、Vz 環境では 32bitコンパイラの吐き出すメッセージをコンソールで参照出来ないのですね。で、結局テキストエディタも Win32 版のものを常用するようになってしまった訳で。勘違いがなければこんな背景だったかと。

【155】32ビットコンソール
 文太  - 2008/10/25(土) 11:02 -

引用なし
パスワード
   Siさん

 気になっていたのですが…。

> コマンドプロンプトはソフト開発で利用する機会が多いのですが(なんて言って
> 長い間サボりっぱなしでしたが)、そうです、Vz 環境では 32bit コンパイラの
> 吐き出すメッセージをコンソールで参照出来ないのですね。で、結局テキストエ
> ディタも Win32 版のものを常用するようになってしまった訳で。 勘違いがなけ
> ればこんな背景だったかと。

 32ビット環境でコンソールの参照を可能にするにはどすればよいのでしょう?
QXにその機能がありますか? 32ビットなエディタなら普通あるものなので
しょうか? やはりcmd.exeその他の出力をリダイレクトして使うのには限界があり、
別窓でコピペしてクリップボード送りにすれば、Vz16ビット窓に持ってこれる
は持ってこれる(そこまでVzにこだわる? こだわってしまいますm(__)m)と前
から考えてはいたのですが。お教えいただけますでしょうか。m(__)m

【158】Re:32ビットコンソール
 Si  - 2008/10/25(土) 23:56 -

引用なし
パスワード
   ▼文太さん:
> 32ビット環境でコンソールの参照を可能にするにはどすればよいのでしょう?
>QXにその機能がありますか? 32ビットなエディタなら普通あるものなので
> しょうか?(以下略)

はい。QXには外部コマンドを登録して実行する機能があり(これはQXに限らないか・・・)、そのコマンド登録の設定で、「DOS出力を取り込み」を有効にすると「最大16キロバイトの画面出力を取り込めます。」(QXのヘルプより)

なんですが、実は「この機能は Windows 95,98 上でのみ使用できます。」(同じくQXのヘルプより)です。 XP では「DOS出力を取り込み」にチェックを入れられないようになっています。

ここのところ諸般の理由でQX以外のエディタをもっぱら使っていますが、そちらにも外部ツールの標準出力、標準エラーのアウトプットを画面参照する機能は付いています。

いずれにしても Vz のようにコンソール参照だけでなく自前のコマンドライン機能を内蔵していてそこでコマンドを実行できる訳ではなく、あくまで参照するだけです。

で、XP上でのソフト開発はエディタとコマンドロンプトの両方のウィンドウを開いておいて、コマンドロンプト上で

make >err.txt

を実行。err.txt をエディタで開いてエラー箇所へのタグジャンプとかやってます。

タグジャンプだけなら出力結果を参照出来るだけで良いのですが、無事にコンパイル出来れば動作確認で .exe を実行してみたりしなければならないので結局コマンドロンプトを開いておく方が勝手が良いのです。
それなら Vz でも十分じゃない、とか突っ込まないで下さいね ^^;

なんだかあまり参考にならない話しですみません。

【159】Re:32ビットコンソール
 文太  - 2008/10/26(日) 0:23 -

引用なし
パスワード
   Siさん、毎晩のように夜遅くまでつき合ってくださり、感謝しています。

>  いずれにしても Vz のようにコンソール参照だけでなく自前のコマンドライン
> 機能を内蔵していてそこでコマンドを実行できる訳ではなく、あくまで参照する
> だけです。
>  で、 XP 上でのソフト開発はエディタとコマンドロンプトの両方のウィンドウ
> を開いておいて、コマンドロンプト上で
> make >err.txt

 そうですかぁ。いえ、たとえ参照できても、コンソールファイルとしてその複
数行をブロック的に取り込み、クリップボードに送らなければならないのだから、
きっとQXのマクロが書けなければ手間がかかりすぎることになるな、とその後
思っていたのです。

 で、リダイレクトが必要なら、きっと多くの場合、Vzでもリダイレクトし、
そのファイルにコマンド文字列を後から先頭に付加する、というマクロと同じで
すね(そういうマクロを作って使っているわけです)。

> それなら Vz でも十分じゃない、とか突っ込まないで下さいね ^^;

 つっこまないですよ。プロないしプロ級な方がWindowsに着いていきたいと考える
のはごくごく健康的な発想で、また、ここまでVzやcommand.comやDos窓、16ビ
ット・テキスト処理ツールにコミットするほうが、やはり不健全だよねとは思って
いますので、突っ込みません。それでも、これ、完全な趣味なんだから、いいんじゃ
ない、といつのまにか諦念してしまっている自分がいるのをみて、それを受け入れる
ことにした、というだけなのです。

> なんだかあまり参考にならない話しですみません。
               「し」を^取りましょう。名詞と動詞では送りがなが
               違うのです。m(__)m↓_
 すいません、逆に安心してしまいました。そうそううまい話はないし(Vzer的に)、
やっぱ、WindowsはWindowsじゃねーか、とか思ってしまってます。m(__)m

【141】Re:おお、できた!(xeq!)
 としき WEB  - 2008/10/20(月) 23:40 -

引用なし
パスワード
   >>(例えば「p*」は「pqr.c」にはマッチしない)

この記述は変ですねぇ。
もしかして、DOS version 1のころはそうだったのでしょうか。
私、DOS3.1以降のMS-DOSで、そのような挙動を示すバージョンは
寡聞にして知りません。

【144】ワイルドカードの展開規則
 文太  - 2008/10/21(火) 14:00 -

引用なし
パスワード
    basefilename.extention の「.」が区切りとして機能するのか、と問題を整理
したつもりです。
 で、 unix-like tools の新出さんが言う「MS-DOS 本来の」ワイルドカード展
開規則に沿っているのは、command.com でも cmd.exe でもなく、wild.com(16
ビット)であるとの結論を得ました。合ってますでしょうかねぇ? もちろん、
現代において(?)ですけれど。

 (「?」は考えてません。 使わないもの。また。拡張子ありとなしを現実的に
使い分ける=同じディレクトリに入れることもあまりないと思うのですけれど…。
少なくとも僕の場合には。)


 結論:XPの command.com と cmd.exe の振舞いは同じで、「*」に関するか
ぎり両者とも「.」を区切りとしては認識しないようです。


 見て分かると思いますが、C:\WORKディレクトリには、
AAA
AAA.TXT
 の2つのファイルが入っています。

---------------------------------------------------
C:\WORK>command.com /cdir *.*
AAA         3 08-10-21  13:48
AAA   TXT     7 08-10-21  13:48

C:\WORK>command.com /cdir *
AAA         3 08-10-21  13:48
AAA   TXT     7 08-10-21  13:48

C:\WORK>wild -D "sed \"n\"" *        #commandは何でもよい。
DEBUG MODE:sed "n" C:\WORK\AAA

C:\WORK>wild -D "sed \"n\"" *.*
DEBUG MODE:sed "n" C:\WORK\AAA
DEBUG MODE:sed "n" C:\WORK\AAA.TXT

C:\WORK>command.com /cdir A*
AAA         3 08-10-21  13:48
AAA   TXT     7 08-10-21  13:48

C:\WORK>command.com /cdir A*.*
AAA         3 08-10-21  13:48
AAA   TXT     7 08-10-21  13:48

C:\WORK>wild -D "sed \"n\"" A*
DEBUG MODE:sed "n" C:\WORK\AAA

C:\WORK>wild -D "sed \"n\"" A*.*
DEBUG MODE:sed "n" C:\WORK\AAA
DEBUG MODE:sed "n" C:\WORK\AAA.TXT
---------------------------------------------------

 ※拡張子なしファイルを僕はほとんど作らないし、作らないようにしているの
  ですが、wild の「正しい」振舞いには、いつかはまる可能性もあったので、
  実験しておいて(忘れなければ)、いちおうよかったかな、と思う。


 ※もしかして、「.」がディレクトリに入れるようになったあたりから、この
  あたりの仕様変更があったのかもしれません。確かVzが拡張子付きディレ
  クトリに対応したのも 1.5 以降だったような…。c.mos さんがぶつぶつ言
  っていた記憶があります…。関係ないかな???


 というわけで(泥沼だぁ〜)、思いついたら実験。 新たに「aaa.aaa」なるサ
ブディレクトリを作ってみた。(cmd.exe はここでは大小文字を無視? うーん、
えーと、えー???)

C:\WORK>command.com /cdir a*
AAA         3 08-10-21  13:48
AAA   AAA <DIR>   08-10-21  14:17
AAA   TXT     7 08-10-21  13:48

C:\WORK>command.com /cdir a*.*
AAA         3 08-10-21  13:48
AAA   AAA <DIR>   08-10-21  14:17
AAA   TXT     7 08-10-21  13:48

 cmd.exe, command.comに違いなし。


 何かがわかったのだろうか? wildの挙動は確認できましたけれど…。

                        トホホ・マン・文太

 (あまり意味のない)追伸:「*.*」ってのを最初にワイルドカードとして覚
えた記憶があり(MS-DOS3.3D時代)、で「*.*」と「*」に違いがある・あった
のだろうというところから出発しました。

【145】Re:ワイルドカードの展開規則
 文太  - 2008/10/21(火) 14:04 -

引用なし
パスワード
    32ビットじゃないのを知ったのですが…。

C:\WORK>wild32 -D "sed \"n\"" A*.*
cmdline = sed \n\ C:\WORK\AAA
cmdline = sed \n\ C:\WORK\AAA.TXT

C:\WORK>wild32 -D "sed \"n\"" A*
cmdline = sed \n\ C:\WORK\AAA

 LFN対応wild.exeもwild.comに同じ。

【149】Re:ワイルドカードの展開規則
 文太  - 2008/10/22(水) 11:01 -

引用なし
パスワード
    「*x*」という指定の仕方は cmd.exe 固有だったと思う。意味は、「ファイル
名の【どっかに】x を含むこと」だと思う。
 伝統的な command.com だと、「x*」なら「x」が生きるけど、「*x」では、
「*」によって「x」が殺されてしまい意味がなくなる、だったと思う。

 以下、例によってXP環境。

C:\XYZ>command.com /cdir *x*
ABC         0 08-10-18  16:31     #(1)「x」は死んでる
ABC   TXT     0 08-10-18  16:31     #(2)よってここで「x」がは
                        #生きてるように見えるかも
                        #しれないがそうではない
                        #だろう。
C:\XYZ>command.com /cdir *x*.*
ABC         0 08-10-18  16:31     #(3)間違いなく「x」は死ん
ABC   TXT     0 08-10-18  16:31     #でる。(4)もっと間違いなく
                        #「x」は死んでる

C:\XYZ>dir *x*                 #cmd.exe
2008 10 18 16:31         0 ABC.TXT   #(5)「x」が生きている
                        #ABCの方が出てこないから。
C:\XYZ>Wild -D "sed \"n\"" *x*
DEBUG MODE:sed "n" C:\XYZ\ABC          #えーと、これは読めません。
                        #いえ、読めました。
        #「*.*」と「*」の意味が違い、「.」が区切りとして機能する
        #場合、「*x*」は「*」の意味になり、「拡張子なしファイル」
        #=ベースファイルネームは何でもよい、となるのですね。
        #もちろん、「x」は死んでいる。

 結論:「*x*」で、cmd.exe と command.com と wild は【とても】違う。そも
そもそんな指定を許しているのは cmd だけで、それ以外は「.」の解釈が絡み、
錯綜する。ふつう使わないほうが混乱が少ないと思う。


 論理的読解で、辻褄を合わせるために「ずる」と抜け落ちがあるな、と実は思
っていますが、実用レベルではこんなところでどうでしょう? >誰か。

【151】Re:ワイルドカードの展開規則
 Si  - 2008/10/23(木) 1:21 -

引用なし
パスワード
   文太さんが熱心にやられているので簡単なファイル検索プログラムを書いてちょっと試してみました。

BC++5.02 で作成した 16bit 版の実行ファイルで XP上の "MS-DOSプロンプト"(CMD.EXE ではなく command.com を直接起動したもの)での実験結果では、
まさに、

>(例えば「p*」は「pqr.c」にはマッチしない)

が再現しました。

同じソースから作成した 32bit 版の実行ファイルではこのような挙動はなく、みなさんが書かれているような動作でした。

-----------------------

以下、既にご存じの部分もあるかも知れませんが・・・

1.Cコンパイラで作成した自作アプリの場合
コマンドライン引数に指定されたワイルドカードはそのままの文字列として実行ファイルに渡されます(註1)。
で、ワイルドカード(を含む文字列)を対象にした実際のファイル検索は、コンパイラ固有の関数(findfirst や _dos_findfirst)、あるいは WIN32API (FindFirstFile)を使って行われます。
ということは、引数に指定されたワイルドカードをアプリ側でどう扱うのか?はコンパイラ依存の部分もあるのではないと思うのです(きちんと検証した訳ではないのであくまで仮説です)。

(註1)LSI-C試食版の場合はちょっと違って、デフォルトの動作ではワイルドカードは展開された状態でアプリに渡されます。これを抑制するのには noexpand.obj をコンパイル時にリンクします。

2.OSの内部コマンド、付属外部コマンドの場合
おそらく 100% OSの仕様による、と言うところではないでしょうか(これもきちんと検証した訳ではありません)。

【153】Re:ワイルドカードの展開規則
 文太  - 2008/10/24(金) 15:48 -

引用なし
パスワード
   Siさん、m(__)m

>  文太さんが熱心にやられているので簡単なファイル検索プログラムを書いてち
> ょっと試してみました。

 わざわざどうもありがとうございます。m(__)m

> >(例えば「p*」は「pqr.c」にはマッチしない)
> が再現しました。

 Siさんが推測されているように「処理系」依存なのでしょうね。それでも、上は
MS-DOS環境では、それほど古いことでも珍しいことでもないようです(正直言って、
「.」を区切り文字と認識するwild.(com|exe)の仕様のほうが分かりやすいと思う。
とりわけLFNに個人的にやっかいになることが少ないと。とはいえ、a.b.c.dなん
てファイル名を許すとなると、過去との互換性はぐちゃぐちゃになるでしょうね。)

------------------------------------------------
C:\XYZ>Command.com /cType abc      #拡張子なしが(1)
aaa

C:\XYZ>Command.com /cType abc.txt    #拡張子ありが(2)
aa

#GNU sed version 1.18 + multi-byte extension 1.03
C:\XYZ>sed "s/a/b/g" *         #(1) matched
bbb

C:\XYZ>sed "s/a/b/g" *.*        #(1)(2) both matched
bbb
bb

#serow版
C:\XYZ>oldsed "s/a/b/g" *        #(1) matched
bbb

C:\XYZ>oldsed "s/a/b/g" *.*       #(1)(2) both matched
bbb
bb

C:\XYZ>Jgawk "{gsub(/a/,\"b\");print}" *    #(1) matched
bbb

C:\XYZ>Jgawk "{gsub(/a/,\"b\");print}" *.*   #(1)(2) both matched
bbb
bb

C:\XYZ>Jperl4 -pe "s/a/b/g" *      #(1) matched
bbb

C:\XYZ>Jperl4 -pe "s/a/b/g" *.*     #(1)(2) both matched
bbb
bb
------------------------------------------------

 なんだか当たり前のことを検証しているような気がしてきた…。
 あるいは、僕が問題を途中で間違った方向に引っぱってしまったか…。
 command.com and cmd.exe@XPが、MS-DOS的観点からすると、やっぱ特殊
なんではないでしょうかねぇ。
 そしてSiさんが教えてくれたように、32ビットなWindowsAPIの世界では、
cmd.exe的解釈が標準であると。
 となると、やはり2つの世界に引き裂かれているcommand.comが一番ぐちゃ
ぐちゃであると。違うかな。いや、一般化しなければ、command.com@XPは、
彼(女)自身とても大変そうであるばかりでなく、使うのも大変だ、と。

 一番最初に戻ると新出さんが言うことには、けっこう一般妥当性がありそうだ。
とはいえ、(まただ)モバなMS-DOS6, command.comがあったなぁ…。あいつも
相当ぐちゃぐちゃしてたなぁ…。

【154】Re:ワイルドカードの展開規則
 文太  - 2008/10/25(土) 0:19 -

引用なし
パスワード
    しつこいですね。すいません。とりわけSiさんとすれば、wildのことを除けば、
おそらくすごく興味がある話題でもないでしょうし。m(__)m

 ただ、ふと思いついてしまったのです。
 いえ、sed, awk, perlのDos日本語版移植はすべてserowさんがされているわ
けで、それらが違うほうが変だな、と。
 (もっともserowさんの影響を受けないでグレップの開発もなかったみたいで
はありますが…。)

 Dos環境ではワイルドカードの展開がそれぞれのツールにまかされていると
すると(これが最大のニュース)、もう、必要な場面で、逐一やるしかないので
すが、基準があると何が特殊か分かると思い、これだけはやっておこうと思った
グレップたちです。(command.comが「特殊」に分類されてしまったりする…。)
 どうやら、新出さんが正しいですね。ま、その後のことはともかく、思いっき
り間違ったことを書く人のわけはないですから。ワイルドも正しいです!

-------------------------------------------------
C:\XYZ>Command.com /cType abc
aaa

C:\XYZ>Command.com /cType abc.txt
aa

C:\XYZ>cgrep -t "aa" *        #wildcardさえマッチすれば両方
abc 1:aaa            #グレップされる検索パターン

C:\XYZ>cgrep -t "aa" *.*
abc 1:aaa
abc.txt 1:aa

C:\XYZ>ygrep -t "aa" *
abc    1:aaa

C:\XYZ>ygrep -t "aa" *.*
abc    1:aaa
abc.txt    1:aa

C:\XYZ>izgrep -t "aa" *
ABC 1:aaa

C:\XYZ>izgrep -t "aa" *.*
ABC 1:aaa
ABC.TXT 1:aa

C:\XYZ>grep "aa" *
aaa

C:\XYZ>grep "aa" *.*
ABC:aaa
ABC.TXT:aa

C:\XYZ>Command.com /cDir \bin\grep
GREP   EXE   90959 94-06-02  18:50

C:\XYZ>cgrepb "aa" *        #Bruce.さん版
aaa

C:\XYZ>cgrepb "aa" *.*
abc:aaa
abc.txt:aa

C:\XYZ>yagrep "aa" *        #32bit grep (by Bruce.さん)
ABC:aaa                #きっとWin APIがwildcard展開を担当
ABC.TXT:aa

C:\XYZ>yagrep "aa" *.*
ABC:aaa
ABC.TXT:aa
-------------------------------------------------

【156】Re:ワイルドカードの展開規則
 としき WEB  - 2008/10/25(土) 22:50 -

引用なし
パスワード
   いくつか。

> Dos環境ではワイルドカードの展開がそれぞれのツールにまかされていると

現実的には問題ないとは言え、実はこれは最大の問題だったりする。
ソースが公開されているフリーウェアの場合、ものによっては、複数の処理系に
対応していたりするわけです。さらに、それぞれの処理系用のmakefileまで同梱
されていたりして。
そういう場合、DOSの時代の国産ソフトだと、たいがいはMS-C(or Quick C)とTurbo C(or Borland C)とLSI C-86ですが、配布されている実行ファイルをそのま
ま使っているうちはいいけれど、手持ちの処理系でコンパイルしなおしたら挙動
が違う、なんて事はありそうな話。


もう一つ、#136であった話ですが。

> 注意せよ。DOS本来のワイルドカード解釈では「*」は、ファイル名
> の本体および拡張子のそれぞれの中において、「*」以降の文字列照
> 合をしない、という意味を持っており(例えば「p*」は「pqr.c」に
> はマッチしない)

前段については、DOSの仕様として明記されている話のようです。
以下、NEC版MS-DOS5.0Aユーザーズリファレンスマニュアルより引用。

> アスタリスク(*)は、ファイル名の名前と拡張子の中で、それ以降が“1文
> 字以上の任意の文字列”を表すワイルドカードです。

ところで、手元には、ASCII出版局の「標準MS-DOSハンドブック」があります。
序文によると、この本は、さらに古いDOS2.0を対象に書かれています。なにせ、
84年が初版です。この本では、単純に

> "*"は、任意の複数文字とマッチします。

としか書かれていません。
ただ、この本の後ろの方には、重要な記述がありました。

> "*"はユーザープログラムまたはシステムコールによって"?"に展開しなければ
> ならない

これらから、以下は推測。
仕様としては、「*」は「????????.」に展開されるべきであった。ところが、な
ぜかシステムコールでは「????????.???」に展開されてしまっている。


おまけ。
参考というか、検証すればすぐわかる事なんですが。
今回、文太さん、「*」というワイルドカードについて調べています。
が、「*.」というワイルドカード指定であれば、多分、もっと安定な結果が得ら
れるのではないかと思います。

【157】Re:ワイルドカードの展開規則
 文太  - 2008/10/25(土) 23:37 -

引用なし
パスワード
   としきさん

 正確なところのフォローありがとうございます。全体に納得のいく話でした。

>> Dos環境ではワイルドカードの展開がそれぞれのツールにまかされていると
>現実的には問題ないとは言え、実はこれは最大の問題だったりする。
>手持ちの処理系でコンパイルしなおしたら挙動
>が違う、なんて事はありそうな話。
 実際上は試しようもありませんが、十分あり得ますね、きっと。

> 「標準MS-DOSハンドブック」
 Dos3対応版を数日前から探しています。引っ越しで捨てたのかなぁ。ったく。

>> "*"はユーザープログラムまたはシステムコールによって"?"に展開しなければ
>> ならない
>これらから、以下は推測。
>仕様としては、「*」は「????????.」に展開されるべきであった。ところが、な
>ぜかシステムコールでは「????????.???」に展開されてしまっている。

 これはやる気があれば調べられるはずですが、 はい、「* は単純に ? 複数個
に展開されて処理されており」という記述は見ました。きっとそうでしょう。

> 今回、文太さん、「*」というワイルドカードについて調べています。
> が、「*.」というワイルドカード指定であれば、多分、もっと安定な結果が得ら
> れるのではないかと思います。

 はい、その後そう気づいておりました。「文太さん的にはこう考え・調べるべき」
アドバイスありがとうございます。Dosレベルで(昔から)「foo.」というファ
イル名が許されているので(さすがに、fooの存在するディレクトリで共存はできま
せんが)。ありがとうございました。m(__)m

【161】Re:ワイルドカードの展開規則
 文太  - 2008/10/27(月) 17:55 -

引用なし
パスワード
   としきさん

> おまけ。
> 参考というか、検証すればすぐわかる事なんですが。
> 今回、文太さん、「*」というワイルドカードについて調べています。
> が、「*.」というワイルドカード指定であれば、多分、もっと安定な結果が得ら
> れるのではないかと思います。

 「サービスだぞ」って、わざわざ教えてくれているのに反応がとろくてすいま
せん。「え? 不定ではないけど…」とか思ってたりして。あう、あう。はい、
「*」を「*.」にしましたところ、直観からずれると思われていた command.com,
cmd.exe, ssed, egsed, mbsed, onigsed, yagrep, gawk, mawk32, tosfind のす
べてにおいて「拡張子なし」のファイルだけにマッチさせられました。32ビッ
ト・ツールを使うときにはこれでいきます。っていっても、拡張子のないファイ
ルつくらないし、それだけを選んで処理するということは、現実的にはなさそう
ですけどね。
 ま、人生長いので、これから先どうなるかなんて分かりません。転ばぬ先の、
ですね。多謝。m(__)m

【152】Re:ワイルドカードの展開規則
 文太  - 2008/10/23(木) 16:44 -

引用なし
パスワード
   >  「*x*」という指定の仕方は cmd.exe 固有だったと思う。

 いちおう訂正。「cmd.exe 固有」というより、Windows95のLFNサポート時
からだそうです。また、これに絡み、いちおう以下を追記しておきます。LFNの
エイリアス(SFN)でも当たるから注意してね、という話。そのディレクトリ
環境によっては、「長いファイル名.txt」が「長いフ~1.txt」になったりすること
がありますが、この「1」もヒットするからね、ということ。そして、「~1」は
Windowsが勝手につけるのでなおさら注意とのこと。(出典:天野司『WindowsDos
プロンプトポケット・リファレンス』、同『WindowsXP/2000コマンドプロンプト
ポケット・リファレンス』)

・ツリー全体表示

【66】難しいのかもしれない要望です(logsortw)...
 文太  - 2008/09/19(金) 0:47 -

引用なし
パスワード
   Siさん

 Nifsortwに

Error! 発言ヘッダが不正です
Skip!

 と怒られています。このメッセージが出るとき、何行目で引っかかっているの
か出力して頂くわけにはいかないでしょうか。

 「何してるの? 」ものではありましょうが、ログ的なものに nifty 形式ヘッ
ダを入れると、情報管理が楽なわけなのです。BBSのログにしろどっかの過去
ログにせよ、nifty の形式にしておくと。
 それで、VzマクロやSedあるいはAwkスクリプトでヘッダ変換をしたり
しているわけなのです。が、「うーん、どこがいけないんだぁ〜」と泣くはめに
なっております。せめて何行目か教えて下さいよ、と LOGSORTW にお願いしたい
わけなのです。

 目では確認できないけれど、元データにマクロが異常動作するような、たとえ
ば「文字化け」のようなものが混入している可能性がきわめて高いと思っていま
す。実は先日、logsortw のソースを見てしまいました。nifty ログの場合には、
日付の行を読むのに「次行読み」をしているから…とかまでやったのです。その
ときはうまくいったのに…。

 どうせ行番号管理してますよねぇ…。sedだってしてるもん。

 「おじえてぐだざい、どこではじいているのか、おねがいじまず。logsort様」

文太

【72】Re:難しいのかもしれない要望です(logsort...
 Si  - 2008/09/21(日) 21:22 -

引用なし
パスワード
   あら?
投稿時にファイルをアップロードしたのですがうまく出来ていないようです。
と云うことで本サイトの方にアップしておきました。
直リンクを貼っておきます。

ttp://dmz.xrea.jp/dahlia/soft/lsrtw125-bunta.lzh

投稿制限の禁止語句に引っかかるので先頭の h は省いてあります。補完してください。

【74】Re:難しいのかもしれない要望です(logsort...
 文太  - 2008/09/22(月) 0:57 -

引用なし
パスワード
   Siさん、完璧です。m(__)m

c:\>type TEST.LOG
00043/99999 MIX00000 xxxxx      dummy title
( 4)  91/01/13 05:17 00041へのコメント

00056/99999 MIX00000 xxxxxxxx     dummy title
( 4)  91/00/-1 07:46 00051へのコメント

00060/99999 MIX00000 xxxxxxxxxxxxx  dummy title
( 4)  91/01/15 00:45 00031へのコメント

c:\>Nifsortw TEST.LOG
Reading: TEST.LOG
Error! 発言ヘッダが不正です
TEST.LOG (5)
Skip!


 どうしようかな、と随分ながいあいだ悩んでいたのですが(ちょっと大袈裟)、
結局、僕はBBSやメーリング・リストのログを、nifty のログ・ヘッダに書き
換えることで一元的に管理することにしました。けっこう色々なパターンがあっ
て、 sed を使い awk を使い、最後の仕上げ(大抵面倒な処理が残るので、それ
はカーソルを飛ばしながら細かな条件判断をする処理)はVzマクロで、ヘッダ
変換をしてくれるシステムを構築しました。

 それは、 どうログが重複していても、 順番がずたずたでも、 最後の最後は
logsort.exe が、その一番大変なところは面倒見てくれるから、という安心感の
ためだったのです。

 発言ヘッダはふつうシステムが付けるものなので、そこに不正であることは想
定されてないのは当然なのですが、上のような理由で、個人的に、ほんとうに助
かる仕様になりました。ありがとうございます。すごいですね、やっぱり。本物
のプログラマーは。 (プロというわけではないのかもしれませんが)Si さんツ
ールのお陰で、まだまだ Vzer! m(__)m


追伸:個人的にそういうのはその前の段階できちんとはじいてますので問題ない
のですが、意地悪して以下を通したら、通ってしまいました。細かくやろうとし
たらカレンダーを内蔵しなくちゃですからね。

00056/99999 MIX00000 xxxxxxxx     dummy title
( 4)  91/13/15 07:46 00051へのコメント        #

00056/99999 MIX00000 xxxxxxxx     dummy title
( 4)  91/13/35 07:46 00051へのコメント        #


追伸2: wild+batch は明日、試します。いえ、グレップといえども、たぶん大
抵パターンをスクリプトから与えることはできると思いますので、逃げる方法が
ないわけでもないだろうと思っています。 ただ、sed や awk でも、ワンライナ
ーがすぐ使えるようになると、やっぱり道具を思うように使えるようになったと
感じられるので、といった感じなのです。 やっぱり、wild に関して言えば、マ
クロがすごいです。$f, $x, $b, $d 秀逸!!!

【79】Re:難しいのかもしれない要望です(logsort...
 文太  - 2008/09/24(水) 1:27 -

引用なし
パスワード
   Siさん、

> 追伸:個人的にそういうのはその前の段階できちんとはじいてますので問題ない
> のですが、意地悪して以下を通したら、通ってしまいました。細かくやろうとし
> たらカレンダーを内蔵しなくちゃですからね。

 月は13以上ない。
 日は32以上ない。これで十分でしょう。もちろん、マイナスなんてあるはずな
いので。あれはマクロのバグです。でも怪我の巧妙で、タグジャンプできるlogsort
になりました。m(__)m

【81】Re:難しいのかもしれない要望です(logsort...
 Si  - 2008/09/25(木) 23:39 -

引用なし
パスワード
   ▼文太さん:
> 月は13以上ない。
> 日は32以上ない。これで十分でしょう。もちろん、マイナスなんてあるはずな

どうせやるなら閏年のチェックまで折り込みたいです。

で、ふと思ったのですが、文太さんのように現在も NIFTYのログ形式でテキスト管理されている場合は、年の表記はどのようにされているのでしょう?
LOGSORT(W) は2桁の年表記にしか対応していないので、
2008/09/25

08/09/25
でOKでしょうか?

>いので。あれはマクロのバグです。でも怪我の巧妙で、タグジャンプできるlogsort
>になりました。m(__)m

タグジャンプは狙っていれました ^^;
ただメッセージの吐き出し先をが標準エラー出力にしてあるので気になっていたのですが、標準出力に変えなくとも良さそうですね。

【83】Re:難しいのかもしれない要望です(logsort...
 文太  - 2008/09/26(金) 0:15 -

引用なし
パスワード
   Siさん、

 おお、やっていただけますか!? m(__)m

> どうせやるなら閏年のチェックまで折り込みたいです。
 そ、そこまで?

> で、ふと思ったのですが、文太さんのように現在も NIFTYのログ形式でテキスト管理
> されている場合は、年の表記はどのようにされているのでしょう?
> LOGSORT(W) は2桁の年表記にしか対応していないので、
> 2008/09/25
> ↓
> 08/09/25
> でOKでしょうか?

 OKだと個人的には思います。僕が持っているもっとも古いniftyのログが
(11)  91/01/05 21:34
 で、mixでさえ
( 1)  90/04/02 20:38
 ですので、2090何まで生きられるとは到底思えませんので、2桁希望です。
 実際、4ケタのBBSログを頭2つ取るという作業を、マクロ群は行っていま
す。 しなくていいなら、それに越したことはないのです。 というか、logsortw
にお世話になる段階では、2桁に丸められています。
 という事情ですので、4ケタ処理にするなら、オプションで2桁処理が可能に
してください。m(__)m
 (nifty, PC-VANの通信ログのソートですから、やっぱり2桁がデフォだと思う。)

> タグジャンプは狙っていれました ^^;
 当然です。さすが、Siさん。

> ただメッセージの吐き出し先をが標準エラー出力にしてあるので気になっていたの
> ですが、標準出力に変えなくとも良さそうですね。

 これ、オプションで選べる、というのは駄目でしょうか。
 Vzer にとっては(このツールにものすごくお世話になっているのは、『我々』
だろうと思っているのです)、logsort が 16bit だったら、command.com の制
御下にありますから、 コンソール・ファイルの参照ができるのです(shift+ESC
で、黄色のバーが上に出るやつです。覚えていますか?)。
 しかしながら、32bit もの(logsortw)が出す出力というのは、どうせVzか
らは「コンソール・ファイルの参照」ができないので、リダイレクトしてからタ
グ・ジャンプするしかないのです。なのですが、それが「>」か「2>」かというの
はけっこう調べるのが面倒だったりするのです。
 ま、ドキュメントに「標準エラー出力」か「標準出力」か明示されていれば、
困らないといえば困らないのですが(たしかに僕は、今回これを実験したような
記憶があります)。

 そうか、 すると、logsort(16 bit, dos 用)というのも、タグ・ジャンプが
可能になるなら、ver up してもらう価値があるのか。 いえ、これは我が侭でし
ょう。ログの整理を純ドスでやったりはしない。メモリーもディスクも潤沢な
XPでやる作業ですね。というわけで、

 「標準エラー出力」か「標準出力」か、決めてしまってください。m(__)m

【86】Re:難しいのかもしれない要望です(logsort...
 Si  - 2008/09/28(日) 11:02 -

引用なし
パスワード
   ▼文太さん:
> 「標準エラー出力」か「標準出力」か、決めてしまってください。m(__)m

では、標準出力に固定とします。それと年表記も2桁固定。

で、時分の方ですが、

0 ≦ 時 < 24
0 ≦ 分 < 60

で良かったでしょうか?

当時の生ログがないので自分で確認できないのがもどかしいのですが、深夜24時丁度は 24/00 ではなくて、 00/00 かどうか?ってことです。

メッセージ出力先の変更、日付・時刻のチェック、この2点はオプションで選択できるようにしようかなとも考えましたが、コマンドラインオプション解析の手順が増えるのも面倒なのですべて固定にします。

16bit版は、とりあえず気が向いたら、っことにしておいて下さい。
あ、32bit版ならすぐに公開出来ます、と云うことではないのでご了解下さい ^^;

【87】Re:難しいのかもしれない要望です(logsort...
 文太  - 2008/09/28(日) 13:09 -

引用なし
パスワード
   Siさん

 「24:00」でなく「00:00」でした。ygrepって、けっこう癖あるんですよね。

ygrep -@ "^[(]..[)]  [0-9][0-9]/[0-9][0-9]/[0-9][0-9] 24:00"
ygrep -@ "^[(]..[)]  [0-9][0-9]/[0-9][0-9]/[0-9][0-9] 00:00"
           (ここ、\d\d/\d\d/\d\dって書けるグレップを使うべきだった)
 で、
(11)  91/03/10 00:00
 と出ました。

> では、標準出力に固定とします。それと年表記も2桁固定。

 はい。真っ直ぐな仕様と感じます。m(__)m

> で、時分の方ですが、
> 0 ≦ 時 < 24
> 0 ≦ 分 < 60
> で良かったでしょうか?

 はい、これでよいと思います。(^^)v

> 当時の生ログがないので自分で確認できないのがもどかしいのですが、

 いっぱい持っておりますので、どうぞいつでもお申し付けください。

> メッセージ出力先の変更、日付・時刻のチェック、この2点は(中略)
> すべて固定にします。

 選べなくいいですよ、ほんとに。ありがとうございます。

> あ、32bit版ならすぐに公開出来ます、と云うことではないのでご了解下さい ^^;

 了解です。m(__)m

【90】LOGSORTW ver1.25.1
 Si  - 2008/09/30(火) 1:17 -

引用なし
パスワード
   文太さん、色々情報・アドバイスありがとうございました。

とりあえずアップしておきます。
あまり動作確認してません ^^;

ttp://dmz.xrea.jp/dahlia/soft/lsrtw1251-bunta.lzh

いつものように投稿制限の禁止語句に引っかかるので先頭の h は省いてあります。補完してください。

【93】Re:LOGSORTW ver1.25.1
 文太  - 2008/09/30(火) 16:56 -

引用なし
パスワード
    僕は実験に失敗してますでしょうか。すぐ他人を疑うのはよくない癖なのですが、
上げるファイルを間違われましたか。じゃないと、あれ、あれ、あれ???
タイムスタンプは合っているみたいですよねぇ。

C:\test>Nifsortw TEST.LOG
Reading: TEST.LOG
Skip!                #これだけじゃ冷たい…。

C:\test>logsortw -N test.log    #renameして元に戻してみた
Reading: TEST.LOG
Skip!                #お、同じだ…。

NIFSORTW EXE   73728 08-09-30  1:25

 ですが。m(__)m

【94】Re:LOGSORTW ver1.25.1
 文太  - 2008/09/30(火) 17:01 -

引用なし
パスワード
    連続発言を連続していてすいません。
 これで試してみました。

00002/00002 xxx00000 文太       dummy title 
( 1)  04/09/30 01:20

00002/00002 xxx00000 文太       dummy title 
( 1)  04/09/30 25:20

 25時20分はないだろう。

【95】Re:LOGSORTW ver1.25.1
 Si  - 2008/09/30(火) 23:56 -

引用なし
パスワード
   ▼文太さん:
>00002/00002 xxx00000 文太       dummy title

xxx00000 を XXX00000 に変更して一度実行してみてください。
NIFTY の ID の英字部分は、会議室のログでは大文字表記しかなかったはずで。
自分でも、こんな細かなとこまでチェックしていたのかなあ、って感じです。

今度は正常に(?)エラーチェックがかかるはずです。
ただし、

>( 1)  04/09/30 25:20

ではなく、まさかの

>( 1)  04/09/30 01:20

でエラーになります。
これもこのダミーログに問題があるのですが、文太さんならテキストを開けばすぐに気付くと思いますのでひとまず対処方法は伏せておきます ^^;

別件。
NIFTYログ形式のテキストデータですが、めざらさんのところの掲示板の過去ログがNIFTYログ形式に加工されて公開されているのを思い出しました。
ありがたく頂いてきました。

【96】Re:LOGSORTW ver1.25.1
 konno WEB  - 2008/10/01(水) 0:12 -

引用なし
パスワード
   ▼Siさん:はじめまして、konnoといいます。
いつもLOGSORTにはたいへんお世話になっています。ありがとうございます。
今回、LOGSORTW ver1.25でエラー行が表示されるようになり、助かりました。

ところで、「複数の会議室ログが含まれているようです」というエラーだと
行番号が出ないようです。LOGSORTW ver1.25.1 でも同じようです。
これにも対応していただけるとありがたいのですが。
よろしくお願いします。m(__)m

【98】Re:LOGSORTW ver1.25.1
 Si  - 2008/10/01(水) 0:20 -

引用なし
パスワード
   ▼konnoさん:
>▼Siさん:はじめまして、konnoといいます。

どうもです。はじめまして、ではないような気もするのですが ^^;

>ところで、「複数の会議室ログが含まれているようです」というエラーだと
>行番号が出ないようです。LOGSORTW ver1.25.1 でも同じようです。

報告ありがとうございます。確認してこちらも行番号を出力するように考えます。

きょうはもう眠いので・・・この辺で失礼します。

【99】Re:LOGSORTW ver1.25.1
 文太  - 2008/10/01(水) 13:08 -

引用なし
パスワード
    色んな要望がでてきてしまいましたね。 需要があるからなんです。みんな Si
ツール頼みのネットワーク生活。感謝。m(__)m

 「xxx00000 文太」の小文字アルファベットは不注意で失礼しました。 そうで
す、「次行を読め」ってソースにありましたから、まずこの行をチェックしてい
るはずでした。で、ついでと言っては失礼なのですが、ここもエラーメッセージ
で行数を教えてくれるようにしていただけないでしょうか。一度間違えたという
ことは2度目がありそうですので。

 以下、変な書き方ですが、出力はそれぞれのファイルの中身です。最初、びっ
くりした。標準出力と標準エラー出力を分けたわけですね。


C:\TEST>Nifsortw TEST.LOG >kek

Error! 日付・時刻表記が不正です
TEST.LOG(5): ( 1)  04/09/30 25:20^M (■0Dhが出ます。再現しませんでしょうか?)

C:\TEST>Nifsortw TEST.LOG 2>kek2

Reading: TEST.LOG
Skip!


■の箇所ですが、コンソールは、

C:\TEST>Nifsortw TEST.LOG
Reading: TEST.LOG
Error! 日付・時刻表記が不正です
TEST.LOG(5): ( 1)  04/09/30 25:20

Skip!

 となっています。「Skip!」の前の空行が「^M」の影響なのかもしれないと
思いました。
 このコンソールファイルはVzで取り込めないので、リダイレクトしてタグ・
ジャンプするしかないのですけれど。


> ではなく、まさかの
> >( 1)  04/09/30 01:20
> でエラーになります。
> これもこのダミーログに問題があるのですが、文太さんならテキストを開けばす
> ぐに気付くと思いますのでひとまず対処方法は伏せておきます ^^;
 これ、エラーが出なくなりました(^^; ま、出たときにでも…。

【100】LOGSORTW ver1.25.2
 Si  - 2008/10/02(木) 1:37 -

引用なし
パスワード
   ▼文太さん:
>るはずでした。で、ついでと言っては失礼なのですが、ここもエラーメッセージ
>で行数を教えてくれるようにしていただけないでしょうか。一度間違えたという
>ことは2度目がありそうですので。

これはちょっと無理なんです。最初に正規表現を使ってメッセージヘッダを探し出すのですが、ファイルの終わりまで読み込んでもマッチする行がみつからなかった、と云うことですので。

つまり、「xxx00000 文太」の小文字アルファベットはその行がそもそもヘッダとして認識されないので、それ自体はエラーチェックもかからず、単に無視されるだけ。だからエラーメッセージで行数を教えたくても出来ないのです。

たぶん、釈然としないと思いますが、そういうことなんでご理解下さい。

>TEST.LOG(5): ( 1)  04/09/30 25:20^M (■0Dhが出ます。再現しませんでしょうか?)

ばっちり再現しました。エラー行番号だけでなく、その行の内容も出力した方が便利かと思い追加したのが裏目に出てしまいました。

原因はだいたい分かったのですが、ここはきちんと確認した上でアップしたいと思います。
で、あまりにも安易な対処で申し訳ないのですが、取り急ぎエラー行の内容出力をしないようにしました。

ということで v.1.25.2 です。

ttp://dmz.xrea.jp/dahlia/soft/lsrtw1252-bunta.lzh

>> ではなく、まさかの
>> >( 1)  04/09/30 01:20
>> でエラーになります。
>> これもこのダミーログに問題があるのですが、文太さんならテキストを開けばす
>> ぐに気付くと思いますのでひとまず対処方法は伏せておきます ^^;
> これ、エラーが出なくなりました(^^; ま、出たときにでも…。

あら?エラー出ないですか?
文太さんが書き込まれたダミーログをそのままコピペして動作確認したのですが、

>00002/00002 xxx00000 文太       dummy title 
>( 1)  04/09/30 01:20
>
>00002/00002 xxx00000 文太       dummy title 
>( 1)  04/09/30 25:20

これは、テキストエディタでよく見ると、ヘッダ行の中に全角空白文字が混ざっています。

>00002/00002 xxx00000□文太□□□□□□ dummy title□
>( 1)□ 04/09/30 01:20
>
>00002/00002 xxx00000□文太□□□□□□ dummy title□
>( 1)□ 04/09/30 25:20

この□の部分です。ひとつめのヘッダ行は ID のところまでしか見ていないので影響ないのですが、その次の日付・時刻のある行は1行の文字列全部を正規表現でチェックしますので全角空白があると LOGSORT ではエラーと判定します(実際の NIFTY のログでは半角スペースになっているはずなので)。

最後に、

> 以下、変な書き方ですが、出力はそれぞれのファイルの中身です。最初、びっ
>くりした。標準出力と標準エラー出力を分けたわけですね。

元々、LOGSORT では基本的にメッセージはすべて標準エラー出力に吐き出すようになっていました(たぶん・・・)。

で、今回文太さんのご要望もあり一部標準出力へ変更したのですが、リダイレクトしてもあまり意味のないようなメッセージは出力先を変えていないのです。
もしすべて標準出力へ統一する方が便利であれば考えます。

【101】Re:LOGSORTW ver1.25.1
 Si  - 2008/10/02(木) 1:42 -

引用なし
パスワード
   konno さんのご要望、v 1.25.2 で対応させてみました(一部後退しましたが ^^;)。

ダウンロード先の URL は文太さん宛のレスを参照してください。
何か気の付いたことがあれば気軽にどうぞ。

ということでよろしくお願いします。

【102】Re:LOGSORTW ver1.25.2
 文太  - 2008/10/02(木) 12:49 -

引用なし
パスワード
   Siさん

(niftyヘッダ1行目エラーに関して)
> これはちょっと無理なんです。

 了解です。たしかに「釈然」としませんでしたが、僕が思っているのより複雑
な処理になっているのだとは想像できました。検討ありがとうございました。
m(__)m

> > (■0Dhが出ます。再現しませんでしょうか?)
> ばっちり再現しました。

 欲張ったりすると裏目に出たりしますよね…。って知ったかぶりぶりですね、
すいません。

> ttp://dmz.xrea.jp/dahlia/soft/lsrtw1252-bunta.lzh

 落としました。 非在時刻のテストの結果は良好です。 ゴミも消えています。
「どこが駄目情報」も消えてしまってはいますが。=これは今回の仕様どおり。

> あら?エラー出ないですか?
> 文太さんが書き込まれたダミーログをそのままコピペして動作確認したのですが、
>00002/00002 xxx00000□文太□□□□□□ dummy title□
>( 1)□ 04/09/30 01:20

 わお、と思ったのですが、(間違っているかもしれませんけれど)、これ、掲
示板の「等幅」指定のゆえ、ということはないでしょうか。そんな置換をした覚
えがないのと、手元のtest.logには□がなかったのですよ。確かに掲示板の書き
込みにはばっちり入っているのですが…。
(えい、テストしてしまおう            )
カッコの最後に半角とタブを入れた。


 忘れるところだった:出力は今のままがいいです。同時に出しつつ2つに分け
るツールを見たことがなかったから、 というところですが、>で出るのはタグ・
ジャンプ情報だけで十分。無駄のない仕様!

【103】Re:LOGSORTW ver1.25.2
 文太  - 2008/10/02(木) 12:51 -

引用なし
パスワード
   > (えい、テストしてしまおう            )
> カッコの最後に半角とタブを入れた。

 はい、掲示板の「等幅」指定が原因でした。

【104】Re:LOGSORTW ver1.25.1
 konno WEB  - 2008/10/03(金) 0:17 -

引用なし
パスワード
   Siさん

>どうもです。はじめまして、ではないような気もするのですが ^^;

う、私もそんな気もしてたんですが、記憶があいまいで・・・(^^;

>報告ありがとうございます。確認してこちらも行番号を出力するように考えます。

対応頂き、ありがとうございます。さきほどいただきました。m(__)m

【105】Re:LOGSORTW ver1.25.2
 Si  - 2008/10/03(金) 0:30 -

引用なし
パスワード
   ▼文太さん:
> 了解です。たしかに「釈然」としませんでしたが、僕が思っているのより複雑
>な処理になっているのだとは想像できました。検討ありがとうございました。

了解頂いてありがとうございました。

>(えい、テストしてしまおう            )
>カッコの最後に半角とタブを入れた。

テキスト処理のベテランである文太さんにしては全角空白をサンプルログのヘッダ部分にいれるのは変だなぁ、とは思っていたのですが、ここの掲示板CGIの問題だったのですね。これは大変失礼致しました。

まだ、良く理解できていないのですが、「等幅」投稿の場合半角空白が連続すると全角空白文字に置き換えられてしまう、ってことですかね?

自分でもちょっと試してみます。

(    )←半角カッコ内は半角スペース8個

さて、どうなるか・・・

> 忘れるところだった:出力は今のままがいいです。同時に出しつつ2つに分け
>るツールを見たことがなかったから、 というところですが、>で出るのはタグ・
>ジャンプ情報だけで十分。無駄のない仕様!

良かったです。では以降のバージョンもこの方向で。

【106】Re:LOGSORTW ver1.25.2
 Si  - 2008/10/03(金) 0:37 -

引用なし
パスワード
   ▼Siさん:
>(    )←半角カッコ内は半角スペース8個
>
>さて、どうなるか・・・

あら、確かに全角空白に置き換わりますね ^^;

(□□□□)←半角カッコ内は半角スペース8個

うーん、普通の書き込みなら影響ないですが、今回のようなサンプルテキスト投稿時は「等幅」は駄目ですね。一般的にこういうものなのでしょうか・・・

CGI をいじれる知識もなにもないので、これはここの掲示板の仕様ということで勘弁して下さい。

【107】Re:LOGSORTW ver1.25.2
 konno WEB  - 2008/10/03(金) 0:37 -

引用なし
パスワード
   Siさん

>konno さんのご要望、v 1.25.2 で対応させてみました(一部後退しましたが ^^;)。

早速使わせていただきました。完璧です。これでさらに便利になりました。
ありがとうございました。m(__)m

>何か気の付いたことがあれば気軽にどうぞ。

うちの掲示板CGIで出力される擬似niftyログ形式でもキチンとソートできました。
これはとてもありがたいです。

1点だけ、うちの掲示板は現在3千発言を超えているので、ログを一つに纏めると
エラーになってしまいます。3000以上の記事数に対応するのは難しいでしょうか。
あ、いや、いまのままでも充分なのですが、もしも気がむかれたなら。m(__)m

【108】Re:LOGSORTW ver1.25.2
 Si  - 2008/10/03(金) 0:56 -

引用なし
パスワード
   ▼konnoさん:
>早速使わせていただきました。完璧です。これでさらに便利になりました。
>ありがとうございました。m(__)m

そう言って頂けると作る側としても励みになります。

>1点だけ、うちの掲示板は現在3千発言を超えているので、ログを一つに纏めると
>エラーになってしまいます。3000以上の記事数に対応するのは難しいでしょうか。
>あ、いや、いまのままでも充分なのですが、もしも気がむかれたなら。m(__)m

確かに上限は 3000 に設定しています。この上限値は DOS版と同じにしているのですが、 制限のあるDOS(確か 32KB だったかな) と違って Windows 上だとプログラム上からもかなりのメモリが使えたかと思いますし、上限値 を変えるのはコードを1行書き換えるだけなのでほとんど手間もかからないです。

ただし、増やした上限値できちんと動作するのか?という不安もありますので、あくまでテスト版として試して頂けるなら用意出来ます。

とりあえずどのくらいあれば良いですか?

【109】Re:LOGSORTW ver1.25.2
 konno WEB  - 2008/10/03(金) 23:50 -

引用なし
パスワード
   ▼Siさん:
>ただし、増やした上限値できちんと動作するのか?という不安もありますので、あくまでテスト版として試して頂けるなら用意出来ます。

おお、うれしいです。DOS窓でどこまで動作できるか分かりませんが、
やってみたいと思います。

>とりあえずどのくらいあれば良いですか?

3千発言で役3メガほどになるので、ファイルサイズにも限界があるかと
思いますが、どうせなら1万発言程度までできたらうれしいです。
うちの掲示板があと10年続いたとしてもそこまではいかないと思います
ので。(^^;

【110】Re:LOGSORTW ver1.25.2
 文太  - 2008/10/04(土) 10:46 -

引用なし
パスワード
   Siさん

(niftyヘッダ一行目のエラー処理について)
> 了解頂いてありがとうございました。

 いえいえ、僕の了解なんて。それでも、konno さんまで要望を出されて、過去
ログ・コレクターとしてはうれし涙ものです。

> テキスト処理のベテランである文太さんにしては全角空白をサンプルログの
> ヘッダ部分にいれるのは変だなぁ、とは思っていたのですが、

 いえいえ2。残念なことに、しょっちゅうやってるんですよ。あああ、やば、
バグ・レポートがバグってどうする! みたいに。

>  まだ、良く理解できていないのですが、「等幅」投稿の場合半角空白が連続する
> と全角空白文字に置き換えられてしまう、ってことですかね?

 ですね。タブもですが。ま、プログラム(ないしプログラムに食べてもらうデータ)
を投稿するときには、「等幅」は避けること、ってとこでしょうね。
 掲示板管理者の皆さまは苦労されているようです。m(__)m

(出力が2方向のstdout, stderrに分かれている件)
> 良かったです。では以降のバージョンもこの方向で。

 はい。すばらしい仕様です。m(__)m

【111】LOGSORTW ver1.25.3
 Si  - 2008/10/05(日) 0:50 -

引用なし
パスワード
   ▼konnoさん:
>3千発言で役3メガほどになるので、ファイルサイズにも限界があるかと
>思いますが、どうせなら1万発言程度までできたらうれしいです。

ttp://dmz.xrea.jp/dahlia/soft/lsrtw1253-konno.lzh

メッセージ数上限を 3,000 → 10,000 に拡大してみました。
それ以外は v1.25.2 のままです。
ちなみに、ファイル全体を一度に読み込むわけではないのでファイルサイズ自体はあまり影響ないです。

>うちの掲示板があと10年続いたとしてもそこまではいかないと思います
>ので。(^^;

10年先に Windows があるかどうか ^^;

【112】Re:LOGSORTW ver1.25.2
 Si  - 2008/10/05(日) 1:09 -

引用なし
パスワード
   ▼文太さん:
>(出力が2方向のstdout, stderrに分かれている件)
>> 良かったです。では以降のバージョンもこの方向で。
>
> はい。すばらしい仕様です。m(__)m

こう云う出力方法をするコマンドラインツールってあまりないのかな?変態仕様 ^^;

^M のゴミ対策も目途が立ちましたのでそろそろ正式公開の方向に進もうかと思っています。

いま自分で気になっているのはログファイルの最後が改行なしで終わっているケースの対応です。

あいうえお[EOF]

こんなケースです。LOGSORT でソートをかけるとこの行は削除されます。
確か、air craft の分割ログの最後にこう云うパターンが出力されることがあるのですが、意味のない行なので出力しないような仕様になっています。

テキストデータをNIFTYログ形式に加工して活用されているみなさんが、最終行にちゃんと改行を入れてくれれば問題ないのですが、念のためチェックするルーチンを入れた方が良いかどうか思案してます。

文太さんや konno さんのおかげで久々のバージョンアップとなりそうですが、何かご希望とかあればいまのうちにどうぞ。あまり難題だったら次々バージョンに回しますが ^^;

【113】Re:LOGSORTW ver1.25.2
 文太  - 2008/10/05(日) 15:29 -

引用なし
パスワード
   Siさん

>(出力が2方向のstdout, stderrに分かれている件、再び)
> こう云う出力方法をするコマンドラインツールってあまりないのかな?変態仕様 ^^;

 変態なことはないですよ。 よく考えてみれば(ちょっと調べたのですが)、
「たとえばパイプで、エラーメッセージが次への入力にならないように」 という
stderr の原理に則った正しい使い方ですよね。

>  ^M のゴミ対策も目途が立ちましたのでそろそろ正式公開の方向に進もうかと

 いいですね。

> いま自分で気になっているのはログファイルの最後が改行なしで終わっている
> ケースの対応です。

 いちおうフィルターは勝手に入力を破棄したりしてはいけませんので、許して
やってそのまま出力のほうが理想でしょう。同じようなのがsedのNコマンドにあ
ったりします。昔のsedは、最終行でNができない(次行のパターンスペースへの
追加)状況下だと、すでにあるパターンスペースを破棄する仕様でした。なので
「$!N」 (最終行でなければN)というのが慣用句でしたが、「あの、Nコマン
ドの仕様変えませんか? 」と誰かが言い出し、GNU sedでは、そうなってます。
最終行処理がスクリプト上まずくても、とりあえずパターンスペースを吐き出す
仕様、というわけです。


 で、その問題がうちで起こるかは、下のように調べました。

C:\TK\VZLOG\DC>Wild -D -R "tail -1 $f >>c:\kek" *.log
<< 環境変数対応 Wildcard 展開プログラム Ver.1.34 >>
          Copyright (c) 1996-98 by namazu & Si
DEBUG MODE:tail -1 C:\TK\VZLOG\DC\01\DC01~012.LOG >>c:\kek
DEBUG MODE:tail -1 C:\TK\VZLOG\DC\02\DC02_968.LOG >>c:\kek
DEBUG MODE:tail -1 C:\TK\VZLOG\DC\02\DC02_981.LOG >>c:\kek
(以下50行続く)

 これがうまくいってる瞬間といったらシアワセの一言。 「tail -1」で最終行
出力です。 普通にワイルドカード使うと、(別件ですが)昔のsedと同じく、全
部の入力ファイルの最後だけを出力してしまうので意味をなさない(各ファイル
の末尾がみたいので) 。 で、ディレクトリ再帰つきワイルドカードの展開!!
機械が書いてくれるバッチファイル!! ワイルドくん、き、君はエライ! 最高!

 ああ、気持ちよかった。
 で、結論:エアクラを使った時期もあったのですが、僕の手元のログには

あいうえお[EOF]

 はなかったですね(なんやねん)。ま、これは行儀の悪いファイル管理ですから。
(^^;ゞ

> テキストデータを NIFTY ログ形式に加工して活用されているみなさんが、最終
> 行にちゃんと改行を入れてくれれば問題ないのですが、念のためチェックするル
> ーチンを入れた方が良いかどうか思案してます。

 「念のために」入れられるものなら。少なくとも捨てないで m(__)m

>  文太さんや konno さんのおかげで久々のバージョンアップとなりそうですが、
> 何かご希望とかあればいまのうちにどうぞ。

 複数会議室のログも試しました。 完璧でした。今のところ、logsortwはすでに
完成されているように見えてます。m(__)m

【114】Re:LOGSORTW ver1.25.2
 Si  - 2008/10/06(月) 0:04 -

引用なし
パスワード
   ▼文太さん:
> いちおうフィルターは勝手に入力を破棄したりしてはいけませんので、許して
>やってそのまま出力のほうが理想でしょう。(以下略)

基本はその通りなのですが、いろいろ事情がありまして・・・

まず、例えが悪かったですね。
実際は、TTY でのNIFTY のプロンプト文字列で、例えば、

CCS(N)>[EOF]

このようなものが air craft の分割ログの最後に出力されることがあります(ました)。メッセージ本体とは関係のないいわばゴミデータなので、LOGSORT ではソート後の出力時にカットするような仕様になっているのです。

それともうひとつ。エディタのマクロなり、テキストを扱うツールなどで作られた NIFTY形式のテキストデータでも、最終行が改行なしで終わっているケースがあったとして、これをそのまま出力するとなるとおかしなことになってしまいます。

上の方であげられている文太さんのサンプルを少し変えて下のようログがあった場合、

00002/00002 XXX00000 文太       dummy title[CRLF] 
( 1)  04/09/30 01:20[CRLF]
[CRLF]
00001/00002 XXX00000 文太       dummy title[CRLF] 
( 1)  04/09/30 25:20[EOF]

後のメッセージの方が番号が若いですから、「そのまま出力」する仕様で LOGSORT でソートをかけると、

00001/00002 XXX00000 文太       dummy title[CRLF] 
( 1)  04/09/30 25:2000002/00002 XXX00000 文太       dummy title[CRLF] 
( 1)  04/09/30 01:20[CRLF]
[CRLF]

たぶんこんな風になってしまいます。これやっちゃうとログがまずいことになってしまいますよね?こうなる理由は LOGSORT では勝手に(元データに存在しない)改行コードを出力しないからです。

と云うことで、

> 「念のために」入れられるものなら。少なくとも捨てないで m(__)m

捨てたいです ^^;

やるとしたら、ひとつひとつのメッセージ本体を出力する度に、最後に改行コードが存在するかどうか判定するルーチンを追加して、なければ改行コードをアプリ側で追加出力してやる。と云う処理が必要となります。

効率悪そうなので、あまりこれはやりたくないです。

いま考えているのは、前処理としてファイルの終端を見に行って、そこが改行無しで終わっている場合に、その旨のエラーメッセージを表示して終了させる、って方向です。

> 複数会議室のログも試しました。 完璧でした。今のところ、logsortwはすでに
>完成されているように見えてます。m(__)m

ありがとうございます。

【115】Re:LOGSORTW ver1.25.2
 文太  - 2008/10/06(月) 0:20 -

引用なし
パスワード
   Siさん

> > 「念のために」入れられるものなら。少なくとも捨てないで m(__)m
> 捨てたいです ^^;

 なるほど、なるほど、プログラムする側としては悩むわけですね。分かります
よ、僕でも。捨てましょう!

 ヘッダが2行でそのあと本文が続くというパソ通なログに固有な問題なのです
ね。誰かが何か言うかもしれませんが、僕はマクロの側でそういう状況が発生し
ないようにコーディングしておきます。細かいところまでお教えいただきありが
とうございました。そんな状況が発生しないようにするのは、「それをしておか
なくてないけない」とちゃんとインプットされていれば、訳ないことなのです。
あくまで個人的なレベルでは、ということですが。
 (手元のログではないことなのも確認済みだし…。)

 了解でーす。m(__)m


 けっこう疲れてますよね、お互い。ここまでSiさんがつき合ってくれるとは思
ってなかった。実はけっこうヘロヘロ。明日から(今日からですが)、新しい週
の始まり! ゆっくりでいいですからね。変なバグ・レポートもかつて入ってい
たわけですから。

【116】Re:LOGSORTW ver1.25.3
 konno WEB  - 2008/10/06(月) 1:17 -

引用なし
パスワード
   ▼Siさん:
>メッセージ数上限を 3,000 → 10,000 に拡大してみました。
>それ以外は v1.25.2 のままです。

いただきました。3280発言、3.2メガの処理もあっという間に終わりました。
テストのためにこのファイルを2回コピーして9840発言、9.6メガでもやって
みましたが、ほんの数秒で正常に終わりました。これはいい!! わがまま
を聞いてくださって本当にありがとうございました。m(__)m

>ちなみに、ファイル全体を一度に読み込むわけではないのでファイルサイズ自体はあまり影響ないです。

DOS窓での処理なのでこの辺が心配だったんですが、そうだったんですか。安心
しました。

>10年先に Windows があるかどうか ^^;

計算上は10年後に12000件という話もあるようですが、私の予想では5年後には
VZの話題がほぼ無くなると思ってますので、掲示板が残っていたとしても、
10000件はいかないだろうと。
OSは変わる可能性大ですが、一応10年先まではサイトを維持したいですね。

【117】Re:LOGSORTW ver1.25.2
 文太  - 2008/10/06(月) 22:46 -

引用なし
パスワード
   Siさん

 どうでもいいメモです(すいません)。

aaaaa[EOF]
 な終端をもつファイルの最後に改行を加える方法は何がいいのかなぁ、と考え
ていて、はまりました。Vzマクロ以外です。

方法1
>lsed "p;d" file    #logos版sed、この版以外だと深くはまっちゃいます。
            #嫌なんですけど、こういうの。
方法2
>lsed "n" file        #logos版sed

方法3
>oldsed "n" file    #serow版sed

方法4
>jgawk "{print}" file    #素直、素直

方法5
>mbsed "$s/[^\n][^\n]*/&\n/" file    #Bruce.版。こんな真面目な置換は
                    #大袈裟だよ。

 そっかあ、フィルタは一般にファイル末に改行がないならそのままにしておく
ものなんですね。xtr で付かなかったのは、ちょっとびっくり。typeはさすがに
付けないだろうと思っていたのですけれど。


   ##もっといい方法ありませんか?##


 しつこいのですが、こんな場合でも複数ファイルを処理しようと思ったら、

C:\KKKK>Wild -D "lsed \"p;d\" $f >$b" t*.txt
<< 環境変数対応 Wildcard 展開プログラム Ver.1.34 >>
          Copyright (c) 1996-98 by namazu & Si
DEBUG MODE:lsed "p;d" C:\KKKK\T1.TXT >T1
DEBUG MODE:lsed "p;d" C:\KKKK\T2.TXT >T2

 とやるのが吉なわけです。いいねぇ、ワイルド。m(__)m

【118】Re:LOGSORTW ver1.25.2
 文太  - 2008/10/07(火) 23:15 -

引用なし
パスワード
   mbsed "$s/$/\n/" file        #ファイル末に改行文字が2つあっても
                #別にいいじゃん、という大らかな人向け。
                #たぶん最速。

【120】Re:LOGSORTW ver1.25.2
 Si  - 2008/10/08(水) 1:13 -

引用なし
パスワード
   ▼文太さん:
> けっこう疲れてますよね、お互い。ここまでSiさんがつき合ってくれるとは思
>ってなかった。実はけっこうヘロヘロ。明日から(今日からですが)、新しい週
>の始まり! ゆっくりでいいですからね。変なバグ・レポートもかつて入ってい
>たわけですから。

これで一時休戦かと思わせながら、、

>aaaaa[EOF]
> な終端をもつファイルの最後に改行を加える方法は何がいいのかなぁ、と考え
>ていて、はまりました。Vzマクロ以外です。

と、文太さんのタフぶりには何と言っていいものやら ^^;

ハードディスクの中ををひっくり返してやっと sed を探し出して試してみました。

>>lsed "p;d" file    #logos版sed、この版以外だと深くはまっちゃいます。

これが通りましたからうちにあるのは logos版 のようです。

SED   Ver2.42l    Jun 17 1992
1992/06/17 11:00      25,108 sed.exe

> そっかあ、フィルタは一般にファイル末に改行がないならそのままにしておく
>ものなんですね。xtr で付かなかったのは、ちょっとびっくり。typeはさすがに
>付けないだろうと思っていたのですけれど。

xtr も引っ張り出して試してみました。文太さんなら既にご存じかと思いますが、

xtr -nn -nz -o=hoge.txt foo.txt

こんな感じですかね。これなら sed の方が簡潔で良いのかな?

昔々に「MS‐DOSテキストデータ料理学」とかいう本を買い込んで awk とか sed とか触っていた時期があったのですが、結局使いこなせないまま今日に至っています ^^;

【121】Re:LOGSORTW ver1.25.3
 Si  - 2008/10/08(水) 1:18 -

引用なし
パスワード
   ▼konnoさん:
>いただきました。3280発言、3.2メガの処理もあっという間に終わりました。
>テストのためにこのファイルを2回コピーして9840発言、9.6メガでもやって
>みましたが、ほんの数秒で正常に終わりました。これはいい!! わがまま
>を聞いてくださって本当にありがとうございました。m(__)m

こちらこそ、わざわざテストして頂きありがとうございました。

実は、メモリ領域の確保だけなら、 10,000 どころか、100,000発言 でも 200,000発言でもいけるのが分かったのですが、さすがにそこまでは要らないですよね。

実際のデータでは試していなかったので助かりました。

【123】Re:LOGSORTW ver1.25.2
 文太  - 2008/10/08(水) 23:20 -

引用なし
パスワード
   Siさん

>> けっこう疲れてますよね、お互い。ここまでSiさんがつき合ってくれるとは思
>>ってなかった。実はけっこうヘロヘロ。
>
>これで一時休戦かと思わせながら、、
>
>>aaaaa[EOF]
>> な終端をもつファイルの最後に改行を加える方法は何がいいのか
>
>と、文太さんのタフぶりには何と言っていいものやら ^^;

 確かに完全に相手を油断させておいてというのを狙っているとしか思えん(爆)。
 なんで作者様を油断させる必要があるんだ??? ☆\(^^;)

 ふつう、「もう忘れちゃったよ」と冷たくいなされるところなのです。m(_B_)m
 優しいお言葉にすっかりよい気持ちになってしまって、それで連続・集中砲火
的発言の数々となっております。ほんとうにすいません。深謝です。そしてマリ
アナ海溝の深みから感謝、感謝であります。m(__)m

 とにかく、どうぞゆっくりと楽しまれてください。僕に振り回されないで、と。
m(__)m 何言っているのだか、ですね。


>ハードディスクの中ををひっくり返してやっと sed を探し出して試してみました。
>>>lsed "p;d" file    #logos版sed、この版以外だと深くはまっちゃいます。
>これが通りましたからうちにあるのは logos版 のようです。
>SED   Ver2.42l    Jun 17 1992
>1992/06/17 11:00      25,108 sed.exe

 はい、それは logos 版です。serow 版からの拡張で、serow さんがオリジナ
ルから落としてしまった、 少なくはない便利なところを回復させていますので
(エンバグさせてるかも、という作者の言葉にもかかわらず)、安定していて優
秀な sed です。たとえば、コマンドを羅列させる「;」(今回使用)、スクリプ
ト先頭の unix-like な「#n」、s/LHS/RHS/n の置換時の何個目指定フラグ「n」。
この3点だけでも、 僕には serow 版に固執する意味はなくなりました(気づい
たのは、とても遅かったのですが)。
 もし総合的に dos 用の sed ということになったら、vector にある

C:\>sed --version
GNU sed version 1.18 + multi-byte extension 1.03

 がGNU拡張をもっとも最近まで追っていて、参考書どおりになりそうです。
 32ビットになると、けっこう色々と深くて…。
 (僕、sedオタクなんです。大して使えやしないのですが)

> xtr も引っ張り出して試してみました。文太さんなら既にご存じかと思いますが、
> xtr -nn -nz -o=hoge.txt foo.txt

 いえいえ、知りませんでした。調べることも出来ずじまいでいました。m(__)m
 ちゃんとそういうオプションがあるんですね。

>  nn 〔初期値:nn-〕
>  入力ファイルが改行無しで終わっている場合でも出力ファイル
> は必ず改行を付けて終わるようにします。

>  nz 〔初期値:nz-〕(No ctrl-Z)
>  出力ファイルの最後に ^Z を付けません。(通常、テキスト
> ファイル出力の場合は最後に ^Z を付けるようになっています。)

 どっかのツールのどっかのドックで、そんな処理について触れてたな、と思っ
ていたのです。XTRで外れたと思っていたので、お教えいただけて「取れた小
骨」的に本当にすっきりしました。m(__)m

> 昔々に「MS‐DOSテキストデータ料理学」とかいう本を買い込んで awk とか sed
> とか触っていた時期があったのですが、結局使いこなせないまま今日に至っています ^^;

 僕も、それ持ってます。もっとも使えるところだけ使えばいい(いざとなると
お勉強が必要になり、けっこうイライラするのですが)と開き直ってますけれど。


 因みに、XTRには以下のような関数が用意されているそうで、もうCそのも
のみたい。logsortw のソースをみて、ああ、「Cって知らなくても読める」と
か誤って思ってしまいました。「あ、XTRの関数みたいだ」とも。とはいえ、
XTRの作者、村上さんは、正規表現を使えるところまでもっていけなかった、
ここが痛いですね。

@write
入出力
 write (str)指定文字列を出力する関数

@writeln
入出力
 writeln (str)指定文字列の後に改行を付加して出力する関数

@put
入出力
 put 行バッファへの出力関数

@get
入出力
 get ()1行入力。
 get (n)指定文字数入力。

@unget
入出力
 unget (str)指定文字列を次の入力の対象とする。

【124】Re:LOGSORTW ver1.25.2
 としき WEB  - 2008/10/09(木) 22:09 -

引用なし
パスワード
   ▼文太さん:

> どうでもいいメモです(すいません)。

どうでもいいレスをつけさせていただきます。
つまらんもので引きずって申し訳ない。>Siさん

>方法4
>>jgawk "{print}" file    #素直、素直

方法4’
>jgawk "1" file    #ひねくれ

方法6
#include <stdio.h>
int main(){int c;
while((c=getchar())!=EOF)putchar(c);
if(c!='\n' && c!='\r' && c!='\l')putchar('\n');
}
/* LSI-Cで動作確認済み */

何やってんだか。


> とやるのが吉なわけです。いいねぇ、ワイルド。m(__)m

いや、全く。


【125】Re:LOGSORTW ver1.25.2
 文太  - 2008/10/10(金) 18:02 -

引用なし
パスワード
   > /* LSI-Cで動作確認済み */

 ダウト!

【127】Re:LOGSORTW ver1.25.2
 としき WEB  - 2008/10/11(土) 12:53 -

引用なし
パスワード
   ▼文太さん:

> ダウト!

うあ〜、あと1枚だったのに〜!


まじめな話、敗因は、書き込む直前に

#include "mylib.h"

を削除してしまった事だと思います。
だよなぁ。ちょっと自信なし。
ということで、修正版。

#include <stdio.h>
int main(){int c;
while((c=getchar())!=EOF)putchar(c);
if(c!='\n' && c!=0x0d && c!=0x0a)putchar('\n');
}
/* LSI-Cで動作確認済み */

今度は大丈夫、だといいなぁ。

【128】Re:LOGSORTW ver1.25.2
 文太  - 2008/10/11(土) 13:28 -

引用なし
パスワード
   Siさん(変な展開で、すいません)
としきさん、ありがと。うふ。


C:\>lcc addtail.c
lld @link.i

C:\>command.com /cdir addtail.exe

ADDTAIL EXE   6319 08-10-11  13:15
    1 個      6319 バイトのファイルがあります.
          957803520 バイトが使用可能です.

C:\>type test.txt
aaaaaaaaaaaaa
bbbbbbbbbbbbbbb
C:\>addtail test.txt
^C

C:\>addtail <test.txt
aaaaaaaaaaaaa
bbbbbbbbbbbbbbb
                ;ココだよん\(^_^)/
C:\>type OK.txt
/* LSI-Cで動作確認済み */    ;the first ever compling of C program!!!

C:\>type addtail.c
#include <stdio.h>
int main(){int c;
while((c=getchar())!=EOF)putchar(c);
if(c!='\n' && c!=0x0d && c!=0x0a)putchar('\n')    ;ここがいけない
}            ;のは分かってたのだけど、#include <ctype.h>
            ;でも駄目だった。ありがとうございました。
            ;読めます、だいたい。m(__)m

【138】Re:LOGSORTW ver1.25.2
 Si  - 2008/10/19(日) 23:34 -

引用なし
パスワード
   ▼としきさん:
>if(c!='\n' && c!=0x0d && c!=0x0a)putchar('\n');

横から失礼します。

'\n' = 0x0a

じゃなかったでしたっけ?
茶々入れですみませんm(__)m

【139】Re:LOGSORTW ver1.25.2
 としき WEB  - 2008/10/20(月) 22:21 -

引用なし
パスワード
   ▼Siさん:

>'\n' = 0x0a
>じゃなかったでしたっけ?

そうかもしれません。
実はあのコード、何も資料を確認せずに記憶だけで書いたんですよ。
一応、LSI-CでコンパイルしてDOSで実行確認は取ったんですが、
確か、DOSとUNIXとMacで改行コードが違うという話があったなぁ、
と思い出しました。一応、ソースを載せる以上、どんな環境でも
動いてほしいけど、でも、わざわざ調べるのも面倒、ということで、
安全側に倒すという意味での妥協の産物ですね。

【140】Re:LOGSORTW ver1.25.2
 文太  - 2008/10/20(月) 22:32 -

引用なし
パスワード
    何だか(日頃の)ご恩を仇でかえすみたいなのですが。

--------------------------------------
C:\>command.com /ctype t1
with \n

C:\>command.com /ctype t2
without \n
C:\>Lsed "n" t1
with \n

C:\>Lsed "n" t2
without \n

C:\>addtail <t1
with \n


C:\>addtail <t2
without \n

C:\>
--------------------------------------
 確かに何かバグってるみたいですね。やっぱ読めないから直せないのですが。
 仕様は「ファイルの最終行が改行文字で終わっていない場合に、改行文字を付
加する」です。どうでもいいことですいません。性格、悪いなぁ。(^^;ゞ
m(__)m

【142】Re:LOGSORTW ver1.25.2
 としき WEB  - 2008/10/20(月) 23:42 -

引用なし
パスワード
   > 何だか(日頃の)ご恩を仇でかえすみたいなのですが。

それは全然問題ないのですが。

> 確かに何かバグってるみたいですね。やっぱ読めないから直せないのですが。

こちらの方は大問題です。
というか、私が実験した時はそうはならなかったはず。
いや、そうならなかったような気がする。
そうならなかったんじゃないかなぁ。
何か見間違えたのかなぁ。

とりあえず、あとでもう一度実験してみます。
何を失敗したのかなぁ。
まさか、EOF?

【143】Re:LOGSORTW ver1.25.2
 文太  - 2008/10/21(火) 13:20 -

引用なし
パスワード
    少なくともEOFが原因ではないようです。Ez-な人ですので。
 EOFって、1Aなんですね。

Ez-            ;EOF コードの付加

C:\>dump t1
00000000 77 69 74 68 20 5C 6E 0D-0A           |with \n..

【146】EOF?
 文太  - 2008/10/21(火) 14:26 -

引用なし
パスワード
   > まさか、EOF?
> while((c=getchar())!=EOF)putchar(c);

 もしかして、EOFがファイルにあることが前提なのかな?
 しかし、これって、1文字ゲットしては1文字出力し、ってやってるわけですか?

【147】Re:LOGSORTW ver1.25.2
 としき WEB  - 2008/10/21(火) 20:48 -

引用なし
パスワード
   > 少なくともEOFが原因ではないようです。

違います。私のソースコードの方が間違っている、ということです。
昨夜は眠かったので正しいソースコートが提示できませんでしたが、
元々のコード、EOFが来たらループから脱出、となっているのに、
脱出直後に、来たのが「EOFではない」特定のコードであったら、
という形になっています。これでは正しく動くわけがありません。
ということで、さらに修正版。

#include <stdio.h>
int main(){
int c,c2;
while((c=getchar())!=EOF){
putchar(c);
c2=c;
}
if(c2!='\n' && c2!=0x0d && c2!=0x0a)putchar('\n');
}

一応、今回もチェックしてOKである事の確認は取ったのですが、
前回もチェックOKを出したのに実はNGだったわけで。
また夢を見ているだけかもしれません。

【148】Re:LOGSORTW ver1.25.2
 文太  - 2008/10/22(水) 10:58 -

引用なし
パスワード
   としきさん

------------------------------
C:\LSI>lcc ADDTAIL2.C
lld @link.i

C:\LSI>addtail2 <t1
with \n

C:\LSI>addtail2 <t2
without \n

------------------------------
 めでたしめでたし。

【150】ファイル末改行付加
 文太  - 2008/10/22(水) 21:18 -

引用なし
パスワード
    しつこいのですが。たぶんこれが最短。少なくともsedを使うなら。

-------------------
C:\XYZ>command.com /ctype abc
without \n
C:\XYZ>lsed "" abc   #logos版
without \n

C:\XYZ>oldsed "" abc  #serow版(たぶん他のsedでは駄目)
without \n       #bugともfeatureとも言える仕様です。

C:\XYZ>
-------------------

・ツリー全体表示

【89】掲示板の携帯電話対応
 としき WEB  - 2008/09/29(月) 18:20 -

引用なし
パスワード
   ども、ご無沙汰しています。

自分のところの掲示板を携帯電話対応させようかと考えました。
どこか参考になるところはないかと考え、そういえばここのシステムが
携帯電話に対応していたなぁ、と思いつきました。
ということで、色々な挙動を参考にさせていただくことにしました。

そこで気がついたのですが、i-modeで表示されるトップページ、通常の
パソコンと同じく「ホーム」へのリンクがるのですが、そこがきちんと
Siさんのサイトへリンクされていません。なんか、この掲示板システム
の開発者のサイトに飛んで行ってしまいます。
とりあえず、気がついたので御注進。

【91】Re:掲示板の携帯電話対応
 Si  - 2008/09/30(火) 1:28 -

引用なし
パスワード
   ▼としきさん:
こちらこそ、どうもご無沙汰しています。

>Siさんのサイトへリンクされていません。なんか、この掲示板システム
>の開発者のサイトに飛んで行ってしまいます。
>とりあえず、気がついたので御注進。

ご指摘ありがとうございます。

実は、この件は前々から分かっていたのですが、自分自身が、通話とメールしか出来ない古いPHSをいまだに使い続けておりまして、えー、つまり Web機能のない携帯端末と云うことでして、PC のブラウザでのように実際の確認が出来ないので放置していた次第です。

せっかくの機会なので直してみました。
変なところ、気になる点などございましたらまた教えて頂けると助かります。

【92】Re:掲示板の携帯電話対応
 としき WEB  - 2008/09/30(火) 10:52 -

引用なし
パスワード
   ▼Siさん:

>Web機能のない携帯端末と云うことでして、PC のブラウザでのように実際の確認が出来ないので放置していた次第です。

実は、私自身、携帯電話(i-mode)は最近導入しましたが、でも、携帯電話で
確認したわけではありません。サブマシンではブラウザにFirefoxを使っている
のですが、これは拡張機能を入れるとブラウザ名(ユーザーエージェント)を
変更(偽装?)できるのです。その方法でi-modeを名乗って(騙って?)こち
らにアクセスしたという次第。
こちらの掲示板もそうでしたが、ほとんどの携帯電話対応のページはユーザー
エージェントしか見ていませんね。ごく一部の、例えばi-mode公式ページのよ
うなところでは、本当にi-modeかどうかの確認にIPアドレスまで使っている
ようですが。

ちなみに、今、これを書き込んでいるのは、Win3.1上のネスケ4です。

【97】Re:掲示板の携帯電話対応
 Si  - 2008/10/01(水) 0:15 -

引用なし
パスワード
   ▼としきさん:
>実は、私自身、携帯電話(i-mode)は最近導入しましたが、でも、携帯電話で
>確認したわけではありません。サブマシンではブラウザにFirefoxを使っている
>のですが、これは拡張機能を入れるとブラウザ名(ユーザーエージェント)を
>変更(偽装?)できるのです。その方法でi-modeを名乗って(騙って?)こち
>らにアクセスしたという次第。

なるほど、なるほどです。早速、User Agent Switcher を入れました。
昔、入れてみたりしたことがあるのですが、自分にはあまり用途がなさそうなので外していたものです。

自分のサイトが携帯端末からどんな風に見えるのか疑似確認するには確かに便利そうですね。

早速 FOMAユーザーを装ってここに来てみたのですが、投稿パスワードがそのまま表示されますね ^^;
自分のブログへもアクセスしてみたのですが、そこで Firefox が Give Upしてしまいました。
OS を再起動しなさい、と叱られましたが、面倒なので Opera で書き込んでいます。

有用な情報ありがとうございました。

・ツリー全体表示

【64】Wild(32)の挙動?
 文太  - 2008/09/18(木) 20:10 -

引用なし
パスワード
    ご無沙汰しております。 お世話になってばかりの文太です。RCP には、Vz を
使えばお世話になる毎日をまだ続けております。m(__)m

 さて、wild.exe なのですが、少々挙動がおかしいように思え、またそれなり
に致命的であるように感じられるものですから、ご報告と、もし僕の報告自体が
間違っていないようでしたら、お時間ができたときにでも、直していただけない
かというお願いです。

 実は、 大量のファイルを扱うときには、僕はVzでなく、sed と awk を使う
ことが多いのですが、そんな場合、この wild 君に大活躍してもらっているので
す。
 ところが、コマンドラインでの grep へパターンを渡そうとしたら不具合と思
われる現象に遭遇しました。スクリプトにパターンを入れてしまえば、もちろん
問題ありません。それで今まで発現しなかったのだろうと思うのですが、やはり、
grep では、コマンドラインからパターンを与えたいので、どうか宜しくお願い
いたします。(当然、>sed -e "^foo$" をwildに展開してもらおうとすれば、同じ
問題が出るでしょう)

 '^' が消失してしまう、32 ビット版では、"foo" の引用がうまくいかないよ
うだ、というのがこの現象の分かりやすい表現になろうかと思います。以下は、
すべて Win XP での実験です。

16ビットdos用

C:\>Wild -D "Ygrep \"^foo$\" $f >>c:\kek" c:\xyz\*.*
<< 環境変数対応 Wildcard 展開プログラム Ver.1.34 >>
          Copyright (c) 1996-98 by namazu & Si
DEBUG MODE:Ygrep "foo$" c:\xyz\TEST1.TXT >>c:\kek
DEBUG MODE:Ygrep "foo$" c:\xyz\TEST2.TXT >>c:\kek
         ^    #ここの'^'が落ちてしまう。

32ビットWin dos窓用

C:\>Wild32 -D "Ygrep \"^foo$\" $f >>c:\kek" c:\xyz\*.*
expand wildcard & excute command - Wild version1.50 (c) 1996-99 by namazu & Si
2 file(s) is found
cmdline = Ygrep \foo$\ C:\XYZ\TEST1.TXT >>c:\kek
cmdline = Ygrep \foo$\ C:\XYZ\TEST2.TXT >>c:\kek
        ^    #quote ", ^ の両方がおかしい。

 command.com, cmd.exe の解釈も絡むようですが、dos, dos box in Win では、
やはり普通、'foo' でなく、"foo" だろうと思うのです。 以下の 'foo' の場合
では、不具合がでません。
 それでも、確か"foo"でしかエスケープできない場合があったと思うのです。
 ご検討を宜しくお願いいたします。

C:\>Wild "Ygrep '^foo$' $f >>c:\kek" c:\xyz\*.*
<< 環境変数対応 Wildcard 展開プログラム Ver.1.34 >>
          Copyright (c) 1996-98 by namazu & Si
<< Input File Name >>
c:\xyz\test1.txt
<< Input File Name >>
c:\xyz\test2.txt

                    m(__)m 文太 m(__)m

【65】Re:Wild(32)の挙動?
 文太  - 2008/09/18(木) 22:16 -

引用なし
パスワード
   Siさん

 すいません、こういうボケが多いこの頃でして。以下では「不具合がでません」
を示してくれていませんでした。結果は同じなのですが、不具合がでないサンプ
ルを下に貼りました。m(__)m

> C:\>Wild "Ygrep '^foo$' $f >>c:\kek" c:\xyz\*.*
> << 環境変数対応 Wildcard 展開プログラム Ver.1.34 >>
>          Copyright (c) 1996-98 by namazu & Si
> << Input File Name >>
> c:\xyz\test1.txt
> << Input File Name >>
> c:\xyz\test2.txt

C:\>Wild -D "Ygrep '^foo$' $f >>c:\kek" c:\xyz\*.*
<< 環境変数対応 Wildcard 展開プログラム Ver.1.34 >>
          Copyright (c) 1996-98 by namazu & Si
DEBUG MODE:Ygrep '^foo$' c:\xyz\TEST1.TXT >>c:\kek
DEBUG MODE:Ygrep '^foo$' c:\xyz\TEST2.TXT >>c:\kek

 これ、wildが必要な場面なの? と突っ込まないでください。
 grepであっても、必要な場面が、もちろんあるのです。
 あくまで実験用サンプルですので。m(__)m

【67】Re:Wild(32)の挙動?
 Si  - 2008/09/19(金) 1:12 -

引用なし
パスワード
   文太さん、ご無沙汰しております。

まず、Wild32 と書かれているのは version 1.50βとして公開しているものでよろしいですね?これは茶々をいれるつもりでは全くなくて念のための確認です。

version 1.34  → WILD.COM
version 1.50β→ WILD.EXE

現在 Web で公開しているのはこの2バージョンでどちらも dos汎用なので、 32bit版を探してしまいました ^^;

で、ご指摘の動作ですが、こちらでも確認しました。コマンドラインパラメータの処理の問題ですね。

うーん、1.50βは同梱の WILD.TXT にも書いてあるのですがソースが残っていません。それもあって、以前は 32bit版 Wild を作ろうと思いつつも、結局放置状態のまま今に至っています。

幸い version 1.34 の方のソースはあるのでちょっと手を付けてみようかと思いますが、いますぐにとはいきません。すみません。

しばらくは「不具合がでないサンプル」のような運用で凌いでくださいますでしょうか。

引数のクォート処理については処理系に依存する、とか云う話もその昔に耳にした記憶があるので、自分みたいな素人の手に負えるかどうか・・・

【68】Re:Wild(32)の挙動?
 文太  - 2008/09/19(金) 2:09 -

引用なし
パスワード
   Siさん、すぐさま返信いただきありがとうございます。

>  まず、Wild32 と書かれているのは version 1.50 βとして公開しているもの
> でよろしいですね?これは茶々をいれるつもりでは全くなくて念のための確認で
> す。
> version 1.34  → WILD.COM
> version 1.50β→ WILD.EXE
>  現在 Web で公開しているのはこの2バージョンでどちらも dos汎用なので、
> 32bit版を探してしまいました ^^;

 す、 すいません。 そうか、あれはとりわけ32ビット版ではないのか。.com
モデルと .exe モデル?

>  で、ご指摘の動作ですが、こちらでも確認しました。コマンドラインパラメー
> タの処理の問題ですね。

 出ちゃいますよね、やっぱり。(>_<)

>  うーん、1.50βは同梱の WILD.TXT にも書いてあるのですがソースが残ってい
> ません。それもあって、以前は 32bit版 Wild を作ろうと思いつつも、結局放置
> 状態のまま今に至っています。
>  幸い version 1.34 の方のソースはあるのでちょっと手を付けてみようかと思
> いますが、いますぐにとはいきません。すみません。

 時間があるときで構いません、どうか宜しくお願いいたします。

 いえ、僕がwildを愛用するようになってから随分になります。それでもMS-DOS
とそれなりに真剣につき合い始めた頃は、多くのSiツールの意味が分かりません
でした。最初、何するもの? と思っていたものです。でも、じわじわと、これ
らのすごさが分かるようになってしまったののです。ようやく「理解のレベル」
で20年前のSiさんに僕は追いついたのでしょうか。

 はい、 '^'がwildで危ないと知ってから、ワイルドカード展開なしで、先ほど
書いたバッチは、

Ygrep -N -f mix.pat "^v\.c\./vz" C:\MWK\LIB0489.LOG >> C:\MWK2\vz.log
Ygrep -N -f mix.pat "^v\.c\./vz" C:\MWK\MIX0107.LOG >> C:\MWK2\vz.log
 (以下、80行続く)

です。
 で、 このバッチを書くのも、 sedスクリプト1つ、awkスクリプト1つです。
(シリアスな置換になるとVzはちょっと信用できないところがあるのです。も
ちろん、スクリプトを書くのはVzなんですけどね。変わろうとしない人なので
す>文太くん)

 ね、wildの有り難みを、嫌でも味わってしまっているでしょう。m(__)m

>  しばらくは「不具合がでないサンプル」のような運用で凌いでくださいますで
> しょうか。

 凌がせていただきます。方法がないわけではないので。そういうのばっかの人
生なんだよなぁ…。Vzといい、あれといい、これといい…。でも、バッチのた
めのsedスクリプトやawkスクリプトの時点で間違えちゃうと、「え?! 何やって
るんだっけ?」ってなるんですよね。はたまた、そのsedスクリプトでwildのお世
話になったり。
 いたちごっこばっかりの人生。

>  引数のクォート処理については処理系に依存する、とか云う話もその昔に耳に
> した記憶があるので、自分みたいな素人の手に負えるかどうか・・・

 お、お願いします。どうか、どうか処理系を読み切ってください。お願いしま
す。m(__)m
 パイプもリダイクトも、' 'ではエスケープできないのです。MSの呪いみたい
ではありますが。wild 自身も深くはまってしまいます。m(__)m

文太

【70】Re:Wild(32)の挙動?
 文太  - 2008/09/19(金) 12:30 -

引用なし
パスワード
   C:\>command.com /cdir c:\bin\wild*

WILD   COM   12396 98-06-12  1:34
WILD32  EXE   16893 99-02-03  11:50    ;これには退場願いましょう m(__)m
WILDL  EXE   16893 99-02-04  1:50    ;先ほど落としました。
                    ;前にRCPのときにも古い
                    ;ヴァージョンを使っていたこと
                    ;がありました。ったく>自分。
                    ;m(__)m

 ソースの件も了解しました。 (しつこいのですが)そ、それでも、wild.com
だけでもよいので、どうか、どうか宜しくお願いします。逃げる方法は、あんな
ことしなくても色々あったな、と今思っているところですが。m(__)m

【73】Re:Wild(32)の挙動?
 Si  - 2008/09/21(日) 21:46 -

引用なし
パスワード
   ▼文太さん:
>WILD32  EXE   16893 99-02-03  11:50    ;これには退場願いましょう m(__)m
>WILDL  EXE   16893 99-02-04  1:50    ;先ほど落としました。

タイムスタンプがちょっとアレですが、ファイルサイズからみて同じものではないかと。
version 1.34 と 1.50 は、com版、exe版と云うことではなくて、1.50 は(同じ16bitDOS版ですが) LFN対応させたものです。何故 com を exe にしたのかは忘れました ^^;

拡張子抜きで wild とタイプして実行すると comの方が優先的に起動されるので、たぶん文太さんがご自分でリネームされたのではないでしょうか?

うーん、それとも実際に2月3日に一旦公開したものの何かミスに気付いて(ファイル名に 32 を付けてしまったとか)あわてて差し替えた、と云う可能性も否定できません。9年前のことなので記憶がどこかへ行ってしまってます。

それと、68番の書き込みを見て思いついたのですが、WILD にバッチファイルを渡す、と云うのはどうでしょう?

(hoge.bat)
Ygrep -N -f mix.pat "^v\.c\./vz" %1 >> C:\MWK2\vz.log

wild hoge.bat C:\MWK\*..LOG

実際に試した訳ではないので大変恐縮ですが・・・

【75】Re:Wild(32)の挙動?
 文太  - 2008/09/22(月) 20:45 -

引用なし
パスワード
   Siさん

> それと、68番の書き込みを見て思いついたのですが、WILD にバッチファイルを
> 渡す、と云うのはどうでしょう?
> (hoge.bat)
> Ygrep -N -f mix.pat "^v\.c\./vz" %1 >> C:\MWK2\vz.log
> wild -d hoge.bat C:\MWK\*.LOG
> 実際に試した訳ではないので大変恐縮ですが・・・

 おお、完璧でした。コマンドラインに追加リダイレクションが出ないので、一
瞬、あれ、と思いましたが、バッチの【中身】がコマンドラインで展開される必
要はありませんね。ちゃんと80回、バッチを実行してくれました。パチパチパチ。
そう、あの手のバッチは機械に書いてもらいたい。(^^;

 wild のタイムスタンプ、ファイル名、すいませんでした。 LFNが使える=
32ビットとばかり思いこんでいました。LFN用のライブラリーを使用したら
com モデルに収まらなくなった、みたいなのが、exe モデルにした理由かな、と
空想・妄想しました。タイムスタンプの方は、そんなのそう安直に変えたりしな
いんだけどな、とは思っているのですが。リネームは間違いなく僕がやってます。
LFNが使えるワイルドで、wildl.exe(今回のネーミング)。


 実は、Ygrep についても発見がありました。Si さんには明らかに釈迦説なの
ですが、 grep, sed, awk はワンライナーするとき、それが複数のコマンド(ス
クリプト) だと -e "hoge" -e "foo" なんてしますし、ちょっと複雑だと -f と
スクリプトを指定するじゃないですか。だから、ま、グレップで -f はも大袈裟
だけど逃げ道はあると思っていたわけです。だから、ちょっと贅沢な(我が侭な)
不具合修正願いだと最初思ったわけです。ところが、ygrep のブロック定義を使
うと(これがおいしい!)-f hoge.pat の部分を取られてしまうので、-f 検索
パターンファイル が書けないよ、大変だよ、と半ばパニックしたわけです。こ
こまで思い至ってバッチの実験が成功したので、よかった、と本当に逃げ道はあ
ったのだと安堵したのです。

 ところがところが、バッチの実験したあと

>type pat.txt
^v\.c\./vz

>Ygrep -f mix.pat -f pat.txt object.log >result

 とやってみたら、あら! 通る! ブロックをきちんと認識したうえ検索パタ
ーンが含まれている記事を抽出してきました。ygrep、すごい! となりました。

 というわけで、逃げ道は何とおりか見つかりましたので、大変だな、と思った
らコマンドライン上での文字消え現象については覚悟して臨みますので、無理を
なさらないでくださいね。深そうでもあるし…。

 とはいえ、こんなのをワイルドに挟めたりしたら、かっちょえー、という気分
にはなれるなぁ、なんて気持ちは残ってはいますが。

>Sed -e :a -e "$!N;s/\n=/ /;ta" -e P;D file

 あ、意味は、
If a line begins with an equal sign, append it to the previous line
and replace the "=" with a single space.
です。僕が書いたのでは、もちろんありません。この書き方はsedを選びます。

                                 文太

【76】Re:Wild(32)の挙動?
 Si  - 2008/09/24(水) 0:10 -

引用なし
パスワード
   ▼文太さん:
> というわけで、逃げ道は何とおりか見つかりましたので、大変だな、と思った
>らコマンドライン上での文字消え現象については覚悟して臨みますので、無理を
>なさらないでくださいね。深そうでもあるし…。

どうもご理解ありがとうございます。取り急ぎこちらだけレスしておきます(LOGSORTW のカレンダーの件はまた後ほど)。

クオート処理の話しとはちと離れますが、コマンドプロンプトでの ^ は特殊文字だったようです。

C:\>Wild -D "Ygrep \"^foo$\" $f >>c:\kek" c:\xyz\*.*

これは、

C:\>Wild -D "Ygrep \"^^foo$\" $f >>c:\kek" c:\xyz\*.*

こうしてやることで "^foo$" となりました。^ を ^ でエスケープしてやるのです。ただし、確認したのは XP SP3 のコマンドプロンプトだけですが。

コマンドプロンプト自体は毎日のように使う機会があるのですが、使い込んでないのがバレバレでした ^^;

ただし、これが有効なのは WILD.COM だけです。

WILD.EXE の方はやはり最初と同じ結果でした。コンパイラは同じものを使っているのでコーディングに問題があるのだと思います。

いずれにしても、WILD.COM、WILD.EXE 共に MS-DOS汎用なので(おまけに WILD.EXE の LFN対応機能は Windows9x でしか利用できない)、 32bit版への移行をやらなければならないのですが、ソースを見たら DOSべったりなコーディングになっていまして、ちょこっと手直しして 32bit版コンパイラで「はいok」と云うわけにはいかないようです。

以下は余談ですが、XP のコマンドプロンプトで

C:\>^

を実行してみてください。結果は見てのお楽しみ。

【77】Re:Wild(32)の挙動?
 文太  - 2008/09/24(水) 1:04 -

引用なし
パスワード
   Siさん、

> C:\>^
> を実行してみてください。結果は見てのお楽しみ。
More?

 これはcmd.exeの特殊文字ということなんでしょうね。ワケワカ。(-o-;
 command.com窓(\system32\command.comからVzerは引っぱるのです)では、何
も起こりませんでした。複雑だなぁ。

 上以外の件は、明日あたりに。m(__)m

 wild.(com|exe) をXPな現在に ver up するのが、そう簡単ではないことは
了解です。
 それでも、wild.com で、バッチをダダダと書いてもらえるのは幸せです。m(__)m
 だって、今のところ、「^」だけですから。 すでに300回くらいは使ってい
て、不具合でていないのです。しつこいかもしれませんが、ありがとうございま
す。seder, awker には必携な wild なのです。

【78】Re:Wild(32)の挙動?
 文太  - 2008/09/24(水) 1:15 -

引用なし
パスワード
   Siさん、

ttp://it-is-it.net/CMD/%C1%B4%C8%CC/%B9%BD%CA%B8%B2%F2%C0%CF/

間違いなく「^」は特殊文字ですね。でも、クオートの中でも? エスケープ
するのに「^^」ですかぁ? こんな大きな変更は、ちゃんと伝えてもらわなけ
れば困る>MS、とかついつい言いたくなってしまいます。やれやれ、何なん
でしょうね、これは。

【80】Re:Wild(32)の挙動?
 文太  - 2008/09/25(木) 0:02 -

引用なし
パスワード
    Siさん、すいませんでした。
 頭悪いなぁ>文太

 僕はモバイル・ギアという純Dos機を持っていて、すぐに試験できたはずだ
ったのでした。どうもトンチンカンなレスをしまして申し訳ありませんでした。
 事情は複雑ではありましたが、すぐ実験してみることを思いつくべきでした。
XPの command.com の支配下にあるといっても、やはり裏では cmd.exe が監視
しています。 ですから、「^」消失の件は、cmd.exe の要求を満たすエスケープ
の仕方しかありませんでした。(C:\>^ だけだと、反応が違うのですが)

 まず、
C:\>command.com /cdir c:\bin\wild.com
WILD   COM   12396 98-06-12  1:34

C:\>command.com /cdir c:\bin\wildl.exe
WILDL  EXE   16893 99-02-04  1:50        (リネームしてあります)
 の2つが対象です。

 色んなところの色んなマシンで使うので、リネームして両方(RCP.exeとRCP32.
exeのように)HDの\binディレクトリに入れています。

 まず、wild.comから。

【@XP】
C:\>Wild.com -D "Ygrep \"^^foo$\" $f >>c:\kek" c:\xyz\*.*
<< 環境変数対応 Wildcard 展開プログラム Ver.1.34 >>
          Copyright (c) 1996-98 by namazu & Si
DEBUG MODE:Ygrep "^foo$" c:\xyz\TEST1.TXT >>c:\kek
DEBUG MODE:Ygrep "^foo$" c:\xyz\TEST2.TXT >>c:\kek

【@dos 6.2】
A:\>Wild.com -D "Ygrep \"^foo$\" $f >>a:\kek" a:\xyz\*.*
<< 環境変数対応 Wildcard 展開プログラム Ver.1.34 >>
          Copyright (c) 1996-98 by namazu & Si
DEBUG MODE:Ygrep "^foo$" c:\xyz\TEST1.TXT >>c:\kek
DEBUG MODE:Ygrep "^foo$" c:\xyz\TEST2.TXT >>c:\kek

 ★wild.comには不具合なし。

 次は、wildl.exe。と、ところが、何、これ?

【@XP】
C:\>Wildl -D "Ygrep \"^^foo$\" $f >>c:\kek" c:\xyz\*.*
アクセスが拒否されました.

 よく分からないけど、しょうがないから、Vzファイラでwild32にリネーム。
 す、すると。(もちろん同じ実行ファイルです。)

C:\>Wild32 -D "Ygrep \"^^foo$\" $f >>c:\kek" c:\xyz\*.*
cmdline = Ygrep \foo$\ C:\XYZ\TEST1.TXT >>c:\kek
cmdline = Ygrep \foo$\ C:\XYZ\TEST2.TXT >>c:\kek

 通りました。ワケワカですが、
 Siさんがおっしゃるように、まずいですね。「\」が残り「"^^」が消失。

C:\>Wild32 -D "Ygrep \"^^^^foo$\" $f >>c:\kek" c:\xyz\*.*
cmdline = Ygrep \^foo$\ C:\XYZ\TEST1.TXT >>c:\kek
cmdline = Ygrep \^foo$\ C:\XYZ\TEST2.TXT >>c:\kek

 進歩。しかし「\」が残り、「"」が消えてる。

C:\>Wild32 -D "Ygrep "^^^^foo$" $f >>c:\kek" c:\xyz\*.*
cmdline = Ygrep ^foo$ C:\XYZ\TEST1.TXT >>c:\kek
cmdline = Ygrep ^foo$ C:\XYZ\TEST2.TXT >>c:\kek

 おお、この場合は、たぶん、「"」がなくとも、ygrepは次の引数をパターンと
認識してくれそう…。でも、辛いですよね。

 では、純Dos。

【@dos 6.2】
A:\>Wildl -D "Ygrep \"^foo$\" $f >>a:\kek" a:\xyz\*.*    (wildlで通るけど、すぐ
cmdline = Ygrep \foo$\ A:\XYZ\TEST1.TXT >>a:\kek    リネームします)
cmdline = Ygrep \foo$\ A:\XYZ\TEST2.TXT >>a:\kek

 「"」の「\」によるエスケープが認識されず、「"^」が消失し、「\」が残る。

A:\>Wildl -D "Ygrep "^foo$" $f >>a:\kek" a:\xyz\*.*
cmdline = Ygrep foo$ A:\XYZ\TEST1.TXT >>a:\kek
cmdline = Ygrep foo$ A:\XYZ\TEST2.TXT >>a:\kek

 「"」が消失し、「^」も消える。「^」がcommand.comにとっての特殊文字って
ことはないですよねぇ? ま、試しに。

A:\>Wildl -D "Ygrep "^^foo$" $f >>a:\kek" a:\xyz\*.*
cmdline = Ygrep ^foo$ A:\XYZ\TEST1.TXT >>a:\kek
cmdline = Ygrep ^foo$ A:\XYZ\TEST2.TXT >>a:\kek

 おお、「^」が「^」でエスケープできた。とはいえ「\」は消失。


 というわけで、Si さんがすでにお気づきのように、wild.com にはバグがあり
ません。wild.exe には、ありそうですね。
 でも、僕は、wild.com で十分なので、cmd.exe にいじめられないように「^^」
とか「^^^^」とかやります。デバッグ・モードがあって、よかった、よかった。
m(__)m

 LFNは自分では作らないようにしていますが、それでもおつき合いしなけれ
ばならない時代です。ですので、LFN対応(NT・XP対応)の wild.exe も、
いつの日にか、宜しくお願いしますね。

 あ、ご存じかと思いますが、XPでは、SFNとLFNの関係が異常です(ま、
と言っては大袈裟かな)。そのディレクトリの状況によって、SFNのbasefilename
自体が書き換えられてしまいます。 LFNが基本になっている世界なんですね。涙。
 それでも、wild.exe については、僕は wild.com で十分に対応できますので、
まったく急いでおりません。dir コマンドと sed で、膨大な ren コマンド羅列
のバッチを書いてSFNに強引に書き換えてしまえばなんとかなりますし。そう
いうときにこそ、wild に登場してもらいたいのですけどね。

 wild.comについては、cmd.exeの要求を満たせば、大丈夫でした。ありがとうご
ざいます。また、バグ入りバグ・レポート、申し訳ありませんでした。

【82】Re:Wild(32)の挙動?
 Si  - 2008/09/25(木) 23:55 -

引用なし
パスワード
   ▼文太さん:
>アクセスが拒否されました.

これ、実はこちらでもいろいろ試しているうちに出くわしました。32bitプログラムではないとかかんとかって叱られるんですよね。原因不明ですが、色々と問題がありそうですね。すみません。

>ttp://it-is-it.net/CMD/%C1%B4%C8%CC/%B9%BD%CA%B8%B2%F2%C0%CF/

これは濃厚なサイトを紹介頂いてありがとうございました。^ の問題を調べるのに、長い年月埃をかぶっていた XPコマンドプロンプトの解説本を引っ張り出して読み返していたのですが、このサイトほど詳しくは書かれていませんでした。

> wild.comについては、cmd.exeの要求を満たせば、大丈夫でした。ありがとうご
>ざいます。また、バグ入りバグ・レポート、申し訳ありませんでした。

こちらこそ恐縮です。

それにしても、MS-DOSプロンプト、XP のコマンドプロンプト、いろいろ奥が深いですねえ。Vzのコマンドラインと云うのもありますし。Vista はまだ使ったことがないので分かりませんが、またぞろ何か変わっているのかな?

# VZのコマンドラインと云えばめざらさんとの RCP の不具合のやりとりが尻切れトンボになってしまったけど、どうしたのかしら・・・

【84】Re:Wild(32)の挙動?
 文太  - 2008/09/28(日) 0:04 -

引用なし
パスワード
   Siさん

> >アクセスが拒否されました.
>  これ、実はこちらでもいろいろ試しているうちに出くわしました。32bit プロ
> グラムではないとかかんとかって叱られるんですよね。原因不明ですが、色々と
> 問題がありそうですね。すみません。

 え、 ということはwild.exe のほうに問題があるとお考えなのですか? 僕は
cmd.exeのバグだとばかり…。このメッセージはcmd.exeが出しているのですよね?
 わかんにゃい。(/_;)

> >ttp://it-is-it.net/CMD/%C1%B4%C8%CC/%B9%BD%CA%B8%B2%F2%C0%CF/
>  これは濃厚なサイトを紹介頂いてありがとうございました。

 すごいですよね。しょうがないから少し真剣にこのあたりともつき合うか、と
思っている今日この頃なのです。


> > wild.comについては、cmd.exeの要求を満たせば、大丈夫でした。ありがとうご
> >ざいます。また、バグ入りバグ・レポート、申し訳ありませんでした。
> こちらこそ恐縮です。

 いえいえ。照れちゃうし、照れられちゃうかもしれないのですが、wildのある
世界に生まれてこれて幸せです。あれ、ほんと、すごいですよ。作者様に多謝。m(__)m

>  それにしても、 MS-DOSプロンプト、XP のコマンドプロンプト、いろいろ奥が
> 深いですねえ。 Vzのコマンドラインと云うのもありますし。Vista はまだ使っ
> たことがないので分かりませんが、またぞろ何か変わっているのかな?

 深いですねぇ。 コマンドライン・ツールを調べているとすぐ「command.comの
バグっぽい仕様」とか「cmd.exeの不思議」みたいのにすぐ出くわします。
 アメリカのsederには、
ttp://www.jpsoft.com/
 なんてのを紹介されたり…。

 今のところ、Vistaでは、「command.comはあるけど16ビットでは日本語が通ら
ない」といった辺りでしょうか。Vzerは、XPが最後のOSと考えている模様で
す…。

>  # VZのコマンドラインと云えばめざらさんとの RCP の不具合のやりとりが尻切れ
> トンボになってしまったけど、どうしたのかしら・・・

 僕もつい先日気がつきました。でも、これネットワーク・ドライブ関係なんで
すよね(分からない2)。それでももし僕にできる実験があったら、どうぞ遠慮
なく言ってみてください。

【85】Re:Wild(32)の挙動?
 Si  - 2008/09/28(日) 10:40 -

引用なし
パスワード
   ▼文太さん:
> え、 ということはwild.exe のほうに問題があるとお考えなのですか? 僕は
>cmd.exeのバグだとばかり…。このメッセージはcmd.exeが出しているのですよね?

文太さんが
ttp://dmz.xrea.jp/dahlia/bbs/cb/c-board.cgi?cmd=one;no=80;id=0001
こちらで試されたのと同じように、コマンドラインの動作をいろいろ実行している内に遭遇したものなのですが、コマンドプロンプトを開いて wild.com、wild.exe 交互にいろいろやっていたので wild.exe(だけ)の不具合とは断定できないです。

正確には「有効なWin32アプリケーションではありません」と云うメッセージも出ていました。そりゃたしかに wild.comにしても wild.exeにしても 16bitプログラムなのでこのメッセージ自体は間違っていない訳なのですが・・・

> アメリカのsederには、
>ttp://www.jpsoft.com/
> なんてのを紹介されたり…。

ちょっと覗かせて頂きましたが、日本語さえ不自由な自分には、さっぱり

わかんにゃい。(/_;) ((c)文太)

でした ^^;

> 今のところ、Vistaでは、「command.comはあるけど16ビットでは日本語が通ら
>ない」といった辺りでしょうか。Vzerは、XPが最後のOSと考えている模様で
>す…。

Vista にも command.com があると云うのにはビックリしました。が、日本語が使えないとは更にビックリです。何なんでしょうね。

> 僕もつい先日気がつきました。でも、これネットワーク・ドライブ関係なんで
>すよね(分からない2)。それでももし僕にできる実験があったら、どうぞ遠慮
>なく言ってみてください。

お気遣いありがとうございます。自分の対応が悪かったのかも知れませんし、不具合に呆れて RCP から離れてしまったのかも知れませんし ^^;
まったく同じ動作環境を作れないので何とも・・・

ただ、ここでコマンドプロンプトがらみの問題が話題に出てきたので、そこら辺の影響も関係しているのかな?と気になった次第です。

【88】Re:Wild(32)の挙動?
 文太  - 2008/09/28(日) 13:31 -

引用なし
パスワード
   Siさん

> wild.exe(だけ)の不具合とは断定できないです。
>  正確には「有効な Win32 アプリケーションではありません」と云うメッセー
> ジも出ていました。

 うーん、でも16ビットアプリはばんばん普通に使っているのですけどね、僕
なんか。wild.com はここ2週間で30回くらいは起動してますが、cmd に意地
悪された(?)以外は−−はいはい、仕様なのね−−、まったく健康でした。
 じっさいのところ「アクセスが…」って、初めて見ました。リネームしただけ
で直ったり…???

>ttp://www.jpsoft.com/
> ちょっと覗かせて頂きましたが、日本語さえ不自由な自分には、さっぱり
> わかんにゃい。(/_;) ((c)文太)
> でした ^^;

 気にしないでください。 ほら、sed とか awk とかって日常的に使う人はワン
ライナーを頻繁に使うようなのですよ。そのときシェルの動きも熟知してないと
じゃないですか。 で、UNIX ならシェル・スクリプティングと混ぜて使うところ
なんでしょうが、Windows 環境だと色々な制限があるから、ああいう大仰なのに
頼ったりすることになる、ということのようです。僕も見きわめられてないです。
 もっとも「cmd の何が特殊か」を考えようとするときには、参照できるものが
あるといいかな、と。

>  Vista にも command.com があると云うのにはビックリしました。が、日本語
> が使えないとは更にビックリです。何なんでしょうね。

 ほんと何なんでしょう?

>  自分の対応が悪かったのかも知れませんし、
> 不具合に呆れて RCP から離れてしまったのかも知れませんし ^^;

 それはありませんよ。たぶん現象がうまく再現しなかったか、Siさんのところ
で再現させられないから…、ってところではないでしょうか。

・ツリー全体表示

【54】あれ?
 としき  - 2007/07/20(金) 21:33 -

引用なし
パスワード
   もしかして、掲示板になにか障害が起きたのでしょうか?

【55】Re:あれ?
 Si@管理人 WEB  - 2007/07/20(金) 23:56 -

引用なし
パスワード
   どうも申し訳ありません。

えー、色々ありまして

1.昨日深夜から本日にかけてアクセス出来なかった

この cgi を置いてあるサーバーに障害が発生(現在は復旧したようです)

2.ツリー表示・スレッド表示が一部おかしい

管理人がツリー情報(?)格納データファイルを削除してしまった。
で、ローカルにバックアップしておいたファイルを急遽アップしたが、
「【51】レス日付表示フォーマットの変更」を書き込んだ直後のバックアップだったので、当該スレッドのレス番 52〜53 が反映されていない。
その為ツリー表示・スレッド表示にするとレス番 52〜53 が表示されない。
(但し、新規レスは反映される・・・はず)

と云うことでツリー情報(?)格納データファイルの修復を行う予定ですが、たぶん日曜日まで時間が取れません。

ご不便をおかけしますがよろしくお願いいたします。

【56】ツリー情報データ修復終了
 Si@管理人 WEB  - 2007/07/22(日) 19:34 -

引用なし
パスワード
   お騒がせしましたが、

>その為ツリー表示・スレッド表示にするとレス番 52〜53 が表示されない。

の問題、題名の通り復旧完了しました。
ツリー表示、スレッド表示ともに正常になったかと思います。

#以下ちらしの裏です

この cgi の動作がいまひとつ(ふたつもみっつも・・・かな)理解できてなくて、ツリー表示出力などはその都度動的に実行されるのかと勝手に思っていたのですが、書き込みログ本体の変更がなければ静的に保存されたものが使われるようです。

管理画面からINDEX修復とかの操作が出来るようになっているのですが、このツリー表示についてはこれを実行しても駄目でした(ツリー情報は修復されないし、ツリー情報格納データファイルをいったん削除してしまうと自動的には再生成されない)。

結局、エディタで書き換えて差し替えるしかありませんでした。

・ツリー全体表示

【51】レス日付表示フォーマットの変更
 Si WEB  - 2007/07/15(日) 22:13 -

引用なし
パスワード
   日付の西暦年部分の表示を4桁に設定変更してみました
ついでに月日の部分も2桁(ゼロサプレス)に変更しました。

変更前 yy/m/d
変更後 yyyy/mm/dd

この書き込みは、実際に反映されたかどうかのテストも兼ねています。
(過去のレスには反映されないみたいです。何か方法があるのかも知れませんが・・・)

指摘を頂いたvafee さんのレス↓
see http://dmz.xrea.jp/dahlia/bbs/cb/c-board.cgi?cmd=one;no=43;id=0001

【52】Re:レス日付表示フォーマットの変更
 としき  - 2007/07/16(月) 12:46 -

引用なし
パスワード
   >ついでに月日の部分も2桁(ゼロサプレス)に変更しました。

「ゼロサプレス *なし*」
に変更されたという事ですよね。

>(過去のレスには反映されないみたいです。何か方法があるのかも知れませんが・・・)

これは、掲示板スクリプトの作りと、蓄積済みのログデータの構造によります。
私のところで使っている掲示板スクリプトでも、同じ問題が出ました。
私の場合は、ログデータを全て書き換えるという方法で解決しました。
データの個数も大したことがたかったので、Vzで一括置換で終りでしたが。


私の経験談↓
http://www.hinocatv.ne.jp/~toshiki/computer/itabei/timestamp.html

【53】Re:レス日付表示フォーマットの変更
 Si WEB  - 2007/07/16(月) 13:29 -

引用なし
パスワード
   ▼としきさん:
>「ゼロサプレス *なし*」
>に変更されたという事ですよね。

お久しぶりです。うわー、ひょんなところで無知をさらけ出してしまいました。
<Blockquote>
「指定した桁数まで先頭を0で埋める」という逆の意味に取り違えている人が多いので注意が必要である。
</Blockquote>
see http://ew.hitachi-system.co.jp/w/E382BCE383ADE382B5E38397E383ACE382B9.html

書き間違いではなく、まさにここに書かれている「逆の意味に取り違えている人」でした ^^;

>私の経験談↓
>http://www.hinocatv.ne.jp/~toshiki/computer/itabei/timestamp.html

拝読させて頂きました。私も西暦は4桁表示が好きなのですが、ここはなにぶん過疎っているもので2桁表示になっているのを今回まで気付きませんでした ^^;

実はちょうど同じことを考えてまして、データファイルを置換していたところで、としきさんのレスが追加されていたのでこれも加えて入れ替えてみました。

#ツリー表示はこれもデータを書き換えないと駄目みたいです。しばらく様子見。

・ツリー全体表示

【40】WindowsXPでWeb掲示板オフラインリーダー m...
 vafee WEB  - 2007/07/14(土) 0:52 -

引用なし
パスワード
   DELL ノートパソコン Inspiron 1501 を購入して、環境を整備中です、LOOXのWinXP環境ではmamimi Ver0.3093は順調に動作していたのですが、Inspiron 1501では動作が不安定です。

不安定と言うかデュアルCPUの両方を100%使用してhtmlファイルをダウンし続けます、一晩そのままにしたら120GBの領域を食いつぶしてしまいましたヾ^^;;

TPLファイル他環境は全く同じなんですが何ででしょうかね、もう少し調べてみます。

ちなみにwinXP環境で動作するにはここのサイトが参考になります。

まみみぷらぐいん&てんぷれ〜と(非公式)
http://www.geocities.co.jp/AnimeComic-Ink/4360/mamimi/

【41】Re:WindowsXPでWeb掲示板オフラインリーダー...
 Si  - 2007/07/14(土) 12:49 -

引用なし
パスワード
   ▼vafeeさん:
>不安定と言うかデュアルCPUの両方を100%使用してhtmlファイルをダウンし続けます、一晩そのままにしたら120GBの領域を食いつぶしてしまいましたヾ^^;;

同じ Ver0.3093 を Inspiron6000 で試していますが、巡回動作についてはとりあえずこちらではこの現象は出ないで、特に問題なく正常にログ取得、変換終了します。

OS は XPのSP2 ですから同じですよね(うちは Pro ですが)。

環境面で大きな相違は CPU が intel(PentiumM) か AMD(Turion 64 X2)か、ってとこだと思いますが、何のソフトか忘れましたが、AMD だとうまく動作しない市販ソフトがあるって話しをどこかで見かけた気がします ^^;

あと、例のDLL はどうされてます?一応用意はしましたけど必要なさそうなので、うちでは何もしてません。
R*32.DLL XPデフォルトのものを使用
G*32.DLL どこにも入れてない。
    (VB6のランタイムが VC6 で開発されたアプリに必要なのかしら・・・)

>まみみぷらぐいん&てんぷれ〜と(非公式)
>http://www.geocities.co.jp/AnimeComic-Ink/4360/mamimi/

ブログにも書かれてますね、チェック済みですよん。

巡回動作ではなく気になったところ。

レス本文表示ペインにマウスポインタを動かすとマウスポインタが矢印から「|」みたいな形状に変わりますが、この状態で一度でもクリック動作をするとマウスの動作がおかしくなる。
他のペインにポインタを動かしても矢印に戻らない。メニューなどをクリックしても無反応。ただし、他のアプリケーションを一度アクティブにしてから mamimi に戻ると正常な状態に戻る。
と云う変な動作があります。

【42】Re:WindowsXPでWeb掲示板オフラインリーダー...
 Si WEB  - 2007/07/14(土) 13:30 -

引用なし
パスワード
   ▼Siさん:
>R*32.DLL XPデフォルトのものを使用
>G*32.DLL どこにも入れてない。

と書いておいて早々ナンですが ^^;
試しにこの2つを入れてみたら元レスの最後に触れた「気になったところ」は解消しました。ちなみにシステムフォルダではなく mamimi.exe のあるディレクトリに置きました。

もうひとつ訂正あるいは追加情報。
巡回後の html 変換中は確かに CPU 使用率が 100% までいきますね。しばらく放置しておいて変換終了が出ると下がりますが。

と云うことで勝手な憶測ですが、巡回(html取得)動作ではなく巡回後の変換動作でおかしくなってしまっている可能性はありませんか?

【43】Re:WindowsXPでWeb掲示板オフラインリーダー...
 vafee WEB  - 2007/07/14(土) 20:04 -

引用なし
パスワード
   >試しにこの2つを入れてみたら元レスの最後に触れた「気になったところ」は解消しました。ちなみにシステムフォルダではなく mamimi.exe のあるディレクトリに置きました。

この方法で安定したようです、今までもシステムフォルダに入れておかなかったのかもしれませんヾ^^;;

で、この掲示板が変換できなかったので見直しました、ただし日付の取得が正確ではありません、「07/07/14」が「2007/07/07」になってしまいます、年表示を4桁に出来ないのでしょうか?

[mamimi template]
Name=Si 3
Http=http://dmz.xrea.jp/dahlia/bbs/cb/c-board.cgi?cmd=thr;id=0001
Home=http://mcgi2.nifty.ne.jp/cgi-bin/thread.cgi?user_id=PXI02360
Style=10
Delim=CTNDBRCTNDB
DateStyle=2
NextPage=次のページ
MesStart=style="font-size: 10pt">
NameStart=]">
NameEnd=
</span>
DateStart=<span class=AllDate>&nbsp;-
DateEnd=(
BodyStart=<span class=AllBody>
BodyEnd=</span></td>
CountStart=<span class=AllSubject>
CountEnd=】
TreeDelim=<table border=0 cellspacing=0 cellpadding=0 bgcolor="#
TitleEnd2=</b></span>
NameStart2=]">
NameEnd2=
</span>
DateStart2=<span class=AllDate>&nbsp;-
DateEnd2=(
BodyStart2=<span class=AllBody>
BodyEnd2=</span></td>
CountStart2=<span class=AllSubject>
CountEnd2=】
SendHttp=http://dmz.xrea.jp/dahlia/bbs/cb/c-board.cgi
SendName=nm
SendEmail=email
SendSubject=subject
SendPage=web
SendPwd=passwd
SendValue=msg
SendRes=ref
SendOther=user_id=GBF02013&rpy=0&exp_date=10&msg_per_page=10&max_flg=0&def=10


【44】Re:WindowsXPでWeb掲示板オフラインリーダー...
 vafee WEB  - 2007/07/14(土) 22:09 -

引用なし
パスワード
   うう、自動巡回の設定を1時間で行っているのですが、ちょいと目を離している内にまた大量にhtmlファイルをため込み始めました、一旦終了させて、一個一個巡回すれば大丈夫なんですが。。。。。

ただ、htmlをため込んでいるサイトが価格.COMなのでTPLファイルを見直しすれば直るかもしれません、それにしても以前は問題が無かったのだけれどなぁ。

【46】Re:WindowsXPでWeb掲示板オフラインリーダー...
 Si WEB  - 2007/07/15(日) 2:34 -

引用なし
パスワード
   ▼vafeeさん:
>ただ、htmlをため込んでいるサイトが価格.COMなのでTPLファイルを見直しすれば直るかもしれません、それにしても以前は問題が無かったのだけれどなぁ。

価格.com の html記述が変わったと云うことはないですか?
もし、LOOK がまだ使えるなら同じ .tpl でどこか最近の掲示板を巡回させて見る、と云うのも何かヒントになりません・・・かね

価格.com 用の .tpl は vafeeさん作のと別のを持ってますが試してみます?

【47】Re:WindowsXPでWeb掲示板オフラインリーダー...
 vafee WEB  - 2007/07/15(日) 11:22 -

引用なし
パスワード
   >価格.com 用の .tpl は vafeeさん作のと別のを持ってますが試してみます?

別なのって何処かに公開されていたのですか?是非下さい、でも価格.comだけでは無く、再起動すると全部ちゃんと巡回できるのですが、二度目以降だと駄目って言うのが良く解らない。。。。。

【48】Re:WindowsXPでWeb掲示板オフラインリーダー...
 Si WEB  - 2007/07/15(日) 13:18 -

引用なし
パスワード
   価格.com 用 .tpl、着払いでお送りしました ^^;

>再起動すると全部ちゃんと巡回できるのですが、二度目以降だと駄目って言うのが良く解らない。。。。。

もし自動的に定期巡回させているのでしたら、前回巡回後の変換作業に時間がかかり完了しないうちに次の巡回動作がスタートしてしまっているとか、ってことは・・・ないですよね?

mamimi は起動しっぱなしにしておいて、手動モードで定期巡回、を試してみても変わりませんか?

ここの日付表示の件、管理画面に入ってみましたがカスタマイズするところが見つかりませんでした。

参考情報を探そうと配布元のスカリーソフトさんのサイトにアクセスしてみたら、いつの間にか closed になってました。
cgi のソースをいじるのかな?もうしばらく時間を下さい。

【49】Re:WindowsXPでWeb掲示板オフラインリーダー...
 vafee WEB  - 2007/07/15(日) 14:21 -

引用なし
パスワード
   >価格.com 用の .tpl は vafeeさん作のと別のを持ってますが試してみます?

頂いたtplで安定しました、やはり解析の違いでしょうか、但しこのtplは最初の1ページsか取得できませんがどうですか?

新規掲示板はまずは、当方のtplで全ページ取得した後にSiさんのに切り替えて使うこととしますm(__)m

【50】Re:WindowsXPでWeb掲示板オフラインリーダー...
 Si WEB  - 2007/07/15(日) 16:37 -

引用なし
パスワード
   ▼vafeeさん:
>頂いたtplで安定しました、やはり解析の違いでしょうか、但しこのtplは最初の1ページsか取得できませんがどうですか?

あー、ごめんなさい。最初の1ページと云うか親コメントだけしか取り込まないですね。

実際に巡回しているクチコミの設定を確認してみたら、使用しているのは vafee さん版でした ^^;
うちはいまのところ vafee さん版で問題なしです。

【45】Re:WindowsXPでWeb掲示板オフラインリーダー...
 Si WEB  - 2007/07/15(日) 2:28 -

引用なし
パスワード
   ▼vafeeさん:
>この方法で安定したようです、今までもシステムフォルダに入れておかなかったのかもしれませんヾ^^;;

R*32.DLL とかってXP用の同名ファイルがシステムフォルダにありますよね。そう云う異なるバージョンのファイルを使いたい場合、OS標準のものを上書きしたくないので、それを必要とする実行ファイルと同じディレクトリに置くようにしてます。

>で、この掲示板が変換できなかったので見直しました、ただし日付の取得が正確ではありません、「07/07/14」が「2007/07/07」になってしまいます、年表示を4桁に出来ないのでしょうか?

ん?前に作って頂いて公開された .tpl でも変換できてます ^^;
が、確かに日付が変ですね。明日でも(あ、もう今日ですね)設定を見直してみます。

・ツリー全体表示

【35】RCP32のメッセージ
 文太  - 2007/01/28(日) 1:04 -

引用なし
パスワード
   Siさん

 すっかりご無沙汰してしまっていました。掲示板引っ越しの際には、小耳には
さんでいたにもかかわらず、お祝いを言いそびれてしまい失礼いたしました。

 さて、RCP32 のことなのですが、コンソールに出されるメッセージを残す方法
はないものだろうか、と随分前から思っているのです。とりわけディレクトリ再
帰でアップデート・コピーをしたときにはあの情報がみたいのですが、僕が試し
た方法ではかないませんでした。100以上のファイルを対象にすることが多い
ものですから、あの情報が遡って見ることができないのはとても残念なのです。
「どれがアップーデート・コピーされた」ということを知りたいわけです。

 標準エラーのほうに出しているのかと 2> などと試してみたのですが、駄目で
した。

 何とかする方法はないものでしょうか。もちろんvzから使用しています。ご教示
いただければ幸いです。

【36】Re:RCP32のメッセージ
 Si@管理人  - 2007/01/28(日) 11:36 -

引用なし
パスワード
   ▼文太さん:
> 標準エラーのほうに出しているのかと 2> などと試してみたのですが、駄目で
>した。

こちらこそご無沙汰です。動作中のメッセージですが stdout へ出力しています。ですので普通にリダイレクトすればファイルに落とせるはずなんですけど・・・。

ex) rcp32 *.* d:\bak > d:\log\log.txt

バージョンによって出力先を変えていたかな?
rcp32 /ver
でどうなりますか?いま自分が確認したものでは、

expand rename & copy RCP32 v2.18β4 (WIN32) 1999-2004 (c) by Si
RCP32.EXE v2.18β4 (WIN32) $ compiled at Feb 15 2004 16:27:31 $

です。

> 何とかする方法はないものでしょうか。もちろんvzから使用しています。

ここがちと気になるのですが、VZ のコンソールって普通のリダイレクトとか使えましたっけ?現在使ってる PC には VZ を入れていないので自分ではすぐに検証できないでいます ^^;

【37】Re:RCP32のメッセージ
 文太  - 2007/01/28(日) 15:47 -

引用なし
パスワード
   Siさん、ほんとご無沙汰してしまって。m(__)m

 その上、こんなに即レスをいただけて。m(__)m

C:\>Rcp32 *.def a:\ >c:\msg.txt

Reading dir(s) .....
C:\ --> A:\
 C1.DEF
 C3.DEF
 DELHIS.DEF
 KANARI.DEF
 M1.DEF
 M2.DEF
 MACROTMP.DEF
 OR_PIPE.DEF
 Z2.DEF
    9 File(s) found
    9 File(s) copied

 なんだぁ、できたんだ。前試したとき…。まま。
 (明らかにもう忘れていそうですが)すぐさま、Vzファイラを以下のように
修正しました。

    "Q Update copy    %!%^rcp32 %[/s] /u %@1 %2%\ >msg.txt"

 いやあ、これ、助かります。200ファイルぐらいでアップデートすると、3
2ビットアプリのコンソール参照ができないVzでは、流れてしまって、流れて
しまって。(200個といっても、対象が200個で、実際にコピーするのは2
0個ぐらい)。

 助かりました! RCP、まだまだ現役ですよ〜(当たり前か)。Vz、汗、
現役。
 XPです。ビスタが来るまで(来てもだけど)、まだまだ〜。

 因みに、
Reading dir(s) .....
   ^ これ、Vzで開けて直してしまいました。うう、愛おしい。m(__)m


 今時(といってもその手の新刊本もかなりあるのですが)、アセンブラに手を
出してしまっています。それで少ーしはプログラミングの仕組みが分かって大胆
になってしまい、それで実行ファイルの書き換えを平気でやってしまったのでし
た。廃人一歩手前なのかも。

RCP32.EXE 104,448 2007-01-10 14:23
 う、タイムスタンプが変わってるんだ。最新版のはずです。

 今、落とさせていただいて確認しました。
RCP32.EXE 104,448 2004-02-15 02:18
version 2.18β4
 ファイルサイズが同じなので、最新です。すいません、勝手にタイムスタンプ
進ませてしまって。戻しておきます。

 些末なことだし、 もしかしたら不快かもしれないのですが m(__)m、サイトの
ホームページでのスペリングのことなのですが、

My Original Tools
  ^
 が正しいですぅ。

【38】Re:RCP32のメッセージ
 Si@管理人  - 2007/01/29(月) 0:09 -

引用なし
パスワード
   ▼文太さん:
> なんだぁ、できたんだ。前試したとき…。まま。

解決して良かったです。

あの処理状況の画面表示、さあーっと流れてしまうので職場で使っているバッチファイルの中でもログファイルに落としてしまっています。特に skip ファイルの表示とかは、自分でもあまり意味無いかなと感じていまして、デフォルトで外してしまおうかなとか思っています。まあ、そのうち、ですけど・・・

> 今時(といってもその手の新刊本もかなりあるのですが)、アセンブラに手を
>出してしまっています。それで少ーしはプログラミングの仕組みが分かって大胆

すごいですね。アセンブラはコンパイラも解説本も持ってますが結局スキル不足で挫折しました。

>My Original Tools
>  ^
> が正しいですぅ。

う。早速トップページを直しました。試しに Oliginal でググると結構ヒットしたのにはびっくりです(786件)。

Readind は・・・直さないといけないですねえ ^^;

【39】Re:RCP32のメッセージ
 文太  - 2007/01/29(月) 12:02 -

引用なし
パスワード
   Siさん

> 解決して良かったです。

 いえいえ、そもそも問題がなかったことを作者様からじきじきに教えてもらえる
なんて…。ただただ感謝です。

> 特に skip ファイ
> ルの表示とかは、自分でもあまり意味無いかなと感じていまして、デフォルトで
> 外してしまおうかなとか思っています。まあ、そのうち、ですけど・・・

 そうですね、skip ファイルは…。
 それでも1画面に収まる程度だと「ちゃんと比較してくれた」とか、安心感は
あります。200個も対象にすると、サブディレクトリの構成やファイル配置が
正しいのが確認できてよい、などの利点もあるにはありますが。

>  すごいですね。アセンブラはコンパイラも解説本も持ってますが結局スキル不
> 足で挫折しました。

 いえ、Vzマクロのせいです。「異セグ関係でポインタじゃ辛い」というのが
発端なのですが、マクロの部分があるからマシン語がありがたいのです。マシン
語だけだと実用になるのが大変だし。つまり、マシン語としては超単純なことし
かやってないわけですね。
 Vzというシステムが少し分かって楽しい、というのありますね。

>  う。早速トップページを直しました。試しに Oliginal でググると結構ヒット
> したのにはびっくりです(786 件)。

 さすがに少ないなぁ。汗。似た話題で、comming vs comingというのがあり、
前者(間違い)の数ときたら!!!

>  Readind は・・・直さないといけないですねえ ^^;

 ま、そのうちに。m(__)m

・ツリー全体表示

【20】正式オープン
 Si@管理人  - 2006/08/15(火) 22:56 -

引用なし
パスワード
   テスト運用していたこちらの掲示板ですが正式にオープンすることにしました。
これで OTD 掲示板から移行します。
S's ROOM からのリンクも変更しました。
よろしくお願いします。

【22】祝・正式オープン
 めざら WEB  - 2006/08/16(水) 8:53 -

引用なし
パスワード
   正式オープン,おめでとうございます。

ところで,こちらは特定のテーマはないということでよろしいのでしょうか。

(…と言っても,ネタ振りをできるわけではありませんが。(^^;)

【24】Re:祝・正式オープン
 Si@管理人  - 2006/08/17(木) 0:31 -

引用なし
パスワード
   ▼めざらさん:
>正式オープン,おめでとうございます。

ありがとうございます。これもみなさまのおかげです。

>ところで,こちらは特定のテーマはないということでよろしいのでしょうか。

はい、前の OTD 掲示板もフリートークの場になっていたので、こちらも特にテーマはいまのところ考えていません。

ただ、この C-BORAD は好きなように掲示板を増殖出来るので、サポート専用と総合(フリートーク)みたいのとに分けても良いかな、とは思っています。まあ、過疎るのは一緒なので ^^;

# 投稿時に「等幅」にチェックを入れるとブラウザで表示される時のフォントが変わりますね。うちの環境だけかな?

【28】Re:祝・正式オープン
 めざら WEB  - 2006/08/20(日) 19:19 -

引用なし
パスワード
   ># 投稿時に「等幅」にチェックを入れるとブラウザで表示される時のフォントが変わりますね。うちの環境だけかな?

 「等幅」にした投稿のテキストエリアは tt 要素で括られる関係で,一般的なブラウザならテレタイプフォント(MSゴシックなど)が使われるからですね。MSPゴシックなどのフォントと比較すると,文字形は変わりませんが文字幅が変わります。句読点や「く」などの部分で幅に差が出てきますね。一番分かりやすいのは英数字でしょう。

【29】Re:祝・正式オープン
 めざら WEB  - 2006/08/20(日) 20:02 -

引用なし
パスワード
   あ,そういう意味じゃなくて,例えば通常はゴシックなのに等幅の方が明朝体に変わるという場合は,ブラウザの設定だと思います。
firefox:オプション−コンテンツ−フォントと配色−詳細設定
MS-IE:インターネットオプション−全般−フォント

【30】Re:祝・正式オープン
 Si@管理人  - 2006/08/20(日) 23:01 -

引用なし
パスワード
   恥ずかしながら<tt>タグというものを初めて知りました ^^;
この所為でしたか。

>あ,そういう意味じゃなくて,例えば通常はゴシックなのに等幅の方が明朝体に変わるという場合は,ブラウザの設定だと思います

いや、それ(通常はゴシックなのに等幅の方が明朝体に変わる)はないです。

ただ、同じスレッドの中で非等幅(?)と等幅で投稿したレスが混在するとフォントが統一されなくて読みづらい感じがするかな?と、気になりましたもので(と言っても等幅指定したりしてるのは自分だけですけど)。

自分は Firefox 使いなのですが、めざらさんの書き込みを拝見して設定を確認してみたら、

Proportional = Sans Selif
Selif      = MS UI Gothic、Sans-Selif  = MS UI Gothic
Mono Space = MS ゴシック

としてあったので、Mono Space も MS UI Gothic に設定を変えてみたらフォントによる表示の違和感はなくなりました。

なんだか自分の無知にお付き合いさせてしまってすみませんでした。でも大変参考になりました。

【31】Re:祝・正式オープン
 めざら WEB  - 2006/08/22(火) 20:33 -

引用なし
パスワード
   >としてあったので、Mono Space も MS UI Gothic に設定を変えてみたらフォントによる表示の違和感はなくなりました。

 い,いや,それはちょっとマズいんではないでしょうか。(^^;

 monospace は等幅を意味していますので,その指定に MS UI Gothic のようなプロポーショナルフォントをもってくるのは,serif にゴチを指定したり,sans-serif に明朝を指定するのと同じくらい変だと思います。(^o^;

 基本的にインデントのあるプログラムコードやアスキーアートみたいに桁位置が問題になるような場合にのみ等幅にチェックを入れることとして,それ以外はわざわざ等幅にチェックを入れる必要がないということになると思います。

 余計なことですが,c-boardって表示は格好よいけれど,ソースはちょっと…ですね。

【32】あっ(^o^;
 めざら WEB  - 2006/08/22(火) 20:38 -

引用なし
パスワード
   >Selif = MS UI Gothic

 せ,selifにゴチ! (^^;
 この指定,ほんとですか???

【33】あっ(^o^; Pt.2
 めざら WEB  - 2006/08/22(火) 20:41 -

引用なし
パスワード
   そもそも,selif ではなくて,serif でした。
続けてゴミ撒きしてごめんなさい。

【34】Re:あっ(^o^; Pt.2
 Si@管理人  - 2006/08/24(木) 7:49 -

引用なし
パスワード
   なんだか変態ぶりを晒してしまったようで恥ずかしい限りです。

MS UI Gothic は一番見やすくて好きなフォント(あくまで Windows 付属のフォントの中で、と云う限定でですが)なので何も考えずに使ってた訳ですが・・・もちっと考えて使うようにしてみようかな。「等幅」の用途も良く分かりました。

> 余計なことですが,c-boardって表示は格好よいけれど,ソースはちょっと…ですね。

そ、そうですか。ソース自体ははじっくり見たことないので(見ても分からない)、まあ利用上問題なければ良いかな、と ^^;

・ツリー全体表示

1 / 2 ページ 前へ→
ページ:  ┃  記事番号:
14,033
(SS)C-BOARD v3.8 is Free