我是靠谱客的博主 魁梧白昼,最近开发中收集的这篇文章主要介绍vc读取INI文件(原创,简单,实用,注释详细),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

近来整理一下资料,把有些东西归类一下。

需要读写ini文件的资料。网上找了两个。

第一个,是.h和.cpp版本不同。

第二个,函数声明太含糊,不方便使用者调用。

索性花点时间自己写一个。(首先确定,一定要简单实用,别人一看就明白。)

完整工程:http://zhmster.googlepages.com/opini.rar


提醒注意:ini文件和exe文件必须在同个目录。 

 

//  OPini.h: interface for the COPini class.
//

//
 

// ***************************************************************
//  OPini   version:  1.0   ? date: 07/19/2007
//  -------------------------------------------------------------
//  这个类用来读取exe下ini文件的内容。
//  -------------------------------------------------------------
//  Copyright (C) 2007 - All Rights Reserved
// ***************************************************************
// 
// *************************************************************** 


# if !defined(AFX_OPINI_H__CE3F8B7B_1ACA_46CC_A91C_F8E23FA9B063__INCLUDED_)
#
define AFX_OPINI_H__CE3F8B7B_1ACA_46CC_A91C_F8E23FA9B063__INCLUDED_ 

# if _MSC_VER > 1000
#
pragma once
#
endif // _MSC_VER > 1000 

# include <afxwin.h> 

class  COPini  
{
public :
    
static  DWORD ReadString (char  * section ,  char  *   key ,   char stringtoread[] ,   char  *  filename);
    
static  BOOL WriteString(LPCTSTR section ,  LPCTSTR  key , char *  stringtoadd ,  char  * filename);
    COPini();
    
virtual   ~ COPini(); 

}; 

# endif // !defined(AFX_OPINI_H__CE3F8B7B_1ACA_46CC_A91C_F8E23FA9B063__INCLUDED_) 




//  OPini.cpp: implementation of the COPini class.
//

//
 

# include "OPini.h" 

/* *******************************************************************
    created:    2007/07/19
    created:    19:7:2007   10:13
    filename:     OPini.cpp
    file path:    
    file base:    OPini
    file ext:    cpp
    author:        alantop
    purpose:    读取INI文件。
********************************************************************
*/  

//
// Construction/Destruction

//
 

COPini
:: COPini()
{


COPini
::~ COPini()
{
}
/* ****************************************************************************
Function:       // 
Description:    // 写字符串到INI文件
Calls:          // 
Called By:      // 
Table Accessed: // 
Table Updated:  // 
Input:          // 
Output:         // 
Return:         // 成功返回真,失败返回假.失败后,可用DWORD GetLastError(VOID)
                   查询失败原因。
Others:         // 
author:         // alantop
date:           // 2007.07.19
*****************************************************************************
*/
/*
void error(LPSTR lpszFunction) 

    CHAR szBuf[80]; 
    DWORD dw = GetLastError(); 
    sprintf(szBuf, "%s failed: GetLastError returned %un", 
        lpszFunction, dw); 
    MessageBox(NULL, szBuf, "Error", MB_OK); 
    ExitProcess(dw); 


*/
BOOL COPini
:: WriteString(LPCTSTR section ,  LPCTSTR  key ,  char  * stringtoadd ,  char  * filename)
{
    CHAR FilePath[
255 ]; 
    GetModuleFileName(
NULL , FilePath , 255 ); 
    
// Scan a string for the last occurrence of a character.
    ( strrchr (FilePath , ' \ ' ))[ 1 =   0
    strcat(FilePath
, filename);
    
return   :: WritePrivateProfileString(section , key , stringtoadd , FilePath);


/* ****************************************************************************
Function:       // 
Description:    // 从INI文件中读取字符串
Calls:          // 
Called By:      // 
Table Accessed: // 
Table Updated:  // 
Input:          // 
Output:         // 
Return:         // 读取了多少个字节的字符
Others:         // 
author:         // alantop
date:           // 2007.07.19
*****************************************************************************
*/
DWORD COPini
:: ReadString(char  * section ,  char  *   key ,   char stringtoread[] ,   char  *  filename)
{
    CHAR FilePath[
255 ]; 
    GetModuleFileName(
NULL , FilePath , 255 ); 
    (
strrchr (FilePath , ' \ ' ))[ 1 =   0
    strcat(FilePath
, filename);
    
return   :: GetPrivateProfileString(section ,   key , NULL , stringtoread , 255 , FilePath);



 

 示例:

# include <stdio.h>
#
include "opini.h" 

void main()
{
    char stringtoread[
200 ];
    COPini
:: ReadString( " group " ,   " item " ,  stringtoread ,   " test.ini " );
    char stringtoadd[] 
=   " hello1 " ;
    COPini
:: WriteString( " group " ,   " item " ,   stringtoadd ,   " test.ini " );
    
return ;
}

最后

以上就是魁梧白昼为你收集整理的vc读取INI文件(原创,简单,实用,注释详细)的全部内容,希望文章能够帮你解决vc读取INI文件(原创,简单,实用,注释详细)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(47)

评论列表共有 0 条评论

立即
投稿
返回
顶部