弐条海月の とはずがたり

そこはかとなく書き綴るブログなるもの

新しいHSPアプリを開発中…

Windowsで動作するフリーのインタプリタ型プログラム言語「HSP(Hot Soup Processor)」にて仕事で使うアプリケーションを開発中です。今回も文字処理のアプリケーションですが、今までとは違った処理が必要になるので新しくユーザ関数を作りました。今日はそんなお話。

プログラムの流れは、不定期で必要になるテキストファイルを整形すること。一定のルールで単純な羅列された文字をXMLの形式に整形してXMLファイルとして出力するものです。不定期で追加されたテキストは順次、XMLファイルの中に組み込んでいくのですが、XMLファイルにしてから8日間を過ぎたデータは削除する処理も必要になってきます。HSPではデフォルトの命令文に「特定の日付から○日後を求める」というものがありませんので、自分で作ることにします。

今回のプログラムに特化して8日後を求める処理をダーッと書くのもアリですが、せっかく書くのだから汎用性の高いものにしたいと思いまして。以下の仕様でユーザ関数を作ることにしました。

  • ・今日の日付を基点として○日後の日付を求めることができる。
  • ・パラメータの追加によって基点となる年月日の変更が可能。
  • ・○日の部分をマイナス表記にすることで○日前の日付を求めることもできる。
  • ・関数名は「K_WHAT_DAY」

書式はこんな感じになります。

結果を格納する変数=K_WHAT_DAY(○日前または後の数値,年,月,日)

年、月、日はオプションです。入力する場合は数値型変数でなければなりません。
例を挙げるとこうなります。

DAY = K_WHAT_DAY(3)	//今日から3日後の年月日が文字列型変数で返ります。
			//今日が2011年5月3日であれば20110506

上記の例で分かると思いますが、実行結果の年月日の月と日の値が1桁の場合、頭にゼロを加えて2桁にしてあります(この処理はすでに完成させている自作モジュールkurage_modの機能です)。

マイナスの数値を入れて実行すると○日前の年月日を求めることができます。

DAY = K_WHAT_DAY(-5)	//今日から5日前の年月日が文字列型変数で返ります。
			//今日が2011年5月3日であれば20110428

次はオプションのパラメータの説明をしますね。数値型変数で年、月、日を入力すれば、基点となる日付が今日ではなく入力した年月日になります。

DAY = K_WHAT_DAY(3,2011,6,6) //パラメーターで指定した年月日から3日後の年月日が文字列型変数で返ります。
//2011年6月6日であれば20110609

以上がユーザ関数のお話です。良い感じに仕上がったと思うので、これを自作モジュール「kurage_mod」に組み込むことにします。「kurage_mod」とは私が開発した自作命令や自作関数をまとめたものです。文字処理に特化しているのが特徴で、HSP純正にはない豊富な文字処理機能を有しております。以前は公開していたのですが、サイトのリニューアルに伴って公開停止しておりました。せっかくなので今回のユーザ関数を追加した新バージョンを公開するべく準備にとりかかりたいと思います。


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

固定ページ

最近の投稿

カテゴリー





カレンダー

2011年5月
 1
2345678
9101112131415
16171819202122
23242526272829
3031  

過去の日記はこちら

キーワードで検索