一括表示

− 野ざらし言 −

[4938] VWXのbugと対処マクロ

文太 2022/08/15(Mon) 17:27
 (マクロ、1か所、修正しました)

 たぶん、皆さんご存知で、何かうまい方法で対処されていると思うのですが、
正規表現「$」で「^M」(CR)がよく付くんですよね。付かない場合もあるみたい、
という感想だったのですが。

 まず

bb
bb

 なんてのを行ブロックして、置換で「\x $」-->「00」としてみてください。

bb00
bb^M00

 とか、かなりの確率でなりますよね?

 僕は、嫌だなぁ、もう、またかよ、と30年ちかく手で消してきました。
 で、マクロイドな時代を思い出し(ノスタルジーモードで)、以下のマクロを
書きました。キーアサどうする? 手で消したほうが速くない? とも考え込んで
いますが。

 以下のマクロ、何か問題ありますでしょうか?
 あるいは、こうしてる、この道具使ってる、など、お教えいただければ幸い
です。万が一、「出ないよ、そんなの」と言われると、すごく困るのですが。

=== del_CR by B ===; delete Carriage Return (\r)
* M
50 ^OD "del_cr"

	?. (cm==56) ??.
	&s
	n=ln, #B			;reblock
	(ln==n) #B ? mb=2, ? mb=1, 

	#56 "\r" #m ""   #m "AY"	;del \r (CR) by zero replacing
					; but now we have \l's !!
        #56 "\l" #m "\n" #m "AY"        ; so LF --> CRLF

	mb-, &d .

*

 としきさん、色々と刺激をもらっています。m(__)m
 saki...さん、ま、こんなものです、昔から。m(__)m

[4940] Re: VWXのbugと対処マクロ

めざら 2022/08/16(Tue) 07:36
[4938]へのコメント http://mezala.la.coocan.jp/
期待される反応ではないと思いますが,
そもそも,何故,正規表現(牛刀)が必要ない場面で敢えて使うのでしょう。
これ,\n → 00\n(ペティナイフ)で十分ではないですか?

このへんは,RX+ がデフォルトのとしきさんにも訊いてみたいです。

[4942] Re^2: VWXのbugと対処マクロ

文太 2022/08/16(Tue) 13:59
[4940]へのコメント
 以下など、わりと常用なんですよねぇ。

--------------------
aaa
bbb
ccc


zzz
--------------------
<Vz operation; replacement w/ VWX>

"\x \(.+\)"
↓
"\1	;"	;tab

--------------------
aaa	;
bbb	;
ccc	;


zzz	;	; ^M born !!
--------------------

 それでも、ペティナイフ作戦で逃げられる場合もあるぞ、というのは
発見でした。ありがとうございます。

[4944] Re^2: VWXのbugと対処マクロ

としき 2022/08/17(Wed) 01:23
[4940]へのコメント http://toshiki.la.coocan.jp/
> このへんは,RX+ がデフォルトのとしきさんにも訊いてみたいです。

えと、何をお答えすればいいやら。
確かに私、デフォルトで OPT:CZX です。
ただ、正規表現を駆使するような場合、私はsedやawkに逃げています。
Vzでは、どんな正規表現が使えるか把握していない、というのも理由です。
なので、Vzで使っているのは、検索では .*^$ ぐらい。
置換では何を使っていたか、ぱっと思い出せないくらい。
確か、昔はタグつき正規表現も使っていたはずなんですけどねぇ。

ということで、私も今回の案件なら、タッチナイフを使う感じかなぁ。

[4946] Re^3: VWXのbugと対処マクロ

めざら 2022/08/17(Wed) 08:21
[4944]へのコメント http://mezala.la.coocan.jp/
え〜〜,正規表現ほぼ使わないのに RX+ ……てことですか?

画期的!
ターボ機能つきの車で安全運転に徹するようなことか……
料理の達人は包丁を選ばない
弘法も筆を選ばない
炊飯器でホットケーキも上手に焼ける

