プログラミングのメモ帳(C/C++/HSP)

日々のプログラミングで気づいた点や小技集を紹介します。(Windows 10/XP/Vista、VC2017、HSP)

便利C++のファイル関連クラス

2014年04月05日 19時40分06秒 | 便利ライブラリ関数

ここは、普段自分専用に使ってるC++のクラス・ライブラリです。
メンバ関数(メンバ変数も含む)は public 属性と protected 属性のみを公開し private 属性は記述してません。
また、この普段自分専用に使ってるC++のクラス・ライブラリは、現在ソースを公開してません。(戻る)

  1. テキスト・ファイルのクラス (oemTxtFile)
  2. バイナリ・ファイルのクラス (oemBinFile)
  3. ファイル操作のクラス (oemFile)

テキスト・ファイルのクラス - oemTxtFile.h

class oemTxtFile {
public:
    // 読み込み関数
    LPTSTR readHandle( HANDLE hFile, DWORD* lpReadSize );
    LPTSTR readFile( LPCTSTR lpFname, DWORD dwAttrib, DWORD* lpReadSize );
    // 書き込み関数
    BOOL writeHandle( HANDLE hFile, LPCTSTR lpText, DWORD dwLeng );
    BOOL writeFile( LPCTSTR lpFname, DWORD dwAttrib, LPCTSTR lpText, DWORD dwLeng );
};

バイナリ・ファイルのクラス - oemBinFile.h

class oemBinFile {
public:
    // 読み込み関数
    LPVOID readHandle( HANDLE hFile, DWORD* lpReadSize );
    LPVOID readFile( LPCTSTR lpFname, DWORD dwAttrib, DWORD* lpReadSize );
    // 書き込み関数
    BOOL writeHandle( HANDLE hFile, LPCVOID lpBuff, DWORD dwSize );
    BOOL writeFile( LPCTSTR lpFname, DWORD dwAttrib, LPCVOID lpBuff, DWORD dwSize );
};

ファイル操作のクラス - oemFile.h

class oemFile :
    private oemTxtFile,
    private oemBinFile {
public:
    // 読み込み関数
    LPTSTR readTxtHandle( HANDLE hFile, DWORD* lpReadSize );
    LPVOID readBinHandle( HANDLE hFile, DWORD* lpReadSize );
    LPTSTR readTxtFile( LPCTSTR lpFname, DWORD dwAttrib, DWORD* lpReadSize );
    LPVOID readBinFile( LPCTSTR lpFname, DWORD dwAttrib, DWORD* lpReadSize );
    // 書き込み関数
    BOOL writeTxtHandle( HANDLE hFile, LPCTSTR lpText, DWORD dwLeng );
    BOOL writeBinHandle( HANDLE hFile, LPCVOID lpBuff, DWORD dwSize );
    BOOL writeTxtFile( LPCTSTR lpFname, DWORD dwAttrib, LPCTSTR lpText, DWORD dwLeng );
    BOOL writeBinFile( LPCTSTR lpFname, DWORD dwAttrib, LPCVOID lpBuff, DWORD dwSize );
};

サンプル

static VOID funcSample()
{
    oemTxtFile  file;
    LPTSTR      lpBuff;
    
    if ( (lpBuff = file.readFile(TEXT("sample.ini"),FILE_ATTRIBUTE_NORMAL,NULL)) != NULL ){
        /*
        ここで処理
        */
        ::GlobalFree( lpBuff );
    }
}

属性定数

  • FILE_ATTRIBUTE_NORMAL(属性なし)
  • FILE_ATTRIBUTE_ARCHIVE(アーカイブ属性)
  • FILE_ATTRIBUTE_READONLY(読み取り専用属性)
  • FILE_ATTRIBUTE_HIDDEN(隠しファイル属性)
  • FILE_ATTRIBUTE_SYSTEM(システムファイル属性)
  • FILE_ATTRIBUTE_DIRECTORY(ディレクトリ属性)
  • FILE_ATTRIBUTE_NOT_CONTENT_INDEXED(インデックス・サービス属性)

関連記事



コメント    この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« 便利C++のメニュー関連クラス | トップ | 便利C++の文字列関連クラス »
最新の画像もっと見る

コメントを投稿

便利ライブラリ関数」カテゴリの最新記事