|
|
||||
Tips > |
|||||
DecodeTime を使い時間をファイル名にして保存 |
更新 : 2009/11/06 |
||||
|
|
||
解説: 文字列を編集して保存する場合、ほとんどのアプリケーションでは 「名前を付けて保存」 メニューを使います。 状況によっては、名前をシビアに付けなくてもいい、とりあえず保存しておきたいケースもあります。 そうした時は、いちいち名前を指定するのは、面倒といえば面倒です。 そこで、ファイル名を自動的に付けて保存することを考えてみます。 ファイル名は、何でもいいのですが、ここでは時間を利用してみます。 使用例: 以下では、Memo1 で文字列を編集して、アプリケーションを終了すると現在の時間をファイル名として保存するようになっています。 準備としては Memo だけを適当に配置しておしまいです。 OnCloseQuery イベントにコードを記述します。 まず、CurrentTime 関数で現在の時刻を TDateTime 値として取得します。 その値を用意した変数に、DecodeTime で時、分、秒、ミリ秒に分解して代入します。 そのうちの時、分をファイル名として、Memo1 の文字列を保存します。 日付をファイル名にしてみるのもいいかもしれません。 //------------------------------------------------------------------- void __fastcall TForm1::FormCloseQuery(TObject *Sender, bool &CanClose) { // 時刻 TDateTime time = TDateTime::CurrentTime(); unsigned short hour, min, sec, msec; // TDateTime 値を時、分、秒、ミリ秒の各値に分解し、これらの値を hour,min, // sec,msec のそれぞれのパラメータに入れます。 DecodeTime(time, hour, min, sec, msec); // 時、分の文字列 AnsiString str = (AnsiString)hour + "-" + (AnsiString)min; Memo1->Lines->SaveToFile(str + ".txt"); } //------------------------------------------------------------------- |