カレッヂ |
質問者 ともたん
投稿日 2004/4/23(金) 20:05:51
簡易データベースを改造してリンク集を作っています。 登録されているサイトの、登録内容を変更する際、 サイトの情報が書き込まれている行のみを上書きしたいのですが うまくいきません。書き込む時のスクリプトは以下のとうりです。 open(FILE, "+<$file") or &err1(); eval { flock(FILE, 2) }; seek(FILE,0,0); print FILE "$data_now<>.... close (FILE); eval{ flock(FILE, 8) }; どうしたらうまくいくでしょうか
プロバイダ参照: |
回答者 sim
[削除]
投稿日 2004/4/26(月) 13:57:22
変更する行を参照して、その行を変更するという工程にしないとだと思います。 foreach(@NEW){ if(変更する行だったら){push(@newlog,"更新後のデータ<>・・・\n");} else{push(@newlog,"$_");} } open(OUT,"> $file") || &err1('not writing'); print OUT @newlog; close(OUT); 多分こんな感じの処理になると思います。 |
質問者 ともたん
[削除]
投稿日 2004/4/26(月) 20:04:51
sim様、いつもいつもありがとうございます。 おかげさまで、うまくいきました。 上書きする際に、文字列が余分に書き込まれること があったのですが、書き込み処理の部分に、 print OUT @newlog; truncate(OUT, tell(OUT)); とつけると余分な文字列がカットされて正常に 書き込まれました。 ありがとうございました。 また、わからないことがあった時は よろしくお願いします。 |
このページは終了したので返信(回答)は書きこめません
Web裏技 |