home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
DOS/V Power Report 1999 February
/
VPR9902A.BIN
/
APUPDATE
/
VC
/
Tx300d
/
TX300D.LZH
/
PROF.C
< prev
next >
Wrap
Text File
|
1997-03-27
|
4KB
|
177 lines
// WZ EDITOR 標準TLL INIファイル操作
// Thanks dieさん
// prof -- INIファイル操作(将来はレジストリ対応かな)
//{###INIファイル操作}
//任意のINIファイルやWZ.INIファイルから、データを読み込んだり、
//データを書き込んだりする機能を提供します。
//利用方法:
//[1]#include "prof.h"
//[2]変数を用意
//TxProfile prof;
//[3]profWzIniNewかprofWzDirNewかprofNewを使って初期化
//[4]profReadIntやprofWriteIntでアクセス
//[5]アクセスが終わったらprofDeleteしてください
//利用例:filer.c
//thanks dieさん
#include "wintxx.h"
#export
typedef struct tagTxProfile
{
mchar m_szPath[CCHPATHNAME];
mchar m_szSection[32];
} TxProfile;
#endexport
void TXAPI profNew(TxProfile* pProf, mchar* pPath, mchar* pSection)
{
// 初期化(一般用)
// pPathでINIファイル名、
// pSectionでアクセスするセクションを指定してください
strcpy(pProf->m_szPath, pPath);
strcpy(pProf->m_szSection, pSection);
}
void TXAPI profWzDirNew(TxProfile* pProf, mchar* pPath, mchar* pSection)
{
// 初期化(WZディレクトリ内のINIファイル用)
// pPathでINIファイル名、
// pSectionでアクセスするセクションを指定してください
mchar sz[CCHPATHNAME];
#if 1//2.00E ユーザ毎設定対応
pathFullConfig(sz,pPath);
#else
strcpy(sz, text->szexedir);
strcat(sz, pPath);
#endif
profNew(pProf, sz, pSection);
}
void TXAPI profWzIniNew(TxProfile* pProf, mchar* pSection)
{
// 初期化(WZ.INI専用)
// pSectionでアクセスするセクションを指定してください
profWzDirNew(pProf, "wz.ini", pSection);
}
void TXAPI profDelete(TxProfile* pProf)
{
// 後始末(デストラクタ)
/// 今の所なにもする必要はない
}
void TXAPI profWriteStr(TxProfile* pProf, mchar* pKey, mchar* pStr)
{
// 文字列出力
// データ名pKeyの内容を文字列pStrとします
WritePrivateProfileString( pProf->m_szSection,
pKey,
pStr,
pProf->m_szPath);
}
void TXAPI profWriteInt(TxProfile* pProf, mchar* pKey, int nVal)
{
// 数値出力
// データ名pKeyの内容を数値nValとします
mchar sz[20];
sprintf(sz, "%d", nVal);
profWriteStr(pProf, pKey, sz);
}
void TXAPI profReadStr(
TxProfile* pProf, mchar* pKey, mchar* pBuf, int nMax, mchar* pDef)
{
// 文字列入力
// データ名pKeyの内容を文字列バッファpBufに読み込みます
// バッファのサイズをnMaxに指定してください。最大nMax-1バイト読み込みます
// pDefには、データ名pKeyが見つからなかった時にpBufにセットする内容を指定します。
GetPrivateProfileString(pProf->m_szSection,
pKey,
pDef,
pBuf,
nMax,
pProf->m_szPath);
}
int TXAPI profReadInt(TxProfile* pProf, mchar* pKey, int nDef)
{
// 数値入力
// データ名pKeyの内容を読み込みます。読み込んだ数値を返します。
// nDefには、データ名pKeyが見つからなかった時に返す値を指定します。
mchar szBuf[20], szDef[20];
sprintf(szDef, "%d", nDef);
profReadStr(pProf, pKey, szBuf, sizeof (szBuf), szDef);
return atoi(szBuf);
}
void TXAPI profReadWriteStr(
TxProfile* pProf, mchar* pKey, mchar* pBuf, int nMax, mchar* pDef,BOOL fWrite)
{
// 文字列入出力
// fWriteがFALSEなら、profReadStrします。
// fWriteがTRUEなら、profWriteStr(pProf,pKey,pBuf)します。
//1.00Dで追加
if (fWrite) {
profWriteStr(pProf,pKey,pBuf);
} else {
profReadStr(pProf,pKey,pBuf,nMax,pDef);
}
}
int TXAPI profReadWriteInt(TxProfile* pProf, mchar* pKey,int* nVal,int nDef,BOOL fWrite)
{
// 数値入出力
// fWriteがFALSEなら、*nVal = profReadInt(pProf,pKey,nDef)します。
// fWriteがTRUEなら、profWriteInt(pProf,pKey,*nVal)します。
// *nValを返します。
//1.00Dで追加
if (fWrite) {
profWriteInt(pProf,pKey,*nVal);
} else {
*nVal = profReadInt(pProf,pKey,nDef);
}
return *nVal;
}
int TXAPI profReadWriteIntW(TxProfile* pProf, mchar* pKey,short* nVal,int nDef,BOOL fWrite)
{
// 数値入出力
// fWriteがFALSEなら、*nVal = profReadInt(pProf,pKey,nDef)します。
// fWriteがTRUEなら、profWriteInt(pProf,pKey,*nVal)します。
// *nValを返します。
//1.00Dで追加
if (fWrite) {
profWriteInt(pProf,pKey,*nVal);
} else {
*nVal = profReadInt(pProf,pKey,nDef);
}
return *nVal;
}
int TXAPI profReadWriteIntB(TxProfile* pProf, mchar* pKey,signed char* nVal,int nDef,BOOL fWrite)
{
// 数値入出力
// fWriteがFALSEなら、*nVal = profReadInt(pProf,pKey,nDef)します。
// fWriteがTRUEなら、profWriteInt(pProf,pKey,*nVal)します。
// *nValを返します。
//1.00Dで追加
if (fWrite) {
profWriteInt(pProf,pKey,*nVal);
} else {
*nVal = profReadInt(pProf,pKey,nDef);
}
return *nVal;
}