c/c++常用代码 -- ini文件操作

#pragma once

#include <string>
#include <sstream>

typedef std::basic_string<TCHAR>    tstring;

class CIniCfg
{
public:
    CIniCfg()
    {
        TCHAR szTemp[MAX_PATH];
        GetModuleFileName(NULL, szTemp, sizeof(szTemp));

        LPTSTR p = _tcsrchr(szTemp, _T(‘.‘));
        if (p != NULL)
            _tcscpy(p, _T(".ini"));
        else
            _tcscat(szTemp, _T(".ini"));

        m_strFilePath = szTemp;
    }

    void SetName(LPCTSTR szName)
    {
        TCHAR szTemp[MAX_PATH];
        GetModuleFileName(NULL, szTemp, sizeof(szTemp));

        LPTSTR p = _tcsrchr(szTemp, _T(‘\\‘));
        if (p != NULL)
        {
            _tcscpy(++p, szName);
        }        

        m_strFilePath = szTemp;
    }

    void SetPath(LPCTSTR szPath)
    {
        m_strFilePath = szPath;
    }

    BOOL SetInt(LPCTSTR lpAppName,  // pointer to section name
        LPCTSTR lpKeyName,  // pointer to key name
        int nValue)
    {
        std::basic_stringstream<TCHAR> ss;
        ss << nValue;    

        return WritePrivateProfileString(
            lpAppName,
            lpKeyName,
            ss.str().c_str(),    //strValue,
            m_strFilePath.c_str());
    }

    BOOL SetString(LPCTSTR lpAppName,  // pointer to section name
        LPCTSTR lpKeyName,  // pointer to key name
        LPCTSTR lpString)   // pointer to string to add

    {
        return WritePrivateProfileString(
            lpAppName,
            lpKeyName,
            lpString,
            m_strFilePath.c_str());
    }

    int GetInt(LPCTSTR lpAppName,                // address of section name
        LPCTSTR lpKeyName,                // address of key name
        int nDefault)                    // return value if key name is not found
    {
        return GetPrivateProfileInt(
            lpAppName,
            lpKeyName,
            nDefault,
            m_strFilePath.c_str());
    }

    tstring GetString(LPCTSTR lpAppName,        // points to section name
        LPCTSTR lpKeyName,        // points to key name
        LPCTSTR lpDefault)        // points to default string
    {
        TCHAR szRet[MAX_PATH] = {0};
        DWORD dwSize = MAX_PATH;

        GetPrivateProfileString(
            lpAppName,            // points to section name
            lpKeyName,            // points to key name
            lpDefault,            // points to default string
            szRet,                // points to destination buffer
            dwSize,                // size of destination buffer
            m_strFilePath.c_str());

        return szRet;
    }

protected:
    tstring        m_strFilePath;
};
时间: 2024-11-25 15:01:21

c/c++常用代码 -- ini文件操作的相关文章

[C#] 常用工具类——文件操作类

/// <para> FilesUpload:工具方法:ASP.NET上传文件的方法</para> /// <para> FileExists:返回文件是否存在</para> /// <para> IsImgFilename:判断文件名是否为浏览器可以直接显示的图片文件名</para> /// <para> CopyFiles:复制指定目录的所有文件</para> /// <para> MoveFi

Php mysql 常用代码、CURD操作以及简单查询

C/S:Client ServerB/S:Brower Server php主要实现B/S LAMP :Linux系统    A阿帕奇服务器    Mysql数据库   Php语言 mysql常用代码 创建表 1 create table CeShi1 2 ( 3 Uid varchar(50) primary key, 4 Pwd varchar(50), 5 Name varchar(50), 6 Nation varchar(50), 7 foreign key(Nation) refer

读写INI文件操作类

IniHelper 类 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Runtime.InteropServices; namespace SingleStore.Code { public class IniHelper { // 声明INI文件的写操作函数 WritePrivateProfileString() [DllImport("ker

归纳整理Linux下C语言常用的库函数----文件操作

在没有IDE的时候,记住一些常用的库函数的函数名.参数.基本用法及注意事项是很有必要的. 参照Linux_C_HS.chm的目录,我大致将常用的函数分为一下几类: 1. 内存及字符串控制及操作 2. 字符串转换 3. 字符测试 4. 文件操作 5. 时间日期 6. 常用数学函数 7. 文件内容操作 8. 文件权限控制 9. 进程操作 10. 线程操作 11. Socket操作 12. 信号处理 13. 数据结构及算法 这次主要总结的是上面黑色部分,关于文件操作的函数. 系统调用归类 * * 函数

INI文件操作

INI文件多用于存储程序的初始化信息,如记录程序连接数据库的名称.上一次用户登陆的名称.用户的注册信息等. INI文件基本结构 一个典型的INI文件主要有节名.键名和键值3部分构成 在INI文件中,节名由“[]”标识,其后是键名,键名之后有一个等号,然后是键值 键名与“=”之间和键值与“=”之间的空格数量可以是任意的,它们不会影响键名和键值 读写INI文件 WritePrivateProfileString  该函数用于向INI文件中写入一个字符串数据 BOOL WritePrivateProf

c# ini文件操作

public class INIConfigHelper { public string Path; //INI文件名 [DllImport("kernel32")] private static extern long WritePrivateProfileString(string section, string key, string val, string filePath); [DllImport("kernel32")] private static e

ini文件操作类

INI文件其实是一种具有特定结构的文本文件,它的构成分为三部分,文件由若干个段落(section)组成,每个段落又分成若干个键(key)和值(value),结构如下: [Section1]key 1 = value2key 1 = value2……[Section2]key 1 = value1key 2 = value2…… /// <summary> /// ini文件帮助类 /// </summary> public class IniUtil { #region /// &

linux常用命令之------文件操作、文件查看、权限、打包压缩

1.一般公司把linux作为自己的应用服务器,将应用和服务器部署在上面 2.测试一般用来打包.压缩.查日志,写一个简单的shell 获得linux服务器的方式 a:网上租一台云服务器 b:安装vmware 3.用xshell等工具连接vmware虚拟机 看虚拟机与本机网络是否可以ping通,如虚拟机ping www.baidu.com vmware网络连接方式 windows属于多根 linux属于单根:/     linux下一切皆文件 4.linux目录 bin目录:linux中的执行命令,

windows常用命令(文件操作篇)

切换盘符: 根目录: d: 上级目录: cd .. 相对路径: cd test 绝对路径: cd c:\test 查看当前目录: echo %cd% 查看文件/文件夹: 不含隐藏文件: dir 隐藏文件: dir /a 排序: dir /on 显示/隐藏文件/文件夹: 隐藏: attrib +h test 显示: attrib -h test 创建文件: 空文件: echo. > test.txt 带内容: echo abc > test.txt 创建文件夹: 单个文件夹: md test 多