カレッヂ |
質問者 ぺあ
投稿日 2005/3/28(月) 21:21:16
1. dat.datからファイルを読み込む。 2. METHOD=POSTで配列の順番($No_data)を取得する。 3. $No_data番目の$IDと$NAMEを取得する。 4. METHOD=POSTで変更したいIDを取得する。 5. $No_data番目の$IDと$NAMEをdat.datへ書き込む。 上記要領ですとIDは変更されるのですが、dat.datの内容が次のよう様にズレてしまいます。 基本的なミスだとは思うのですが、自分ではどうしても原因がつきとめられませんでした。 すみませんが、どなたか御指南のほどよろしくお願い致します。 実施前のdat.datの内容 1,a, 2,b, 3,c, 4,d, 5,e, 実施後のdat.datの内容 1,a, 2,ビー, 3,c, 4,d, 5,e, ############################################################################### $data = './dat.dat'; if (!open(GRD,"$data")) { &error("File Not Open","$dataを開くことができません."); } @grade_data = <GRD>; close(GRD); $No_data = $FORM{'No'}; #Noを取得 $grade = $grade_data[$No_data]; &jcode'convert(*grade,'sjis'); ($ID,$NAME,) = split(/\,/,$grade); $ID = $FORM{'ID'}; #変更されたIDを取得 print "Content-type: text/html\n\n"; print <<"EOF"; $NAMEさん。変更されたIDは$IDです。 EOF $grade_data[$No_data]=("$ID,$NAME,\n"); open(OUT, "> $data"); print(OUT "@grade_data"); close(OUT);
【習熟度】多少の設置経験 |
回答者 domo
[削除]
投稿日 2005/3/29(火) 09:16:45
open(OUT, "> $data"); print(OUT "@grade_data"); close(OUT); "@grade_data" で展開するとスペース区切りでの出力となります。($" のデフォルト) 例えば @aaa = ("AAA\n","BBB\n","CCC\n"); print "@aaa"; -- AAA BBB CCC print(OUT @grade_data); としてください。 http://www.rfs.jp/sitebuilder/perl/02/04.html#配列を展開する |
質問者 ぺあ
[削除]
投稿日 2005/3/29(火) 18:38:57
御指南たいへんありがとうございました。 |
このページは終了したので返信(回答)は書きこめません
Web裏技 |