#include "..\include_spec_header.h"

// 调用格式: SDT_TEXT 取文本, 命令说明: "本命令有多项功能：将任意基本数据类型的参数或数组参数转换为文本；文本中包含引号（\"、“、”）和换行符等情况下的简捷处理方案；提供类似于C/C++语言中sprintf()的格式化文本功能。\r\n    示例：取文本 (“据说，<a href=`www.eyuyan.com`>~%s~</a>诞生于%d年秋。”, “易语言”, 2000)\r\n    等效于：“据说，<a href=” ＋ #引号 ＋ “www.eyuyan.com” ＋ #引号 ＋ “>” ＋ #左引号 ＋ “易语言” ＋ #右引号 ＋ “</a>诞生于” ＋ 到文本 (2000) ＋ “年秋。”\r\n    都将生成文本：“据说，<a href=\"www.eyuyan.com\">“易语言”</a>诞生于2000年秋。”\r\n    但很明显，前者比后者简捷明了很多，且输入代码时更加方便直观。后者因为 #引号、#左引号、#右引号 等常量以及加号（“+”）的使用，导致代码分散且混乱，不易输入和阅读。"
// 参数<1>: 原始文本 数组/非数组 _SDT_ALL, 参数说明: "此文本中可包含“半角双引号替换符（初始值为\"`\"）”“全角左引号替换符（初始值为\"~\"）”“全角右引号替换符（初始值为\"~\"）”“文本替换符”。其中“文本替换符”由前缀文本（初始值为\"%\"）和紧接着的下一个半角字符（可为\"s\",\"d\",\"f\",\"t\",\"T\",\"n\",\"N\"等）组成。当命令执行后，此文本中的这些特殊文本将被替换为相应的文本（如`被替换为\"，~被分别替换为“和”，%s,%d,%f被替换为参数文本，%t被替换为半角双引号包围的参数文本，%T被替换为全角双引号包围的参数文本），%n被替换为换行符（即易语言中的“#换行符”常量），%N被替换为两个换行符（相当于两个连续的%n）。如果此参数的类型不是“文本型”，则首先将其转换为文本型，再进行如上处理。本命令的返回值，就是经过以上文本替换操作后的结果文本。上述提到的各种替换符或其前缀，可通过“取文本_属性设置”命令自行定义。注意：当“文本替换符”为%n或%N时，它不占用后面的参数值。"
// 参数<2>: [参数 数组/非数组 _SDT_ALL], 参数说明: "此参数值用于替换上一参数中的“文本替换符”，并与之依序一一对应。即，此处的第一个参数用于替换第一个“文本替换符”，第二个参数用于替换第二个“文本替换符”，如此类推，但特殊情况下除外（如%n和%N就不占用此参数）。特别地，如果本参数为数组，则将数组中的每一个成员作为一个逻辑单位与“文本替换符”进行逐一匹配和替换。如果本参数不是文本型，则首先将其（或其成员）转换为文本，然后进行替换操作。"
// 变长参数, 命令参数表中最后一个参数可以被重复添加
SPEC_EXTERN_C void spec_GetText_12_spec(PMDATA_INF pRetData, INT nArgCount, PMDATA_INF pArgInf)
{
    void*    arg1 = pArgInf[0].m_pAryData;
    void*    arg2 = pArgInf[1].m_pAryData;

}

