`
futrueboy
  • 浏览: 83744 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

C++读取XML之类的文件

阅读更多
#include <fstream>
#include <iostream>
#include <string>


int getNameValue(char *name, char *value)
{
	std::ifstream file;
	std::string buf, bufFromFile, beginName, endName;
	
	int begin, end;

	if (name == NULL || value == NULL) {
		std::cout << "name and value is invalid" << std::endl;
		exit(1);
	}

	beginName.append("<");
	beginName.append(name);
	beginName.append(">");

	endName.append("</");
	endName.append(name);
	endName.append(">");
	
	file.open("MyIp.config");
	if (!file.is_open()) {
		std::cout << "error in open file ";
		exit(1);
	}

	
	while (!file.eof()) {
		file >> bufFromFile;
		buf += bufFromFile;
	}
	file.close();

	std::cout << buf << std::endl;

	begin = buf.find(beginName);
	end = buf.find(endName);

	//std::cout << begin << " " << end << std::endl;

	if (begin < 0 || end < 0) {
		std::cout << "can't find " << name << " Item" << std::endl;
		exit(1);
	}
	if (begin >= end) {
		std::cout << "error in find " << name << " Item" << std::endl;
		exit(1);
	}
	for (int i = 0; i < end - begin - beginName.length(); i++) {
		value[i] = buf.at(begin + beginName.length() + i);
	}

	value[end - begin - beginName.length()] = '\0';
}

int main(int argc, char* argv[])
{
	char *name = "IP";
	char *value = NULL;
	int port;
	
	
	value = new char[100];

	getNameValue(name, value);
}

 MyIp.config文件是一下内容:

 

<IP>
10.21.243.133</IP>

<PORT>
5000
</PORT>

分享到:
评论

相关推荐

    XML类(VC60下C++封装的通用XML类,并附使用说明)

    前一段时间上传了C++XML封装类的示例程序是用VS2005做的,考虑到有些朋友常常使用经典的VC60,因此把实例又改编成VC60下的版本,由于我是做对日开发的,所以从VS2005考到VC60时注释变成乱码,最近比较忙,就不改了...

    xml文件解析

    利用tinyxml源码,实现标准c++下解析xml文件,已经制作了xml解析类,完成多种情况下xml文件读取与写入。

    XML轻松学习手册--XML肯定是未来的发展趋势,不论是网页设计师还是网络程序员,都应该及时学习和了解

    XML的parser发展为两类:一种是"非确认类paeser",只检测文档是否遵守XML语法规则,是否用元素标识建立了文档树。另一种是"确认类paeser",它不但检测文档语法,结构树,而且比较解析你使用的元素标识是否遵守了相应...

    vc++ 开发实例源码包

    实例使用了加载类似xml文件读取信息,然后显示。 COM_ATL_Tutorial 简单的atl控件演示 COM接口挂钩及其应用 如题。 CSkinSlier CSliderCtrl自绘 Cursor 生成图标,运行到鼠标图标。 cutscene win32下实现视频...

    vc++ 应用源码包_6

    实例使用了加载类似xml文件读取信息,然后显示。 COM_ATL_Tutorial 简单的atl控件演示 COM接口挂钩及其应用 如题。 CSkinSlier CSliderCtrl自绘 Cursor 生成图标,运行到鼠标图标。 cutscene win32下实现视频...

    JAVA上百实例源码以及开源项目

    Java读写文本文件的示例代码 1个目标文件。 java俄罗斯方块 一个目标文件。 Java非对称加密源码实例 1个目标文件 摘要:Java源码,算法相关,非对称加密  Java非对称加密源程序代码实例,本例中使用RSA加密技术,...

    QT学习之路2 (1~82篇)

    36. 二进制文件读写 37. 文本文件读写 38. 存储容器 39. 遍历容器 40. 隐式数据共享 41. model/view 架构 42. QListWidget、QTreeWidget 和 QTableWidget 43. QStringListModel 44. QFileSystemModel 45. 模型 46. ...

    Python Cookbook

    2.15 用类文件对象适配真实文件对象 83 2.16 遍历目录树 84 2.17 在目录树中改变文件扩展名 85 2.18 从指定的搜索路径寻找文件 86 2.19 根据指定的搜索路径和模式寻找文件 87 2.20 在Python的搜索路径中寻找...

    vc++ 应用源码包_1

    实例使用了加载类似xml文件读取信息,然后显示。 COM_ATL_Tutorial 简单的atl控件演示 COM接口挂钩及其应用 如题。 CSkinSlier CSliderCtrl自绘 Cursor 生成图标,运行到鼠标图标。 cutscene win32下实现视频...

    vc++ 应用源码包_2

    实例使用了加载类似xml文件读取信息,然后显示。 COM_ATL_Tutorial 简单的atl控件演示 COM接口挂钩及其应用 如题。 CSkinSlier CSliderCtrl自绘 Cursor 生成图标,运行到鼠标图标。 cutscene win32下实现视频...

    vc++ 应用源码包_5

    实例使用了加载类似xml文件读取信息,然后显示。 COM_ATL_Tutorial 简单的atl控件演示 COM接口挂钩及其应用 如题。 CSkinSlier CSliderCtrl自绘 Cursor 生成图标,运行到鼠标图标。 cutscene win32下实现视频...

    vc++ 应用源码包_3

    实例使用了加载类似xml文件读取信息,然后显示。 COM_ATL_Tutorial 简单的atl控件演示 COM接口挂钩及其应用 如题。 CSkinSlier CSliderCtrl自绘 Cursor 生成图标,运行到鼠标图标。 cutscene win32下实现视频...

    JAVA上百实例源码以及开源项目源代码

    Java读写文本文件的示例代码 1个目标文件。 java俄罗斯方块 一个目标文件。 Java非对称加密源码实例 1个目标文件 摘要:Java源码,算法相关,非对称加密  Java非对称加密源程序代码实例,本例中使用RSA加密技术,...

Global site tag (gtag.js) - Google Analytics