Indexへ
(512)//【516】→(517)
------------------------
【タイトル】gawkとjgawkの動作に違いはあるの?
【記事番号】 516 (*)
【 日時 】03/02/04 09:59
【 発言者 】はじめ hazime@mis.ne.jp

外変のフォルダを言語ごとに整理していて気になったので教えてください。
gawkとjgawkが違う動作をする場合があるのでしょうか。
個々の外変のReadmeを読んで振り分けてもよいのですが、基本的な部分を知っておきたいので。

gawk115のReadme
起動時のプログラム名によりマルチバイト文字として認識する文字セットのデフォルトを変更します。その規則は以下の通りです.
1. jgawk などプログラム名の先頭が j のとき
  gawk コンパイルに指定した文字セットをマルチバイト文字として認識する.
2. 〜 5. 省略
6. 1.〜5. のいづれでもないときマルチバイト文字を認識しない.
  
ファイル名がオプションスイッチになっている事はわかるのですが、
逆に2バイト文字の処理が無い時、j があるため不具合が発生するような事があるのでしょうか。
"□□□"とか注釈などはgawkとjgawkは別の動作をするんでしょうか?


Indexへ
(516)←【517】→(520)
------------------------
【タイトル】つけたし
【記事番号】 517 (516)
【 日時 】03/02/04 10:14
【 発言者 】はじめ hazime@mis.ne.jp

書き忘れましたが、注釈のないスクリプトは読んでも理解できません。
注釈を読んで「およそこんなことをしてるのだろう」ぐらいです。


Indexへ
(517)←【520】→(521)
------------------------
【タイトル】多分
【記事番号】 520 (517)
【 日時 】03/02/04 14:36
【 発言者 】名無し kakuu@tekitou.com

文字を扱わない外部変形では、動作に違いは有りません

文字を扱っていても、単にgawkでは2バイト文字を1バイト文字2つと判断するだけで最終的な結果は変わらない場合が多いです

文字列中の任意の文字を入れ替える等は、処理的には奇妙は処理をされてるはずですが、結果的には差が出ません

gawk では、日本語対応として拡張された文字関数
jlength,jsubstr,jindex 等が length,substr,index と同じ答えを返します

この為、jlength と length の差から 1バイト文字か2バイト文字か判断する場合
全て1バイト文字と判断されます
また、jsubstr で1文字づつ切り分ける様な処理をした場合、2バイト文字を分断してしまう場合が有ります

jgawk では、substr を使って2バイト文字を分断するような指定をしても、分断しないように補正されます

あと、比較命令で文字を扱った場合、jgawk では 1バイト文字 < 2バイト文字
ですが、gawk では 2バイト文字の1バイト目で比較されますので、
この関係が成り立ちません
文字列をソートする場合に妙な結果になると思います


Indexへ
(520)←【521】→(528)
------------------------
【タイトル】RE: 多分
【記事番号】 521 (520)
【 日時 】03/02/04 16:02
【 発言者 】はじめ hazime@mis.ne.jp

名無しさん、有難うございます。

・関数によっては文字処理後の1バイトがずれる事がありうる。
・2バイト文字が一切無ければどちらも同じ

およそこんなところでしょうか。
gawk外変のフォルダは分けずに収納する事にしました。


Indexへ
(521)←【528】→(533)
------------------------
【タイトル】はじめさん:こんにちは
【記事番号】 528 (521)
【 日時 】03/02/04 19:55
【 発言者 】MT_ syojigtr@yahoo.co.jp

▼はじめさん:こんにちは。

難しいことは知らないのですが、なんか、よく言われてることの記憶ですが、「jgawk.exe」はDos時代にお世話になったもので、Win32になってからは以前は、「jgawk.exe」に加え、「go 32」なるものが必要だったように覚えてます。
その後、gawk113.zipになって、「gawk.exe」とか「gawk32.exe」なんかが同梱されるようになり、これらを使うと「go 32」は必要ない・・・。というので、そのときに、「gawk.exe」に入れ替えたと思います。その後、人づてに聞くと、倍精度には「gawk32.exe」が良いということだったので、私は、それを採用しています。
ですが、頂く外変の殆どが「BATファイル」内で、「jgawk」にパスが通してあるので、「BAT」は直さなくても、「gawk32.exe」をリネームすれば良いということなので、「gawk32.exe」を「jgawk.exe」に名前だけ変更して使っています。
その後gawk115.zipが出たようなのですが、私は入手の機会を見失ってたのか、いまだに113のものを使っています。
 どれでも動くだけに、判別が付けにくいですよね。


Indexへ
(528)←【533】→(611)
------------------------
【タイトル】RE:MT_さん、こんにちは
【記事番号】 533 (528)
【 日時 】03/02/05 10:03
【 発言者 】はじめ hazime@mis.ne.jp

gawkやRubyなどのフリーの言語は探せば探すほど、色々な方言(この表現で良いのかな?)があって奥が深いですね。
JWWで使うだけなら外変のReadmeを読めばどのバージョンか解るのですが、つい「何処が違うの」などと考えてしまう。

JWWになってから外変を使い始めた私には?の部分がたくさんあります。
まあ、スクリプトも書けない私は素直にReadmeにしたがってればいいんですけど。


Indexへ
(533)←【611】//(518)
------------------------
【タイトル】Re(1):RE:MT_さん、こんにちは
【記事番号】 611 (533)
【 日時 】03/02/10 21:10
【 発言者 】ミチ michi001@goo.mail.ne.jp

むずかしいですよね。
JW_Cad 内部での実装は大変だから、外部の言語を利用するんでしょうけど。。
素人にはむずかしいです