文件、ini、xml如何处理?C++上是不是很难搞?别急

文章介绍了一个自定义的C++类,该类封装了文件读写操作,包括对TCHAR、ANSI编码和Unicode编码的处理,以及内存管理和不同函数接口的选择。类提供了便捷的方法来处理ini和xml文件,简化了文件操作的复杂性。
摘要由CSDN通过智能技术生成

具体代码详见我上传的资源:


https://download.csdn.net/download/skyksksksksks/87500896

VS C++上操作文件麻烦不麻烦?
如果没有TCHAR、没有ANIS编码和Unicode编码之争,那么的确很简单,
但是如果你只想用C函数操作文件,又要兼顾TCHAR、ANIS编码和Unicode编码,
那肯定就头疼了。
并且C++不会自动管理内存,所以还得时不时担心内存是否会越界,是不是觉得有点烦?

然后还有如果要处理ini文件呢,还有如果要处理xml文件呢?
问题很多,怎么办?
其实不用急,无非就是将这些函数整合起来,
处理一下数据问题,然后封装成一个类,
不就可以随取随用了吗?

为了解决这种尴尬的问题,我索性自己写一个类,
将这些功能做到一个函数中,方便以后使用。

类中函数声明见下方:

    /*
    @param
    pctszFilePath 文件路径
    lDataSize 数据大小
    lOperatorType 操作类型,1 C函数、2 C++函数、3 MFC函数、4 Windows API
    @return
    >=0 成功、-1 失败
    */
    long DataSize(LPCTSTR pctszFilePath, long &lDataSize, long lOperatorType);
    /*
    @param
    pctszFilePath 文件路径
    pucData 数据
    lDataSize 数据大小
    lOperatorType 操作类型,1 C函数、2 C++函数、3 MFC函数、4 Windows API
    bAppend 是否追加,TRUE 追加、FALSE 不追加(会清空原有数据)
    lOffsetType 偏移类型,0    文件开头、1    文件当前位置、2    文件末尾
    lOffset 偏移(单位字节),0 无偏移、>0 向文件末尾偏移、<0 向文件开头偏移
    @return
    >=0 成功、-1 失败
    */
    long WriteByte(LPCTSTR pctszFilePath, UCHAR *pucData, long lDataSize, long lOperatorType, BOOL bAppend = FALSE, long lOffsetType = 1, long lOffset = 0);
    /*
    @param
    pctszFilePath 文件路径
    pucData 数据
    lDataSize 数据大小(返回时为数据实际大小)
    lOperatorType 操作类型,1 C函数、2 C++函数、3 MFC函数、4 Windows API
    lOffsetType 偏移类型,0    文件开头、1    文件当前位置、2    文件末尾
    lOffset 偏移(单位字节),0 无偏移、>0 向文件末尾偏移、<0 向文件开头偏移
    @return
    >=0 成功、-1 失败
    */
    long ReadByte(LPCTSTR pctszFilePath, UCHAR *pucData, long &lDataSize, long lOperatorType, long lOffsetType = 1, long lOffset = 0);
    /*
    @param
    pctszFilePath 文件路径
    pctszString 字符串
    lOperatorType 操作类型,1 C函数、2 C++函数、3 MFC函数、4 Windows API
    bAppend 是否追加,TRUE 追加、FALSE 不追加(会清空原有数据)
    lOffsetType 偏移类型,0    文件开头、1    文件当前位置、2    文件末尾
    lOffset 偏移(单位字节),0 无偏移、>0 向文件末尾偏移、<0 向文件开头偏移
    @return
    >=0 成功、-1 失败
    */
    long WriteString(LPCTSTR pctszFilePath, LPCTSTR pctszString, long lOperatorType, BOOL bAppend = FALSE, long lOffsetType = 1, long lOffset = 0);
    /*
    @param
    pctszFilePath 文件路径
    ptszString 字符串
    lStringLength 字符串长度
    lOperatorType 操作类型,1 C函数、2 C++函数、3 MFC函数、4 Windows API
    lOffsetType 偏移类型,0    文件开头、1    文件当前位置、2    文件末尾
    lOffset 偏移(单位字节),0 无偏移、>0 向文件末尾偏移、<0 向文件开头偏移
    @return
    >=0 成功、-1 失败
    */
    long ReadString(LPCTSTR pctszFilePath, LPTSTR ptszString, long lStringLength, long lOperatorType, long lOffsetType = 1, long lOffset = 0);
    /*
    @param
    pctszFilePath 文件路径
    pctszKeyName1 键名1
    pctszKeyName2 键名2
    pctszString 字符串
    lOperatorType 操作类型,1 C函数、2 C++函数、3 MFC函数、4 Windows API
    @return
    0 成功、-1 失败
    */
    long WriteString(LPCTSTR pctszFilePath, LPCTSTR pctszKeyName1, LPCTSTR pctszKeyName2, LPCTSTR pctszString, long lOperatorType);
    /*
    @param
    pctszFilePath 文件路径
    pctszKeyName1 键名1
    pctszKeyName2 键名2
    ptszString 字符串
    lStringLength 字符串长度
    lOperatorType 操作类型,1 C函数、2 C++函数、3 MFC函数、4 Windows API
    @return
    0 成功、-1 失败
    */
    long ReadString(LPCTSTR pctszFilePath, LPCTSTR pctszKeyName1, LPCTSTR pctszKeyName2, LPTSTR ptszString, long lStringLength, long lOperatorType);
    /*
    @param
    pctszFilePath 文件路径
    pctszKeyName1 键名1
    pctszKeyName2 键名2
    uiData 数据
    lOperatorType 操作类型,1 C函数、2 C++函数、3 MFC函数、4 Windows API
    @return
    0 成功、-1 失败
    */
    long WriteInt(LPCTSTR pctszFilePath, LPCTSTR pctszKeyName1, LPCTSTR pctszKeyName2, UINT uiData, long lOperatorType);
    /*
    @param
    pctszFilePath 文件路径
    pctszKeyName1 键名1
    pctszKeyName2 键名2
    uiData 数据
    lOperatorType 操作类型,1 C函数、2 C++函数、3 MFC函数、4 Windows API
    @return
    0 成功、-1 失败
    */
    long ReadInt(LPCTSTR pctszFilePath, LPCTSTR pctszKeyName1, LPCTSTR pctszKeyName2, UINT &uiData, long lOperatorType);

具体代码详见我上传的资源:


https://download.csdn.net/download/skyksksksksks/87500896

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

skyksksksksks

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值