file()

阅读(852) 标签: file,

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

file(fn:cs)

描述:

打开指定文件名的文件。

语法:

file( fn{:cs})

备注:

打开文件名为fn的文件

参数:

fn

加载的文件名,可使用绝对路径或者相对路径。如果使用相对路径,则相对主目录,主目录为集算器选项菜单里配置的主目录,主目录缺省为当前目录(dfx文件打开的目录)

cs

字符集,支持的字符集是jvm自带的字符集。缺省则为操作系统默认值。

选项:

@s

按照指定顺序搜索非绝对路径的文件名,搜索顺序为类路径-寻址路径-主目录,寻址路径为集算器选项菜单里配置的寻址路径,主目录缺省为当前目录。

返回结果为只读文件名称

@t

fn目录下产生临时文件,fn省略时产生在【工具】-【选项】-【环境】中设置的临时目录(临时目录相对于【工具】-【选项】-【环境】中设置的主目录) 或者相对路径下。

@a

用于写的文件在发生共享冲突时会等待

返回值:

文件对象

示例:

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(fn,f)

描述:

通过已有的集群文件生成与其相同分布的新集群文件。

语法:

file(fn,f)

备注:

用与集群文件f相同的分布生成集群文件fn,并且存放在与f相同的分机中。

参数:

fn/f

集群文件,仅支持组表

返回值:

集群文件

示例:

 

A

 

1

=file("emp.ctx":[1],["192.168.0.104:8281"])

192.168.0.104的分区1下寻找emp.ctx并打开为集群文件对象

2

=file("emp_1.ctx",A1)

在与emp.ctx相同的分机下,生成与emp.ctx相同分布的集群文件emp_1.ctx

3

=A2.create(#EID,GENDER)

 

file(fn:z)

描述:

打开指定分区中的文件。

语法:

file(fn:z)

备注:

打开z分区中的文件fnz为序列时,返回多个分区文件组成的组文件;通常情况下文件只读。

参数:

fn

加载的文件名,可使用绝对路径或者相对路径。如果使用相对路径,则相对主目录。IDE中主目录为集算器选项菜单里配置的主目录,主目录缺省为当前目录;服务器中主目录为配置文件raqsoftConfig.xml中的mainPath的值,并且不可为空。

z

数据区名称

返回值:

组文件

示例:

 

A

 

1

=file("emp1.ctx":0)

0分区读取组表文件emp1.ctx

2

=file("emp.ctx":[0,1,2])

返回012分区中emp.ctx文件组成的组文件

file(fn:z,h)

描述:

打开分机某分区下的文件。

语法:

file(fn:z,h)

备注:

在分机h中找分区z下的文件fn

z省略或是单值时,返回远程文件对象,此时fn不支持组表文件;z是序列时,返回集群文件对象,此时fn仅支持组表文件。

h是单值时仅在h上找,返回远程文件时可写。

h不是单值,z省略或是单值时,优先找本地,本地找不到则在远程机器上寻找比较闲的分机中的文件,文件只读。

zh的序列成员为多个时,使用循环寻找方案:在h(1)中找z(1),找不到则在h(2)中找z(1),…直到找到为止,然后在下一个分机上找z(2),序列h遍历完则再从头循环,无法找全或找到则返回空,创建集群文件对象失败,找到则返回集群文件对象,无法找全或无法找到则返回空;要求不同节点机同一个分区下的数据要相同。

参数:

fn

加载的文件名,可使用绝对路径或者相对路径。如果使用相对路径,则相对主目录。IDE中主目录为集算器选项菜单里配置的主目录,主目录缺省为当前目录;服务器中主目录为配置文件raqsoftConfig.xml中的mainPath的值,并且不可为空。

z

数据区名称,缺省按主目录找

h

分机序列

选项:

@w

fn可以不存在,用于产生可写的集群文

返回值:

远程文件对象/集群文件对象

示例:

l  返回远程文件

file("Scores.xls",["192.168.0.28:9282"])

 

file("Scores1.txt":2, ["192.168.0.20:9282"])

加载"192.168.0.20:9282"下分区2中的" Scores1.txt"

file("Scores.txt",["192.168.0.11:9282","192.168.0.12:9282"])

优先加载本机中位于主目录下的文件" Scores.txt",找不到则在分机的主目录中寻找并打开

l  返回集群文件

 

 

A

 

1

=file("emp2.ctx":[1],["192.168.46.1:8281"])

读取节点机192.168.46.1:82811分区中的集群组表文件emp2.ctx

2

=A1.open().cursor(;EID>100)

返回集群游标

3

=file@w("emp3.ctx":[2],["192.168.46.1:8281"])

 

4

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

在节点机"192.168.46.1:8281"中的2分区下新建可写的集群组表文件emp3.ctx

5

=A4.append@i(A2)

将集群游标追加到集群组表中

6

=file("emp.ctx":[1,2],["192.168.46.1:8281","192.168.192.131:8281"])

使用循环寻找方案,