ありそうでなさそうなTeeChart(VCL)用のヘルプファイル。
http://www.steema.com/files/public/teechart/vcl/
の
TeeChart2011CHMHelp.zip
がヘルプファイルな模様。
ただし、WidnowsVista以降はヘルプ形式が異なるので、古いヘルプ コンテンツ用のコンポーネントをインストールする必要がある。
http://support.microsoft.com/kb/917607/ja
2012年10月14日
TeeChar(TChart)のヘルプファイル取得
posted by すら at 13:12| プログラミングなこと
2012年09月29日
tee chart 使い方。
以下、C++BuilderXE付属のTeeChartの使い方例。
横軸が時間のグラフの場合。
1.貼り付ける
TChartを貼り付ける。以下コード例ではChart1
2.設定変更
たぶんプログラムでどれもが弄れるはず。
・グラフの追加
右クリック→EditChart
→SeriesでAdd、このとき3Dでなく2Dの場合は下の3Dチェックを外す
→とりあえずLineを選択
→Series※ができるので、Title..ボタンで適当にいい名前に変更する
・横軸を時刻のグラフにする
作成したSeries※を左側で選択し、Generalタブを選択
→HorizontalAxisのDateTimeにチェックを入れる→時間のグラフになる
左側でChart→Axis→BottomAxisを選択し、Labels→Styleタブを選択
→Angle で時間表示の傾きを指定
左側でChart→Axis→BottomAxisを選択し、Labels→Formatタブを選択
→DateTimeFormatでh:mm:ssを指定し時間軸を時分秒表示にする
・凡例非表示
左側でChart→Legendを選択し、Styleタブを選択
→凡例非表示のためVisibleのチェックを外す
作成したSeries※を左側で選択し、Generalタブを選択
→ShowInLegendのチェックを外す→グラフに右側に出ていたデータ凡例が消える
・フォント指定
左側でChart→Generalを選択し、Fontタブを選択
→左側から対象の文字列を選び、右側で設定する
・パネルの色
左側でChartPanelを選択し、Colorタブを選択
→Colorを変える
・グラフ線の太さ色の指定
作成したSeries※を左側で選択し、Formatタブを選択
→Borderで線の太さ、色を指定する。
・グリッドの線
左側でChart→Axis→BottomAxis(LeftAxis)を選択し、Gridタブを選択
→Gridボタンを押して設定する
・グラフタイトルの表示
左側でChart→Titleを選択し、Styleタブ→Textにグラフ名を入れる
プログラムからは
Chart1->Title->Text->Clear();
Chart1->Title->Text->Add("グラフの名前");
・グラフを書く
プログラムから
Chart1->Series[0]->Clear();
Chart1->Series[0]->AddXY( now, y, "", clBlue );
ただし、
double now = (double)Now(); 横軸時間の場合のサンプル。
y :yの値
3つめ、X軸に表示したい名前
4つ目:線の色
・印刷
プログラムから
用紙縦指定で印刷
Chart1->PrintPortrait();
用紙横指定で印刷
Chart1->PrintLandscape();
既存設定で印刷
Chart1->Print();
まぁグラフなら用紙横だよな、大抵。
横軸が時間のグラフの場合。
1.貼り付ける
TChartを貼り付ける。以下コード例ではChart1
2.設定変更
たぶんプログラムでどれもが弄れるはず。
・グラフの追加
右クリック→EditChart
→SeriesでAdd、このとき3Dでなく2Dの場合は下の3Dチェックを外す
→とりあえずLineを選択
→Series※ができるので、Title..ボタンで適当にいい名前に変更する
・横軸を時刻のグラフにする
作成したSeries※を左側で選択し、Generalタブを選択
→HorizontalAxisのDateTimeにチェックを入れる→時間のグラフになる
左側でChart→Axis→BottomAxisを選択し、Labels→Styleタブを選択
→Angle で時間表示の傾きを指定
左側でChart→Axis→BottomAxisを選択し、Labels→Formatタブを選択
→DateTimeFormatでh:mm:ssを指定し時間軸を時分秒表示にする
・凡例非表示
左側でChart→Legendを選択し、Styleタブを選択
→凡例非表示のためVisibleのチェックを外す
作成したSeries※を左側で選択し、Generalタブを選択
→ShowInLegendのチェックを外す→グラフに右側に出ていたデータ凡例が消える
・フォント指定
左側でChart→Generalを選択し、Fontタブを選択
→左側から対象の文字列を選び、右側で設定する
・パネルの色
左側でChartPanelを選択し、Colorタブを選択
→Colorを変える
・グラフ線の太さ色の指定
作成したSeries※を左側で選択し、Formatタブを選択
→Borderで線の太さ、色を指定する。
・グリッドの線
左側でChart→Axis→BottomAxis(LeftAxis)を選択し、Gridタブを選択
→Gridボタンを押して設定する
・グラフタイトルの表示
左側でChart→Titleを選択し、Styleタブ→Textにグラフ名を入れる
プログラムからは
Chart1->Title->Text->Clear();
Chart1->Title->Text->Add("グラフの名前");
・グラフを書く
プログラムから
Chart1->Series[0]->Clear();
Chart1->Series[0]->AddXY( now, y, "", clBlue );
ただし、
double now = (double)Now(); 横軸時間の場合のサンプル。
y :yの値
3つめ、X軸に表示したい名前
4つ目:線の色
・印刷
プログラムから
用紙縦指定で印刷
Chart1->PrintPortrait();
用紙横指定で印刷
Chart1->PrintLandscape();
既存設定で印刷
Chart1->Print();
まぁグラフなら用紙横だよな、大抵。
posted by すら at 20:18| プログラミングなこと
2012年08月21日
C++Builder2007以前orC++Builder2009以降の判定
C++Builder2007以前は AnsiString が標準文字列
C++Builder2009以降は UnicdeString が標準文字列
どちらでも動くようにコードを書く場合は判定が必要
#ifdef _DELPHI_STRING_UNICODE
がTrueの場合はC++Builder2009以降となる。
C++Builder2009以降は UnicdeString が標準文字列
どちらでも動くようにコードを書く場合は判定が必要
#ifdef _DELPHI_STRING_UNICODE
がTrueの場合はC++Builder2009以降となる。
posted by すら at 16:16| プログラミングなこと
2012年08月09日
Presonus FaderPort をMIDIコントロール。
FaderPortを買って自作MIDIモニタプログラムを通してわかったこと。
・デフォルトの入出力はMackieのHUIプロトコルに準拠。
0x90, 0x00, 0x00 でPing。
0xb0, 0x0c, ZZ / 0xb0, 0x2c, 0x4P でLED On ただし、ZZ:Zone P:Port
入力もまぁ似た感じ。
スイッチによっては1つ押しても複数のZone/Portの信号が出てくるものがある。
ただし、フェーダー/パンポット関係のIOだけが不明。
特にフェーダーはシンプルなはずなのだが。
・デフォルトの入出力はMackieのHUIプロトコルに準拠。
0x90, 0x00, 0x00 でPing。
0xb0, 0x0c, ZZ / 0xb0, 0x2c, 0x4P でLED On ただし、ZZ:Zone P:Port
入力もまぁ似た感じ。
スイッチによっては1つ押しても複数のZone/Portの信号が出てくるものがある。
ただし、フェーダー/パンポット関係のIOだけが不明。
特にフェーダーはシンプルなはずなのだが。
posted by すら at 22:55| プログラミングなこと
2011年10月29日
UDP の原因不明な読み込みミス
T-KernelでのUDP受信において。
2KByte以上だと、なぜかそのパケット自体が無視される。
まったくないものとしてタイムアウト(selectで設定した場合)するので、
サイズが原因であることになかなか気が付きにくい。
受信バッファが2Kしかないのか?
2KByte以上だと、なぜかそのパケット自体が無視される。
まったくないものとしてタイムアウト(selectで設定した場合)するので、
サイズが原因であることになかなか気が付きにくい。
受信バッファが2Kしかないのか?
posted by すら at 21:21| プログラミングなこと
2011年03月01日
C++BuilderXEのライセンス
以下、サポートから聞いた内容です。
C++BuilderXEを複数台のPCにインストールすることは問題ない。
ただし、条件は同時に使用しないことが条件となる。
2台目以降のアクティベーションは1台目のインストールで行った内容と同じ内容を指定すること。
------
複数台にインストールできるのはありがたいです。
そこらへん、ダメだと思ってました。
ライセンスの話だから、他のエンバカデロの開発系製品も同じなんでしょうね、きっと。
C++BuilderXEを複数台のPCにインストールすることは問題ない。
ただし、条件は同時に使用しないことが条件となる。
2台目以降のアクティベーションは1台目のインストールで行った内容と同じ内容を指定すること。
------
複数台にインストールできるのはありがたいです。
そこらへん、ダメだと思ってました。
ライセンスの話だから、他のエンバカデロの開発系製品も同じなんでしょうね、きっと。
posted by すら at 10:11| プログラミングなこと
2011年02月25日
newの罠(C++)
new は単にあいたところからメモリを確保しているだけ。
たとえば
char *p = new char[ size ];
は
char をsize回確保しているにすぎず。
となると、p[]でアクセスするときは問題ないが
*p が連続である前提とすると、こけることがある
ということらしい。
たとえば
char *p = new char[ size ];
は
char をsize回確保しているにすぎず。
となると、p[]でアクセスするときは問題ないが
*p が連続である前提とすると、こけることがある
ということらしい。
posted by すら at 10:43| プログラミングなこと
2010年10月20日
ソフトウエアエンジニアリング
独立行政法人 情報処理推進機構(IPA)の
ソフトウエアエンジニアリングの研究成果。
http://sec.ipa.go.jp/publish/index.html#emb
組込みソフトウェア開発向けコーディング作法ガイドが素敵。
ダウンロードは会員登録が必要(無料)なようです。
ソフトウエアエンジニアリングの研究成果。
http://sec.ipa.go.jp/publish/index.html#emb
組込みソフトウェア開発向けコーディング作法ガイドが素敵。
ダウンロードは会員登録が必要(無料)なようです。
posted by すら at 09:23| プログラミングなこと
2009年12月16日
STL C++ / dequeサンプル
STL C++ / dequeサンプル。
トータルallcnt個のデータで最大、最小それぞれunuse個のデータを除いて平均する。
STLを使うときの注意として。
・イテレータの種類に気をつけること。
・関数の実装がdequeやlistなどの機能によってあったりなかったりするので確認必要。
以下、<>は全角になっている。注意。
ヘッダ ------------------------------
#include <deque>
#include <algorithm>
#include <numeric>
typedef std::deque<double> DataContainer;
class CFilter
{
private:
DataContainer dcDat; // データ実体
public:
// 汎用フィルタ ---------------------------------------
// allcnt点中 max:unuse点、min:unuse 点を除いて平均する。
bool calc_nmvMaxMinFilter( int allcnt, int unuse, double value, double *filterValue );
};
CPPファイル ------------------------------
// allcnt:全データ点数
// unuse:平均から除くMax側,Min側各点数(共通)
// value:今回与える値
// filterValue:平均値(出力:ポインタ)
// ※データ点数が変化すれば初期化、入力値でパディング
bool CFilter::calc_nmvMaxMinFilter( int allcnt, int unuse, double value, double *filterValue )
{
DataContainer dcTmp;
DataContainer::iterator st, ed;
if( allcnt < unuse * 2 + 1 ) // データ数指定がおかしい?
return false;
if( dcDat.size() != (unsigned int)allcnt ) // データ数が変化した?
{
dcDat.clear(); // 今までのデータをクリア
for( int i =0; i < allcnt; i++ ) // 初期データとしてパディングする
dcDat.push_back( value );
}
// データを追加する
if( dcDat.size() == (unsigned int)allcnt )
dcDat.pop_front();
dcDat.push_back( value ); // データを保持
// 壊してよいデータ領域にコピーしてソート
dcTmp = dcDat;
sort( dcTmp.begin(), dcTmp.end() ); // ソート実施
// 先頭/末尾をそれぞれ指定個数、平均範囲から削除
st = dcTmp.begin(); // スタートのイテレータ取得
advance( st, unuse ); // 平均に使用しない指定数分、イテレータを進める
ed = dcTmp.end(); // 末尾のイテレータ取得
advance( ed, -(unuse) ); // 平均に使用しない指定数分、イテレータを戻す
// 平均の実行
*filterValue = accumulate( st, ed, 0 ) / distance( st, ed );
// 0を初期値としてトータル計算、加算個数で割る
return true;
}
トータルallcnt個のデータで最大、最小それぞれunuse個のデータを除いて平均する。
STLを使うときの注意として。
・イテレータの種類に気をつけること。
・関数の実装がdequeやlistなどの機能によってあったりなかったりするので確認必要。
以下、<>は全角になっている。注意。
ヘッダ ------------------------------
#include <deque>
#include <algorithm>
#include <numeric>
typedef std::deque<double> DataContainer;
class CFilter
{
private:
DataContainer dcDat; // データ実体
public:
// 汎用フィルタ ---------------------------------------
// allcnt点中 max:unuse点、min:unuse 点を除いて平均する。
bool calc_nmvMaxMinFilter( int allcnt, int unuse, double value, double *filterValue );
};
CPPファイル ------------------------------
// allcnt:全データ点数
// unuse:平均から除くMax側,Min側各点数(共通)
// value:今回与える値
// filterValue:平均値(出力:ポインタ)
// ※データ点数が変化すれば初期化、入力値でパディング
bool CFilter::calc_nmvMaxMinFilter( int allcnt, int unuse, double value, double *filterValue )
{
DataContainer dcTmp;
DataContainer::iterator st, ed;
if( allcnt < unuse * 2 + 1 ) // データ数指定がおかしい?
return false;
if( dcDat.size() != (unsigned int)allcnt ) // データ数が変化した?
{
dcDat.clear(); // 今までのデータをクリア
for( int i =0; i < allcnt; i++ ) // 初期データとしてパディングする
dcDat.push_back( value );
}
// データを追加する
if( dcDat.size() == (unsigned int)allcnt )
dcDat.pop_front();
dcDat.push_back( value ); // データを保持
// 壊してよいデータ領域にコピーしてソート
dcTmp = dcDat;
sort( dcTmp.begin(), dcTmp.end() ); // ソート実施
// 先頭/末尾をそれぞれ指定個数、平均範囲から削除
st = dcTmp.begin(); // スタートのイテレータ取得
advance( st, unuse ); // 平均に使用しない指定数分、イテレータを進める
ed = dcTmp.end(); // 末尾のイテレータ取得
advance( ed, -(unuse) ); // 平均に使用しない指定数分、イテレータを戻す
// 平均の実行
*filterValue = accumulate( st, ed, 0 ) / distance( st, ed );
// 0を初期値としてトータル計算、加算個数で割る
return true;
}
posted by すら at 18:27| プログラミングなこと
2009年11月10日
バイトオーダー変換
バイトオーダ変換
htol
バイト整数をWindow形式からネットワークバイトオーダー形式に変換
htos
2バイト整数をWindow形式からネットワークバイトオーダー形式に変換
htohl
4バイト整数をネットワークバイトオーダー形式からWindow形式に変換
htohs
2バイト整数をネットワークバイトオーダー形式からWindow形式に変換
Window形式:リトルエンディアン
ネットワークバイトオーダー形式:ビッグエンディアン
htol
バイト整数をWindow形式からネットワークバイトオーダー形式に変換
htos
2バイト整数をWindow形式からネットワークバイトオーダー形式に変換
htohl
4バイト整数をネットワークバイトオーダー形式からWindow形式に変換
htohs
2バイト整数をネットワークバイトオーダー形式からWindow形式に変換
Window形式:リトルエンディアン
ネットワークバイトオーダー形式:ビッグエンディアン
posted by すら at 14:34| プログラミングなこと
2009年09月07日
fmlのメンバー配信停止のマニュアル設定
spool/ml/メーリングリスト名 のホルダにおいて。
actives
members
members-name
の各ファイルにおいて。
停止したいメンバーの前に
##BYE をつける。(BYEの後ろのスペースも忘れずに)
たぶん# だけでもいいと思うが。
念のためBYEもつけた(^^;
設定後、ダミーでメールを1件メーリングリストへ投げて。
spool/ml/メーリングリスト名/var/log で _smtplog を開き。
##BYE をつけたメンバーに配信していないことを確認して終了。
actives
members
members-name
の各ファイルにおいて。
停止したいメンバーの前に
##BYE をつける。(BYEの後ろのスペースも忘れずに)
たぶん# だけでもいいと思うが。
念のためBYEもつけた(^^;
設定後、ダミーでメールを1件メーリングリストへ投げて。
spool/ml/メーリングリスト名/var/log で _smtplog を開き。
##BYE をつけたメンバーに配信していないことを確認して終了。
posted by すら at 10:00| プログラミングなこと
fml を ○○連絡網もどきに設定する、その4
Soft○ankからのレスには、件名になぜかBcc:が付く。(機種依存?)
うっとーしいので、これも消すように改造。
以下、config.phについて。$START_HOOK部分への追記は同じ。
&use('member_name');
$START_HOOK = q#
$s = &CheckMemberNameFile($From_address);
$BodyOld = $Envelope{'Body'};
$SubOld = &mimedecode( $Envelope{'h:Subject:'} );
if( $SubOld =~ /re:/i )
{
$SubOld =~ s/re://gi;
$SubOld =~ s/bcc://gi;
$SubOld =~ s/cc://gi;
$SubOld =~ s/\[.*\]//g;
$SubOld =~ s/^(?:\s)+//o;;
$SubOld = "Re:" . $SubOld;
}
else
{
$SubOld =~ s/bcc://gi;
$SubOld =~ s/cc://gi;
$SubOld =~ s/\[.*\]//g;
$SubOld =~ s/^(?:\s)+//o;;
}
if( $s )
{
$BodyOld = "from " . $s ."\n\n". $BodyOld;
$SubOld = "[" . $s . "]" . $SubOld;
}
else
{
$BodyOld = "from " . $From_address ."\n\n". $BodyOld;
$SubOld = "[" . $From_address . "]" . $SubOld;
}
$Envelope{'fh:from:'} = $MAIL_LIST;
$Envelope{'h:Subject:'} = &mimeencode( $SubOld );
$Envelope{'Body'} = $BodyOld;
#;
うっとーしいので、これも消すように改造。
以下、config.phについて。$START_HOOK部分への追記は同じ。
&use('member_name');
$START_HOOK = q#
$s = &CheckMemberNameFile($From_address);
$BodyOld = $Envelope{'Body'};
$SubOld = &mimedecode( $Envelope{'h:Subject:'} );
if( $SubOld =~ /re:/i )
{
$SubOld =~ s/re://gi;
$SubOld =~ s/bcc://gi;
$SubOld =~ s/cc://gi;
$SubOld =~ s/\[.*\]//g;
$SubOld =~ s/^(?:\s)+//o;;
$SubOld = "Re:" . $SubOld;
}
else
{
$SubOld =~ s/bcc://gi;
$SubOld =~ s/cc://gi;
$SubOld =~ s/\[.*\]//g;
$SubOld =~ s/^(?:\s)+//o;;
}
if( $s )
{
$BodyOld = "from " . $s ."\n\n". $BodyOld;
$SubOld = "[" . $s . "]" . $SubOld;
}
else
{
$BodyOld = "from " . $From_address ."\n\n". $BodyOld;
$SubOld = "[" . $From_address . "]" . $SubOld;
}
$Envelope{'fh:from:'} = $MAIL_LIST;
$Envelope{'h:Subject:'} = &mimeencode( $SubOld );
$Envelope{'Body'} = $BodyOld;
#;
posted by すら at 09:54| プログラミングなこと
2009年07月24日
2009年07月14日
T-Kernel の malloc
Tカーネルモードだとmallocは使えないようだ。
Vmalloc, Smallocなどに変更必要。
なんか、いけてない。
Vmalloc, Smallocなどに変更必要。
なんか、いけてない。
posted by すら at 16:44| Comment(0)
| プログラミングなこと
2009年07月03日
fml を ○○連絡網もどきに設定する、その3
続き。
その2までの、とりあえず差出人を[]でくくって先頭につけるのは
レスが溜まってくると件名が長くなるので、その対策をした。
re:があればre:も含めて、[ から ] までを全部削除。
先頭の不要スペースも削除の上、元がre:付きなら改めて付け、
その前に差出人名称を[] でくくって追加とした。
以下、config.phについて。
&use('member_name');
$START_HOOK = q#
$s = &CheckMemberNameFile($From_address);
$BodyOld = $Envelope{'Body'};
$SubOld = &mimedecode( $Envelope{'h:Subject:'} );
if( $SubOld =~ /re:/i )
{
$SubOld =~ s/re://gi;
$SubOld =~ s/\[.*\]//g;
$SubOld =~ s/^(?:\s)+//o;;
$SubOld = "Re:" . $SubOld;
}
else
{
$SubOld =~ s/\[.*\]//g;
$SubOld =~ s/^(?:\s)+//o;;
}
if( $s )
{
$BodyOld = "from " . $s ."\n\n". $BodyOld;
$SubOld = "[" . $s . "]" . $SubOld;
}
else
{
$BodyOld = "from " . $From_address ."\n\n". $BodyOld;
$SubOld = "[" . $From_address . "]" . $SubOld;
}
$Envelope{'fh:from:'} = $MAIL_LIST;
$Envelope{'h:Subject:'} = &mimeencode( $SubOld );
$Envelope{'Body'} = $BodyOld;
#;
Bodyの from:... は、携帯で本文ナシ+画像添付だと消える。
原因不明、画像encodeの都合かいな?
その2までの、とりあえず差出人を[]でくくって先頭につけるのは
レスが溜まってくると件名が長くなるので、その対策をした。
re:があればre:も含めて、[ から ] までを全部削除。
先頭の不要スペースも削除の上、元がre:付きなら改めて付け、
その前に差出人名称を[] でくくって追加とした。
以下、config.phについて。
&use('member_name');
$START_HOOK = q#
$s = &CheckMemberNameFile($From_address);
$BodyOld = $Envelope{'Body'};
$SubOld = &mimedecode( $Envelope{'h:Subject:'} );
if( $SubOld =~ /re:/i )
{
$SubOld =~ s/re://gi;
$SubOld =~ s/\[.*\]//g;
$SubOld =~ s/^(?:\s)+//o;;
$SubOld = "Re:" . $SubOld;
}
else
{
$SubOld =~ s/\[.*\]//g;
$SubOld =~ s/^(?:\s)+//o;;
}
if( $s )
{
$BodyOld = "from " . $s ."\n\n". $BodyOld;
$SubOld = "[" . $s . "]" . $SubOld;
}
else
{
$BodyOld = "from " . $From_address ."\n\n". $BodyOld;
$SubOld = "[" . $From_address . "]" . $SubOld;
}
$Envelope{'fh:from:'} = $MAIL_LIST;
$Envelope{'h:Subject:'} = &mimeencode( $SubOld );
$Envelope{'Body'} = $BodyOld;
#;
Bodyの from:... は、携帯で本文ナシ+画像添付だと消える。
原因不明、画像encodeの都合かいな?
posted by すら at 12:24| プログラミングなこと
2009年05月12日
fml を ○○連絡網もどきに設定する、その2
続き。
画像を添付すると、本文に追加したはずの差出人名が消えるので、タイトルにも追記するように変更する。
以下、config.phについて。
&use('member_name');
$START_HOOK = q#
$s = &CheckMemberNameFile($From_address);
if( $s )
{
$Envelope{'Body'} = "from " . $s ."\n\n". $Envelope{'Body'};
$Envelope{'h:Subject:'} = "[From:" . $s . "]" . $Envelope{'h:Subject:'};
}
else
{
$Envelope{'Body'} = "from " . $From_address ."\n\n". $Envelope{'Body'};
$Envelope{'h:Subject:'} = "[From:" . $From_address . "]" . $Envelope{'h:Subject:'};
}
$Envelope{'fh:from:'} = $MAIL_LIST;
#;
あと。
ログを見るとIPv6で接続できん、とエラーが出ていたので。
1001行目あたりコメントアウトされているものを修正
# $USE_INET6 = 1;
をコメントを外し、=0とする。
$USE_INET6 = 0;
画像を添付すると、本文に追加したはずの差出人名が消えるので、タイトルにも追記するように変更する。
以下、config.phについて。
&use('member_name');
$START_HOOK = q#
$s = &CheckMemberNameFile($From_address);
if( $s )
{
$Envelope{'Body'} = "from " . $s ."\n\n". $Envelope{'Body'};
$Envelope{'h:Subject:'} = "[From:" . $s . "]" . $Envelope{'h:Subject:'};
}
else
{
$Envelope{'Body'} = "from " . $From_address ."\n\n". $Envelope{'Body'};
$Envelope{'h:Subject:'} = "[From:" . $From_address . "]" . $Envelope{'h:Subject:'};
}
$Envelope{'fh:from:'} = $MAIL_LIST;
#;
あと。
ログを見るとIPv6で接続できん、とエラーが出ていたので。
1001行目あたりコメントアウトされているものを修正
# $USE_INET6 = 1;
をコメントを外し、=0とする。
$USE_INET6 = 0;
posted by すら at 10:48| プログラミングなこと
2009年05月07日
fml を ○○連絡網もどきに設定する
携帯で運用時、メーリングリストのメールだけを管理したい場合に、Fromヘッダを変更する必要がある。
が、Fromヘッダを変更すると誰から来たメールなのか解らないので、送信者名をメールの先頭に記載する。
送信者名は元からある機能を使って管理とする。
fml でメーリングリストを作成して以下カスタマイズ
(メーリングリストの作成自体はレンタルサーバーのサーバーコントロールパネル等で実施)
spool/ml/メーリングリスト名ホルダ下において。
1)config.phにおいて以下をSection: LOCAL CONFIGのあたり(1525行あたり?)に追加。
&use('member_name');
$START_HOOK = q#
$s = &CheckMemberNameFile($From_address);
if( $s )
{
$Envelope{'Body'} = "from " . $s ."\n\n". $Envelope{'Body'};
}
else
{
$Envelope{'Body'} = "from " . $From_address ."\n\n". $Envelope{'Body'};
}
$Envelope{'fh:from:'} = $MAIL_LIST;
#;
2)config.phにおいてメンバー名リストの使用を指定する
$USE_MEMBER_NAME=1;とする
(1217行目あたり:コメントアウトされているのを編集)
3)ユーザーリストを作成、Upする。
自動登録時 ('confirm','subscribe' コマンドによる登録も含む)なら不要(と思われる:未確認)。
手動でするなら、members-nameを作成、config.phと同じホルダに保存すること。
このファイルの内容は
メールアドレス<タブ>表示名<LF>
例
aaa@bbbbb すら1号
ccc@ddddd すら2号
:
といった感じ。
注意事項)
メンバーは、members と members-name の両方に登録なこと。
また、members-name はJISで、改行はLFで。JISじゃないと以降が文字化けを起こす(事が端末によってある)
が、Fromヘッダを変更すると誰から来たメールなのか解らないので、送信者名をメールの先頭に記載する。
送信者名は元からある機能を使って管理とする。
fml でメーリングリストを作成して以下カスタマイズ
(メーリングリストの作成自体はレンタルサーバーのサーバーコントロールパネル等で実施)
spool/ml/メーリングリスト名ホルダ下において。
1)config.phにおいて以下をSection: LOCAL CONFIGのあたり(1525行あたり?)に追加。
&use('member_name');
$START_HOOK = q#
$s = &CheckMemberNameFile($From_address);
if( $s )
{
$Envelope{'Body'} = "from " . $s ."\n\n". $Envelope{'Body'};
}
else
{
$Envelope{'Body'} = "from " . $From_address ."\n\n". $Envelope{'Body'};
}
$Envelope{'fh:from:'} = $MAIL_LIST;
#;
2)config.phにおいてメンバー名リストの使用を指定する
$USE_MEMBER_NAME=1;とする
(1217行目あたり:コメントアウトされているのを編集)
3)ユーザーリストを作成、Upする。
自動登録時 ('confirm','subscribe' コマンドによる登録も含む)なら不要(と思われる:未確認)。
手動でするなら、members-nameを作成、config.phと同じホルダに保存すること。
このファイルの内容は
メールアドレス<タブ>表示名<LF>
例
aaa@bbbbb すら1号
ccc@ddddd すら2号
:
といった感じ。
注意事項)
メンバーは、members と members-name の両方に登録なこと。
また、members-name はJISで、改行はLFで。JISじゃないと以降が文字化けを起こす(事が端末によってある)
posted by すら at 15:01| プログラミングなこと
2009年03月03日
8.5以降の歴代クリスタルレポート(Crystal Reports)のサービスパック
販売元のAG-TECHのサイトにはどこをどう探してもサービスパックの情報は今も昔(4年前)もどこにも無いので。
(少なくとも、30分調べてみつからんやった)
不具合情報の中には平気で、「Hot Fix やサービスパックを適用していない環境では・・・」って。そんあものがあるんかい!?
結局、Crystal Reports v10 update でぐぐった方が早かった。
http://resources.businessobjects.com/support/additional_downloads/service_packs/crystal_reports_en.asp#CR10
英語版なようだが・・・使えるかなぁ?
(少なくとも、30分調べてみつからんやった)
不具合情報の中には平気で、「Hot Fix やサービスパックを適用していない環境では・・・」って。そんあものがあるんかい!?
結局、Crystal Reports v10 update でぐぐった方が早かった。
http://resources.businessobjects.com/support/additional_downloads/service_packs/crystal_reports_en.asp#CR10
英語版なようだが・・・使えるかなぁ?
posted by すら at 15:18| プログラミングなこと
2009年03月02日
MS Forms2.0 のインストール(VB)
いまさら使わないかもしれないが、FM20.DLLの入手方法。
FM20.DLLはMicrosoft Office 97などに付属のコンポーネント集であり、再配布不可らしい。
なので、FM20.DLLを使ったアプリをインストールする必要がある。
Office97などが無い場合は、
Microsoft ActiveX Control Pad なるものを入れるのが一番早い様子。
2009/03/02現在、以下よりダウンロードできた。
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnaxctrl/html/cpad.asp
使わないのが一番良いそうだ。
FM20.DLLはMicrosoft Office 97などに付属のコンポーネント集であり、再配布不可らしい。
なので、FM20.DLLを使ったアプリをインストールする必要がある。
Office97などが無い場合は、
Microsoft ActiveX Control Pad なるものを入れるのが一番早い様子。
2009/03/02現在、以下よりダウンロードできた。
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnaxctrl/html/cpad.asp
使わないのが一番良いそうだ。
posted by すら at 18:18| プログラミングなこと
HASP + VirtualPC
VirtualPC上にWindowsXPのっけて。
HASPドライバ入れて。
LPT1を物理LPT1へ接続して。
・・・でもHASPがちゃんと認証できないみたい。
VirtualPC上では使えない、ということみたいだった。
案外不便な子やなぁ。
HASPって。
HASPドライバ入れて。
LPT1を物理LPT1へ接続して。
・・・でもHASPがちゃんと認証できないみたい。
VirtualPC上では使えない、ということみたいだった。
案外不便な子やなぁ。
HASPって。
posted by すら at 18:11| プログラミングなこと