環境:VC++6.0
便利なクラス集
[INIファイル]
INIHandler.xxx
ほぼAPIのラッパクラス
直接
int, float の読み書きが可能
/* Memo */
INIファイルは、プログラムと同じフォルダに、同じファイル名で作られます。
#include
<stdlib.h>
#include
<string.h>
/* Functions */
CINIHandler::Write(section, key,
word)
CINIHandler::Read(section, key, word,
size)
そのまま、API
のラッパクラスとなっています。
(Read)INIファイルに定義がない場合、空白文字列が帰ります。
CINIHandler::Writexxx(...)
CINIHandler::Readxxx(...)
同様 |
[良く使う関数]
Misc.xxx
デバッグメッセージ、string.h
にない文字列関数の拡張など
/* Memo */
#include
<stdlib.h>
#include
<string.h>
/* Functions */
double Avg(double d1, double d2, double
weight, int type);
d1, d2 の間を内分した値を返す関数です。
type|
0 -> 相加平均, 1 -> 相乗平均, ...
void DebugMsg(char*
text, ...);
デバッグ用ポップアップメッセージ表示関数です。
printf
と同様に使用できます。
double SafetyLog(double
x);
x=0 で sl(x)=0 となるような対数関数です。
ゼロ付近では直線、x>1
で対数関数で定義されます。
BYTE*
FastDraw_Start(CDC* pDC, BITMAP* pbmp);
void SetPixelFast(BITMAP
*bmp, int x, int y, COLORREF c);
void FastDraw_End(BYTE*
bitmapData, CDC* pDC, BITMAP*
pbmp);
ピクセル単位の高速描画関数です。
CDC クラスを使用する場合、SetPixelV
は API のオーバヘッドがあるため
実用的にはメモリ単位での書き込みが必要です。
使用例
//
描画バッファ取得
BITMAP bmp;
BYTE* bitmapData =
FastDraw_Start(pDC, &bmp);
//
描画
for(int i=0; i<100; i++)
SetPixelFast(&bmp, i, i, RGB(255,0,0));
// 描画バッファ開放
FastDraw_End(bitmapData,
pDC, &bmp);
int strcharcnt(const
char *text, const char ltr);
文字 ltr が 文字列 text
に含まれる文字数を返します。
char* strsettoken(char *text, const
char ltr);
文字 ltr の 文字列 text での最初の出現を '\0'
に置き換え、その次の文字への
ポインタを返します。
(strtoken
と同様です)
char* strsettoken(char *text, const char*
token, int* usedTokenIdx);
トークン記号列 token のいずれかの文字の 文字列
text での最初の出現を
'\0' に置き換え、何番目のトークン記号が現れたかを usedTokenIdx
に設定し、
トークン記号の次の文字へのポインタを返します。
void strrmblank(char
*text);
文字列 text
から、両端のブランク記号(空白文字、タブ文字)を削除します。
|
[乱数生成器]
RandomDist.xxx
良く使う、一様乱数、正規乱数、ランダムウォークに対応
/* Memo */
#include
<stdlib.h>
/* Functions */
double random_double(double low, double
high);
下限 low, 上限 high の一様乱数を返します。
double
random_reg(double sigma, double avg);
平均 avg, 分散 sigma
の正規乱数を返します。
void CBrownian::Init(double sigma, double
stress);
void CBrownian::Reset();
double
CBrownian::GetNext();
分散 sigma (, ret=0 への張力 stress)
のブラウンノイズを返します。
|
[設定ファイルリーダ]
SettingFileReader.xxx
外部テキストエディタで編集可能な設定ファイルの読み込み器
/* Memo */
同じ名前が複数存在する場合、後のものを優先
ファイルフォーマットはソースから推測してください
#include
<string.h>
#include <stdio.h>
#include
<stdlib.h>
/* Functions */
int ReadFromFile(const char*
filename);
int GetData(const char* key, int*
data);
int GetData(const char* key, float*
data);
int GetData(const char* key, char*
data); |
|