うん。あるある!! あるよ。




ほえ。

[4948] Re^4: VWXのbugと対処マクロ

としき 2022/08/17(Wed) 13:14
[4946]へのコメント http://toshiki.la.coocan.jp/
> え〜〜,正規表現ほぼ使わないのに RX+ ……てことですか?

少なくとも、昔は今よりは駆使していたんですけどね。
でも、今でも少しは使っているわけで。
なので、おそらく、RX- にすると、しっかり正規表現を使って検索に引っかからなくなって「あれぇ〜?」って事になる可能性が非常に高いかと。

> 料理の達人は包丁を選ばない
> 弘法も筆を選ばない
> 炊飯器でホットケーキも上手に焼ける

弓を使わない弓の達人の話もありましたが。
そういう域に達したい、という気もしなくもない。
無理だけど。

[4943] Re: VWXのbugと対処マクロ

としき 2022/08/17(Wed) 01:22
[4938]へのコメント http://toshiki.la.coocan.jp/
> 正規表現「$」で「^M」(CR)がよく付くんですよね。

確かに付きますね。知らなかった。こんなバグがあるんだ。
これって、文太さんが気づかれたのですか?
それとも、昔から話題になっていました?

[4947] Re^2: VWXのbugと対処マクロ

文太 2022/08/17(Wed) 11:58
[4943]へのコメント
 第一発見者であることを、自負しているわけでも確信しているわけでもありませんが、以下にはないようですね。

FGALDC 15 #10141 98/05/11 VWXバグ集 by Emmett

 バグって、その存在に気づかないでいられれば、それが幸福なんだよなぁ、と思っています。
 この手のソフトの作者って大変だなぁ、とも。

 ただ、sed のメジャーバージョンでは、世界中から指摘が入る。いつまでも。しかし、UNIXからWindows(DOS)へ、英語から日本語へ、でまた入る可能性がある。
 昨今では、昔、YASATさんがVzに関して指摘していた、文字コード。これがほんと大きいですね。「perlのスクリプトは、UTF-8で作ること」(最近)だって。しばらくjperlです。WinMEだと、jperl4 for win が完璧に動きます。VTDOSだと変。CMD窓@Win7 (32bit)は、色々あるので、試さず。

 Strawberry Perlが導入楽です。32bitがまだあります。Active Perlは旧版がないばかりか、64bit version しかない……。
 秀丸のPerl-likeな正規表現で置換しよう! となっています。マクロを覚える気はありませんが。
 詳細はわからないのですが、皆さんが掲示板を運営するとき、*.cgiを管理するとき、perlをお使いなんですよね。それは、ずっと昔の版のままなのですか? S-JISでスクリプトOKなの?

[4949] Re^3: VWXのbugと対処マクロ

としき 2022/08/17(Wed) 13:25
[4947]へのコメント http://toshiki.la.coocan.jp/
>  以下にはないようですね。
> FGALDC 15 #10141 98/05/11 VWXバグ集 by Emmett

なるほど。
その時代以降なら私もDCに参加していて、そして今回のような問題に言及された記憶もないので、やはり文太さんが高い確率で第一発見者かと。


>  詳細はわからないのですが、皆さんが掲示板を運営するとき、*.cgiを管理するとき、perlをお使いなんですよね。それは、ずっと昔の版のままなのですか? S-JISでスクリプトOKなの?

改行コードについては、結構うるさいことを言われますけどね。
文字コードのほうは、S-JISでもOKはOK。
ただし、サンプルスクリプトそのままではダメで、文字コード関連で手を加える必要がある場合もあります。
この辺、昔、konnoさんのところに書いた記憶がある。
えぇと、あぁ、あった。konnoさんのところのNo.7764ですね。

[4950] Re^3: VWXのbugと対処マクロ

めざら 2022/08/17(Wed) 13:48
[4947]へのコメント http://mezala.la.coocan.jp/
>  バグって、その存在に気づかないでいられれば、それが幸福なんだよなぁ、と思っています。

