♻️ refactor(tsl): rebuild codegen taxonomy
Move generated builtin and dotnet function docs into the upgraded taxonomy, remove legacy route pages, and regenerate function_index.tsv from markdown headings.
This commit is contained in:
@@ -0,0 +1,58 @@
|
||||
# Builtin - 资源 / 数据库
|
||||
|
||||
## `dbcdV(n1, n2, m)`
|
||||
|
||||
异同离差乖离率DBCD,指能够保持指标的紧密同步,并且线条光滑,信号明确,能够有效的过滤掉伪信号的概率。先计算乖离率BIAS,然后计算不同日的乖离率之间的离差,最后对离差进行指数移动平滑处理。与系统证券pn_stock()、系统时间pn_date()、系统周期pn_cycle()、复权方式pn_rate()和复权基准日pn_rateday()相关。调用时需注意设置系统参数。
|
||||
|
||||
| 参数 | 类型 | 说明 |
|
||||
| --- | --- | --- |
|
||||
| `n1` | any | 整数,交易日天数 |
|
||||
| `n2` | any | 整数,交易日天数 |
|
||||
| `m` | any | 整数,交易日天数 |
|
||||
|
||||
返回:float
|
||||
|
||||
## `dbcdF(n1, n2, m, _type)`
|
||||
|
||||
异同离差乖离率DBCD,指能够保持指标的紧密同步,并且线条光滑,信号明确,能够有效的过滤掉伪信号的概率。先计算乖离率BIAS,然后计算不同日的乖离率之间的离差,最后对离差进行指数移动平滑处理。与系统证券pn_stock()、系统时间pn_date()、系统周期pn_cycle()、复权方式pn_rate()、复权基准日pn_rateday()和执行点数PN_nDay()相关。调用时需注意设置系统参数。
|
||||
|
||||
| 参数 | 类型 | 说明 |
|
||||
| --- | --- | --- |
|
||||
| `n1` | any | 整数,交易日天数 |
|
||||
| `n2` | any | 整数,交易日天数 |
|
||||
| `m` | any | 整数,交易日天数 |
|
||||
| `_type` | any | 结果类型 |
|
||||
|
||||
返回:float
|
||||
|
||||
## `sqlInsert()`
|
||||
|
||||
与MSSQL交互插入数据教学函数,向数据库中插入一条数据为(160,'1.0','2002-12-12')的数据,如插入成功返回插入的数据,否则返回“Insert出现错误”。该函数仅为对数据库进行操作范例,范例中使用的sourcename是数据库别名,result 是插入数据的结果。关于数据库别名的配置,以及数据库交互的具体说明,用户可在官网查看数据库交互专题。
|
||||
|
||||
返回:any
|
||||
|
||||
## `sqlCommnit(db_alias)`
|
||||
|
||||
提交事务。
|
||||
|
||||
| 参数 | 类型 | 说明 |
|
||||
| --- | --- | --- |
|
||||
| `db_alias` | string | 数据库别名。 |
|
||||
|
||||
返回:any
|
||||
|
||||
## `sqlErrorMsg()`
|
||||
|
||||
返回最近出错的SQL语法执行的数据库出错信息。
|
||||
|
||||
返回:string
|
||||
|
||||
## `sqlCloseConn(db_alias)`
|
||||
|
||||
主动关闭指定别名的数据库链接或者关闭所有数据库链接。
|
||||
|
||||
| 参数 | 类型 | 说明 |
|
||||
| --- | --- | --- |
|
||||
| `db_alias` | string | 数据库别名,可选参数。 |
|
||||
|
||||
返回:integer
|
||||
@@ -0,0 +1,944 @@
|
||||
# Builtin - 资源 / 文件
|
||||
|
||||
## `readFile(data_type, alias, file_name, pos, length, data)`
|
||||
|
||||
将本地的文件读取出来。文件格式可以是字符流、整数流、实数流、字节流等。
|
||||
|
||||
| 参数 | 类型 | 说明 |
|
||||
| --- | --- | --- |
|
||||
| `data_type` | integer | 整数类型。参考文件读写类型函数。 |
|
||||
| `alias` | string | 字符串类型。参考目录别名。 |
|
||||
| `file_name` | string | 字符串类型。文件名称。 |
|
||||
| `pos` | integer | 整数类型。读文件的偏移位置,执行结束后将返回新的位置。 |
|
||||
| `length` | integer | 整数类型。需要读入的数据长度,一次读取的最大长度为100w。 |
|
||||
| `data` | | 当读文件执行出错,则存贮错误信息,如果执行正确,则用来存贮读出的数据。如果文件类型为rwRaw或者rwBinary则返回一个长度为Length的字符串或者二进制流,否则,返回一个长度为Length的数组。例如类型为rwReal就是返回一个实数数组。 |
|
||||
|
||||
返回:bool
|
||||
|
||||
### 示例
|
||||
|
||||
```tsl
|
||||
// 按原始类型读出文件的数据
|
||||
size := rdo2 fileSize("", "c:\\test.txt"); // 获取文件大小
|
||||
ret := rdo2 readFile(rwRaw(), "", "c:\\test.txt", 0, size, data);
|
||||
if ret then
|
||||
return data;
|
||||
```
|
||||
|
||||
## `fileModeToStr()`
|
||||
|
||||
文件模式数值转换成文件模式字符串。仅NG客户端中支持。
|
||||
|
||||
返回:string
|
||||
|
||||
### 示例
|
||||
|
||||
```tsl
|
||||
// 本地存在备份文件c:\test11.txt
|
||||
attr := rdo2 fileMode("", "c:\\test11.txt");
|
||||
ret := rdo2 fileModeToStr(attr);
|
||||
return ret;
|
||||
// 结果:” A”
|
||||
```
|
||||
|
||||
## `zipCompress(zip_alias, zip_filename, alias, filename, path)`
|
||||
|
||||
将文件压缩到ZIP文件中,如果压缩文件不存在,函数会创建一个。ZIP格式的压缩不支持加密。
|
||||
|
||||
| 参数 | 类型 | 说明 |
|
||||
| --- | --- | --- |
|
||||
| `zip_alias` | string | 字符串,ZIP文件的目录别名 |
|
||||
| `zip_filename` | string | 字符串,ZIP文件名称 |
|
||||
| `alias` | string | 字符串,被压缩文件的目录别名 |
|
||||
| `filename` | string | 字符串,文件名称 |
|
||||
| `path` | string | 字符串,文件在ZIP文件中的路径 |
|
||||
|
||||
返回:bool
|
||||
|
||||
### 示例
|
||||
|
||||
```tsl
|
||||
// 把文件d:\a.txt压缩到d:\a.zip文件中的/hello/world/a.txt中
|
||||
zipCompress('', 'd:\\a.zip', '', 'd:\\a.txt', 'hello/world/a.txt');
|
||||
// 将d:\tmp目录压缩到d:\a.zip文件中
|
||||
zipCompress('', 'd:\\a.zip', '', 'd:\\tmp', 'test');
|
||||
```
|
||||
|
||||
## `zipExtract(zip_alias, zip_filename, alias, path, password)`
|
||||
|
||||
将ZIP文件解压到指定目录
|
||||
|
||||
| 参数 | 类型 | 说明 |
|
||||
| --- | --- | --- |
|
||||
| `zip_alias` | string | 字符串 ,ZIP文件的目录别名 |
|
||||
| `zip_filename` | string | 字符串 ,ZIP文件名称 |
|
||||
| `alias` | string | 字符串,文件解压目录别名 |
|
||||
| `path` | string | 字符串,文件解压路径 |
|
||||
| `password` | string | 字符串,可选参数,加密密码 |
|
||||
|
||||
返回:bool
|
||||
|
||||
### 示例
|
||||
|
||||
```tsl
|
||||
// 将ZIP文件解压,可以使用ZipExtract函数,例如将d:\a.zip文件解压到d:\tmp目录
|
||||
zipExtract('', 'd:\\a.zip', '', 'd:\\tmp', '123');
|
||||
```
|
||||
|
||||
## `rarExtract(rar_alias, rar_filename, alias, path, password)`
|
||||
|
||||
将RAR文件解压到指定目录
|
||||
|
||||
| 参数 | 类型 | 说明 |
|
||||
| --- | --- | --- |
|
||||
| `rar_alias` | string | 字符串 ,RAR文件的目录别名 |
|
||||
| `rar_filename` | string | 字符串 ,RAR文件名称 |
|
||||
| `alias` | string | 字符串,文件解压目录别名 |
|
||||
| `path` | string | 字符串,文件解压路径 |
|
||||
| `password` | string | 字符串,可选参数,加密密码 |
|
||||
|
||||
返回:bool
|
||||
|
||||
### 示例
|
||||
|
||||
```tsl
|
||||
// 将RAR文件解压,可以使用RarExtract函数,例如将d:\a.rar文件解压到d:\tmp目录
|
||||
rarExtract('', 'd:\\a.rar', '', 'd:\\tmp', '123');
|
||||
```
|
||||
|
||||
## `importantItemsCall(stock_arr, end_t, sort_by, return_number)`
|
||||
|
||||
上市公司最新主要财务指标排行。
|
||||
|
||||
| 参数 | 类型 | 说明 |
|
||||
| --- | --- | --- |
|
||||
| `stock_arr` | array | 数组。股票列表。 |
|
||||
| `end_t` | datetime | 整数。报告期。 |
|
||||
| `sort_by` | any | 整数。排序字段,取值如下: |
|
||||
| `return_number` | any | 整数。返回个数,-1时返回全部。 |
|
||||
|
||||
返回:array
|
||||
|
||||
## `flImportFile(import_type, id)`
|
||||
|
||||
ImportFile函数教学函数。导入保存类型为importType的指定ID证券数据文件。若文件不存在则返回'file not exist',若文件导入失败则返回'Import file fail'。其中虚拟目录名为'testdir',用户应申请服务器权限并且建立好该虚拟目录。
|
||||
|
||||
| 参数 | 类型 | 说明 |
|
||||
| --- | --- | --- |
|
||||
| `import_type` | any | 用户自定义 |
|
||||
| `id` | string | 证券 |
|
||||
|
||||
返回:any
|
||||
|
||||
## `flWriteFile(b_kname, t)`
|
||||
|
||||
WriteFile函数教学函数。将指定板块BKname的每一只股票在指定日T的行情数据保存到虚拟目录'testdir'下的'HqData.dat'文件,写出成功则返回'convert finished'。用户应申请好服务器权限,并建立好虚拟目录'testdir'。
|
||||
|
||||
| 参数 | 类型 | 说明 |
|
||||
| --- | --- | --- |
|
||||
| `b_kname` | string | 系统板块 |
|
||||
| `t` | datetime | 日期 |
|
||||
|
||||
返回:any
|
||||
|
||||
## `flExportFile(export_type, id, t)`
|
||||
|
||||
Export函数教学函数。将指定股票ID的历史报告期十大股东序列数据以exportType文件形式导出到虚拟目录'testdir'下,若导入成功则返回'export success',否则返回'export fail!'。用户应当申请好服务器权限,并建立好虚拟目录'testdir'。
|
||||
|
||||
| 参数 | 类型 | 说明 |
|
||||
| --- | --- | --- |
|
||||
| `export_type` | any | 用户自定义 |
|
||||
| `id` | string | 证券 |
|
||||
| `t` | any | 日期 |
|
||||
|
||||
返回:string
|
||||
|
||||
## `fsInfoId(infoid)`
|
||||
|
||||
获得基本面数据教学函数。返回截止到2002年6月30日Infoid相关基本面数据。
|
||||
|
||||
| 参数 | 类型 | 说明 |
|
||||
| --- | --- | --- |
|
||||
| `infoid` | any | 基本面 |
|
||||
|
||||
返回:any
|
||||
|
||||
## `ftExpression22(rdate)`
|
||||
|
||||
表达式函数教学函数。返回指定股票在报告期rdate的资产负债表,与当前系统参数(股票)相关。
|
||||
|
||||
| 参数 | 类型 | 说明 |
|
||||
| --- | --- | --- |
|
||||
| `rdate` | datetime | 报告期 |
|
||||
|
||||
返回:any
|
||||
|
||||
## `ftExpression23(l1)`
|
||||
|
||||
表达式函数教学函数。返回指定股票在指定日180个序列的L1乖离率,与系统参数(股票,周期,时间,复权相关)
|
||||
|
||||
| 参数 | 类型 | 说明 |
|
||||
| --- | --- | --- |
|
||||
| `l1` | any | 整数 |
|
||||
|
||||
返回:any
|
||||
|
||||
## `ftExpression1()`
|
||||
|
||||
表达式教学函数。返回当前股票收盘价的5个周期的平均值,与当前系统参数(股票,时间,周期)相关。
|
||||
|
||||
返回:float
|
||||
|
||||
## `loadTableEx(table_name)`
|
||||
|
||||
加载用户数据TableName,如若TableName非空,则返回TableName数据,否则返回空数组。
|
||||
|
||||
| 参数 | 类型 | 说明 |
|
||||
| --- | --- | --- |
|
||||
| `table_name` | string | 字符串,数据文件名称 |
|
||||
|
||||
返回:array
|
||||
|
||||
### 示例
|
||||
|
||||
```tsl
|
||||
return loadTableEx('repitle');
|
||||
// 返回: repitle为保存好的用户数据
|
||||
```
|
||||
|
||||
## `listTable()`
|
||||
|
||||
返回用户数据的名称列表(一维数组)。
|
||||
|
||||
返回:array
|
||||
|
||||
### 示例
|
||||
|
||||
```tsl
|
||||
return listTable();
|
||||
// 输出:如下:
|
||||
```
|
||||
|
||||
## `readExcelSheets(alias, file_name, sheets_name, use_ole)`
|
||||
|
||||
从Excel文件中读出Sheets列表。
|
||||
|
||||
| 参数 | 类型 | 说明 |
|
||||
| --- | --- | --- |
|
||||
| `alias` | string | 字符串类型。参考目录别名。 |
|
||||
| `file_name` | string | 字符串类型。文件名称。 |
|
||||
| `sheets_name` | array | 返回值。存贮读出的SHEETS名称,存贮为一个一维字符串数组。 |
|
||||
| `use_ole` | bool=false | 布尔型。是否使用Excel来读取,默认直接采用读文件的方式。设置为真则要求安装Excel。 |
|
||||
|
||||
返回:bool
|
||||
|
||||
### 示例
|
||||
|
||||
```tsl
|
||||
// 读取本地文件的sheet列表名
|
||||
rdo2 readExcelSheets('', 'd:\\test\\test.xls', r, 0);
|
||||
return r;
|
||||
// 结果:array("Sheet1","Sheet2","Sheet3")
|
||||
```
|
||||
|
||||
## `exportFile2(_type, alias, file_name, data, include_header, include_index, sheet, range)`
|
||||
|
||||
将数据导出到指定Sheet、指定数据位置Range的excel文件,仅支持Type类型为ftxls()的,为了兼容其他类型,如果输入的类型是非ftxls()的,则执行exportfile导出数据且无法指定Sheet和Range。注:导出时对应的excel文件需要关闭。
|
||||
|
||||
| 参数 | 类型 | 说明 |
|
||||
| --- | --- | --- |
|
||||
| `_type` | | 整数类型。参考导入导出类型函数。 |
|
||||
| `alias` | string | 字符串类型。参考目录别名。 |
|
||||
| `file_name` | string | 字符串类型。文件名称。 |
|
||||
| `data` | | 数据,需要导出的数据。 |
|
||||
| `include_header` | bool | 布尔类型。为真时导出的文件包含字段头部信息。缺省时候为真。 |
|
||||
| `include_index` | bool | 布尔类型。为真时导出的文件包含数组下标信息。缺省时候为假。 |
|
||||
| `sheet` | string | 字符串类型,指定Sheet。 |
|
||||
| `range` | string | 字符串类型,指定单元格,如:”A1”表示要把数据导出到A1开始的单元格。 |
|
||||
|
||||
返回:integer|string
|
||||
|
||||
### 示例
|
||||
|
||||
```tsl
|
||||
// 导出10 * 5全1矩阵,到C: \\test.xlsx 文件的Sheet3,C2单元格。
|
||||
data := ones(10, 5);
|
||||
ret := rdo2 exportFile2(ftXls(), "", "C:\\test.xlsx", data, 1, 0, "Sheet3", "C2");
|
||||
return ret;
|
||||
// 结果:1 (表示数据导出成功,可以在c盘看到test.xlsx文件)
|
||||
```
|
||||
|
||||
## `importFile2(_type, alias, file_name, data, include_header, include_index, force_single, sheet, range)`
|
||||
|
||||
导入excel中指定Sheet的内容,可选择指定数据范围Range。仅支持Type类型为ftxls()的,为了兼容其他类型,如果输入的类型是非ftxls()的,则执行importfile导入数据且无法指定数据位置Range。
|
||||
|
||||
| 参数 | 类型 | 说明 |
|
||||
| --- | --- | --- |
|
||||
| `_type` | integer | 整数类型。参考导入导出类型函数。 |
|
||||
| `alias` | string | 字符串类型。参考目录别名。 |
|
||||
| `file_name` | string | 字符串类型。文件名称。 |
|
||||
| `data` | bool | 变参返回,存贮导入的数据。当导入成功的时候,数据将存放在Data。 |
|
||||
| `include_header` | bool | 布尔类型。为真时认为导入的文件包含字段头部信息。缺省时候为真。 |
|
||||
| `include_index` | bool | 布尔类型。为真时认为导入的文件包含数组下标信息。缺省时候为假。 |
|
||||
| `force_single` | bool | 布尔类型。为真时认为导入的文件是一个一维数组。缺省时候为假。 |
|
||||
| `sheet` | string | 字符串类型,指定Sheet。 |
|
||||
| `range` | string | 字符串类型,指定单元格范围,如果为空导入Sheet的所有数据,非空则必须为excel的Range,如:“A1:E13“。 |
|
||||
|
||||
返回:bool
|
||||
|
||||
### 示例
|
||||
|
||||
```tsl
|
||||
// 导入"C:\\test.xlsx"文件中的Sheet3的"C2:E5"数据,包含字段名称。
|
||||
ret := rdo2 importFile2(ftXls(), "", "C:\\test.xlsx", data, 1, 0, 0, "Sheet3", "C2:E5");
|
||||
if ret then
|
||||
return data;
|
||||
else
|
||||
return "导入失败";
|
||||
// 输出:
|
||||
// 无输出。
|
||||
// Excel的数据:
|
||||
```
|
||||
|
||||
## `ftCsVne()`
|
||||
|
||||
逗号分割文件类型,输出结果禁用1E20等类型
|
||||
|
||||
返回:integer
|
||||
|
||||
## `loadTable(name, table_type)`
|
||||
|
||||
提取用户数据,装入用户表,从name指定的位置将数据导出。TableType参数可省略,默认为0;0或省略时表示装入当前用户表,1表示装入系统表,即可导入系统账号system的用户数据。
|
||||
|
||||
| 参数 | 类型 | 说明 |
|
||||
| --- | --- | --- |
|
||||
| `name` | string | 字符串,数据存储位置的名称 |
|
||||
| `table_type` | bool | 布尔类型,数据类型,可省略,默认为0 |
|
||||
|
||||
返回:any
|
||||
|
||||
### 示例
|
||||
|
||||
```tsl
|
||||
// 将savetable范例中保存的用户数据testA提取出来
|
||||
return loadTable('testA');
|
||||
```
|
||||
|
||||
## `fileAttrToStr()`
|
||||
|
||||
文件属性数值转换成文件属性字符串。仅NG客户端中支持。
|
||||
|
||||
返回:string
|
||||
|
||||
### 示例
|
||||
|
||||
```tsl
|
||||
// 本地存在备份文件c:\test11.txt
|
||||
attr := rdo2 fileAttr("", "c:\\test11.txt");
|
||||
ret := rdo2 fileAttrToStr(attr);
|
||||
return ret;
|
||||
// 结果:”A”
|
||||
```
|
||||
|
||||
## `strToFileAttr(str)`
|
||||
|
||||
文件属性字符串转换成文件属性数值。仅NG客户端中支持。
|
||||
|
||||
| 参数 | 类型 | 说明 |
|
||||
| --- | --- | --- |
|
||||
| `str` | string | 字符串类型,文件属性字符串。 |
|
||||
|
||||
返回:integer
|
||||
|
||||
### 示例
|
||||
|
||||
```tsl
|
||||
str1 := "A";
|
||||
return rdo2 strToFileAttr(str1);
|
||||
// 结果:32
|
||||
```
|
||||
|
||||
## `strToFileMode(str)`
|
||||
|
||||
文件模式字符串转换成文件模式数值。仅NG客户端中支持。
|
||||
|
||||
| 参数 | 类型 | 说明 |
|
||||
| --- | --- | --- |
|
||||
| `str` | string | 字符串类型,文件模式字符串。 |
|
||||
|
||||
返回:integer
|
||||
|
||||
### 示例
|
||||
|
||||
```tsl
|
||||
str1 := "A";
|
||||
return rdo2 strToFileMode(str1);
|
||||
// 结果:32
|
||||
```
|
||||
|
||||
## `ftCsv()`
|
||||
|
||||
逗号分割文件类型。
|
||||
|
||||
返回:integer
|
||||
|
||||
## `ftXls()`
|
||||
|
||||
Excel文件类型。默认会打开EXCEL来读写文件,如果EXCEL未安装,会尝试用文件读写的模式来访问。
|
||||
|
||||
返回:integer
|
||||
|
||||
## `ftXls2()`
|
||||
|
||||
支持多表头的Excel文件类型。
|
||||
|
||||
返回:integer
|
||||
|
||||
## `ftXls3()`
|
||||
|
||||
Excel文件类型,默认采用文件读写的方式访问,效率高,兼容性稍差,当文件读写的模式无法正确访问,会打开EXCEL来读写文件。
|
||||
|
||||
返回:integer
|
||||
|
||||
## `ftStream()`
|
||||
|
||||
天软对象流文件类型。
|
||||
|
||||
返回:integer
|
||||
|
||||
## `ftString()`
|
||||
|
||||
天软对象字符串文件类型。
|
||||
|
||||
返回:integer
|
||||
|
||||
## `ftXml()`
|
||||
|
||||
XML文件类型。
|
||||
|
||||
返回:integer
|
||||
|
||||
## `ftdbf()`
|
||||
|
||||
dbf文件类型。
|
||||
|
||||
返回:integer
|
||||
|
||||
## `rwByte()`
|
||||
|
||||
字节流读写类型。读/写字节数组
|
||||
|
||||
返回:integer
|
||||
|
||||
### 示例
|
||||
|
||||
```tsl
|
||||
size := rdo2 fileSize("", "c:\\test.txt"); // 获取文件大小
|
||||
ret := rdo2 readFile(rwByte(), "", "c:\\test.txt", 0, size, data);
|
||||
ret := rdo2 readFile(rwRaw(), "", "c:\\test.txt", 0, size, data1);
|
||||
if ret then
|
||||
return data1;
|
||||
```
|
||||
|
||||
## `rwInt()`
|
||||
|
||||
整数流读写类型。读/写整数数组
|
||||
|
||||
返回:integer
|
||||
|
||||
## `rwReal()`
|
||||
|
||||
实数流读写类型。读/写实数数组
|
||||
|
||||
返回:integer
|
||||
|
||||
## `rwStr()`
|
||||
|
||||
字符串流读写类型。读/写字符串数组
|
||||
|
||||
返回:integer
|
||||
|
||||
## `rwObj()`
|
||||
|
||||
对象流读写类型。读/写对象数组。
|
||||
|
||||
返回:integer
|
||||
|
||||
## `rwRaw()`
|
||||
|
||||
原始读写类型。读/写指定长度的字节流。
|
||||
|
||||
返回:integer
|
||||
|
||||
## `rwBinary()`
|
||||
|
||||
二进制读写类型。读/写指定长度的字节流。读写的操作使用Binary数据类型。
|
||||
|
||||
返回:integer
|
||||
|
||||
## `sysClientInfo()`
|
||||
|
||||
在平台应用可获得客户机信息,这些信息除了客户端收集的有限信息:包括MAC地址/IP/HOSTNAME/操作系统类型以外,还存在其他客户端的信息插件提供的内容,例如一些交易插件会收集交易需要的本地识别码。
|
||||
|
||||
返回:array
|
||||
|
||||
## `sysExecName()`
|
||||
|
||||
获得解析器的全路径(包含名称)。
|
||||
|
||||
返回:string
|
||||
|
||||
### 示例
|
||||
|
||||
```tsl
|
||||
// 客户端中本地执行
|
||||
return rdo2 sysExecName();
|
||||
// 返回:C: \Program Files\Tinysoft\AnalyseNG.NET\TSExpert.exe
|
||||
// 本地解析器中运行
|
||||
echo sysExecName();
|
||||
// 打印信息:C: \Program Files\Tinysoft\AnalyseNG.NET\TSL.exe
|
||||
```
|
||||
|
||||
## `pluginPath()`
|
||||
|
||||
获得解析器的插件目录的全路径(包含名称)。当在WORD里或者EXCEL使用TSL程序的时候,由于宿主程序是WORD,解释器的路径并不在SysExecName下,那么PluginPath的父目录就是解释器的路径。
|
||||
|
||||
返回:string
|
||||
|
||||
### 示例
|
||||
|
||||
```tsl
|
||||
// 客户端中本地执行
|
||||
return rdo2 pluginPath();
|
||||
// 返回:C: \Program Files\Tinysoft\AnalyseNG.NET\Plugin\
|
||||
```
|
||||
|
||||
## `getlogicdrive()`
|
||||
|
||||
获取本地逻辑驱动器。
|
||||
|
||||
返回:integer
|
||||
|
||||
### 示例
|
||||
|
||||
```tsl
|
||||
return rdo2 getlogicdrive();
|
||||
// 有C、D盘,结果为12,即0b1100
|
||||
```
|
||||
|
||||
## `createlink(link_name, target_name, hard)`
|
||||
|
||||
创建一个目标为TargetName名为LinkName的链接。在Linux系统中用的较多。
|
||||
|
||||
| 参数 | 类型 | 说明 |
|
||||
| --- | --- | --- |
|
||||
| `link_name` | string | 字符串,指定链接生成的路径及连接名。无路径时默认生成在天软安装目录。 |
|
||||
| `target_name` | string | 字符串,文件路径。 |
|
||||
| `hard` | bool | 布尔值,为真表示创建硬链接,否则创建软链接(符号链接)。 |
|
||||
|
||||
返回:bool
|
||||
|
||||
### 示例
|
||||
|
||||
范例01:创建硬链接
|
||||
|
||||
```tsl
|
||||
path := "D:\\test\\test.txt"; // 已经存在的文件
|
||||
return rdo2 createlink("D:\\test\\txt", path, 1); // 创建一个硬链接
|
||||
// 结果:创建链接成功,返回1
|
||||
```
|
||||
|
||||
范例02:创建软链接
|
||||
|
||||
```tsl
|
||||
path := "D:\\test\\test.txt"; // 已存在的文件
|
||||
return rdo2 createlink("D:\\test\\txt", path, 0); // 创建一个软链接
|
||||
// 结果:链接成功,返回1
|
||||
```
|
||||
|
||||
## `realpath(name)`
|
||||
|
||||
获取文件真实路径与名称。如果是链接类型文件,或者所处在一个链接目录中,可以得到该文件的真实存贮位置。在Windows上,返回的是一个UNC名称。
|
||||
|
||||
| 参数 | 类型 | 说明 |
|
||||
| --- | --- | --- |
|
||||
| `name` | string | 字符串,文件路径或链接别名。 |
|
||||
|
||||
返回:string
|
||||
|
||||
### 示例
|
||||
|
||||
范例01:获取文件的真实路径
|
||||
|
||||
```tsl
|
||||
path := "D:\\test\\test.txt";
|
||||
return rdo2 realpath(path);
|
||||
// 输出:
|
||||
// 0
|
||||
```
|
||||
|
||||
范例02:获取软链接的真实路径
|
||||
|
||||
```tsl
|
||||
path := "D:\\Links\\soft\\s2";
|
||||
return rdo2 realpath(path);
|
||||
// 输出:
|
||||
// 0
|
||||
```
|
||||
|
||||
范例03:获取硬链接的真实路径
|
||||
|
||||
```tsl
|
||||
path := "D:\\Links\\hard\\h1";
|
||||
return rdo2 realpath(path);
|
||||
// 输出:
|
||||
// 0
|
||||
```
|
||||
|
||||
## `exportFile(_type, alias, file_name, data, include_header, include_index)`
|
||||
|
||||
将数据导出为文件。支持将INF以及NAN导出到Excel,INF对应为EXCEL的DIV0,NAN对应为NA
|
||||
|
||||
| 参数 | 类型 | 说明 |
|
||||
| --- | --- | --- |
|
||||
| `_type` | integer | |
|
||||
| `alias` | string | |
|
||||
| `file_name` | string | |
|
||||
| `data` | any | |
|
||||
| `include_header` | | |
|
||||
| `include_index` | bool | |
|
||||
|
||||
返回:bool|string
|
||||
|
||||
### 示例
|
||||
|
||||
范例01:
|
||||
|
||||
```tsl
|
||||
data := rand(10, 5);
|
||||
ret := rdo2 exportFile(ftXls(), "", "c:\\test.xls", data);
|
||||
if ret=1 then return "导出成功";
|
||||
else return ret; // 出错
|
||||
// 结果:"导出成功" (表示数据导出成功,可以在c盘看到test.xls文件)
|
||||
```
|
||||
|
||||
范例02:
|
||||
|
||||
```tsl
|
||||
// 导出INF及NAN异常数值
|
||||
data := `array('a': (1, 2, 3), 'b': array(4, 5, 6), 'c': array(1/0, 0.0/0.0, 0));
|
||||
ret := rdo2 exportFile(ftXls(), '', 'C:\\testdata2.xlsx', data);
|
||||
if ret=1 then return "导出成功";
|
||||
else return ret; // 出错
|
||||
// 结果
|
||||
// 天软数据:
|
||||
// 导出到Excel中的数据:
|
||||
```
|
||||
|
||||
范例03:导出数据为csv格式
|
||||
|
||||
```tsl
|
||||
t := rand(10, array("A", "B", "C"));
|
||||
lj := "D:\\Test\\20241204.csv";
|
||||
r := rdo2 exportFile(ftCsv(), "", lj, t);
|
||||
return r;
|
||||
```
|
||||
|
||||
## `importFile(_type, alias, file_name, data, include_header, include_index, force_single, sheet_name, range)`
|
||||
|
||||
从文件中导入数据。对EXCEL文件自动识别.xls或者.xlsx的文件格式,支持将INF以及NAN导入
|
||||
|
||||
| 参数 | 类型 | 说明 |
|
||||
| --- | --- | --- |
|
||||
| `_type` | integer | |
|
||||
| `alias` | | |
|
||||
| `file_name` | string | |
|
||||
| `data` | array | |
|
||||
| `include_header` | | |
|
||||
| `include_index` | | |
|
||||
| `force_single` | bool | |
|
||||
| `sheet_name` | | |
|
||||
| `range` | string\|integer | |
|
||||
|
||||
返回:bool
|
||||
|
||||
### 示例
|
||||
|
||||
范例01:
|
||||
|
||||
```tsl
|
||||
data1 := rand(10, 5);
|
||||
ret1 := rdo2 exportFile(ftXls(), "", "c:\\test.xls", data1);
|
||||
if ret1 then
|
||||
begin
|
||||
ret2 := rdo2 importFile(ftXls(), "", "c:\\test.xls", data2);
|
||||
if ret2 then
|
||||
return data2;
|
||||
else
|
||||
return "导出失败";
|
||||
end
|
||||
else
|
||||
return 0;
|
||||
// 输出:
|
||||
// 无输出。
|
||||
```
|
||||
|
||||
范例02:
|
||||
|
||||
```tsl
|
||||
// 导入excel中的INF及NAN
|
||||
ret := rdo2 importFile(ftXls(), '', 'C:\\testdata.xlsx', data);
|
||||
if ret then
|
||||
return data;
|
||||
else return ret;
|
||||
// 输出:
|
||||
// 无输出。
|
||||
// Excel中的数据:
|
||||
// 导入到天软中的数据:
|
||||
```
|
||||
|
||||
范例03:
|
||||
|
||||
```tsl
|
||||
// .xls文件与.xlsx 文件行列最大限制不一样,xls文件最大256列,.xlsx文件最大限制16384
|
||||
// 列,此处有数据16000列的.xlsx文件,后缀名改为.xls文件,仍可以导入16000列,说明//该函数可以自动识别.xls或者.xlsx的文件格式
|
||||
ret := rdo2 importFile(ftXls(), '', 'C:\\testdata4.xls', data);
|
||||
if ret then
|
||||
return data;
|
||||
else return ret;
|
||||
// 结果
|
||||
```
|
||||
|
||||
范例04:导入csv文件
|
||||
|
||||
```tsl
|
||||
lj := "D:\\Test\\20241204.csv";
|
||||
r := rdo2 importFile(ftCsv(), "", lj, t);
|
||||
return t;
|
||||
```
|
||||
|
||||
## `iniWriteBool(alias, file_name, section, ident, value)`
|
||||
|
||||
将BOOL值写入INI。如果不存在FileName,或者不存在Section,或者不存在Ident,则其会根据输入的FileName,Section,Ident创建对应的INI文件,INI文件的节名称,INI文件的键名称,并将Bool值Value写入到INI文件指定的键
|
||||
|
||||
| 参数 | 类型 | 说明 |
|
||||
| --- | --- | --- |
|
||||
| `alias` | string | 字符串类型。目录名称 |
|
||||
| `file_name` | string | 字符串类型。INI文件名称 |
|
||||
| `section` | string | 字符串类型。INI文件的节名称 |
|
||||
| `ident` | string | 字符串类型。INI文件的键名称 |
|
||||
| `value` | bool | 布尔类型。要写入的键值 |
|
||||
|
||||
返回:any
|
||||
|
||||
### 示例
|
||||
|
||||
```tsl
|
||||
{写本地文件:C: \Program Files\Tinysoft\Analyse.NET\Plugin\test.ini,
|
||||
// 设置节内容为:
|
||||
[IniData9]
|
||||
bool=1
|
||||
}
|
||||
ret := rdo2 iniWriteBool("",
|
||||
"C:\\Program Files\\Tinysoft\\Analyse.NET\\plugin\\test.ini", "Inidata9", "bool", 1);
|
||||
return ret;
|
||||
// 结果:0,写入成功
|
||||
// 文件写入:
|
||||
```
|
||||
|
||||
## `iniWriteDate(alias, file_name, section, ident, value)`
|
||||
|
||||
将日期值写入INI。如果不存在FileName,或者不存在Section,或者不存在Ident,则其会根据输入的FileName,Section,Ident创建对应的INI文件,INI文件的节名称,INI文件的键名称,并将日期值Value写入到INI文件指定的键
|
||||
|
||||
| 参数 | 类型 | 说明 |
|
||||
| --- | --- | --- |
|
||||
| `alias` | string | 字符串类型。目录名称 |
|
||||
| `file_name` | string | 字符串类型。INI文件名称 |
|
||||
| `section` | string | 字符串类型。INI文件的节名称 |
|
||||
| `ident` | string | 字符串类型。INI文件的键名称 |
|
||||
| `value` | tdate | 日期类型。要写入的日期值 |
|
||||
|
||||
返回:any
|
||||
|
||||
### 示例
|
||||
|
||||
```tsl
|
||||
{写本地文件:C: \Program Files\Tinysoft\Analyse.NET\Plugin\test.ini,
|
||||
// 设置节内容为:
|
||||
[IniData2]
|
||||
date=2014/1/12
|
||||
}
|
||||
ret := rdo2 iniWriteDate("",
|
||||
"C:\\Program Files\\Tinysoft\\Analyse.NET\\plugin\\test.ini", "Inidata2", "date", 41651);
|
||||
return ret;
|
||||
// 结果:0 ,设置成功
|
||||
// 文件修改:
|
||||
```
|
||||
|
||||
## `iniWriteDateTime(alias, file_name, section, ident, value)`
|
||||
|
||||
将日期时间值写入INI。如果不存在FileName,或者不存在Section,或者不存在Ident,则其会根据输入的FileName,Section,Ident创建对应的INI文件,INI文件的节名称,INI文件的键名称,并将日期时间值Value写入到INI文件指定的键
|
||||
|
||||
| 参数 | 类型 | 说明 |
|
||||
| --- | --- | --- |
|
||||
| `alias` | string | 字符串类型。目录名称 |
|
||||
| `file_name` | string | 字符串类型。INI文件名称 |
|
||||
| `section` | string | 字符串类型。INI文件的节名称 |
|
||||
| `ident` | string | 字符串类型。INI文件的键名称 |
|
||||
| `value` | tdatetime | 日期时间类型。要写入的日期时间值 |
|
||||
|
||||
返回:any
|
||||
|
||||
### 示例
|
||||
|
||||
```tsl
|
||||
{写本地文件:C: \Program Files\Tinysoft\Analyse.NET\Plugin\test.ini,
|
||||
// 设置节内容为:
|
||||
[IniData3]
|
||||
datetime=2014/1/12 14: 00: 00
|
||||
}
|
||||
ret := rdo2 iniWriteDateTime("",
|
||||
"C:\\Program Files\\Tinysoft\\Analyse.NET\\plugin\\test.ini", "Inidata3", "datetime", 41651.5833334);
|
||||
return ret;
|
||||
// 结果:0,修改成功
|
||||
// 文件修改:
|
||||
```
|
||||
|
||||
## `iniWriteFloat(alias, file_name, section, ident, value)`
|
||||
|
||||
将浮点值写入INI。如果不存在FileName,或者不存在Section,或者不存在Ident,则其会根据输入的FileName,Section,Ident创建对应的INI文件,INI文件的节名称,INI文件的键名称,并将浮点值Value写入到INI文件指定的键
|
||||
|
||||
| 参数 | 类型 | 说明 |
|
||||
| --- | --- | --- |
|
||||
| `alias` | string | 字符串类型。目录名称 |
|
||||
| `file_name` | string | 字符串类型。INI文件名称 |
|
||||
| `section` | string | 字符串类型。INI文件的节名称 |
|
||||
| `ident` | string | 字符串类型。INI文件的键名称 |
|
||||
| `value` | real | 浮点类型。要写入的浮点数值 |
|
||||
|
||||
返回:any
|
||||
|
||||
### 示例
|
||||
|
||||
```tsl
|
||||
{写本地文件:C: \Program Files\Tinysoft\Analyse.NET\Plugin\test.ini,
|
||||
// 设置节内容为:
|
||||
[IniData4]
|
||||
float=9.9
|
||||
}
|
||||
ret := rdo2 iniWriteFloat("",
|
||||
"C:\\Program Files\\Tinysoft\\Analyse.NET\\plugin\\test.ini", "Inidata4", "float", 9.9);
|
||||
return ret;
|
||||
// 结果:0,修改成功
|
||||
// 文件修改:
|
||||
```
|
||||
|
||||
## `iniWriteInteger(alias, file_name, section, ident, value)`
|
||||
|
||||
将整数值写入INI。如果不存在FileName,或者不存在Section,或者不存在Ident,则其会根据输入的FileName,Section,Ident创建对应的INI文件,INI文件的节名称,INI文件的键名称,并将整数值Value写入到INI文件指定的键
|
||||
|
||||
| 参数 | 类型 | 说明 |
|
||||
| --- | --- | --- |
|
||||
| `alias` | string | 字符串类型。目录名称 |
|
||||
| `file_name` | string | 字符串类型。INI文件名称 |
|
||||
| `section` | string | 字符串类型。INI文件的节名称 |
|
||||
| `ident` | string | 字符串类型。INI文件的键名称 |
|
||||
| `value` | integer | 整数类型。要写入的整数值 |
|
||||
|
||||
返回:any
|
||||
|
||||
### 示例
|
||||
|
||||
```tsl
|
||||
{写本地文件:C: \Program Files\Tinysoft\Analyse.NET\Plugin\test.ini,
|
||||
// 设置节内容为:
|
||||
[IniData5]
|
||||
INT=100
|
||||
}
|
||||
ret := rdo2 iniWriteInteger("",
|
||||
"C:\\Program Files\\Tinysoft\\Analyse.NET\\plugin\\test.ini", "Inidata5", "INT", 100);
|
||||
return ret;
|
||||
// 结果:0,修改成功
|
||||
// 文件修改:
|
||||
```
|
||||
|
||||
## `iniWriteTime(alias, file_name, section, ident, value)`
|
||||
|
||||
将时间值写入INI。如果不存在FileName,或者不存在Section,或者不存在Ident,则其会根据输入的FileName,Section,Ident创建对应的INI文件,INI文件的节名称,INI文件的键名称,并将时间值Value写入到INI文件指定的键
|
||||
|
||||
| 参数 | 类型 | 说明 |
|
||||
| --- | --- | --- |
|
||||
| `alias` | string | 字符串类型。目录名称 |
|
||||
| `file_name` | string | 字符串类型。INI文件名称 |
|
||||
| `section` | string | 字符串类型。INI文件的节名称 |
|
||||
| `ident` | string | 字符串类型。INI文件的键名称 |
|
||||
| `value` | ttime | 时间类型。要写入的时间值 |
|
||||
|
||||
返回:any
|
||||
|
||||
### 示例
|
||||
|
||||
```tsl
|
||||
{写本地文件:C: \Program Files\Tinysoft\Analyse.NET\Plugin\test.ini,
|
||||
// 设置节内容为:
|
||||
[IniData6]
|
||||
time=12: 00: 00
|
||||
}
|
||||
ret := rdo2 iniWriteTime("",
|
||||
"C:\\Program Files\\Tinysoft\\Analyse.NET\\plugin\\test.ini", "Inidata6", "time", 0.5);
|
||||
return ret;
|
||||
// 结果:0,修改成功
|
||||
// 文件修改:
|
||||
```
|
||||
|
||||
## `iniWriteString(alias, file_name, section, ident, value)`
|
||||
|
||||
将字符串值写入INI。如果不存在FileName,或者不存在Section,或者不存在Ident,则其会根据输入的FileName,Section,Ident创建对应的INI文件,INI文件的节名称,INI文件的键名称,并将字符串Value写入到INI文件指定的键
|
||||
|
||||
| 参数 | 类型 | 说明 |
|
||||
| --- | --- | --- |
|
||||
| `alias` | string | 字符串类型。目录名称 |
|
||||
| `file_name` | string | 字符串类型。INI文件名称 |
|
||||
| `section` | string | 字符串类型。INI文件的节名称 |
|
||||
| `ident` | string | 字符串类型。INI文件的键名称 |
|
||||
| `value` | string | 字符串类型。要写入的字符串 |
|
||||
|
||||
返回:any
|
||||
|
||||
### 示例
|
||||
|
||||
```tsl
|
||||
{写本地文件:C: \Program Files\Tinysoft\Analyse.NET\Plugin\test.ini,
|
||||
// 设置节内容为:
|
||||
[IniData7]
|
||||
String=Hello Tinysoft
|
||||
}
|
||||
ret := rdo2 iniWriteString("",
|
||||
"C:\\Program Files\\Tinysoft\\Analyse.NET\\plugin\\test.ini", "IniData7", "String", 'Hello Tinysoft');
|
||||
return ret;
|
||||
// 结果:0,修改成功
|
||||
// 文件修改:
|
||||
```
|
||||
|
||||
## `iniDeleteKey(alias, file_name, section, ident)`
|
||||
|
||||
删除INI中的标识符。
|
||||
|
||||
| 参数 | 类型 | 说明 |
|
||||
| --- | --- | --- |
|
||||
| `alias` | string | 字符串类型。目录名称 |
|
||||
| `file_name` | string | 字符串类型。INI文件名称 |
|
||||
| `section` | string | 字符串类型。INI文件中的节名称 |
|
||||
| `ident` | string | 字符串类型。INI文件中要删除的键名称 |
|
||||
|
||||
返回:any
|
||||
|
||||
### 示例
|
||||
|
||||
```tsl
|
||||
{删除本地文件:C: \Program Files\Tinysoft\Analyse.NET\Plugin\test.ini中节Inidata9的键名为bool的内容}
|
||||
ret := rdo2 iniDeleteKey("",
|
||||
"C:\\Program Files\\Tinysoft\\Analyse.NET\\plugin\\test.ini", "Inidata9", "bool");
|
||||
return ret;
|
||||
// 结果:0,删除成功
|
||||
```
|
||||
@@ -0,0 +1,457 @@
|
||||
# Builtin - 资源 / 网络
|
||||
|
||||
## `networkConvAdjDir(matrix, matrix_type, dir_type)`
|
||||
|
||||
图结构算法-矩阵转换:方向调整 将3类关联矩阵转为方向统一的矩阵: 1)正向处理 统计类矩阵,越大越好,value 相关系数矩阵,绝对值越大越好,abs(value) 距离类矩阵,越小越好,1/value 2)反向处理:上述取倒数
|
||||
|
||||
| 参数 | 类型 | 说明 |
|
||||
| --- | --- | --- |
|
||||
| `matrix` | array | 二维数字数组, 关联矩阵 |
|
||||
| `matrix_type` | any | 用户自定义, 关联矩阵类型 |
|
||||
| `dir_type` | any | 用户自定义, 关联矩阵调整方向 |
|
||||
|
||||
返回:array
|
||||
|
||||
## `networkConvToDist(matrix)`
|
||||
|
||||
将关联矩阵转换为距离矩阵 要求关联矩阵是正数矩阵,且值越大表示关联性越强
|
||||
|
||||
| 参数 | 类型 | 说明 |
|
||||
| --- | --- | --- |
|
||||
| `matrix` | array | 二维数字数组, 关联矩阵,其中值大于0表示两节点之间的关联强度 |
|
||||
|
||||
返回:array
|
||||
|
||||
## `netProfitGrowRatio12(r_date)`
|
||||
|
||||
最近12个月的净利润增长率(%)。 (1)归属于母公司所有者净利润数据取自合并利润分配表; (2)V1:RDate报告期最近12个月的归属于母公司所有者净利润; (3)V2:上年同期PRDate最近12个月的归属于母公司所有者净利润; (4)最近12个月的净利润增长率(%)=(V1-V2)/abs(V2)\*100。
|
||||
|
||||
| 参数 | 类型 | 说明 |
|
||||
| --- | --- | --- |
|
||||
| `r_date` | datetime | 整数,报告期。 |
|
||||
|
||||
返回:float
|
||||
|
||||
## `netDebt12(r_date)`
|
||||
|
||||
最近12个月的净债务=付息债务-最近12个月的期末现金余额。 (1)付息债务=短期借款+长期借款。 (2)从资产负债表中取短期债务和长期债务,从现金流量表中取得期末现金余额。根据算法得到净债务。
|
||||
|
||||
| 参数 | 类型 | 说明 |
|
||||
| --- | --- | --- |
|
||||
| `r_date` | datetime | 整数,报告期。 |
|
||||
|
||||
返回:float
|
||||
|
||||
## `netAssetsPs12(r_date)`
|
||||
|
||||
最近12个月的每股净资产。 (1)最近12个月的每股净资产=最近12个月归属母公司股东权益合计/总股本; (2)归属母公司股东权益合计取自合并资产负债表,根据最近12个月的算法计算得到最近12个月归属母公司股东权益合计【注1】; (3)总股本取RDate当天的数据。
|
||||
|
||||
| 参数 | 类型 | 说明 |
|
||||
| --- | --- | --- |
|
||||
| `r_date` | datetime | 整数,报告期。 |
|
||||
|
||||
返回:float
|
||||
|
||||
## `netAssetsPsGrowRatio12(r_date)`
|
||||
|
||||
最近12个月的每股净资产增长率(%)。 (1)函数从合并利润分配表中取该报告期归属母公司股东权益合计,根据算法得到最近12个月的归属母公司股东权益合计【注1】; (2)取Rdate当日的总股本; (3)最近12个月的每股净资产V1=最近12个月的归属母公司股东权益合计/总股本; (4)同理计算上年同期的最近12个月的每股净资产V2; (5)最近12个月的每股净资产增长率(%)=(V1-V2)/abs(V2)\*100。
|
||||
|
||||
| 参数 | 类型 | 说明 |
|
||||
| --- | --- | --- |
|
||||
| `r_date` | datetime | 整数,报告期。 |
|
||||
|
||||
返回:float
|
||||
|
||||
## `netEquityReturn12(r_date)`
|
||||
|
||||
最近12个月的净资产收益率(%)。 (1)净资产收益率(%)=最近12个月净利润/股东权益×100; (2)净利润取自合并利润分配表,根据最近12个月的算法得到最近12个月净利润【注1】; (3)股东权益取自合并资产负债表,只取报告期RDate的数据。
|
||||
|
||||
| 参数 | 类型 | 说明 |
|
||||
| --- | --- | --- |
|
||||
| `r_date` | datetime | 整数,报告期。 |
|
||||
|
||||
返回:float
|
||||
|
||||
## `netCashfromIa12(r_date)`
|
||||
|
||||
最近12个月的投资活动产生的现金流量净额。 (1)投资活动产生的现金流量净额取自合并现金流量表; (2)根据最近12个月的算法得到最近12个月的投资活动产生的现金流量净额【注1】。
|
||||
|
||||
| 参数 | 类型 | 说明 |
|
||||
| --- | --- | --- |
|
||||
| `r_date` | datetime | 整数,报告期。 |
|
||||
|
||||
返回:float
|
||||
|
||||
## `netCashfromOaGrowRatio12(r_date)`
|
||||
|
||||
最近12个月的经营活动产生的现金流量净额增长率(%)。 (1)经营活动产生的现金流量净额取自合并现金流量表;根据最近12个月的算法得到最近12个月的经营活动产生的现金流量净额V1【注1】; (2)同理取得上年同期最近12个月的经营活动产生的现金流量净额V2; (3)最近12个月的经营活动产生的现金流量净额增长率(%)=(V1-V2)/abs(V2)\*100。
|
||||
|
||||
| 参数 | 类型 | 说明 |
|
||||
| --- | --- | --- |
|
||||
| `r_date` | datetime | 整数,报告期。 |
|
||||
|
||||
返回:float
|
||||
|
||||
## `netCashFromOa12(r_date)`
|
||||
|
||||
最近12个月的经营活动产生的现金流量净额。 (1)经营活动产生的现金流量净额取自合并现金流量表; (2)根据最近12个月的算法得到最近12个月的经营活动产生的现金流量净额【注1】。
|
||||
|
||||
| 参数 | 类型 | 说明 |
|
||||
| --- | --- | --- |
|
||||
| `r_date` | datetime | 整数,报告期。 |
|
||||
|
||||
返回:float
|
||||
|
||||
## `netCashFromFa12(r_date)`
|
||||
|
||||
最近12个月的筹资活动产生的现金流量净额。 (1)筹资活动产生的现金流量净额取自合并现金流量表; (2)根据最近12个月的算法得到最近12个月的筹资活动产生的现金流量净额【注1】。
|
||||
|
||||
| 参数 | 类型 | 说明 |
|
||||
| --- | --- | --- |
|
||||
| `r_date` | datetime | 整数,报告期。 |
|
||||
|
||||
返回:float
|
||||
|
||||
## `netIncrease12(r_date)`
|
||||
|
||||
最近12个月的现金及现金等价物净增加额。 (1)现金及现金等价物净增加额取自合并现金流量表; (2)根据最近12个月的算法得到最近12个月的现金及现金等价物净增加额【注1】。
|
||||
|
||||
| 参数 | 类型 | 说明 |
|
||||
| --- | --- | --- |
|
||||
| `r_date` | datetime | 整数,报告期。 |
|
||||
|
||||
返回:float
|
||||
|
||||
## `netProfit12(r_date)`
|
||||
|
||||
最近12个月的归属于母公司所有者的净利润。 (1)母公司所有者的净利润取自合并利润分配表; (2)根据最近12个月的算法得到最近12个月的母公司所有者的净利润【注1】。
|
||||
|
||||
| 参数 | 类型 | 说明 |
|
||||
| --- | --- | --- |
|
||||
| `r_date` | datetime | 整数,报告期。 |
|
||||
|
||||
返回:float
|
||||
|
||||
## `netProfit212(r_date)`
|
||||
|
||||
最近12月净利润(业绩快报),与系统参数(股票)相关。
|
||||
|
||||
| 参数 | 类型 | 说明 |
|
||||
| --- | --- | --- |
|
||||
| `r_date` | datetime | 整数。报告期 |
|
||||
|
||||
返回:float
|
||||
|
||||
## `netEquityReturnYear(r_date, n)`
|
||||
|
||||
最近N年的净资产收益率(%)。 (1)取向后兼容的最新年报Q1,取N-1年前同期的年报Q2; (2)取Q2报告期的归属于母公司所有者的净利润(合并利润分配表)v1,以及Q2报告期的归属母公司股东权益合计(合并资产负债表)v2; (3)最近N年的净资产收益率(%)=v1/v2\*100。
|
||||
|
||||
| 参数 | 类型 | 说明 |
|
||||
| --- | --- | --- |
|
||||
| `r_date` | datetime | 整数,报告期; |
|
||||
| `n` | any | 整数,最近N年。 |
|
||||
|
||||
返回:float
|
||||
|
||||
## `netAssetsPerShareYear(r_date)`
|
||||
|
||||
最近1年的每股净资产。 (1)取向后兼容RDate的最新报告期NewRDate; (2)从资产负债表中取报告期NewRDate的归属母公司股东权益合计V1,以及NewRDate当天的总股本V2; (3)最近1年的每股净资产=V1/V2; (4)注意,资产负债表的科目不统计最近12个月的数据,只返回报告期的数据。
|
||||
|
||||
| 参数 | 类型 | 说明 |
|
||||
| --- | --- | --- |
|
||||
| `r_date` | datetime | 整数,报告期; |
|
||||
|
||||
返回:float
|
||||
|
||||
## `netProfitYear(r_date, n)`
|
||||
|
||||
最近N年的归属于母公司所有者的净利润。 (1)取向后兼容的最新年报Q1,取N-1年前同期的年报Q2; (2)在合并利润分配表取Q2报告期的归属于母公司所有者的净利润。
|
||||
|
||||
| 参数 | 类型 | 说明 |
|
||||
| --- | --- | --- |
|
||||
| `r_date` | datetime | 整数,报告期; |
|
||||
| `n` | any | 整数,最近N年 |
|
||||
|
||||
返回:float
|
||||
|
||||
## `netIncreaseQ(r_date)`
|
||||
|
||||
季度的现金及现金等价物净增加额。 (1)从合并现金流量表中取出现金及现金等价物净增加额; (2)按照季度的算法,计算出RDate季度的现金及现金等价物净增加额【注1】。
|
||||
|
||||
| 参数 | 类型 | 说明 |
|
||||
| --- | --- | --- |
|
||||
| `r_date` | datetime | 整数,报告期。 |
|
||||
|
||||
返回:float
|
||||
|
||||
## `netCashfromIaQ(r_date)`
|
||||
|
||||
季度的投资活动产生的现金流量净额。 (1)从合并现金流量表中取出投资活动产生的现金流量净额; (2)按照季度的算法,计算出RDate季度的投资活动产生的现金流量净额【注1】。
|
||||
|
||||
| 参数 | 类型 | 说明 |
|
||||
| --- | --- | --- |
|
||||
| `r_date` | datetime | 整数,报告期。 |
|
||||
|
||||
返回:float
|
||||
|
||||
## `netCashFromOaQ(r_date)`
|
||||
|
||||
季度的经营活动产生的现金流量净额。 (1)从合并现金流量表中取出经营活动产生的现金流量净额; (2)按照季度的算法,计算出RDate季度的经营活动产生的现金流量净额【注1】。
|
||||
|
||||
| 参数 | 类型 | 说明 |
|
||||
| --- | --- | --- |
|
||||
| `r_date` | datetime | 整数,报告期。 |
|
||||
|
||||
返回:float
|
||||
|
||||
## `netCashFromFaQ(r_date)`
|
||||
|
||||
计算指定报告期最近1季度的筹资活动产生的现金流。 根据季度数据的算法【注3】,函数从合并现金流量表中取出多个报告期的筹资活动产生的现金流,计算最近1季度的筹资活动产生的现金流。
|
||||
|
||||
| 参数 | 类型 | 说明 |
|
||||
| --- | --- | --- |
|
||||
| `r_date` | datetime | 整数,报告期; |
|
||||
|
||||
返回:float
|
||||
|
||||
## `netProfitQ(r_date)`
|
||||
|
||||
计算指定报告期最近1季度的净利润。 根据季度数据的算法【注3】,函数从合并现金流量表中取出多个报告期的筹资活动产生的现金流,计算最近1季度的净利润。
|
||||
|
||||
| 参数 | 类型 | 说明 |
|
||||
| --- | --- | --- |
|
||||
| `r_date` | datetime | 整数,报告期; |
|
||||
|
||||
返回:float
|
||||
|
||||
## `netProfit2Q(r_date)`
|
||||
|
||||
归属于母公司所有者净利润(业绩快报),与系统参数(股票)相关。 实数。归属于母公司所有者净利润(业绩快报)。
|
||||
|
||||
| 参数 | 类型 | 说明 |
|
||||
| --- | --- | --- |
|
||||
| `r_date` | datetime | 整数。报告期 |
|
||||
|
||||
返回:float
|
||||
|
||||
## `networkNodeDegreeCentrality(matrix)`
|
||||
|
||||
度中心度
|
||||
|
||||
| 参数 | 类型 | 说明 |
|
||||
| --- | --- | --- |
|
||||
| `matrix` | array | 二维数字数组类型,关联矩阵 |
|
||||
|
||||
返回:array
|
||||
|
||||
## `networkNodeClosenessCentrality(matrix, matrix_type)`
|
||||
|
||||
邻近中心度
|
||||
|
||||
| 参数 | 类型 | 说明 |
|
||||
| --- | --- | --- |
|
||||
| `matrix` | array | 二维数字数组类型,关联矩阵 |
|
||||
| `matrix_type` | any | 整数型,关联矩阵类型 |
|
||||
|
||||
返回:array
|
||||
|
||||
## `networkNodeBetweennessCentrality(matrix, matrix_type)`
|
||||
|
||||
中介中心度
|
||||
|
||||
| 参数 | 类型 | 说明 |
|
||||
| --- | --- | --- |
|
||||
| `matrix` | array | 二维数字数组类型,关联矩阵 |
|
||||
| `matrix_type` | any | 整数型,关联矩阵类型 |
|
||||
|
||||
返回:array
|
||||
|
||||
## `networkNodeNetCentrality(matrix, matrix_type)`
|
||||
|
||||
网络中心度
|
||||
|
||||
| 参数 | 类型 | 说明 |
|
||||
| --- | --- | --- |
|
||||
| `matrix` | array | 二维数字数组类型,关联矩阵 |
|
||||
| `matrix_type` | any | 整数型,关联矩阵类型 |
|
||||
|
||||
返回:array
|
||||
|
||||
## `networkNodeEigenvectorCentrality(matrix, matrix_type)`
|
||||
|
||||
特征向量中心度
|
||||
|
||||
| 参数 | 类型 | 说明 |
|
||||
| --- | --- | --- |
|
||||
| `matrix` | array | 二维数字数组类型,关联矩阵 |
|
||||
| `matrix_type` | any | 整数型,关联矩阵类型 |
|
||||
|
||||
返回:array
|
||||
|
||||
## `networkDensity(matrix)`
|
||||
|
||||
网络密度
|
||||
|
||||
| 参数 | 类型 | 说明 |
|
||||
| --- | --- | --- |
|
||||
| `matrix` | array | 二维数字数组类型,关联矩阵 |
|
||||
|
||||
返回:float
|
||||
|
||||
## `networkAveragePathLength(matrix, matrix_type)`
|
||||
|
||||
平均路径长度
|
||||
|
||||
| 参数 | 类型 | 说明 |
|
||||
| --- | --- | --- |
|
||||
| `matrix` | array | 二维数字数组类型,关联矩阵 |
|
||||
| `matrix_type` | any | 整数型,关联矩阵类型 |
|
||||
|
||||
返回:float
|
||||
|
||||
## `networkMeanOccupiedLayer(matrix, matrix_type)`
|
||||
|
||||
平均占有层
|
||||
|
||||
| 参数 | 类型 | 说明 |
|
||||
| --- | --- | --- |
|
||||
| `matrix` | array | 二维数字数组类型,关联矩阵 |
|
||||
| `matrix_type` | any | 整数型,关联矩阵类型 |
|
||||
|
||||
返回:float
|
||||
|
||||
## `netassetweeklylistCall(fund_arr, end_t, beg_t, sort_by, sort_order, return_number)`
|
||||
|
||||
基金列表指定区间单位净值、累计净值及其变化。
|
||||
|
||||
| 参数 | 类型 | 说明 |
|
||||
| --- | --- | --- |
|
||||
| `fund_arr` | array | 数组。基金列表。 |
|
||||
| `end_t` | datetime | 日期。截止日期。 |
|
||||
| `beg_t` | datetime | 日期。同比日期。 |
|
||||
| `sort_by` | string | 字符串。排序字段,取值如下: |
|
||||
| `sort_order` | any | 整数。排序方法,1表示正序,0表示逆序。 |
|
||||
| `return_number` | any | 整数。返回个数。 |
|
||||
|
||||
返回:array
|
||||
|
||||
## `sysSendMail()`
|
||||
|
||||
(参考文档未提供简述。)
|
||||
|
||||
返回:any
|
||||
|
||||
## `setHttpAcceptencodingon(session, is_zip)`
|
||||
|
||||
设定是否支持压缩。
|
||||
|
||||
| 参数 | 类型 | 说明 |
|
||||
| --- | --- | --- |
|
||||
| `session` | comobj | session ID |
|
||||
| `is_zip` | bool | 是否支持压缩传输,默认支持 |
|
||||
|
||||
返回:any
|
||||
|
||||
### 示例
|
||||
|
||||
```tsl
|
||||
url := "http://www.baidu.com";
|
||||
sid := createHttpSession();
|
||||
setHttpAcceptencodingon(sid, false); // 设定为不允许压缩传输
|
||||
setHttpCallBack(sid, findfunction("DownProg01")); // 进度回调
|
||||
r := getHttp(url, 60000, v, code);
|
||||
echo "\r\nDone", '->code:', code, '->返回内容总长度:', length(v), "\r\n";
|
||||
return 0;
|
||||
// --------------进度回调函数---------------------
|
||||
function DownProg01(sid, alldn_b, dn_b, allup_b, up_b); // progresscallback-不提前结束
|
||||
begin
|
||||
if dn_b > 0 then // 如果大于0则打印
|
||||
begin
|
||||
echo "AlldnB:", alldn_b, ",dnB:", dn_b, ",AllupB:", allup_b, ",upB:", up_b, "\r\n";
|
||||
end;
|
||||
return 0; // not done
|
||||
end;
|
||||
// 打印信息如下:
|
||||
```
|
||||
|
||||
## `setHttpAcceptencoding(session, acceptencodingstr)`
|
||||
|
||||
设定压缩格式编码类型。
|
||||
|
||||
| 参数 | 类型 | 说明 |
|
||||
| --- | --- | --- |
|
||||
| `session` | comobj | session ID |
|
||||
| `acceptencodingstr` | string | Accept-Encoding类型 |
|
||||
|
||||
返回:any
|
||||
|
||||
### 示例
|
||||
|
||||
```tsl
|
||||
url := "http://www.baidu.com";
|
||||
sid := createHttpSession();
|
||||
setHttpAcceptencoding(sid, "gzip"); // 设定压缩格式编码类型
|
||||
setHttpCallBack(sid, findfunction("DownProg01")); // 进度回调
|
||||
r := getHttp(url, 60000, v, code);
|
||||
echo "\r\nDone", '->code:', code, '->返回内容总长度:', length(v), "\r\n";
|
||||
return 0;
|
||||
// --------------进度回调函数---------------------
|
||||
function DownProg01(sid, alldn_b, dn_b, allup_b, up_b); // progresscallback-不提前结束
|
||||
begin
|
||||
if dn_b > 0 then // 如果大于0则打印
|
||||
begin
|
||||
echo "AlldnB:", alldn_b, ",dnB:", dn_b, ",AllupB:", allup_b, ",upB:", up_b, "\r\n";
|
||||
end;
|
||||
return 0; // not done
|
||||
end;
|
||||
// 打印结果:
|
||||
// 注:当http进度回调时,当服务器使用分块传输(启用压缩通常会使用分块传输)时, 无法预先知道总大小所以可能出现为0的情况,属于正常现象。
|
||||
```
|
||||
|
||||
## `getUrl(src_url, parse_url)`
|
||||
|
||||
解析在HTML中出现的URL,返回全路径URL串。
|
||||
|
||||
| 参数 | 类型 | 说明 |
|
||||
| --- | --- | --- |
|
||||
| `src_url` | string | 字符串类型,所需解析的URL所在HTML的源URL。 |
|
||||
| `parse_url` | string | 字符串类型,所需要解析的URL。 |
|
||||
|
||||
返回:string
|
||||
|
||||
### 示例
|
||||
|
||||
```tsl
|
||||
getUrl('http://www.tinysoft.com.cn', 'index.html')
|
||||
// 结果为:http://www.tinysoft.com.cn/index.html
|
||||
```
|
||||
|
||||
## `createHttpSession()`
|
||||
|
||||
创建一个http Session对象,并返回会话ID,即Session id。仅新一代TSL语言支持该函数。
|
||||
|
||||
返回:integer
|
||||
|
||||
### 示例
|
||||
|
||||
```tsl
|
||||
// 获取指定网页的头部信息
|
||||
sid := createHttpSession();
|
||||
url := "http://www.baidu.com";
|
||||
r := getHttp(sid, url, 60000, v, code);
|
||||
hd := getHttpResponseHeader(sid);
|
||||
echo hd, "\r\n";
|
||||
return 1;
|
||||
```
|
||||
|
||||
## `parseHtml(html, parsed, attr_name_is_index)`
|
||||
|
||||
将指定的Html字符串解析成为类似于DOM格式的结构。
|
||||
|
||||
| 参数 | 类型 | 说明 |
|
||||
| --- | --- | --- |
|
||||
| `html` | string | 字符串类型,所需解析的HTML串。 |
|
||||
| `parsed` | array | 存放返回的类DOM结构。 |
|
||||
| `attr_name_is_index` | bool=false | 节点的属性是否以属性名作为下标。缺省值为假,属性以0,1,2自然下标序列的数字下标排列,为真则属性值以属性名为字符串下标。 |
|
||||
|
||||
返回:bool
|
||||
@@ -0,0 +1,948 @@
|
||||
# Builtin - 资源 / 进程
|
||||
|
||||
## `sleep(milliseconds)`
|
||||
|
||||
暂停执行。
|
||||
|
||||
| 参数 | 类型 | 说明 |
|
||||
| --- | --- | --- |
|
||||
| `milliseconds` | integer | 整数,需要暂停的毫秒数。例如暂停一秒为Sleep(1000)。 |
|
||||
|
||||
返回:nil
|
||||
|
||||
### 示例
|
||||
|
||||
```tsl
|
||||
// 以下代码先打印123,接着回暂停2S,然后接着打印456
|
||||
echo 123;
|
||||
sleep(2000);
|
||||
echo 456;
|
||||
```
|
||||
|
||||
## `sysParamStr(index)`
|
||||
|
||||
获得命令行的指定索引的参数值。
|
||||
|
||||
| 参数 | 类型 | 说明 |
|
||||
| --- | --- | --- |
|
||||
| `index` | | 整数,命令行参数的索引号。Index=0,返回值为当前天软脚本文件名称;Index>0,返回值为额外传入的命令行参数值(字符串类型) |
|
||||
|
||||
返回:string
|
||||
|
||||
### 示例
|
||||
|
||||
```tsl
|
||||
// 本地test.tsl文件中代码如下:
|
||||
test();
|
||||
function test();
|
||||
begin
|
||||
r := array();
|
||||
for i := 1 to sysParamcount() do
|
||||
begin
|
||||
echo sysParamStr(i), '\r\n';
|
||||
end
|
||||
end
|
||||
// 在cmd中打开文件所在文件夹,输入命令:tsl test.tsl 1 2 3
|
||||
```
|
||||
|
||||
## `sysReleaseMutex(mutex)`
|
||||
|
||||
释放一个互斥锁。
|
||||
|
||||
| 参数 | 类型 | 说明 |
|
||||
| --- | --- | --- |
|
||||
| `mutex` | integer | 整数,互斥锁编号 |
|
||||
|
||||
返回:bool
|
||||
|
||||
### 示例
|
||||
|
||||
```tsl
|
||||
// 释放互斥锁,参数为创建互斥锁时返回的互斥锁编号
|
||||
ret := rdo2 sysCreateMutex("tinysoft");
|
||||
ret1 := rdo2 sysReleaseMutex(ret);
|
||||
return ret1;
|
||||
// 结果:1
|
||||
```
|
||||
|
||||
## `sysexecnewpipe(flag)`
|
||||
|
||||
创建Sysexec进程的管道。参数缺省时,默认创建读写管道。创建之后会与第一次被用的进程进行绑定,当有多个Sysexec进程时,可以创建多个管道分别进行读写操作。
|
||||
|
||||
| 参数 | 类型 | 说明 |
|
||||
| --- | --- | --- |
|
||||
| `flag` | integer | 整数,可选参数,控制创建管道的读写属性。Flag转换为二进制时,第0位表示是否可读,第1位表示是否可写。即 |
|
||||
|
||||
返回:bool
|
||||
|
||||
### 示例
|
||||
|
||||
```tsl
|
||||
// 创建读写管道
|
||||
sysExecNewPipe(0);
|
||||
path := "D:\\TinySoftNG\\AnalyseNG.NET\\TSL.exe";
|
||||
// 非阻塞执行,返回进程句柄
|
||||
hand := sysExec(path, "tsl", nil, 0, code);
|
||||
// 获取SysExec进程所在管道的输出内容
|
||||
t1 := "";
|
||||
while t1="" do
|
||||
begin
|
||||
t1 := sysexecreadpipe(hand);
|
||||
sleep(100); // 100毫秒读取一次
|
||||
end
|
||||
// 向SysExec进程所在管道写入内容
|
||||
sysExecWritePipe(hand, "datetostr(today())\r\n");
|
||||
sleep(500); // 等待写入的内容执行完成,也可写成上面的循环的方式获取
|
||||
// 获取管道执行写入内容后的输出内容
|
||||
t2 := sysexecreadpipe(hand);
|
||||
t3 := sysTerminate(code, hand); // 终止进程
|
||||
return array(hand, t1, t2);
|
||||
// 输出:如下图:
|
||||
```
|
||||
|
||||
## `sysexecdeletepipe(process_handle)`
|
||||
|
||||
删除指定进程的管道。参数缺省时,删除默认管道。
|
||||
|
||||
| 参数 | 类型 | 说明 |
|
||||
| --- | --- | --- |
|
||||
| `process_handle` | | 数值,可选参数,进程句柄。 |
|
||||
|
||||
返回:bool
|
||||
|
||||
### 示例
|
||||
|
||||
```tsl
|
||||
// 创建读写管道
|
||||
sysExecNewPipe(0);
|
||||
path := "D:\\Program Files\\Analyse.NET\\TSL.exe";
|
||||
// 非阻塞执行,返回进程句柄
|
||||
hand := sysExec(path, "tsl", nil, false, code);
|
||||
// 获取SysExec进程所在管道的输出内容
|
||||
t1 := "";
|
||||
while t1="" do
|
||||
begin
|
||||
t1 := sysexecreadpipe(hand);
|
||||
end
|
||||
de_ret := sysExecDeletePipe(hand);
|
||||
// 删除成功,尝试向指定进程所在管道写入内容
|
||||
if de_ret then
|
||||
begin
|
||||
try
|
||||
sysExecWritePipe(hand, " datetostr(20221130T)\r\n");
|
||||
return false;
|
||||
except
|
||||
// 写入失败,管道删除成功
|
||||
return true;
|
||||
end;
|
||||
end
|
||||
sysTerminate(code, hand); // 终止进程
|
||||
return false;
|
||||
// 输出:
|
||||
// 执行超时。
|
||||
```
|
||||
|
||||
## `sysGetSubProcesses(pid)`
|
||||
|
||||
获得进程的子进程列表
|
||||
|
||||
| 参数 | 类型 | 说明 |
|
||||
| --- | --- | --- |
|
||||
| `pid` | integer | 整数,可选参数,进程ID。未指定时默认获取当前进程内的子进程列表 |
|
||||
|
||||
返回:array,tablearray
|
||||
|
||||
### 示例
|
||||
|
||||
范例01:获取当前进程的子进程列表
|
||||
|
||||
```tsl
|
||||
ret := sysGetSubProcesses();
|
||||
if istabel(ret) then
|
||||
return ret;
|
||||
else
|
||||
return "获取进程的子进程列表失败!"
|
||||
```
|
||||
|
||||
范例02:获取指定进程的子进程列表
|
||||
|
||||
```tsl
|
||||
// 打开记事本,在任务管理器中查找对应进程ID:
|
||||
ret := sysGetSubProcesses(2932);
|
||||
if istabel(ret) then
|
||||
return ret;
|
||||
else
|
||||
return "获取进程的子进程列表失败!"
|
||||
```
|
||||
|
||||
## `sysGetMemoryUsage()`
|
||||
|
||||
获取系统内存状态
|
||||
|
||||
返回:array,tablearray
|
||||
|
||||
### 示例
|
||||
|
||||
```tsl
|
||||
// 获得系统内存状态
|
||||
return sysGetMemoryUsage();
|
||||
```
|
||||
|
||||
## `sysGetProcessMemoryUsage(pid)`
|
||||
|
||||
获取进程的内存使用状态
|
||||
|
||||
| 参数 | 类型 | 说明 |
|
||||
| --- | --- | --- |
|
||||
| `pid` | integer | 整数,可选参数,进程ID。未指定时默认获取自身的内存使用状态 |
|
||||
|
||||
返回:array
|
||||
|
||||
### 示例
|
||||
|
||||
```tsl
|
||||
// 获得自身的内存使用状态
|
||||
return sysGetProcessMemoryUsage();
|
||||
```
|
||||
|
||||
## `sysLibCVersion()`
|
||||
|
||||
获取系统中C语言支持库的版本
|
||||
|
||||
返回:string
|
||||
|
||||
### 示例
|
||||
|
||||
```tsl
|
||||
// 获得C语言支持库的版本
|
||||
return sysLibCVersion();
|
||||
// 返回:"10.0.26100.8521"
|
||||
```
|
||||
|
||||
## `processField(field_name, call_back)`
|
||||
|
||||
对相应的数据进行处理,注意,该函数主要用于客户端结果处理,不提供给用户程序编辑。
|
||||
|
||||
| 参数 | 类型 | 说明 |
|
||||
| --- | --- | --- |
|
||||
| `field_name` | string | 字符串,字段名称 |
|
||||
| `call_back` | string | 字符串,函数名称 |
|
||||
|
||||
返回:array,tablearray
|
||||
|
||||
## `processFirstField(call_back)`
|
||||
|
||||
对相应数据进行处理。注意,该函数主要用于客户端结果处理,不提供给用户程序编辑。
|
||||
|
||||
| 参数 | 类型 | 说明 |
|
||||
| --- | --- | --- |
|
||||
| `call_back` | string | 字符串,函数名称 |
|
||||
|
||||
返回:array,tablearray
|
||||
|
||||
## `sysputenv(env_value)`
|
||||
|
||||
设置当前运行环境的指定环境变量的值。
|
||||
|
||||
| 参数 | 类型 | 说明 |
|
||||
| --- | --- | --- |
|
||||
| `env_value` | string | 字符串,环境变量名=变量值。 |
|
||||
|
||||
返回:integer
|
||||
|
||||
### 示例
|
||||
|
||||
```tsl
|
||||
// 以笔者的电脑环境为例,来展示该函数的功能:
|
||||
// 如图所示,本地现有名为OS的环境变量:
|
||||
// 并且在powerShell等控制台中可以获取到:
|
||||
// 在TSL执行环境中,我们可以使用SysGetenv函数获取指定环境变量,如下:
|
||||
```
|
||||
|
||||
范例01:将原环境变量值替换为设置值。
|
||||
|
||||
```tsl
|
||||
// 从下面的截图中,可以看出,SysPutenv只能设置当前TSL运行环境的环境变量。
|
||||
// 在客户端中用代码实现如下:
|
||||
res := sysgetenv("OS"); // 获取本地原有环境变量OS的值
|
||||
echo res; // 打印原有环境变量OS的值
|
||||
ret := sysputenv("OS=Test"); // 更改当前运行环境的环境变量OS的值
|
||||
if ret=0 then return sysgetenv("OS"); // 更改成功,获取更改后的环境变量OS的值
|
||||
// 返回字符串“Test”
|
||||
```
|
||||
|
||||
范例02:将新增值添加到原有环境变量中
|
||||
|
||||
```tsl
|
||||
// 在客户端中用代码实现如下:
|
||||
res := sysgetenv("OS"); // 获取本地原有环境变量OS的值
|
||||
echo res; // 打印原有环境变量OS的值
|
||||
res := "OS="$res$";Test"; // 原有环境变量与设置值拼接
|
||||
ret := sysputenv(res); // 更改当前运行环境的环境变量OS的值
|
||||
if ret=0 then return sysgetenv("OS"); // 更改成功,获取更改后的环境变量OS的值
|
||||
// 结果:返回字符串" Windows_NT;Test"
|
||||
```
|
||||
|
||||
## `sysErrorMessage(code)`
|
||||
|
||||
返回指定代码表示的系统错误信息。
|
||||
|
||||
| 参数 | 类型 | 说明 |
|
||||
| --- | --- | --- |
|
||||
| `code` | integer | 整数,提示代码 |
|
||||
|
||||
返回:string
|
||||
|
||||
### 示例
|
||||
|
||||
```tsl
|
||||
return rdo2 sysErrorMessage(200);
|
||||
// 结果:代码段不可大于或等于 64K。
|
||||
```
|
||||
|
||||
## `sysgetenv(name)`
|
||||
|
||||
获取当前运行环境下指定环境变量的值。
|
||||
|
||||
| 参数 | 类型 | 说明 |
|
||||
| --- | --- | --- |
|
||||
| `name` | string | 字符串,环境变量名。 |
|
||||
|
||||
返回:string
|
||||
|
||||
### 示例
|
||||
|
||||
```tsl
|
||||
// 读取本地已有系统环境变量OS的值
|
||||
return sysgetenv("OS");
|
||||
// 返回字符串“Windows_NT”
|
||||
// 注:更具体的应用可参考Sysputenv中的范例。
|
||||
```
|
||||
|
||||
## `sysWaitForMultipleObjects(objects, b_wait_all, wait_ms)`
|
||||
|
||||
等待占有多个对象,例如互斥对象。支持windows和linux的进程
|
||||
|
||||
| 参数 | 类型 | 说明 |
|
||||
| --- | --- | --- |
|
||||
| `objects` | array of integer | 一维数字数组,对象句柄数组 |
|
||||
| `b_wait_all` | bool | 真假,是否等待所有的对象。为真等待所有的,为假则仅需任意一个对象等待成功。 |
|
||||
| `wait_ms` | integer | 整数,等待的毫秒数,-1则为永远等待。 |
|
||||
|
||||
返回:integer
|
||||
|
||||
### 示例
|
||||
|
||||
```tsl
|
||||
sysExecNewPipe(); // 创建管道
|
||||
path := "D:\\TinySoftNG\\AnalyseNG.NET\\TSL.exe";
|
||||
do_s1 := array('C:\\TinySoftNG\\AnalyseNG.NET\\tsl.exe', 'C:\\DoTSL\\otherTest\\TestEnv.tsl');
|
||||
do_s2 := array('C:\\TinySoftNG\\AnalyseNG.NET\\tsl.exe', 'C:\\DoTSL\\otherTest\\TestEcho.tsf');
|
||||
// 创建一个被挂起的进程,两个会返回的进程
|
||||
hand1 := sysExec(path, 'TSL', nil, array('wait': false, 'in': 'c := "333"\r\n'), code);
|
||||
hand2 := sysExec(path, do_s1, nil, false, code);
|
||||
hand3 := sysExec(path, do_s2, nil, false, code);
|
||||
r := sysWaitForMultipleObjects(array(hand1, hand2, hand3), 0, 10 * 1000); // 仅需任意一个对象等待成功
|
||||
t := sysexecreadpipe(); // 读取管道内容
|
||||
sysTerminate(code, hand1); // 终止进程
|
||||
sysTerminate(code, hand2); // 终止进程
|
||||
sysTerminate(code, hand3); // 终止进程
|
||||
return array(r, t);
|
||||
返回: 返回为1,说明hand1没有等待成功,而至少hand2是有等待成功了。注:其中的TestEnv.tsl与TestEcho.tsf实现分别如下:TestEnv.tsl: sleep(500);t := Sysgetenvs();echo "sys: ", tostn(t), '\r\n';return 1;
|
||||
test_echo.tsf: sleep(2 * 1000); // 停2秒echo 'TestEchoIN\r\n';return 1;
|
||||
```
|
||||
|
||||
## `sysCreateMutex(mutex_name)`
|
||||
|
||||
创建一个互斥锁。
|
||||
|
||||
| 参数 | 类型 | 说明 |
|
||||
| --- | --- | --- |
|
||||
| `mutex_name` | string | 字符串,互斥锁名称 |
|
||||
|
||||
返回:integer
|
||||
|
||||
### 示例
|
||||
|
||||
```tsl
|
||||
// 创建一个名称为tinysoft的互斥锁
|
||||
ret := rdo2 sysCreateMutex("tinysoft");
|
||||
return ret;
|
||||
// 结果:2632
|
||||
```
|
||||
|
||||
## `sysProcessId()`
|
||||
|
||||
获得运行的进程ID。
|
||||
|
||||
返回:integer
|
||||
|
||||
### 示例
|
||||
|
||||
```tsl
|
||||
{获得天软客户端程序当前的进程ID,即在任务管理器中查看到的进程对应的PID。每个电脑的进程不一样}
|
||||
return rdo2 sysProcessId();
|
||||
```
|
||||
|
||||
## `sysParamcount()`
|
||||
|
||||
获得命令行参数个数。(不包括执行的自身.TSL参数)
|
||||
|
||||
返回:integer
|
||||
|
||||
### 示例
|
||||
|
||||
```tsl
|
||||
// 本地test.tsl文件中代码如下:
|
||||
test();
|
||||
function test();
|
||||
begin
|
||||
// 获取命令行传入参数个数
|
||||
echo sysParamcount();
|
||||
end
|
||||
// 在cmd中打开文件所在文件夹,输入命令:tsl test.tsl 1 2 3
|
||||
```
|
||||
|
||||
## `sysThreadId()`
|
||||
|
||||
获得运行的线程ID。
|
||||
|
||||
返回:integer
|
||||
|
||||
### 示例
|
||||
|
||||
```tsl
|
||||
// 获得天软客户端程序当前的进程运行的线程ID
|
||||
return rdo2 sysThreadId();
|
||||
```
|
||||
|
||||
## `sysWaitForSingleObject(object, wait_ms)`
|
||||
|
||||
等待占有一个对象,例如互斥对象。支持windows和linux的进程
|
||||
|
||||
| 参数 | 类型 | 说明 |
|
||||
| --- | --- | --- |
|
||||
| `object` | integer | 整数,对象名柄 |
|
||||
| `wait_ms` | integer | 整数,等待的毫秒数,-1则为永远等待。 |
|
||||
|
||||
返回:integer
|
||||
|
||||
### 示例
|
||||
|
||||
```tsl
|
||||
sysExecNewPipe(); // 创建管道
|
||||
path := "D:\\TinySoftNG\\AnalyseNG.NET\\TSL.exe";
|
||||
do_s := array('C:\\TinySoftNG\\AnalyseNG.NET\\tsl.exe', 'C:\\DoTSL\\otherTest\\TestEnv.tsl');
|
||||
hand1 := sysExec(path, do_s, nil, array('wait': false, 'in': 'd := "123"\r\n'), code);
|
||||
r := sysWaitForSingleObject(hand1, 10 * 1000); // 等待线程的状态
|
||||
t := sysexecreadpipe(); // 读取管道内容
|
||||
return array(r, t);
|
||||
返回: 其中,TestEnv.tsl文件的实现如下: // 当前sys的环境变量t := Sysgetenvs();echo "sys: ",tostn(t),'\r\n';s := Readln();//读取echo 'IN:',s,'\r\n';return 1;
|
||||
```
|
||||
|
||||
## `sysGetenvs()`
|
||||
|
||||
获取当前运行环境的全部环境变量串。
|
||||
|
||||
返回:array of string
|
||||
|
||||
### 示例
|
||||
|
||||
```tsl
|
||||
// 读取当前运行环境的所有环境变量
|
||||
return sysGetenvs();
|
||||
// 部分结果截图:
|
||||
```
|
||||
|
||||
## `sysexecGetenvs()`
|
||||
|
||||
获取子进程的环境变量,应用于Sysexec创建的子进程。
|
||||
|
||||
返回:array of string
|
||||
|
||||
### 示例
|
||||
|
||||
```tsl
|
||||
sysExecSetEnvs(array("test=test", "test1=test1"), 2);
|
||||
return sysexecGetenvs();
|
||||
// 输出:
|
||||
// array("test=test","test1=test1","ALLUSERSPROFILE=C:\\ProgramData","APPDATA=C:\\Users\\cobia\\AppData\\Roaming","CODEX_CI=1","CODEX_MANAGED_BY_NPM=1","CODEX_MANAGED_PACKAGE_ROOT=...
|
||||
// 注:更多应用可参考Sysexecsetenvs
|
||||
```
|
||||
|
||||
## `dbglocalcancel(id)`
|
||||
|
||||
注销任务。该功能可以用来终止运行的WEB任务。
|
||||
|
||||
| 参数 | 类型 | 说明 |
|
||||
| --- | --- | --- |
|
||||
| `id` | integer | 为dbglocalrunning中返回信息中的id字段以十六进制模式转换为64位整数 |
|
||||
|
||||
返回:bool
|
||||
|
||||
## `sysThreadSelf()`
|
||||
|
||||
获取当前程序的线程ID。
|
||||
|
||||
返回:integer|int64
|
||||
|
||||
### 示例
|
||||
|
||||
```tsl
|
||||
// 在客户端中,本地执行如下代码:
|
||||
return sysThreadSelf();
|
||||
// 返回值:线程ID,如11000
|
||||
// 通过cmd查看天软客户端进程与线程,结果如下:
|
||||
```
|
||||
|
||||
## `syslinuxkrnlclosemutex(name, isprivate)`
|
||||
|
||||
支持在LINUX上手动删除掉因互斥支持产生的系统信号量以及临时目录的文件
|
||||
|
||||
| 参数 | 类型 | 说明 |
|
||||
| --- | --- | --- |
|
||||
| `name` | string | 字符串,互斥锁名称 |
|
||||
| `isprivate` | bool | 是否私有 |
|
||||
|
||||
返回:any
|
||||
|
||||
## `sysSetThreadPriority(pri, tid)`
|
||||
|
||||
设置线程优先级
|
||||
|
||||
| 参数 | 类型 | 说明 |
|
||||
| --- | --- | --- |
|
||||
| `pri` | integer | 线程优先级 |
|
||||
| `tid` | integer | 可选参数,线程ID。未指定时默认设置当前线程优先级 |
|
||||
|
||||
返回:integer
|
||||
|
||||
### 示例
|
||||
|
||||
范例01:设置当前线程优先级
|
||||
|
||||
```tsl
|
||||
ret := sysSetThreadPriority(1);
|
||||
if ret=0 then
|
||||
return 1;
|
||||
else
|
||||
return "设置线程优先级失败!";
|
||||
// 输出:返回1,设置成功。
|
||||
```
|
||||
|
||||
范例02:设置指定线程优先级
|
||||
|
||||
```tsl
|
||||
// 创建函数指针
|
||||
c := makeinstance(thisfunction(func_pos), "cdecl", 1);
|
||||
// 创建线程
|
||||
handle := CreateThread(nil, 10240000, c, nil, 0, tid);
|
||||
ret := sysSetThreadPriority(1, tid);
|
||||
if ret=0 then
|
||||
return 1;
|
||||
else
|
||||
return "设置线程优先级失败!";
|
||||
// 定义WindowsAPI的CreateThread函数声明。
|
||||
function CreateThread(attr: pointer;size: pointer;addr: pointer;p: pointer;flag: integer;var threadid: integer): pointer;external "kernel32.dll" name "CreateThread";
|
||||
// 自定义函数,用于创建函数指针
|
||||
function FuncPos(p: pointer): integer;
|
||||
begin
|
||||
sleep(random(3000));
|
||||
return 1;
|
||||
end;
|
||||
// 输出:返回1,设置成功。
|
||||
```
|
||||
|
||||
## `sysGetThreadPriority(pri, tid)`
|
||||
|
||||
获取线程优先级
|
||||
|
||||
| 参数 | 类型 | 说明 |
|
||||
| --- | --- | --- |
|
||||
| `pri` | integer | 变参,整数,线程优先级 |
|
||||
| `tid` | integer | 整数,可选参数,线程ID。未指定时默认获取当前线程优先级 |
|
||||
|
||||
返回:integer
|
||||
|
||||
### 示例
|
||||
|
||||
范例01:获取当前线程优先级
|
||||
|
||||
```tsl
|
||||
ret := sysGetThreadPriority(pri);
|
||||
if ret=0 then
|
||||
return pri;
|
||||
else
|
||||
return "获取线程优先级失败!";
|
||||
```
|
||||
|
||||
范例02:获取指定线程优先级
|
||||
|
||||
```tsl
|
||||
tid := 18024; // 指定线程ID
|
||||
ret := sysGetThreadPriority(pri, tid);
|
||||
if ret=0 then
|
||||
return pri;
|
||||
else
|
||||
return "获取线程优先级失败!";
|
||||
```
|
||||
|
||||
## `sysGetThreadName(tid)`
|
||||
|
||||
获取线程名称
|
||||
|
||||
| 参数 | 类型 | 说明 |
|
||||
| --- | --- | --- |
|
||||
| `tid` | integer | 整数,可选参数,线程ID。未指定时默认获取当前线程名称 |
|
||||
|
||||
返回:string
|
||||
|
||||
### 示例
|
||||
|
||||
范例01:获取当前线程名称
|
||||
|
||||
```tsl
|
||||
ret := sysGetThreadName();
|
||||
if ret then
|
||||
return ret;
|
||||
else
|
||||
return "获取线程名称失败!";
|
||||
```
|
||||
|
||||
范例02:获取指定线程名称
|
||||
|
||||
```tsl
|
||||
tid := 18024; // 指定线程ID
|
||||
ret := sysGetThreadName(tid);
|
||||
if ret then
|
||||
return ret;
|
||||
else
|
||||
return "获取线程名称失败!";
|
||||
```
|
||||
|
||||
## `sysGetThreads(pid)`
|
||||
|
||||
获取进程内的线程列表
|
||||
|
||||
| 参数 | 类型 | 说明 |
|
||||
| --- | --- | --- |
|
||||
| `pid` | integer | 整数,可选参数,进程ID。未指定时默认获取当前进程内的线程列表 |
|
||||
|
||||
返回:array,tablearray
|
||||
|
||||
### 示例
|
||||
|
||||
范例01:获取当前进程内的线程列表
|
||||
|
||||
```tsl
|
||||
ret := sysGetThreads();
|
||||
return ret;
|
||||
// 输出:
|
||||
// array(52412,37192,19952,47976,46252,25228,13360,24792,33176)
|
||||
```
|
||||
|
||||
范例02:获取指定进程内的线程列表
|
||||
|
||||
```tsl
|
||||
// 打开记事本,在任务管理器中查找对应进程ID:
|
||||
ret := sysGetThreads(2932);
|
||||
return ret;
|
||||
// 输出:
|
||||
// array()
|
||||
```
|
||||
|
||||
## `sysPPid(pid)`
|
||||
|
||||
获得进程的父进程ID
|
||||
|
||||
| 参数 | 类型 | 说明 |
|
||||
| --- | --- | --- |
|
||||
| `pid` | integer | 整数,可选参数,进程ID。未指定时默认获取当前进程的父进程ID |
|
||||
|
||||
返回:integer
|
||||
|
||||
### 示例
|
||||
|
||||
范例01:获取当前进程的父进程ID
|
||||
|
||||
```tsl
|
||||
ret := sysPPid();
|
||||
if ret then
|
||||
return ret;
|
||||
else
|
||||
return "获取进程的父进程ID失败!";
|
||||
```
|
||||
|
||||
范例02:获取指定进程的父进程ID
|
||||
|
||||
```tsl
|
||||
// 打开记事本,在任务管理器中查找对应进程ID:
|
||||
ret := sysPPid(28848);
|
||||
if ret then
|
||||
return ret;
|
||||
else
|
||||
return "获取进程的父进程ID失败!";
|
||||
// 输出:
|
||||
// 无输出。
|
||||
```
|
||||
|
||||
## `sysPidOfTid(tid)`
|
||||
|
||||
获取线程所属进程ID
|
||||
|
||||
| 参数 | 类型 | 说明 |
|
||||
| --- | --- | --- |
|
||||
| `tid` | integer | 整数,线程ID |
|
||||
|
||||
返回:integer
|
||||
|
||||
### 示例
|
||||
|
||||
范例01:获取当前线程所属进程
|
||||
|
||||
```tsl
|
||||
tid := sysThreadId(); // 获取当前线程ID
|
||||
ret := sysPidOfTid(tid);
|
||||
if ret then
|
||||
return ret;
|
||||
else
|
||||
return "获取线程所属进程ID失败!"
|
||||
```
|
||||
|
||||
## `sysPidOfHandle(handle)`
|
||||
|
||||
根据进程句柄获取进程ID。在Linux上,返回和进程句柄值相同的整数
|
||||
|
||||
| 参数 | 类型 | 说明 |
|
||||
| --- | --- | --- |
|
||||
| `handle` | integer | 进程句柄 |
|
||||
|
||||
返回:integer
|
||||
|
||||
### 示例
|
||||
|
||||
范例01:根据进程句柄获取进程ID
|
||||
|
||||
```tsl
|
||||
// TSL解析器路径
|
||||
path := "D:\\Program Files\\AnalyseNG.NET\\TSL.exe";
|
||||
// 创建管道
|
||||
ret := sysExecNewPipe();
|
||||
// 创建一个TSL解析器进程
|
||||
if ret then
|
||||
handle := sysExec(path, "TSL", nil, 0, code); // 返回进程句柄
|
||||
ret := sysPidOfHandle(handle);
|
||||
sysTerminate(rc, handle); // 关闭TSL解析器进程
|
||||
if ret then
|
||||
return ret;
|
||||
else
|
||||
return "根据进程句柄获取进程ID失败!"
|
||||
```
|
||||
|
||||
## `sysHandleOfPid(pid, rights, inherithandle)`
|
||||
|
||||
Windows上获取进程id对应的句柄,Linux上获取指定文件ID的复制ID。得到的句柄可用函数FAQ:SysCloseHandle进行关闭。
|
||||
|
||||
| 参数 | 类型 | 说明 |
|
||||
| --- | --- | --- |
|
||||
| `pid` | integer | 整数,进程ID |
|
||||
| `rights` | integer | 整数,可选参数,设置进程句柄权限,Linux上无效。常见的权限设置值见下表。 |
|
||||
| `inherithandle` | integer | 布尔值,可选参数,是否继承,Linux上无效 |
|
||||
|
||||
常见权限值:
|
||||
|
||||
| 值 | 十进制值 | 访问权限 | 可操作范围 |
|
||||
| --- | --- | --- | --- |
|
||||
| `0x0010` | 16 | PROCESS_VM_READ | 读取进程内存内容 |
|
||||
| `0x0400` | 1024 | PROCESS_QUERY_INFORMATION | 查询完整进程信息(令牌、优先级等) |
|
||||
| `0x1000` | 4096 | PROCESS_QUERY_LIMITED_INFORMATION(缺省值) | 仅查询进程基础信息(PID、退出代码等) |
|
||||
| `0xFFFF` | 65535 | PROCESS_ALL_ACCESS | 所有权限(包括终止、内存写入等) |
|
||||
|
||||
返回:integer
|
||||
|
||||
## `sysGetLastError()`
|
||||
|
||||
获得系统操作的最后一个返回代码。
|
||||
|
||||
返回:integer
|
||||
|
||||
## `sysCmdLine()`
|
||||
|
||||
获得解析器的真实命令行串。
|
||||
|
||||
返回:string
|
||||
|
||||
## `sysTerminate(ret_code, handle)`
|
||||
|
||||
终止进程。
|
||||
|
||||
| 参数 | 类型 | 说明 |
|
||||
| --- | --- | --- |
|
||||
| `ret_code` | integer | 整数,终止进程返回的代码。 |
|
||||
| `handle` | integer | 整数,终止进程的句柄。缺省为终止自身进程。 |
|
||||
|
||||
返回:any
|
||||
|
||||
## `sysCloseHandle(handle)`
|
||||
|
||||
关闭一个句柄,如互斥锁,文件句柄等。
|
||||
|
||||
| 参数 | 类型 | 说明 |
|
||||
| --- | --- | --- |
|
||||
| `handle` | integer | 整数,句柄编号 |
|
||||
|
||||
返回:bool
|
||||
|
||||
### 示例
|
||||
|
||||
```tsl
|
||||
// 启动windows平台下的windows命令处理程序,然后关闭启动该程序时返回的句柄
|
||||
tool_path := "C:\\Program Files\\Windows Media Player";
|
||||
ret := rdo2 sysExec(tool_path+"\\wmplayer.exe", "D:\\test1\\when_ever.mp3", tool_path, 1, returncode);
|
||||
ret1 := rdo2 sysCloseHandle(ret);
|
||||
return ret1;
|
||||
// 结果:1
|
||||
```
|
||||
|
||||
## `dbglocalrunning()`
|
||||
|
||||
获得当前所有的任务列表以及堆栈信息,主要用于web等检查在运行中的任务。
|
||||
|
||||
返回:array,tablearray
|
||||
|
||||
### 示例
|
||||
|
||||
```tsl
|
||||
// 在本地脚本中运行下面代码:
|
||||
t := dbglocalrunning();
|
||||
echo toStn(t);
|
||||
return 1;
|
||||
// 打印信息如下:
|
||||
array(
|
||||
("StartInfo":
|
||||
("id": "000001b9b8e30440", "info": "C:\\Users\\xxxxx\\Tinysoft\\Analyse.NET\\editer\\cmpCachesnewfile\\new12.tsl", "createtm": 45602.6995526042), "CallStack":
|
||||
(
|
||||
("NAME": "__main__", "USER": "local", "LINE": 3))))
|
||||
```
|
||||
|
||||
## `sysGetProcessList()`
|
||||
|
||||
获取当前进程列表信息
|
||||
|
||||
返回:array,tablearray
|
||||
|
||||
### 示例
|
||||
|
||||
```tsl
|
||||
ret := sysGetProcessList();
|
||||
if ret<>0 then
|
||||
return ret;
|
||||
else
|
||||
return "当前进程列表信息失败!";
|
||||
// 部分结果如下:
|
||||
```
|
||||
|
||||
## `sysGetProcessListw()`
|
||||
|
||||
获取当前进程列表信息,信息中字符串为宽字节字符串
|
||||
|
||||
返回:array,tablearray
|
||||
|
||||
### 示例
|
||||
|
||||
```tsl
|
||||
ret := sysGetProcessListw();
|
||||
if ret<>0 then
|
||||
return ret;
|
||||
else
|
||||
return "当前进程列表信息失败!";
|
||||
// 部分结果如下:
|
||||
```
|
||||
|
||||
## `sysGetWndOfCaption(cap, is_contain_string)`
|
||||
|
||||
获得所有标题窗口串包含或者等于指定串的所有窗口句柄。
|
||||
|
||||
| 参数 | 类型 | 说明 |
|
||||
| --- | --- | --- |
|
||||
| `cap` | string | 字符串,窗口的标题。 |
|
||||
| `is_contain_string` | | 布尔类型,是否包含,可选参数参数,默认是包含。 |
|
||||
|
||||
返回:array of hwnd
|
||||
|
||||
### 示例
|
||||
|
||||
```tsl
|
||||
// 获取标题是”test.docx”的窗口句柄。
|
||||
v := sysGetWndOfCaption("test.docx");
|
||||
echo v;
|
||||
```
|
||||
|
||||
## `sysGetPidtidOfWnd(wnd, thread_id)`
|
||||
|
||||
获得窗口句柄的进程ID, 通过ThreadId可输出线程id
|
||||
|
||||
| 参数 | 类型 | 说明 |
|
||||
| --- | --- | --- |
|
||||
| `wnd` | hwnd | 整型,窗口句柄。 |
|
||||
| `thread_id` | integer | 输出值,整型,线程号,给定该参数可以获取线程ID。 |
|
||||
|
||||
返回:integer
|
||||
|
||||
### 示例
|
||||
|
||||
```tsl
|
||||
// 获取标题是”test.docx”的窗口的word的进程ID。
|
||||
// 获取标题是”test.docx”的窗口句柄
|
||||
wnd := sysGetWndOfCaption("test.docx");
|
||||
// 通过窗口句柄获得进程ID
|
||||
v := sysGetPidtidOfWnd(wnd[0]);
|
||||
echo v;
|
||||
```
|
||||
|
||||
## `sysSetThreadName(name, tid)`
|
||||
|
||||
设置线程名称
|
||||
|
||||
| 参数 | 类型 | 说明 |
|
||||
| --- | --- | --- |
|
||||
| `name` | string | 字符串,要设置的名称 |
|
||||
| `tid` | integer | 整数,可选参数,线程ID。未指定时默认设置当前线程名称 |
|
||||
|
||||
返回:integer
|
||||
|
||||
### 示例
|
||||
|
||||
范例01:设置当前线程名称
|
||||
|
||||
```tsl
|
||||
ret := sysSetThreadName("TinySoft");
|
||||
if ret=0 then
|
||||
return 1;
|
||||
else
|
||||
return "设置线程名称失败!";
|
||||
// 输出:返回1,设置成功。
|
||||
```
|
||||
|
||||
范例02:设置指定线程名称
|
||||
|
||||
```tsl
|
||||
// 创建函数指针
|
||||
c := makeinstance(thisfunction(func_pos), "cdecl", 1);
|
||||
// 创建线程
|
||||
handle := CreateThread(nil, 10240000, c, nil, 0, tid);
|
||||
ret := sysSetThreadName("TinySoft", tid);
|
||||
if ret=0 then
|
||||
return 1;
|
||||
else
|
||||
return "设置线程名称失败!";
|
||||
// 定义WindowsAPI的CreateThread函数声明。
|
||||
function CreateThread(attr: pointer;size: pointer;addr: pointer;p: pointer;flag: integer;var threadid: integer): pointer;external "kernel32.dll" name "CreateThread";
|
||||
// 自定义函数,用于创建函数指针
|
||||
function FuncPos(p: pointer): integer;
|
||||
begin
|
||||
sleep(random(3000));
|
||||
return 1;
|
||||
end;
|
||||
// 输出:返回1,设置成功。
|
||||
```
|
||||
Reference in New Issue
Block a user