社区
其它技术问题
帖子详情
xml文件作为函数的参数
猜猜
2012-09-26 10:47:01
xml文件作为一个函数的参数,void API_DoCmd(const char* xml,int len);
在外部调用时,该函数的第一个参数是什么?xml里面是一些结构体,因为之前是用结构体传参数,现在想改用xml文件形式,怎么实现?急
...全文
254
5
打赏
收藏
xml文件作为函数的参数
xml文件作为一个函数的参数,void API_DoCmd(const char* xml,int len); 在外部调用时,该函数的第一个参数是什么?xml里面是一些结构体,因为之前是用结构体传参数,现在想改用xml文件形式,怎么实现?急
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
wumn29
2012-09-26
打赏
举报
回复
void API_DoCmd(const char* xmlfilename);
{
FILE * pFile = fopen(xmlfilename, "ab+");
if (pFile == NULL)
{
return;
}
long lSize;
char *buffer;
fseek(pFile, 0L, SEEK_END);
lSize = ftell(pFile);
fseek(pFile,0L,SEEK_SET);
buffer = (char*)malloc(lSize+1);
if(buffer == NULL)
{
return 0;
}
fread(buffer, sizeof(char), lSize, pFile);
buffer[lSize] = '\0';
//buffer里面就是读出的xml字符串, 然后执行你原来的逻辑就ok了
}
猜猜
2012-09-26
打赏
举报
回复
[Quote=引用 1 楼 的回复:]
1.
参数在内存中构建:
C/C++ code
“<args><arg>value1</arg><arg>value2</arg></args>”
2,参数放在文件中
"args.xml"
[/Quote]
参数是放在.xml中,就是之前用结构体传参,现在用xml传参,但是在xml中好多格式问题没法解决,发现好难,还有,假如这个API_DoCmd()函数写好后,外部调用时,该函数的第一个参数怎么写。
mujiok2003
2012-09-26
打赏
举报
回复
1.
参数在内存中构建:
“<args><arg>value1</arg><arg>value2</arg></args>”
2,参数放在文件中
"args.xml"
猜猜
2012-09-26
打赏
举报
回复
[Quote=引用 4 楼 的回复:]
剩下就是解析想xml字符串的逻辑了, 我完善一下。
假设原来的xml结构体是这样的
struct XML_Demo
{
std::string head;
std::string body;
};
void API_DoCmd(const char* xmlfilename);
{
FILE * pFile = fopen(xmlfilename, "ab+");
[/Quote]
之前用客户端调用的这个函数:
m_nHandle = API_RealPlay(m_nLoginID[0],&client);
STRU_CLIENTINFO client;
typedef struct STRU_CLIENTINFO
{
DWORD dwDevIpAddr; ///< 编码器设备ip
short nChannel; ///< 通道号
enum HS_PLAY_REAL_MODE nMode; ///< 播放模式
HWND hPlayWnd; ///< 播放窗口的句柄
DWORD dwMultiCastIpAddr; ///< 多播组地址
DWORD dwMultiCastPort; ///< 组播端口;
}*LPSTRU_CLIENTINFO;
现在改成调用void API_DoCmd(const char* xml,int len),
我要做的工作是编写函数void API_DoCmd(const char* xml,int len),用xml替换结构体作为参数传入。该怎么做啊??刚接触,什么都不懂啊?
wumn29
2012-09-26
打赏
举报
回复
剩下就是解析想xml字符串的逻辑了, 我完善一下。
假设原来的xml结构体是这样的
struct XML_Demo
{
std::string head;
std::string body;
};
void API_DoCmd(const char* xmlfilename);
{
FILE * pFile = fopen(xmlfilename, "ab+");
if (pFile == NULL)
{
return;
}
long lSize;
char *buffer;
fseek(pFile, 0L, SEEK_END);
lSize = ftell(pFile);
fseek(pFile,0L,SEEK_SET);
buffer = (char*)malloc(lSize+1);
if(buffer == NULL)
{
return 0;
}
fread(buffer, sizeof(char), lSize, pFile);
buffer[lSize] = '\0';
std::string data = buffer;
free(buffer);
fclose (pFile);
if(data == "")
{
return;
}
std::type_size sidx = data.find("<head>");
if(sidx == data.npos)
{
return;
}
std::type_size sidx = data.find("<head>");
if(sidx == data.npos)
{
return;
}
std::type_size eidx = data.find("</head>");
if(eidx == data.npos || eidx < sidx+6)
{
return;
}
std::string head = data.substr(sidx+6, eidx-sidx-6);//取出了xml里面的head
sidx = data.find("<body>");
if(sidx == data.npos)
{
return;
}
eidx = data.find("</body>");
if(eidx == data.npos || eidx < sidx+6)
{
return;
}
std::string body= data.substr(sidx+6, eidx-sidx-6);//取出了xml里面的body
//你那个接口里面原来的逻辑也就是处理结构体里面的字段, 现在取出了xml里面的字段, 后面就不用
//我说了
}
delphi mysql字符
函数
参数
_Delphi用来操作XML配置文件写入数据库的示例
本文介绍使用Delphi操作XML配置文件的方法,并提供一个实际应用案例。讲解了如何利用Delphi内置
函数
获取当前路径、字符串长度及执行外部程序等。此外,还介绍了从
XML文件
中读取特定节点值的
函数
。
Basler Blaze-101开发实践(3)——
参数
设置
本文围绕Basler Blaze-101相机
参数
设置展开开发实践。介绍了创建
xml文件
,利用SDK获取
参数
节点接口,处理不同类型
参数
;还提及更新
Xml文件
,通过信号槽
函数
将修改后的
参数
设置到相机使其生效。最后总结基本插件重要
函数
,未涉及根据
参数
类型创建控件内容。
100天精通Python(数据分析篇)——第60天:Pandas读写
xml文件
(read_xml、to_xml
参数
说明+代码实战)
本文详细介绍了Pandas的read_xml和to_xml
函数
,用于读取和写入
XML文件
。read_xml涵盖了path_or_buffer、xpath、namespaces等
参数
,to_xml则涉及path_or_buffer、index、root_name等设置。通过实例演示了如何使用这些
参数
进行XML数据的处理,帮助读者掌握Python中
XML文件
操作的方法。
通过配置文件构建XML
作者因工作需求紧急学习XML及wxWidget,用于批量生成配置文件。分享了使用XML的挑战及代码优化经验,包括避免硬编码、利用C++默认
参数
及改进
函数
设计。
【spring教程之二】spring注入xml中带
参数
的构造
函数
本文介绍了如何在Spring框架中通过XML配置文件使用构造
函数
注入的方式为Bean传递
参数
。示例使用了一个简单的Student类,该类包含一个带有整型
参数
的构造
函数
。通过在spring.xml配置文件中指定<constructor-arg>元素来实现
参数
的注入。
其它技术问题
3,881
社区成员
9,044
社区内容
发帖
与我相关
我的任务
其它技术问题
C/C++ 其它技术问题
复制链接
扫一扫
分享
社区描述
C/C++ 其它技术问题
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章