Delphi 6 Personalです。
stringlistを使い、CSVファイルを取り込む処理を行っています。
取り込み自体は正常に出来ています。
CSVの中に日付項目があるのですが、データによっては日付が入っていない場合と入っている場合があります。
var
myDate: TDate;
SL: TstringList;
済みません、なぜか途中で切れてしまいました。
続きです。
begin
myDate := strtodate(SL.strings[1]);//1は日付フィールド
で処理しようとしたとき、元の値が空値だったりすると「''は日付ではありません」というエラーになります。
そこで、
try
myDate := strtodate(SL.strings[1]);//1は日付フィールド
except
myDate := strtodate('1990/1/1');//暫定の日付を代入
end;
で回避しようとするのですが、同様のエラーが出てしまい、回避できません。
何がマズイのでしょうか。
こんにちは。
デバッガが例外を捕まえているだけのようです。
デバッガ無しで実行すれば例外は出てこないと思います。
ただ、そもそもtry〜exceptで処理しなくてもよいと思います。
解決策として、StrToDateDefを使うと楽だと思います。
myDate := StrToDateDef(SL[1],StrToDate('1990/1/1'));
※当然ですがSL[1]が存在すると言うことが前提です。
StrToDateDefを使えばいいのですね。どうもありがとうございました。
ただ、デバッガの件ですが、exeから実行してもおなじような表示が出ておりました。
ツイート | ![]() |