ええ。だけど,としき兄は気づいてしまった……というのが別スレッドの話。
多種の要素が単純に連結され,えらく長い論理行で構成されるファイルなんかを扱うときは,VZは勧められないということが判明する以前なら,気づかないまま幸福にやり過ごしていたのでしょうけど。

でも,ここを見てる人たちも,状況に応じてエディタなりツールを使い分けていることも分かって一安心というところです。

>  それは、ずっと昔の版のままなのですか? S-JISでスクリプトOKなの?

「この」掲示板は SJIS ですね。内向きでログも閉じられてるから,特に変える必要もないと思いますし。もしも,外に向かって何か処理(例えば他所のウェブツールに 向かって引数に漢字を含む URI などを投げて結果を受け取るとか)をするのであれば,UTF-8でないと通らないと思われます。(一度 javascript でハマった経験あり)

ASCII だけなら何が変わるというわけでもないと思いますけど。
そもそもプログラムのコードって基本ASCIIだからふつうに動くかと。

[4951] Re^4: VWXのbugと対処マクロ

文太 2022/08/17(Wed) 22:29
[4950]へのコメント
としきさん、めざらさん

 まず、VWXの件については、ご確認ありがとうございました。
 そんな使い方をして沼にはまっていたのは、僕だけだったようだ、というのが少し驚きでした。僕は、前にも書きましたが、20年以上、これと付き合ってきました。ただ、テキストバッファがどう(Vz)、パターンスペースがどう(Sed)とか、わりと考えながら、ここのところHDの整理をしていたので、今回は、「$」のときに出るのね、と詰められました。目の前の作業に夢中になっているときには、発現条件とか真剣に考えたことがなかった。20年、30年?

 Perl。そうなのか、内に閉じていれば、か。僕も(僕はもっと)内に閉じた「テキスト処理」+αなのですが、Perl4では、あの強力な正規表現が使えん! となっていて、やっぱ、日本人作の正規表現エンジンということで、ま、秀丸、と少し真剣に付き合うか、近道だぞ、と考えています。
 \d{5} == [0-9][0-9][0-9][0-9][0-9]が、十分美しいだけなのですが(つい最近、使いました。もっとずっとずっと長いよ)。コマンドラインから溢れてんの。もちろん、[0-9]+としました。「5回って決まってるんですけど。けっ」とかもらしながら。

 Perlは、うーん、日本語を含めたテキスト処理+OSシステム(シェルスクリプティング?)回りなので、どうなのかなぁ。『Perlの国へようこそ』(初版、Perl4対象)がたまたま出てきたので、ある程度……。(注)
 Strawberry Perlでも、UTF-8はともかく、日本語の正規表現? という感じです。まずグレップ、そしてSED相当のことができるようになりたい。dirlistもできる。同じことだけど、ディレクトリ再帰(リカーシブ)もいける。
 このファイル名、ディレクトリ構造みたいなのは、僕は20年こだわってきたテーマみたい。HD中の過去の残骸をみて、笑いました。いつもそこにこだわっている。

 掲示板の裏側について、お教えいただきありがとうございました。
 konno掲示板での、としきさんの「マッシュポンプ」(?)話、いやぁ、単語は一部聞いたことあるけど、じつに知らない外国語でした。
 改行ですね。ええ、Jperl4(16bit=DOS, 32bit=Win。元は同じserow版)がVTDOSでこけてたのも、そのあたりでした。OSの中がUNICODEで動いているから、とか関係してるんですかね。窓上アプリでないとつらいご時世ですねぇ。秀丸かぁ、という感じ。でも、それが素直、それが初心者。
 話が長くて申し訳ありませんが。Win9xって、「dosの上でwindowsってアプリが動いてるんだよ」って言い方のとおり、dosなんですよね。だから、日本語dos用Jperl4が素直に動いて、当たり前なんだ。

