资源简介
c++ CMarkup解析xml 感觉还不错 分享CMarkup类
代码片段和文件信息
// Markup.cpp: implementation of the CMarkup class.
//
// Markup Release 11.5
// Copyright (C) 2011 First objective Software Inc. All rights reserved
// Go to www.firstobject.com for the latest CMarkup and EDOM documentation
// Use in commercial applications requires written permission
// This software is provided “as is“ with no warranty.
//
#include
#include “Markup.h“
#if defined(MCD_STRERROR) // C error routine
#include
#endif // C error routine
#if defined (MARKUP_ICONV)
#include
#endif
#define x_ATTRIBQUOTE ‘\“‘ // can be double or single quote
#if defined(MARKUP_STL) && ( defined(MARKUP_WINCONV) || (! defined(MCD_STRERROR)))
#include // for MultiByteToWideChar WideCharToMultiByte FormatMessage
#endif // need windows.h when STL and (not setlocale or not strerror) MFC afx.h includes it already
#if defined(MARKUP_MBCS) // MBCS/double byte
#pragma message( “Note: MBCS build (not UTF-8)“ )
// For UTF-8 remove MBCS from project settings C/C++ preprocessor definitions
#if defined (MARKUP_WINCONV)
#include // for VC++ _mbclen
#endif // WINCONV
#endif // MBCS/double byte
#if defined(_DEBUG) && _MSC_VER > 1000 // VC++ DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#if defined(DEBUG_NEW)
#define new DEBUG_NEW
#endif // DEBUG_NEW
#endif // VC++ DEBUG
// Disable “while ( 1 )“ warning in VC++ 2002
#if _MSC_VER >= 1300 // VC++ 2002 (7.0)
#pragma warning(disable:4127)
#endif // VC++ 2002 (7.0)
//////////////////////////////////////////////////////////////////////
// Internal static utility functions
//
void x_StrInsertReplace( MCD_STR& str int nLeft int nReplace const MCD_STR& strInsert )
{
// Insert strInsert into str at nLeft replacing nReplace chars
// Reduce reallocs on growing string by reserving string space
// If realloc needed allow for 1.5 times the new length
//
int nStrLength = MCD_STRLENGTH(str);
int nInsLength = MCD_STRLENGTH(strInsert);
int nNewLength = nInsLength + nStrLength - nReplace;
int nAllocLen = MCD_STRCAPACITY(str);
#if defined(MCD_STRINSERTREPLACE) // STL replace method
if ( nNewLength > nAllocLen )
MCD_BLDRESERVE( str (nNewLength + nNewLength/2 + 128) );
MCD_STRINSERTREPLACE( str nLeft nReplace strInsert );
#else // MFC no replace method
int nBufferLen = nNewLength;
if ( nNewLength > nAllocLen )
nBufferLen += nBufferLen/2 + 128;
MCD_CHAR* pDoc = MCD_GETBUFFER( str nBufferLen );
if ( nInsLength != nReplace && nLeft+nReplace < nStrLength )
memmove( &pDoc[nLeft+nInsLength] &pDoc[nLeft+nReplace] (nStrLength-nLeft-nReplace)*sizeof(MCD_CHAR) );
if ( nInsLength )
memcpy( &pDoc[nLeft] strInsert nInsLength*sizeof(MCD_CHAR) );
MCD_RELEASEBUFFER( str pDoc nNewLength );
#endif // MFC no replace method
}
int x_Hash( MCD_PCSZ p int nSize )
{
unsigned int n=0;
while (*p)
n += (unsigned int)(*p++);
return n % nSize;
}
MCD_STR x_IntTo
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 176798 2011-04-17 21:06 CMark类\Markup.cpp
文件 20033 2011-04-17 21:06 CMark类\Markup.h
目录 0 2013-10-24 16:37 CMark类
----------- --------- ---------- ----- ----
196831 3
- 上一篇:C++ 操作注册表
- 下一篇:AGC的算法DSP上的
相关资源
- C++ 操作注册表
- 用c++模拟直线插补和圆弧插补二.cpp
- 用c++模拟直线插补和圆弧插补一.cpp
- 用C++模拟直线插补图形
- 银行借贷系统c++ 编程
- 《C++ Primer Plus第6版中文版》源代码和
- 一个老师给的高斯投影正、反算c++源
- 物业管理系统c++ 课程设计源码
- WindowsCE或WM上C++加载显示GIF动画的程序
- 获取系统安装软件(vc++源码)
- C++ Primer Plus 6th 编程练习答案
- 用VC++实现图像连通区域标记
- C/C++语言实现求矩阵的广义逆
- 基于C++ builder 的文件传输代码
- 多边形拓扑关系算法C++程序
- VC6.0下开发的仿windows记事本-达尔魔记
- LZ77、LZ78对文件编译码
- 图像Susan角点检测算法代码非常稳健的
- microphone.zip
- c++实现ftp list所有文件与目录 & ftp d
- 置换密码的c++实现程序
- C++实现TIN
- c++模拟进程 解决c++中的难题
- C++ AVI播放器
- 自适应霍夫曼编码(C++)
- C++网络聊天室程序
- 实用Fourier变换及C++实现
- c++.win32.扫雷游戏代码
- 通讯录c++实现 功能:添加、删除、查
- 在VC++6.0中给对话框设置背景色或者背
评论
共有 条评论