windows C++读取plist文件方法
来源:互联网 发布:k线选股软件 编辑:程序博客网 时间:2024/06/11 10:59
在做iOS开发时,或者是做iOS的逆向工程中,经常遇到读取plist文件,
它全名是:Property List,属性列表文件,它是一种用来存储串行化后的对象的文件。属性列表文件的扩展名为.plist ,因此通常被称为 plist文件。文件是xml格式的。
1,根据XML数据用来创建的内容属性列表,CFPropertyListRef可以是任何的属性列表对象:CFData,CFString,CFArray,CFDictionary,CFDate CFBoolean,CFNumber。请注意,如果您使用一个属性列表生成XML,任何字典的键在属性列表中必须CFString对象。
2,CFPropertyList提供一个抽象的属性列表类型能想到的CFPropertyList
CFString面向对象术语作为超类,CFNumber CFDictionary等等。当核心基础函数返回一个CFPropertyListRef,这意味着属性的值可以是任何类型列表。例如,aCFPropertyListRef CFPreferencesCopyAppValue回报。这意味着,返回的值可以是一个CFString对象,CFNumber对象,再次CFDictionary对象等等。您可以使用CFGetTypeID决定什么类型的对象属性值列表。
3,您使用的一个CFPropertyListCreate……函数创建一个属性列表对象给现有的属性列表对象,原始XML数据(如一个文件),或者一个流。您还可以将一个属性列表对象转换成XML使用CFPropertyListCreateXMLData函数。
您使用CFPropertyListWriteToStream函数来编写一个属性列表输出流,并验证使用CFPropertyListIsValid函数属性列表对象。
CFPropertyList妥善照顾尾数法,发出一个属性列表(是否由流、XML或CFData对象)上创建一个powerpc的麦金塔是正确解释在基于intel的Macintosh,反之亦然。
本文主要从windows下读取plist讲起
首选提供一个工具plistcpp在https://github.com/animetrics/PlistCpp可以下载到完整版本,这里给出在windows下控制台版本。下载
(若地址失效请联系我)
读取过程主要分两种情况
1,key后面直接有关键字,比如array,integer,string,bool,data等的直接读取即可
const vector<boost::any>& plistArray = boost::any_cast<const vector<boost::any>& >(dict.find("MobileTipsC2CVersion")->second)//再读取出array中数据
boost::any_cast<const int64_t&>(dict.find("XXX")->second)
//data数据的读取需要使用输入输出流 std::ifstream stream("xxx.png", std::ios::binary);
2,key后面跟dict关键字
const map<string, boost::any>& plistDict= boost::any_cast<const map<string, boost::any>& >(dict.find("XXX")->second);
然后再一次对dict目录进行读取,
本人手上有windows下IOS设备的数据采集的详细资料,有需求的可联系我QQ1354103455,欢迎同行朋友交流切磋。
- windows C++读取plist文件方法
- Mac OS,读取plist文件的方法
- cocos2dx中读取.plist文件方法
- 读取plist文件
- IOS读取.plist文件
- NSArray 读取plist文件
- 读取plist文件
- OC读取plist文件
- 读取plist文件
- plist文件读取
- ios读取plist文件
- iOS -读取plist文件
- 读取plist文件
- plist文件读取
- cocos2d读取plist文件
- ios中读取plist文件内容的方法
- iOS中使用.plist文件延迟读取的方法
- IOS 读取Json文件、读取plist文件
- linux ll命令:查看文件的属性
- 解决 Socket 和 Socket2 冲突出现的编译错误
- window.location.href火狐不兼容性问题
- 概率试题---概率求解问题
- 软件体系结构风格
- windows C++读取plist文件方法
- 环形数组的最大连续和
- jstl,if...else...
- 负载均衡--大型在线系统实现的关键(下篇)(服务器集群架构的设计与选择)
- System.Web.Caching.Cache
- 简单WEB Service接口实现(CXF与spring整合)
- python heapq
- 工作日志4-16
- 小米不花一分钱把用户做到10000万的秘密