tfpのプロフィール

@tfp tfp
ありがとう数8
質問数0
回答数9
ベストアンサー数
3
ベストアンサー率
37%
お礼率
0%

  • 登録日2002/03/12
  • Perlでファイル出力時にデッドロック(?)してしまいます。

    Perl(5.005_03)で、約5000万バイトのテキストファイルを読み込んで、そのデータに変更を加えた後、別のテキストファイルに書き出すプログラムを作っています。 テキストファイルへの書き出しは、16回に分けて約300万バイトずつ行っています。 すると、ファイルへの書き出しが半分も終わらないうちに、デッドロック(?)してしまうみたいで、書き出し中のファイルは途中のまんま、プログラムが終わってしまいます。。。 いまは、出力ファイルを開く前に「print " ";」を入れることでとりあえず動いています。(それも、どうしてなのかわかりません・・・) 何か良い方法はないでしょうか? よろしくお願いします。 【環境】sun4-solaris, apache 以下は、ファイルへ書き出している部分のソースです ------------------------------------------------------------------- print " "; # これを入れないとプログラムが正常終了できません open OUT, ">>$file" || die "can't open : $!"; print OUT $data; # $data には約300万バイト入っています close OUT; -------------------------------------------------------------------

    • ベストアンサー
    • Perl
  • データの削除をしたいのですが・・・

    掲示板などで記事の削除というのを行いたいのですが、 open(Dat,"<data.dat"); print Dat "@data"; close(Dat); ということを行うと コンマでデータの間を区切るとやっていた場合 @dataの中身は 02年06月15日,タイトル,名前,内容\n(半角スペース)02年06月14日,タイトル,名前,内容\n(半角スペース)02年06月13日,タイトル,名前,内容\n という風に間にスペースが入っているようで変なふうになってしまいました。 それは、 02年06月15日,タイトル,名前,内容\n (半角スペース)02年06月14日,タイトル,名前,内容\n (半角スペース)02年06月13日,タイトル,名前,内容\n という風にずれてしまうということです。 どのようにすればこのようなことを解消できるのでしょうか? いいたいことが伝わっていなかったらすいません・・・

    • ベストアンサー
    • CGI
    • ryo-3
    • 回答数2
  • うまくいかない全角→半角変換の仕方

    あちこち見てまわったのです。 とほほの ~ から個人の小規模なページまで。 $add ='test@test.ne.jp'; jcode::convert(\$add, 'euc'); jcode::tr(\$add, '0-9A-Za-z', '0-9A-Za-z'); jcode::convert(\$add, 'sjis'); print $add; ・・・@マークがまあ、この場合変換対象にはいって ないにしろ、なぜか表示されるものは、数字の 「11」 とか 文字列を変えると場合によっては「8」 とか出てきます。 また(2度目)借りているサーバー環境が悪いんで しょうか??? ほとほと参ってます(泣)。

    • ベストアンサー
    • Perl
    • yasu
    • 回答数4
  • csv形式のデータの一部を削除して、上書きする方法

    前回も似たような(?)質問をしたんですが 今回も質問させてください。CSVに関して(CSVだけというわけではありませんが) 以下のようなデータを読み込んで、配列変数に格納後... aaa,bbb,ccc,ddd eee,fff,ggg,hhh iii,jjj,kkk,lll mmm,nnn,ooo,ppp qqq,rrr,sss,ttt ↑のデータを、下のようなデータにして、保存しなおすにはどうすればよいでしょうか。(上から二列目を削除して前のデータに保存しなおす) aaa,bbb,ccc,ddd iii,jjj,kkk,lll mmm,nnn,ooo,ppp qqq,rrr,sss,ttt 変な質問でもうしわけございませんが、回答できるかたお願いします。

    • ベストアンサー
    • Perl
    • noname#32059
    • 回答数4
  • ファイルを読み込んで改行だけの行を取り除きたい

    こんばんは。 ファイルを読み込んで、改行だけの行を省いて、上書きしたいのですが なぜかうまくいきません。 ループ内にある改行の判定をするIF文がいけないと思うのですが…。 教えていただけないでしょうか? また、シングルクォーテーションダブルっクォーテーションは同じ意味 なのですか?「""」と「''」 作ったプログラムは以下です。 open(OUT,">$ssifile"); #改行のみのデータは除く @newtbl = (); foreach $siline ( @slines) { if ($slines ne "\n") { push @newtbl, $siline; } } print OUT @newtbl; close(OUT); 宜しくお願いいたします。

    • ベストアンサー
    • CGI