file()

阅读(2637) 标签: file,

本章介绍file()函数的多种用法。

file(fn:cs)

描述:

打开指定文件名的文件。

语法:

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)

描述:

从分机中返回远程文件。

语法:

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:8281D:/目录下的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)

描述:

从分机序列中返回远程文件。

语法:

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)

描述:

通过组表文件返回带分表号的文件或文件组。

语法:

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.ctx3.emp.ctx4.emp.ctx

4

=A3.create(#EID,NAME,SALARY)

 

file(fn:z,hs)

描述:

在分机中产生集群文件。

语法:

file(fn:z,hs)

备注:

在分机hs中产生集群文件,z为分表号,当z为整数数列时,从各个分机中取复组表的分表产生集群文件,z不可以是二层数列。

参数:

fn

组表文件。

z

分表号,整数或整数数列。

hs

分机或分机序列。

选项:

@w

远程可写入文件,zhs一一对应,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.ctx2.empCp.ctx可以是分别存在于分机192.168.126.1192.168.31.165:8281,也可以同时存在于任何一个分机中。

3

=A2.open()

打开集群表。

4

=A3.memory()

集群表生成集群内表。

5

=A4.dup()

集群内表生成本地内表。

 

file(fn:z,f)

描述:

用与集群组文件相同的分布生成新的集群组文件。

语法:

file(fn:z,f)

备注:

用与集群组文件f相同的分布生成新的集群组文件fnz为分表号,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]