(注)あまり関係ありませんけれど。アスキーのsedに興味はないけど、『MS-DOSを256倍〜』vol.3は、いい本です。SedとMakeを扱っていて、少なくともSed解説は秀逸です。そう、Nコマンド。すべてはそこから始まる。福崎さん(著者)、さすがにキモをおさえてる。ちょっとエッチで下品な昭和のノリ。伝説の名著『Sed & Awk』の訳者さんです。
 Makeのところも、そのうち読むよぉ。

 一生懸命、言い訳する必要もないでしょうけど、全部、正規表現つながりでした。

[4954] Re^5: VWXのbugと対処マクロ

としき 2022/08/18(Thu) 19:31
[4951]へのコメント http://toshiki.la.coocan.jp/
>  \d{5} == [0-9][0-9][0-9][0-9][0-9]が、十分美しいだけなのですが

そういえば、かつてニフティのログをいじっていた時代は、[0-6][0-9][0-9][0-9][0-9]という系統の正規表現をVzの検索窓に入れていました。
懐かしいなぁ。


>  konno掲示板での、としきさんの「マッシュポンプ」(?)話

微妙になんか混ざっている。
とりあえず、私自身でマッチポンプ、というのは認めたうえで。
当時、あそこで話されていたのはマッシュアップ。
ほとんどコンピュータ業界の用語だと思っていましたが、10#さんによれば元は音楽業界の用語だったらしいので、図らずも文太さんや私は、現代の音楽シーンにも疎い、ということが露呈されてしまったという感じ。


>  Makeのところも、そのうち読むよぉ。

Makeって、名前がアレですが。
基本は、タイムスタンプを基にほげほげする、というソフト。
なので、かつては、更新ファイルのみバックアップする、というようなことに使っている人も多かったのですが、今はバックアップソフト自体にタイムスタンプ判別機能がつくようになったので、バックアップに使っている人なんてほとんどいないでしょう。
そのほかにも、タイムスタンプ比較で何かのツールを起動する、なんて場合、起動される側のツールにタイムスタンプ比較機能が搭載されることが多いので、今ではかつてに比べて使われることがかなり少なくなったと思います。
ん〜、バッチファイルなら、まだいけるかなぁ。

[4955] Makeとか

文太 2022/08/18(Thu) 20:13
[4954]へのコメント
としきさん

:A
>そういえば、かつてニフティのログをいじっていた時代は、[0-6][0-9][0-9] ...
 じつは先日、いじりました。FGALTS(EL)。

>>  konno掲示板での、としきさんの「マッシュポンプ」(?)話
>微妙になんか混ざっている。
>図らずも文太さんや私は、現代の音楽シーンにも疎い、ということが
>露呈されてしまったという感じ。
 ぬはははは。100年前以降の音楽は新しすぎます。

>>  Makeのところも、そのうち読むよぉ。
 ちらりと。

>Makeって、名前がアレですが。
>基本は、タイムスタンプを基にほげほげする、というソフト。
 ソースにいっぱいmakefileがついてくるのよ。何これ? と。
 タイムスタンプほげほげまで読みました。『256倍』。
 何がムダに魅力的だったかというと、あるsedのソースに「好きな正規表現の入ったsedを作ってごらんよ。defみたいなところをyesするだけだよ」とかあったから。もちろん選択肢はかなり有限だけど、\{ \} とか \| とか \+とか、BREとEREの微妙なところは、いじれるようだった(あるもので困ってないのだけど)。あ、正確にいうと、{},| は、posixが規定してないんだ。
 しかし、日本に移植されたスクリプティングツールのソースは、おおかたniftyとともに失われた模様。ま、それもいいか、と観念しました。く、くやしい、とも思ったけど。 >A

[4965] Re: Makeとか

としき 2022/08/21(Sun) 19:13
[4955]へのコメント http://toshiki.la.coocan.jp/
>  ぬはははは。100年前以降の音楽は新しすぎます。

