68user's page 掲示板

Prev< No. 2252〜2259> Next  [最新発言に戻る] [過去ログ一覧]
No. 2252 # ナナシサソ 2001/11/07 (水) 23:34:55
動くかわからんけどとりあえずできた

sub read_file_to_array { #←?
        my $file = shift;
        open (FILE, "<$dir\\$database\\Defect\\$file") or die "Can't open $file\n";
        open (OUT1, ">$dir\\$database\\Defect\\${file}_1") or die;
        open (OUT2, ">$dir\\$database\\Defect\\${file}_2") or die;
        my ($flag1, $flag2);
        while (<FILE>) {
                if ( /-1/ ) {
                        $flag1 = 1;
                }
                if ( /-2/ ) {
                        $flag2 = 1;
                        $flag1 = 0;
                }
                if ($flag2) {
                        print OUT2;
                        next;
                }
                if ($flag1) {
                        print OUT1;
                        next;
                }
        }
}

No. 2253 # ナナシサソ 2001/11/07 (水) 23:37:28
うぎょぎょ。。if ($flag2) {〜の部分の順番が逆になっちゃってるし。ダサ・・
closeしてないし・・終了時に閉じられるから大丈夫かアハハ

No. 2254 # 68user 2001/11/08 (木) 07:20:44
>>2251 ミング
必ずデータの先頭が .*-1 か .*-2 であるなら
    while (<FILE>) {
        if ( /-[12]/ ){
            chomp;
            open (OUT, ">$dir\\$database\\Defect\\$_") or die;
            next;
        }
        print OUT;
    }
かなぁと思うんですが、違うかな?

業務用プログラムかだとちゃんとエラーチェックしないとまずい
でしょうが、データの内容がある程度保証されているなら、こんな
テキトーな感じでよろしいかと思います。

No. 2255 # ミング [E-mail] 2001/11/08 (木) 14:47:58
ナナシサソさん、68userさん

出来ました!!
ご指導どうもありがとうございました。

No. 2256 # ミング [E-mail] 2001/11/08 (木) 17:54:35
二日連続の質問になってしまいますが、よろしくお願いします。

No.2251のInput file名は"Ab00010", "Cd00020", のように文字と数字からなっているのですが、Outputは別のDirに"Ab00010" "Ab00011" "Cd00020" "Cd00021"というように、/-2/の部分は”元のファイル名+1”というファイル名にしたいのですが、、、、

800ページあるらくだの本も一応買ってきたのですが全然分からないので、ウェブサイトで調べてみたのですが、唯一これかな?と思ったのが:

$string="abcd771gfds";
$string=~/(\W+)\s+(\d+)/;

とすると、$1=abcd, $2=7771, $string=abcd771gfds になる、とあったんですが、

試してみると$1=" ", $2=" ", $string="4294967295"になってしまい、訳が分からなくなってきたのですが、これは全然違うアプローチなんでしょうか?

どうしたら ”Ab00011”が作れるんでしょうか?

No. 2257 # ナナシサソ 2001/11/09 (金) 00:10:23
$flag == 2 ? $string ++ : ;
でいいと思う・・ゲロゲロ

No. 2258 # オハツ [E-mail] 2001/11/09 (金) 12:52:13
UNIXの歴史について、知ってる範囲で教えてください。
できれば、メールの方がありがたいです。

No. 2259 # ミング [E-mail] 2001/11/09 (金) 14:36:01
>>2257 ナナシサソ
でもアルファベットと数字からなってるので、数字だと見てくれないみたいなんですけど、、、

Prev< No. 2252〜2259> Next  [最新発言に戻る] [過去ログ一覧]