nkfが問題?
[上に]
[前に]
[次に]
あげは
1999/10/27(水) 11:19:49
こんにちは
下記のPerl文でファイルをOpenすることが出来ません。
Openするファイルが"$dir\\$file"に存在すること、またnkfが"$nkfpath"に存在することは確認済です。
ひとつ気になるのは nkfをサーバーにインストールした際にコンパイルが必要という情報です。
が、詳しく掲載されているページを発見することが出来ず..
もしこれが原因で、かつnkf設置方法について詳しく載っているページをご存知でしたら教えて
ください。
(NTサーバーを使用しています)
#以下問題の perl記述
open(HEAD,"cat $dir\\$file | $nkfpath\\nkf.exe -SXj |");
B-Cus
1999/10/27(水) 13:37:46
> open(HEAD,"cat $dir\\$file | $nkfpath\\nkf.exe -SXj |");
NT は知らんのですが、NT に cat ってあるの?
> nkfをサーバーにインストールした際にコンパイルが必要
必要ないです。Windows にはコンパイラが付いてこないので、
バイナリ配布されてます。
hiro-kim
1999/10/27(水) 14:18:58
>NT に cat ってあるの?
ないです。
この程度なら,NTで動作するUNIXコマンド集をインストールしてあえてcatコマンド互換のプログラムを起動しなくても,typeコマンドに置き換えればよいでしょう。
あげは
1999/10/27(水) 14:33:29
>ないです。
...解説等UNIXサーバーを前提として書かれているものが多く、それを"cat"が NTで使用できるのか否かも確認せずに記述したせいですね...
あさはかでした
>この程度なら,NTで動作するUNIXコマンド集をインストールしてあえてcatコマンド互換のプログラムを起動しなくても,typeコマンドに置き
>換えればよいでしょう。
(-_-;)・
"typeコマンドに置き換える"とは具体的にどの様な記述になるのでしょうか?
すみません。Perl初心者の私に教えて頂けますか?
hiro-kim
1999/10/27(水) 16:24:00
マウスを用いたGUIでのプログラム起動ばかりで,
スタート → プログラム → コマンドプロンプト で,MS-DOSコマンドをキー入力するという経験がなくても当然の時代かも知れませんね。
Perlのコマンドではなく,typeというMS-DOSコマンドがあるのです(Windowsのヘルプで調べてください)。catという3文字の代わりに typeという4文字を書けばよいわけです。
B-Cus
1999/10/27(水) 16:33:12
type でもいいですが、できれば余分なプログラムを起動
しないようにした方がよいです。
で、
open(FH,"$nkfpath\\nkf.exe -SXj < $dir\\$file |")
って、DOS ではできましたっけねぇ?
nkf.exe の仕様が UNIX の nkf と同じならば (多分同じだろうけど)
open(FH,"$nkfpath\\nkf.exe -SXj $dir\\$file |")
の方がよいかも。
あげは
1999/10/27(水) 20:24:46
あーごめんなさい
>open(HEAD,"cat $dir\\$file | $nkfpath\\nkf.exe -SXj |");
とありましたがタイプミスで、"nkf32.exe"を使用しています。正しくはこうです↓
open(HEAD,"cat $dir\\$file | $nkfpath\\nkf32.exe -SXj |");
B-Cusさんhiro-kimさんの助言の元色々やってみましたが、やはりOpenが正常に処理されません。
エラー等特にでないのですが(え..当たり前なのですか?すいません..ほんと初心者で)、Openの後に
読みに行くと0件で返ってくるので、やはりOpenでこけているんですよね??
B-Cus
1999/10/27(水) 23:24:43
> やはりOpenでこけているんですよね??
さぁねぇ。「色々やってみた」と言われても、
あなたが何をやったのかわからんので。
とりあえずコマンドラインから nkf を実行できるのかどうか
試してみては。
Windows は知らないので、後は詳しい人にまかせます。
> エラー等特にでないのですが
少なくとも UNIX では、
open(FH,"command|") || die;
として、command が存在しない場合でも die してくれません。不便ですね。
Aurai
[E-Mail]
1999/10/28(木) 00:04:54
私の環境(Win95OSR2)では
open(NKF,"nkf32.exe -SXj hoge.txt|");
ができました
nkfにはパスを通してあります
>> エラー等特にでないのですが
>少なくとも UNIX では、
> open(FH,"command|") || die;
>として、command が存在しない場合でも die してくれません。不便ですね。
私の環境でもdieしてくれませんがStdErrorにはちゃんと報告が出ています
とりあえずStdErrorを覗いてみましょう
[上に]
[前に]
[次に]