画像一括結合ソフト ImageMerge 0.1.2公開
画像一括結合ソフト ImageMergeのバージョン0.1.2を公開しました。
「画像一括結合ソフト ImageMerge 0.1.1公開」の記事のコメントでいただいた機能を実装しました。
« 2009年05月 | メイン | 2009年07月 »
画像一括結合ソフト ImageMergeのバージョン0.1.2を公開しました。
「画像一括結合ソフト ImageMerge 0.1.1公開」の記事のコメントでいただいた機能を実装しました。
C++Builder 2009からBoostが標準添付されて、とても使いやすくなりました。
boost::lexical_castは、数値と文字列の相互変換を行う関数です。
型によって関数を使い分ける必要がなく、同じように書くことができます。
#include <string>
#include <boost/lexical_cast.hpp>
using namespace std;
int n = boost::lexical_cast<int>("3");
string s = boost::lexical_cast<string>(123);
『C++テンプレートテクニック』には戻り値の型を推論することで、型の指定を不要にする方法が紹介されています。
次のようなコードを書くことができます。
int n = lexical("3");
string s = lexical(123);
詳しくは『C++テンプレートテクニック』をご覧下さい。
Mail Export Tool バージョン0.7.7を公開しました。
変更点
CSV Mailer バージョン0.3.0を公開しました。
2つの不具合を修正しました。
C++ TR1には正規表現ライブラリが含まれます。
C++Builder 2009で試してみたところ、std::tr1::regexを使用できました。
#include <iostream>
#include <regex>
#include <string>
//リンクのタグからURLを取得する
std::tr1::regex expression("href=\".*\"");
std::string tag = "<a href=\"http://www.gesoruce.jp/weblog/\">山本隆の開発日誌</a>";
std::tr1::smatch match;
if (std::tr1::regex_search(tag, match, expression))
{
std::cout << "url=" << match.str(1) << std::endl;
}
D2バージョン2.2.3a(ベータ版)を公開しました。
今回のバージョンアップでは、パラメータ入力画面の高度タブに「パラメータ文字も値に含める」を追加しました。
より自由度の高いメール解析・データ取得が可能になりました。
__propertyの使い方を整理してみた。
基本形
__property 型 名前 = { プロパティ属性 = データ/関数, … }
プロパティ属性の種類
read
読み込み時に参照する変数/関数
write
書き込み時に参照する変数/関数
stored
ture/false/論理値を返す関数
コンポーネントとして保存するかどうか
default
デフォルトの値
nodefault
index
リストや配列のインデックス。
例:メンバ変数を直接読み書き
class TMyClass {
private:
int FCount;
public:
TMyClass() : FCount(0) {};
__property int Count = { read = FCount, write=FCount }; //メンバ変数を指定
};
TMyClass obj;
obj.Count = 123;
cout << obj.Count << endl; //=>123
例:メンバ関数を通して読み書き
class TMyClass {
private:
int FCount;
void SetCount(int Count);
int GetCount();
public:
TMyClass() : FCount(0) {};
__property int Count = { read = FCount, write=FCount }; //メンバ関数を指定
};
例:読み込み専用
class TMyClass {
private:
int FCount;
public:
TMyClass() : FCount(0) {};
__property int Count = { read = FCount }; //readのみ
};
例:書き込み専用
class TMyClass {
private:
int FCount;
public:
TMyClass() : FCount(0) {};
__property int Count = { write=FCount }; //writeのみ
};
例:静的プロパティ
class TMyClass {
public:
static int FCount;
static int GetCount();
static void SetCount(int Count);
__property int Count = { read = GetCount, write = SetCount }; //静的プロパティ
};
cout << TMyClass::Count << endl;
例:配列
class TMyClass {
private:
int FDate[3];
int GetDate(int Index) { return FDate[Index]; }
public:
TMyClass() { FDate[0] = 2009; FDate[1] = 1; FDate[2] = 2; };
__property int Year = { read=GetDate, index = 0 };
__property int Month = { read=GetDate, index = 1 };
__property int Day = { read=GetDate, index = 2 };
};
TMyClass obj;
cout << obj.Year << endl; //=> 2009
cout << obj.Month << endl; //=> 1
cout << obj.Day << endl; //=> 2
例:リスト
class TMyClass {
private:
unique_ptr<TStringList> FDate;
UnicodeString GetDate(int Index) { return FDate->Strings[Index]; }
public:
TMyClass() : FDate(new TStringList()) {
FDate->Add("2009"); FDate->Add("1"); FDate->Add("2");
};
__property UnicodeString Year = { read=GetDate, index = 0 };
__property UnicodeString Month = { read=GetDate, index = 1 };
__property UnicodeString Day = { read=GetDate, index = 2 };
};
TMyClass obj;
wcout << obj.Year.c_str() << endl; //=> 2009
wcout << obj.Month.c_str() << endl; //=> 1
wcout << obj.Day.c_str() << endl; //=> 2
xls2htmlの独自タグについての説明を加筆しました。
CELLタグのfixed属性の説明を追加しました。
xls2htmlは、Excelで作成されたファイルをHTMLに変換するソフトウェアです。
Excelの表をHTMLのTABLEに変換するソフトは数多くありますが、
xls2htmlはテンプレートファイルの設定に従って自由な形式で変換できます。
元々、私の個人的なツールでしたので、初心者向けのソフトではありません。
HTMLの知識など、使用するにはある程度のスキルが必要になります。
とても一般向けのソフトとは言えません。
それでも多くのユーザにご利用いただいています。
当時は類似ソフトがありませんでしたので自分で作りましたが、今では似たようなソフトがあるかもしれません。
それでもxls2htmlを選んでもらえているのは、独自タグの強力さにあると思います。
xls2htmlを開発している当時、私が変換しなければならなかったExcelファイルは、見た目は整っていましたが、デジタルデータとしては使いにくいものでした。
そのようなExcelファイルがたくさんあり、とても手作業ではできない状況でした。
扱いにくいデータ形式に対応するために、自由度が高くて変換機能が強力なソフトである必要があったのです。
結果として、xls2htmlの3つの独自タグ(Excelタグ、Cellタグ、LOOPタグ)には、数多くの属性を指定することができるようになりました。
この強力さが今でも使っていただけている理由だろうと思います。
最後のバージョンを公開してから、もう5年もたちますね。
時間ができれば、Windows VistaやWindows 7に対応するために、
GUI部分だけでもC++Builderで作り直しても良いかな、と思っています。
メールの本文中にあるメールアドレスを抽出する方法。
「D2 メール自動データベース変換ソフト」を使うと、 メールの本文中に登場するすべてのメールアドレスを抽出することができます。
「D2 メール自動データベース変換ソフト」のパラメータの設定方法を紹介します。
パラメータ文字を選択すると、パラメータタブの残りの項目は自動的に設定されます。
パラメータ文字
プルダウンメニューから「^(本文)」を選択します。
正規表現を使用する
チェックします。
場所
「本文」を選択します。
行数
「複数行」を選択します。
変換開始行
「パラメータ行から」を選択します。
メールアドレスを抽出する
チェックします。
すべてのメールアドレスを抽出する
抽出するメールアドレスが1つだけの場合は、チェックしません。
すべてのメールアドレスを抽出する場合は、チェックします。
以上です。
この設定で、メールの本文中にあるメールアドレスを抽出することができます。
うまく変換できない場合は気軽にお問い合わせください。
連絡先はヘルプに掲載しています。
NetBeans 6.7がリリースされました。
NetBeans IDE 6.7 リリースノートを見ましたが、あまり魅力的な新機能がありませんでした。
Pythonの正式サポートも、まだ行われていません。
急いでバージョンアップするほどのものでもないと思います。
Mail Export Toolは、様々な形式のメールを様々な形式に変換するソフトウェアです。
Mail Export ToolでHTMLに変換することで、メールでの議論をブラウザで見やすくすることができます。
Mail Export ToolではテキストファイルやCSVファイルにの他に、HTMLファイルに変換することができます。
HTMLファイルは単純な一覧形式と、議論の流れが見やすいスレッド形式を作成することができます。
メーリングリストで投稿されたメールをMail Export Toolにすることで、 過去ログを見やすくしたり、情報の共有を促進することができます。
皆さんのご意見やご要望をお待ちしています。
気軽にお問い合わせください。