# 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');
```

## `ImportantItems_Call(stock_arr, end_t, sort_by, return_number)`

上市公司最新主要财务指标排行。

| 参数            | 类型     | 说明                           |
| --------------- | -------- | ------------------------------ |
| `stock_arr`     | array    | 数组。股票列表。               |
| `end_t`         | datetime | 整数。报告期。                 |
| `sort_by`       | any      | 整数。排序字段，取值如下:      |
| `return_number` | any      | 整数。返回个数，-1时返回全部。 |

返回：array

## `fl_ImportFile(import_type, id)`

ImportFile函数教学函数。导入保存类型为importType的指定ID证券数据文件。若文件不存在则返回'file not exist'，若文件导入失败则返回'Import file fail'。其中虚拟目录名为'testdir'，用户应申请服务器权限并且建立好该虚拟目录。

| 参数          | 类型   | 说明       |
| ------------- | ------ | ---------- |
| `import_type` | any    | 用户自定义 |
| `id`          | string | 证券       |

返回：any

## `fl_WriteFile(b_kname, t)`

WriteFile函数教学函数。将指定板块BKname的每一只股票在指定日T的行情数据保存到虚拟目录'testdir'下的'HqData.dat'文件，写出成功则返回'convert finished'。用户应申请好服务器权限，并建立好虚拟目录'testdir'。

| 参数      | 类型     | 说明     |
| --------- | -------- | -------- |
| `b_kname` | string   | 系统板块 |
| `t`       | datetime | 日期     |

返回：any

## `fl_ExportFile(export_type, id, t)`

Export函数教学函数。将指定股票ID的历史报告期十大股东序列数据以exportType文件形式导出到虚拟目录'testdir'下,若导入成功则返回'export success'，否则返回'export fail!'。用户应当申请好服务器权限，并建立好虚拟目录'testdir'。

| 参数          | 类型   | 说明       |
| ------------- | ------ | ---------- |
| `export_type` | any    | 用户自定义 |
| `id`          | string | 证券       |
| `t`           | any    | 日期       |

返回：string

## `fs_InfoId(infoid)`

获得基本面数据教学函数。返回截止到2002年6月30日Infoid相关基本面数据。

| 参数     | 类型 | 说明   |
| -------- | ---- | ------ |
| `infoid` | any  | 基本面 |

返回：any

## `ft_Expression2_2(rdate)`

表达式函数教学函数。返回指定股票在报告期rdate的资产负债表,与当前系统参数(股票)相关。

| 参数    | 类型     | 说明   |
| ------- | -------- | ------ |
| `rdate` | datetime | 报告期 |

返回：any

## `ft_Expression2_3(l1)`

表达式函数教学函数。返回指定股票在指定日180个序列的L1乖离率，与系统参数(股票，周期，时间，复权相关)

| 参数 | 类型 | 说明 |
| ---- | ---- | ---- |
| `l1` | any  | 整数 |

返回：any

## `ft_Expression1()`

表达式教学函数。返回当前股票收盘价的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，删除成功
```
