本章介绍file()函数的多种用法。
描述:
打开指定文件名的文件。
file( fn{:cs})
备注:
打开文件名为fn的文件。
参数:
fn |
加载的文件名,可使用绝对路径或者相对路径。 如果使用相对路径,规则如下: 1,有主目录时,相对与主目录,主目录为集算器选项菜单里配置的主目录,主目录下找不到则在程序所在路径(例如ide中的程序路径为[安装根目录]/esProc/bin)中查找。 2,主目录缺省,当前脚本文件已保存,则将脚本文件所在目录作为主目录。 3,主目录缺省,当前脚本文件未保存,则在程序所在路径(例如ide中的程序路径为[安装根目录]/esProc/bin)中查找。 |
cs |
字符集,支持的字符集是jvm自带的字符集。缺省则为操作系统默认值。 |
选项:
@s |
按照指定顺序搜索非绝对路径的文件名,搜索顺序为类路径-寻址路径-主目录,寻址路径为集算器选项菜单里配置的寻址路径,主目录缺省为当前目录。返回结果为只读文件名称。 |
@t |
在fn目录下产生临时文件。fn省略时在集算器选项菜单中的临时目录产生临时文件。临时目录为相对路径时,相对选项菜单里配置的主目录。 |
@a |
用于写的文件在发生共享冲突时会等待。 |
@i |
读入文件产生内存文件对象,内存文件只读。 |
返回值:
文件对象
示例:
file("D:/Area.txt":"UTF-8") |
加载位于D:\下的" Area.txt"文件,字符集为UTF-8。 |
file("Area.txt") |
加载位于主目录下的" Area.txt"文件。 |
file@s("data/Area.txt") |
先搜索类路径,类路径中没有再搜索寻址路径列表,寻址路径中没有最后搜索主目录。 |
file@t("data/Area.txt") |
在data/下产生临时文件。 |
file@i("Area.txt") |
生成内存文件对象,只读。 |
file("../demo/zh/txt/Suitor.txt") |
例如此时未设置主目录,则会在[安装根目录]/esProc/demo/zh/txt/路径下搜索文件Suitor.txt。 |
描述:
从分机中返回远程文件。
语法:
file( fn:cs,h)
备注:
返回分机h中的远程文件fn,文件可读可写,和本地文件相同。
参数:
fn |
加载的文件名,可使用绝对路径或者相对路径。如果使用相对路径,则相对主目录。 |
cs |
字符集,支持的字符集是jvm自带的字符集。缺省则为操作系统默认值。 |
h |
分机。 |
返回值:
文件对象
示例:
|
A |
|
1 |
=file("D:/City.txt":"UTF-8",["192.168.46.1:8281"]) |
返回分机192.168.46.1:8281中D:/目录下的City.txt文件,字符集为UTF-8。 |
2 |
=A1.import@t() |
读取文件内容。 |
3 |
=file("tmp.txt",["192.168.31.165:8281"]) |
返回分机192.168.31.165:8281中主目录下的tmp.txt文件。 |
4 |
>A3.write("hello word!") |
向文件中写入字符串"hello word!" |
描述:
从分机序列中返回远程文件。
语法:
file( fn:cs,hs)
备注:
返回分机序列hs中的远程文件fn,返回的文件只读;优先在本地寻找,本地找不到时根据分机序列成员顺序寻找。
参数:
fn |
加载的文件名,可使用绝对路径或者相对路径。如果使用相对路径,则相对主目录。 |
cs |
字符集,支持的字符集是jvm自带的字符集。缺省则为操作系统默认值。 |
hs |
分机序列。 |
返回值:
文件对象
示例:
|
A |
|
1 |
=file("City.txt":"UTF-8",["192.168.46.1:8281","192.168.31.165:8281"]) |
从分机序列["192.168.46.1:8281","192.168.31.165:8281"]的主目录下查找City.txt文件返回,字符集为UTF-8。 |
2 |
=A1.read() |
读取文件内容。 |
描述:
通过组表文件返回带分表号的文件或文件组。
语法:
file(fn:z)
备注:
通过组表文件fn返回带分表号z的文件或文件组,文件名格式为z.fn,当z为整数时返回文件,当z为整数数列时返回文件组。
fn |
组表文件。 |
z |
整数或整数数列。 |
返回值:
组表文件名称/文件组对象
示例:
|
A |
|
1 |
=file("emp1.ctx":1) |
生成组表文件1.emp1.ctx。 |
2 |
=A1.create(#EID,NAME,SALARY;1) |
|
3 |
=file("emp.ctx":[2,3,4]) |
生成文件组,包含的文件分别为2.emp.ctx、3.emp.ctx、4.emp.ctx。 |
4 |
=A3.create(#EID,NAME,SALARY) |
|
描述:
在分机中产生集群文件。
语法:
file(fn:z,hs)
备注:
在分机hs中产生集群文件,z为分表号,当z为整数数列时,从各个分机中取复组表的分表产生集群文件,z不可以是二层数列。
参数:
fn |
组表文件。 |
z |
分表号,整数或整数数列。 |
hs |
分机或分机序列。 |
选项:
@w |
远程可写入文件,z和hs一一对应,z省略为to(hs.len())。 |
返回值:
示例:
产生集群文件:
|
A |
|
1 |
=file("emp.ctx",["192.168.31.165:8281"]) |
在分机中产生集群文件。 |
2 |
=A1.open() |
打开集群表。 |
3 |
=A2.memory() |
生成集群内表。 |
4 |
=A2.close() |
关闭集群表。 |
远程写入组表文件:
|
A |
|
1 |
=["192.168.126.1:8281","192.168.31.165:8281"] |
分机序列。 |
2 |
=file@w("emp.ctx":to(2),A1) |
在分机中写入文件,分机192.168.126.1:8281中写入1.emp.ctx,分机192.168.31.165中写入2.emp.ctx文件。 |
3 |
=create(k1,v1).record([1,10,2,20,3,30,4,40,10,100]) |
返回序表:
|
4 |
=A2.create(#k1,v1;if(k1<4,1,2)) |
生成复组表。 |
5 |
=A4.append(A3.cursor()) |
将A3的数据追加到复组表A4中。 |
从分机中取出分表产生集群文件:
|
A |
|
1 |
=["192.168.126.1:8281","192.168.31.165:8281"] |
分机序列。 |
2 |
=file("emCp.ctx":[1,2],A1) |
从分机中取出分表生成集群文件,1.empCp.ctx和2.empCp.ctx可以是分别存在于分机192.168.126.1和192.168.31.165:8281,也可以同时存在于任何一个分机中。 |
3 |
=A2.open() |
打开集群表。 |
4 |
=A3.memory() |
集群表生成集群内表。 |
5 |
=A4.dup() |
集群内表生成本地内表。 |
描述:
用与集群组文件相同的分布生成新的集群组文件。
file(fn:z,f)
备注:
用与集群组文件f相同的分布生成新的集群组文件fn,z为分表号,z省略用f相同值。
参数:
fn |
新的集群组文件。 |
z |
分表号,整数或整数数列。 |
f |
集群组文件。 |
返回值:
集群组文件
示例:
|
A |
|
1 |
=["192.168.126.1:8281","192.168.31.165:8281"] |
分机序列。 |
2 |
=file("emCp.ctx":[2,3],A1) |
返回集群组文件。 |
3 |
=file("embak.ctx",A2) |
生成与A2相同分布的集群组文件,参数z省略,默认与A2中相同,即[2,3]。 |