ここは私と違いますね。
私はジャンルで選ぶ人間なんで、100年以上前の音楽でも、例えば琴や三味線の名曲とか雅楽なんてものは聴かない。民謡も聴かないなぁ。一方で、100年前以降の音楽でも、聴くものは聴く。ストラビンスキーとかショスタコービッチ、ガーシュイン、レスピーギなどね。ブリテンも聴くこともあるかな。
あとは、ジョン・ウィリアムズとか。

>  ソースにいっぱいmakefileがついてくるのよ。何これ? と。

昔、DOSのころのソフトではよく見かけました。
最近のソフトではあまり見かけなくなったなぁ。
いわゆる、統合開発環境とやらで作られるソフトが多くなったせいかも。
Visualほげほげ、とかっていう開発ツールね。

>  しかし、日本に移植されたスクリプティングツールのソースは、おおかたniftyとともに失われた模様。

そうなんですか。そういう状況にあるとは知りませんでした。

[4966] Re^2: Makeとか

文太 2022/08/22(Mon) 00:24
[4965]へのコメント
としきさん

>>  ソースにいっぱいmakefileがついてくるのよ。何これ? と。
>昔、DOSのころのソフトではよく見かけました。

 そうですね、makefileというわけではありませんが、その頃のフリーソフトには(きっと)、アセンブラソースが入っていることがけっこうあるみたいですね。Cもちょびっと。
 コレクションしてます、フィルター系、タイマー系。この周辺には makefile はないですね、今のところ。たぶん。

>最近のソフトではあまり見かけなくなったなぁ。
 最近かどうかはともかく、僕が言っていたのは、当然ついてくるGNUものの話でした。窓用ソフトなんて(必ず「最近」に分類されるのでしょう)、ソースをみたりするはずがないですからねぇ。MS-DOSの環境変数領域について復習しています。「これであれやれない?」とか。

>Visualほげほげ、とかっていう開発ツールね。
 暇になったらこれもやろうかな、と。その前にQBasic。自分の必要を満たしてくれる単機能のアプリ。スマフォ・アプリではぜったいになく。使えるのかどうか知らないけど、箱がある。もらいました。高かったんだろうなぁ。

>>しかし、日本に移植されたスクリプティングツールのソースは、
>>おおかたniftyとともに失われた模様。
>そうなんですか。そういう状況にあるとは知りませんでした。
 ベクターにあるのは、awkだけみたいですね、TS的スクリプティングツールとしては。

 makefileでなく、まずsed と Perl です! 使い方を覚える。sed が楽しくて。マクロでさえないエディタのコマンド羅列。制御構造あり。事実上、正規表現の勉強をしてるのだろうと思います。『詳説 正規表現』(第3版)=Perlの章あり、が今日、届いちゃった。すいません、自慢でした。

[4968] 環境変数編集

文太 2022/08/22(Mon) 13:28
[4966]へのコメント
 深い意味はないです。

exenv151.lzh
mset200.lzh
enved031.lzh

 とりあえず、研究のため、上の3つをベクターから落としてみました。
もちろんMS-DOSアプリ。.docを読むだけでも勉強になります。何しろ伸びしろしか
ない人なので。

 exenv.com は、モバでずっとずっと30年ちかくお世話になっている。アセンブラ。
ソースは、exenv.asm 1本のみ。な、長い! プロっぽいです。

 mset.exeは、ソースなし。

 enved.exeは、C++で書かれていて、makefileあり!
ENVED.CPP
ENVVAR.CPP
ENVVAR.H
MAKEFILE
MYDEF.H

 ま、こんなので気になった、気にしてるふりをすることがある、といういう
ことです。
 このMAKEFILEは、だいたい読めました。『256倍』、この時代にはぜったい
許されない下ネタ満載ですが、倫理観の薄い昭和人としては、楽しいし、役に立ち
ます。よく取っておいた!
 「バッチはプロセスではない」とか。ここは真面目。

[4958] VWXの拡張正規表現

