アプリ版:「スタンプのみでお礼する」機能のリリースについて

Perlでファイル入力は
下記のように記述します
open (IN,"myInput.txt");
$lineno = -1;
while (<IN>) {
 $lineno = $lineno + 1;
 @lines_org[$lineno] = $_;
 #print lines_org[$lineno];
 #print $_,"\n";
 }
これで一行づつ入力できます
ここで質問したいのは
入力ファイルに改行コードがないため
処理できないと思うのですが
一行づつ入力ではなく、1文字づつ入力する
入力方法はPerlにはないのでしょうか
ちなみに入力ファイルは数メガある大きなファイル
です
よろしくおねがいします

A 回答 (2件)

open (IN,"myInput.txt");


の後に
binmode(IN);
とバイナリーモードにして、
while ( read(IN,$buf,1) ){
とかやれば、$bufに1文字入ると思われます。
今、Perlの実行環境が無いんで確認できないので、自身なしにします。

この回答への補足

おかげさまで、ずいぶん進展しました
>実行環境が無い
ということは最近は使ってないわけですね
>while ( read(IN,$buf,1) ){
こうした記述が間違いなく書けてすごいな
と思いました

補足日時:2004/04/11 00:43
    • good
    • 0
この回答へのお礼

ありがとうございました
早速、試してみます

お礼日時:2004/04/10 23:45

> read(IN,$buf,1)



これは1文字づつではなく1バイトづつです。
全角文字があった場合、全角文字は1文字2バイトなので、
このまま読むと全角文字を半分に切ってしまい、文字化けする可能性があります。
    • good
    • 0
この回答へのお礼

分かりました
そこを注意すべきですね

お礼日時:2004/04/11 08:46

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!