68user's page 掲示板

Prev< No. 3666〜3670> Next  [最新発言に戻る] [過去ログ一覧]
No. 3666 # samy 2004/03/30 (火) 13:40:12
こんにちわ。
Perlについてのごく初歩的な質問なんですがファイルデータを保存する時の方法についてなんですが
CSV形式なら
open(OUT,">data.dat");
    print OUT "$FORM{'fld1'},$FORM{'fld2'},$FORM{'fld3'},$FORM{'fld4'}\n";
close(OUT);
だと思うのですが固定長の場合はどうしたらよいのでしょうか?
よろしくお願いします。

No. 3667 # 68user 2004/03/30 (火) 13:56:35
>>3666 samy
>固定長の場合はどうしたらよいのでしょうか?
基本は
      printf(OUT "%05d%20s%010d%10s\n",
                    $FORM{'fld1'}, $FORM{'fld2'}, $FORM{'fld3'}, $FORM{'fld4'});
など。%d は数値。%s は文字列。%20d は右詰め。%-20d は左詰め。
%020d はゼロパディング。

項目数が 10〜20 程度ならこの方法でよいでしょう。

もし項目数が 100 を超えるのであれば、出力フォーマットの定義
ファイル化などを検討しましょう。

No. 3668 # samy 2004/03/30 (火) 18:29:45
ありがとうございます。
助かりました。
また、質問があれば投稿しますのでその時はよろしくお願いします。

No. 3669 # Goldwasser [URL] 2004/03/30 (火) 18:58:06
だから私を見て!
http://sgldwssr.hp.infoseek.co.jp/otp.html

No. 3670 # tmr [E-mail] 2004/04/06 (火) 21:38:22
awkについての質問です。

Solaris7上で、nawkを実行する際、

"cat text.txt" | getline var

という構文があるとvarに "cat text.txt" の結果が入るのですが、
同じことを /usr/xpg4/bin/awk で実行すると var に値が
入らないようです。
このあたりの事情をご存知の方、教えてくれませんか?

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