めざら 2022/08/18(Thu) 22:05
[4954]へのコメント http://mezala.la.coocan.jp/
VWX の正規表現って,[0-9] を \0 とか,[a-z] を \a とか,
c.mos さんの要望を容れた拡張があるんですよね。

使ってますか? >ALL

ちなみに,自分は組込みオプション -v3 を指定しているくせに,
ついつい [0-9] なんて書いちゃいますね。習慣なんです,これ。

[4961] Re: VWXの拡張正規表現

文太 2022/08/18(Thu) 23:18
[4958]へのコメント
 僕は外のグレップを使うことが多いので、まったく使っていませんね。
 でもつい先日、「\0」のことを思い出していました。
 どんな入れ知恵をされても、復活させるとは思わないなぁ。だって、感謝を忘れてる
つもりはありませんけれど、c.mosさん、正規表現を「あの気持ちの悪いの」って
言ってたもの。
 中略していますが。1からZまでなのか(31項目?)、下のようなマクロを使って
います。

* P
01  "記号2",30,31
	"1 \([a-z]\)"
	"2 \([A-Z]\)"
	"3 \([a-zA-Z]\)"
	"4 \([^a-z]\)"
	"5 \([^A-Z]\)"
(中略)
	"I [0-9][0-9]"
	"J [0-9][0-9][0-9]"
	"K [0-9][0-9][0-9][0-9]"
	"X [亜-腕弌-龠]"			;12水準漢字
	"Y [亜-腕]"
	"Z [弌-龠]"

 SJISだより、だよねぇ。UTF-8で同じになれるようには……。保守派。

[4962] Re: VWXの拡張正規表現

としき 2022/08/18(Thu) 23:35
[4958]へのコメント http://toshiki.la.coocan.jp/
> 使ってますか? >ALL

どちらも、使ったことはあるけど、というくらい。
\0のほうは、結構使ったかもしれない。
でも、\aって、実験では使ったけど、実用で使ったことはないかもしれない。

私の場合、記憶力が弱いので、複数の方法を覚えておくことができないのですよ。そうなると、いくらか打鍵数が多くなっても、どこでも使えるほうを覚えておいて、それをどこでも使う、ということになって。
昔、ワープロ全盛のころ、単語登録で短縮登録して打鍵数抑制、なんてネタがありました。これ、私には全く使えなくて。だって、打鍵数を抑制できるくらい長い語句って、使用頻度が少ない。すると、そういうのを登録した語句を覚えていないんですよ。時々、ユーザ辞書をメンテするために中を覗いて、そういえばそんな言葉を登録したなぁ、と思い出すくらい。そのうちすっぱりやめてしまいました。

[4956] XCOPY /T /E /S

文太 2022/08/18(Thu) 20:32
[4951]へのコメント
 誰かの役に立つかもしれないので、いちおう書いておきます。

>xcopy /T /E /S c:\tk i:\tk
 これで、ディレクトリー構造のコピーが作れます。何の役に立つのかは、必要だと思ったときに分かります。

 ただ、たぶん、ルートからはやれない。>xcopy ... c:\ i:\は、たぶんダメだということ。
 また、上のようにルートから1段下がったところからでも、ファイルをコピーしないくせに、すんごく時間がかかります。もしかしたら、VTDOS環境下だったからかもしれないけど、ものすごい時間がかかりました。動いてないと思った。
 (どうでもいい個人話:c:\tk には、500個くらいのディレクトリがありました@僕のPC。たまには整理しよう! という気持ちになりますよね)

 ルートからはやれない?

c:\>dir /AD c:\ >kek.lst
 からバッチファイルを作れば、やれますよ。ルートから直接は、たぶん、ダメだということです。
 ターゲットに >md しておくのね。
 こんなときにも、「^」とか「$」を使って、つまり置換で書く、ということを僕はいっぱいやってます。
 たぶん、ブロックモードにしなければ、「$」で例の^Mは出ません。発現条件特定化中。

[4967] Re: XCOPY /T /E /S

