// IniFileReadTest2.cpp : コンソール アプリケーションのエントリ // ポイントを定義します。 // #include "stdafx.h" #include void ReadIniFile ( LPCTSTR lpIniFileName , LPCTSTR lpAppName , LPCTSTR lpKeyName ); int _tmain( int argc, _TCHAR* argv[] ) { // カレント・ディレクトリのフルパスを取得 DWORD nIniFileNameLen = 256; WCHAR pIniFileName[256]; GetCurrentDirectory( nIniFileNameLen, pIniFileName ); printf( "path=%S\n", pIniFileName ); // iniファイル名を連結 wsprintf( pIniFileName , L"%s\\IniFileReadTest2.ini" , pIniFileName ); // iniファイル読み込み ReadIniFile( pIniFileName, NULL, NULL ); ReadIniFile( pIniFileName, L"MAIN_INFO", NULL ); ReadIniFile( pIniFileName, L"SUB_INFO", NULL ); ReadIniFile( pIniFileName , L"SUB_INFO" , L"SUB-PC-NUMBER" ); ReadIniFile( pIniFileName , L"SUB_INFO" , L"SUB-PC-NUMBER2" ); ReadIniFile( pIniFileName , L"SUB_INFO" , L"SUB-PC-NUMBER3" ); ReadIniFile( pIniFileName , L"SUB_INFO" , L"SUB-PC-NUMBER4" ); ReadIniFile( pIniFileName , L"SUB_INFO" , L"SUB-PC-NUMBER5" ); // 入力待ちの停止 getchar(); return 0; } void ReadIniFile( LPCTSTR lpIniFileName , LPCTSTR lpAppName , LPCTSTR lpKeyName ) { printf( "App[%S] Key[%S]\n", lpAppName, lpKeyName ); WCHAR iniInfo[256]; DWORD ret = GetPrivateProfileString( lpAppName , lpKeyName , L"NULL" , iniInfo , sizeof( iniInfo ) , lpIniFileName ); // エラー情報取得 DWORD lastErr = GetLastError(); // 結果表示 printf( "ret=%d LastError=%d\n", ret, lastErr ); WCHAR word[256]; // 切り出した文字 memset( word, NULL, sizeof( word ) ); int wordCnt = 0; // 切り出した文字数 int wordFlag = 0; // 1:文字の開始 for ( int i = 0; i < ( int )ret; i++ ) { if ( iniInfo[i] == NULL ) { if ( wordFlag == 1 ) { // 文字終了 wordFlag = 0; printf( "[%S]\n", word ); wordCnt = 0; memset( word, NULL, sizeof( word ) ); } } else { if ( wordFlag == 0 ) { // 文字開始 wordFlag = 1; } word[wordCnt] = iniInfo[i]; wordCnt++; } } if ( word[0] != NULL ) { printf( "[%S]\n", word ); } }