悪夢

懸賞 2007年 12月 26日 懸賞

死ぬかと思いました。ホントに。

昨日、先週からこじらせてた風邪が治ったかと思えばいきなり倦怠感やら発熱やら全身に激痛が。正にインフルエンザかなーっと思われたんですが、今日になってみれば熱下がる、痛み引く。なんでや。

家で計ってみたら36.8℃。ま、微熱ってとこだけど。昨日計ってないから分かんないんだけど、計ったら多分38℃超えてた。
家の体温計ってのはアテにならないんで、病院でも計ってみたんだけど同じよーな結果。

一体何が起こったのだ。

とりあえず、夜更かしは良くないってことですな。


関係無いんだけど、今風呂が動きません。お湯沸かせないorz




-------------------------------------------------------------------------------------------------


今やってるんだけど、テキストファイル読み込んでリストボックスにそのファイルの内容を出すやりかたについて。
先週からDelphiを使い始めて、練習~とばかりにやってたんだけど、所々でつまずいたりアレだったり。

最初に自分の書いたコードだけ載せとく。

^-^-^-^-^-^-^-^-^-^-^--^--^-^--^-^-^-^-^^--^-^-^-^^--^-^-^^--^-

procedure TForm4.getBlocklist; //関数名
var
af:TFileStream; //ファイルストリーム
const
fname='test.txt'; //定数(ファイル名)

begin
af:=nil; //初期化

(*ファイルの有無判定*)
try try
af := TFileStream.Create(fname, fmOpenRead);
//ShowMessage('af is exist and opened');

(*ファイルが見つからなかった場合*)
except
on EFOpenError do begin
//ShowMessage('EFOpenError Raised');
af:=TFileStream.Create(fname,fmCreate); //ファイルを新たに生成
end

end;

(*判定ここまで*)

(*以下の処理はファイルの有無に関わらず行われる*)
finally
ListBox1.Items.LoadFromStream(af);
af.Free;
end;

end;

v^v^v^v^^v^vv^v^v^v^v^v^v^v^v^v^^vv^v^v^v^v^v^vv^v^v^^v


最初、LoadFromStreamメソッドのこと知らなくて、文字配列とか使ってreadやってテキスト読み出してリストボックスに書き込み~ なんざやってて――そこに至るのにもけっこー時間かかったんだけど――、まるでアレだったんだが、Load~メソッド使えば一発で出来るんだな。見直したぞ。うん。

で、ファイルへの書き込み処理もさせたいから書いてみたんだけど、今の今まで(@24:47)5時間くらいずーーっとここで作業が滞ってた。さっき解決したんだけど。。。



-^-^^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^--^--^^--^^--^^--^-^^-

procedure TForm4.SaveBlockList();
var
wf:TFileStream; //同上
const
fname='test.txt'; //同上

begin

wf:=nil; //初期化

(*ファイルの有無判定*)
try try
wf := TFileStream.Create(fname, (...)fmOpenWrite);


(*ファイルが見つからなかった場合*)
except
on EFOpenError do begin
wf.free;
wf:=TFileStream.Create(fname,fmCreate); //ファイルを新たに生成
end

end;

(*判定ここまで*)

(*以下の処理はファイルの有無に関わらず行われる*)
finally
ListBox1.Items.SaveToStream(wf); //テキストファイルにリストボックスの内容書き込み。
wf.Free;
end;

end;

v^v^^v^v^v^vv^^v^v^v^vv^v^v^v^v^v^v^v^v^v^v^vv^v^v^v^v^


こちらも同じくSaveToStreamメソッドに気づくまで大分時間掛かった。だがその先も問題だったり。
と言うのも、fmOpenWriteのオプション使ってる時点で「古いデータは破棄される」ってBDSライブラリが言ってたんだけど、追記してるだけじゃね?上書きされてねーぞ!

で、↑のコードから赤字の(...)の部分にfmCreate( or)を付けたらばっちり上書きしてくれた。なんでやねん。
ま、fmCreateはファイルを作るオプションだから、元のファイルを上書きしちゃってるんだろうケド。

で、後になって分かったんだけど、fmCreateで万事解決ならば、態々try try...Except...finallyで囲まなくてもいいよね。

これだからプログラミングって……
[PR]

by Lowen_ash | 2007-12-26 19:28 | 生活

<< スウィート・トラップ。   Hard攻略中@o2jam >>