文太 2022/08/22(Mon) 00:44
[4956]へのコメント
 そうだ、それも気になっていたんだ、と WinMEで

>Xcopy /T /E /S c:\ e:\		;もちろん、i:\ とか e:\ というのは、リムーバブルメディア

 とやってみた。

 画面に流れる、流れる。
 いえ、そんなの変です! ^C

>Xcopy /T /E /S c:\ > e:\

 とするべきだったのですか、と思って(パニックするな、それはイミフだ)、
見てみたら、e:\ 以下はしっかりできてる。

 VTDOS環境では辛いのかもしれません。
 時間がとってもかかったし、ルートはバッチで逃げるしかなかったのですが、
VTDOS環境でも、やれるにはやれるはずです。僕はやったのですから。

 ただ、WinME での実験で、E:\WINDOWS\SYSTEM\OOBE\IMAGES\ .... とか、
ぐわーっと流れてたのですが、これは意味ないでしょう。これが意味をなす人には、
えっと、ちらばった一部のデータを移動するためにディレクトリを別ドライブに
(リムーバブルメディア)再構築しようとしてるんですよね? Win DIR とか
再構築して何になるんですか? と訊きたい。

>xcopy /T /E /S c:\tk i:\tk 
 が正しいと思います。他のルートの個人ディレクトリは、バッチでの処理が正しい
と思います。
 最初っから、バッチ処理というのもありだと思う。ターゲット(USB メモリ)に
>md
 あらかじめしておいて、>xcopy

[4953] UTF-8

文太 2022/08/18(Thu) 02:25
[4947]へのコメント
 もちろん、すべて秀丸を使えば、しなくてよい苦労なのですが……。

 そういうこと考えてるのなら、これぐらい知っときな、無意味な苦労は避けられるよ
とか、ご親切な方にアドバイスをいただければ幸いです。


 UTF-8とは? というのが僕の疑問でした。そこで日本語は? だって、Perlで、
日本語相手に、SED したいんだもの。あのパワフルな正規表現で。

C:\SBRY\PERL\BIN>perl -v
This is perl 5, version 32, subversion 1 (v5.32.1) built for MSWin32-x86-multi-thread-64int

 というのが、たぶん、最新版の(昨晩いれた)Strawberry Perlで、

C:\>csconv.exe 00kan.txt -SShift_JIS -OUTF-8 -Auto

 なんてことをしてみました。

 csconv.exeとは、

---------------------------------------------------------------------------
 CharsetConverterの使い方
 インターネットが広まるにつれて、文字セットの変換という作業を行うことが増えました。パソコン上では、Shift_JIS、UNIXサーバー上では、EUC-JPといった具合です。 CharsetConverterは、文字セットの変換を手軽に行うためのツールです。
* Shift_JIS、EUC-JP、ISO-2022-JP、Unicode(le)、UTF-8 の相互変換が可能
---------------------------------------------------------------------------

 という面妖なる道具です。

 00kan.txt とは、SJIS漢字のリストです。もちろん、上で狙ったのは、-S (source)をその「SJIS漢字のリスト」にして、-O (out)は UTF-8 にしろ、全部自動変換(-Auto)でいうことです。

 結果をVzで見たら、こりゃ、あかん、となりました。(SJISだという前提で見せている)
 結果を秀丸で見たら、わお、いけんじゃね、これ、となりました。(UTF-8だと自動認識)

 ま、どうしてもPerl5をしたい場合、スクリプトや対象ファイルをUTF-8にすれば、バリバリ正規表現のPerlスクリプトで、日本語を処理できると思われますでしょうか?

 Perlに日本語を認識させる encode プラグマみたいな、面倒な手続きを踏めば……。

 「このキーワードでググりなよ」、というヒントだけでもけっこうです。どうか宜しくお願いいたします。
 Vz経由で、最新版 Perl に仕事をしてもらいたい、という野望です。

 あまり必要ではない情報かと思いますが、おもに、Win7, 32bitでの話をしております。

