[QDAC]QSendmail 单元已经加入到 QDAC 项目家族

【注意】QSendMail 支持 XE 以后的版本,以前的版本由于默认携带的 Indy 版本问题,无法直接支持。要在 XE 以前的版本编译,请在其上手动安装新版的 Indy 后再编译。 QSendmail 单元用于实现跨平台的邮件发送,它基于 Indy 的 TIdSmtpServer 实现,并简化了相应的接口,原来没有

[QMacros] 使用宏替换在百度地图上加标注

这段代码是我实际使用的一段代码,贴出来分享给大家。

这段代码的功能是在百度地图上,添加一个 marker 标记出指定的位置。当然这段代码你没法直接执行,因为缺少完整的定义,不过可以看出来如何在代码中通过 QMacros 将代码与脚本的模板进行分离。在调用

[QMacros] 教程: 使用 QMacros 从 PHP 脚本中获取使用的变量名称列表

【注】本教程仅出于演示目的,并不代表作者推荐或者反对某种做法,也不代表这些代码有任何其它实际用途。 QMacros 的是一个高效的栈式查找替换引擎,为您提供丰富的功能。下面的代码演示了如何从一段 PHP+HTML 混合代码得到所有的 PHP 定义的变量名(其中源代码放到了Memo1 里,输出的变量名称直接放到了Memo

[QWorker]更新:修正了特定场景下,空闲工作者全部被解雇而引起的问题

【问题描述】 该问题是由于解雇策略没有考虑到长时间作业而引起的。比如,我们投递两个长时间作业和一个间隔时间很长的重复作业,然后如果长时间没有投递新的作业,由于其它工作者长时间无作业处理,会被自动解雇,只剩下最后两个长时间作业的工作者在工作,从而无法处理间隔时间很长的重复作业。 【严重程度】 高 【更新级别】 推荐 【特

[QMacros] 更新:增加对用户自定义规则的宏名称解析的支持

QMacros 默认是通过宏的开始字符串和结束字符串来区隔宏名称的。但这并不是所有的时候都能满足我们的需要,比如下面的字符串中,我们用 $ 来开始宏名称,遇到非数字时,宏名称就结束: Replace $1.Name to $2.Name 根据前述规则,$1 和 $2 我们人工就可以解析出两个宏 1 和 2,而由于没有宏

[QLog] 更新:修正了同时指定 ARenameHistory 和 AOneFilePerDay 时重命名上次的日志文件的问题

【问题描述】 如果设置文件日志时,SetDefaultLogFile 同时指定的 ARenameHistory 和 AOneFilePerDay 参数为 true,无论是否日志文件是今天创建的,都会被重命名。 【严重程度】 中 【更级级别】 可选  

[专题] QAMF – Delphi 下 AMF 0 和 AMF 3 格式支持库

AMF 是 Adobe Message Format 的缩写,是 Adobe 的一种专用的数据格式,Flash 和 Flex 平台用的都是它。有许多朋友一直想要一个 Delphi 下对 AMF 格式完整支持的库,而目前开源和非开源的部分都没有找到合适的库,所以在朋友们的支持下,特编写这么一个 AMF 格式的支持库奉献给

[QWorker] Delay 函数新增 ARepeat 参数用来实现重复延迟作业

QWorker 提供了多种重复作业的支持,但是,如果一个作业执行的时间超过了重复间隔,下一次作业不会等待上一次作业结束就会执行,这在某些需求场景下会造成不便。以前我建议大家用人工调用 Delay 的方式来解决这一问题,现在不需要了,QWorker 的 Delay 函数增加了这样一个参数,来简化您的编程: 先看一下函数声

[QAMF] QAMF 的基本用法示例

QAMF 是 QDAC 项目中的一个新成员,用来支持 AMF 格式的解析。受限于作者手头的 AMF 资料的欠缺,可能有些实现并不一定 100% 正确,如果大家在使用过程中发现什么问题,请提供一个具体的详细测试用例,并请说明: 1、原始需要解析或生成的数据包; 2、重现问题的测试程序 3、问题的具体描述 再次感谢大家对

[QAMF] AMF 0 数据类型存贮格式详解

本文内容仅供参考,如有错误,欢迎指正。 1、双精度浮点数 类型编号:0 格式:IEEE-754 的8字节 BE 编码 2、布尔 类型编号:1 格式:单字节 备注:0 为 false,其它值为 true 3、字符串 类型编号:2 格式:[字符串长度][字符串内容] 备注:字符串长度为两个字节的 WORD 类型(BE编码)

[QAMF] AMF 格式分析2 – 基本数据类型

AMF 格式的数据类型分为两种,一种是 AMF 0 规定的数据类型,另一种就是 AMF 3 规定的数据类型。它们之间是通过 AMF0 中一个特殊的类型 0x11 (类型编码为 17)来进行转换的。也就是说,在按 AMF 0 解析内容时,如果遇到类型的编码为 0x11 的项目,那就说明这个项目是 AMF3 格式的对象了,

[QAMF] AMF 格式分析 1 – 解析打包后的数据头部

AMF 格式是 Adobe 推出的一个二进制数据格式,说实在话,我更愿意用 MsgPack 或 JSON。不过这里不讨论这一点。我们来讨论一下一个完整的 AMF 格式数据。说实在话,我能说 Adobe 的官方文档写的很烂吗?让人看着简直是天书一样! AMF 0 :http://wwwimages.adobe.com/c

[QXML] 更新:修正了根结点下添加多个子结点时,保存后恢复按原路径无法访问的问题

【问题描述】 问题是由于根结点有多个子结点时,为了保证 xml 的兼容性(XML 规范要求只能有一个根结点),所以人为添加了一个<xml>做为根结点。但在反过来时,未进行相应的处理造成的。一般不推荐在根结点下添加额外的内容。 【影响范围】 在根结点下添加了多个子项目的 XML 项目 【严重程度】 低 【更新

[QMsgPack/QJson] 更新:修正了修改结点名字时,没有重新计算结点名称哈希值的问题

【问题描述】 该问题是由于 DoNodeNameChanged 的重载里,Rehash 子函数在查找结点原来的哈希记录时,使用了错误的哈希表对象引起的。 【严重程度】 高 【影响范围】 使用 TQHashedJson 和 TQHashedMsgPack 的用户 【推荐级别】 歌德 【特别感谢】 QQ

[QLog] QLog 日志格式说明

QLog 做为一个日志记录工具,为方便用户跟踪调查问题的原因,对日志做了一些格式约定: [日志时间][线程ID][日志级别]:日志内容 日志时间是日志记录的起始时间,格式为: 时:分:秒.毫秒 那么年月日跑那儿去了?QLog 在日志记录时,会检测每条日志记录的时间与上一条日志之间是否日期发生了变更,如果发生了变更,会单

2016,QDAC 接下来要干什么?

新年开始有一段时间了,一直在忙于补欠和恢复状态。就接下来要做的事情,向大家大概说明一下: 1、当然是已知问题的修复 (1)、QDB 的 SQL 转换器报告 Binary 类型转换不正常; (2)、QLang 与 TWebBrowser + AlphaControls 同时使用时,据报告出现异常; (3)、QLang 的

[QJSON] 常见问题及解答

1、如何创建根结点为数组类型的JSON对象? 直接设置根结点的 DataType 为 jdtArray 即可。然后数组的子元素只需要挨个调用 Add 添加即可。 2、如何遍历 JSON 子结点的信息? QJson 的 Count 属性记录了数组或对象的子结点数量,然后您可以使用正常的循环来遍历子元素,如: [crayo

[QString] 新增身份证号、邮箱、手机号验证函数及修改密码强度计算的权重

【更新说明】 本次更新增加了以下函数,参数直接参考注释:

另外,修改了 CheckPassword 函数计算密码强度时,各个部分的权重和强度的计算阀值,以便更适合实际。 【更新级别】 可选  

[QJSON+QMsgPack] 更新:修正了 ItemByPath 对特定数组路径的支持问题

【问题描述】 对于根结点为数组类型的 JSON 或 MessagePack 对象,使用 ItemByPath 访问时,无法得到正确的返回值。以 JSON 为例,下面的 JSON 结构:

如果试图以路径”[0]\[0]\name”来