[4963] Jperl5 installed in Win7 32bit

文太 2022/08/20(Sat) 16:34
[4953]へのコメント
C:\>jperl -v
	Win32 port Copyright (c) 1995-1996 Microsoft Corporation.
		All rights reserved.
	Developed by ActiveWare Internet Corp., http://www.ActiveWare.com
Perl for Win32 Build 316 - Built 23:00:34 Jun 19 1998
This is perl, version 5.003_07
Japanization patch 4 by Yasushi Saito, 1996
Modified by Hirofumi Watanabe, 1996. jperl5.003_05.patch7_1
Modified for Win32 by @Tori, 1997
Ported by hizumi@yk.rim.or.jp. Build 118
SJIS version

 ここまでとても苦労しました。『新Perlの国へようこそ』(Perl5対応版)
には、第6章「正規表現」が加わっていて、フル装備ではないけど、僕的には
じゅうぶん満足な正規表現・エスケーブシーケンス・パワーがあることが判明。
 『新』の対象は、Perl 5.002。

 いろんなところで色々する必要はありません。ベクターに旧版のPerl5 ActiveState
があります。素直にインストール(英語版だよ)。そして次に同じベクター同じ
あたり(以下)

トップ>ダウンロード>WindowsMe/98/95用ソフト>ユーティリティ>テキストファイル用>Perl

 の中の Jperl5 を落とし、インストール。英語版の旧版がないと思って諦めて
いました。(これがないとJperl5がインストールできない)。
 これでUTF-8の呪縛から逃れられます。何もPerlの最新版が欲しい、と
思っていたわけではないので。難しい機能は要らないというか、どうせ使いこなせ
ないのですから。
 それでも Perl5 っぽい正規表現です!

 簡単にPerlとJperlの経緯を書けば(書ける範囲、理解できた範囲)、Perl本体
が複数バイト文字への対応をした。だから、Jperlという日本語向けPerlの必要は
なくなった(かに思えた)。ただ、上の最後の方

Ported by hizumi@yk.rim.or.jp. Build 118

 さんが自らのブログで「PerlはWindowsでやるものじゃない」と書かれるほど、
日本語を扱うのは大変になってしまった。
 でも、Jperlを作り続ける気力は上の4人にもなかった。
 けっこう早い段階で、Hirofumi Watanabeさんが、「もう疲れた」と撤退を
表明したらしい。

 なので、SJISにこだわる安易な方法は、上の版を、感謝しながら使うことでしょう。
 「まだJperlとか言ってる人がいるが……」という記事も散見しましたが、
やっぱりオリジナルの機能+jcode.pmとか(あと忘れた)、かなり大変です。
 FGALTSのメンバーがかつてメーリングリストをやっていて、それのアーカイブが
どっかにあります(立派なサイト)。もう休止。そこでも、
日本語処理 on Perl on Winでは、あーうー
な話になっていました。10年か20年前。よく読まなかったけど。

 まだ、Perlのスクリプトは一度も走らせていないので、ぬか喜びかもしれません
けれど。

[4964] Jperl5

文太 2022/08/21(Sun) 01:04
[4963]へのコメント
 英語 perl5、Jperl5 の順番でインストールできる、と報告しました。

 ただし、WinMEでは、前にもどこかで報告しましたが、問題ありませんけれど、Win7 32bit, Win10 64bit のVTDOS環境下では、明らかに改行の処理に問題があります。後者2つの環境で、2つのperlがインストールができたにもかかわらず(この時点で「どうなる?」と思っていた)、です。

 後者2つの cmd窓では、改行処理に問題はありませんでしたが、そもそもcmd窓内って、日本語どうなの? (メッセージその他ふつうに日本語していましたけど)。

 ただ、cmd窓とVzはファイルを介さなくては繋がれません。
 ま、ムリすることはないですよね。
 Perl、正確にはJperlについてのレポートはこれでお終いです。
 僕のばあい、WinMEでの話ばかりになりますから。

↑ このページの先頭