export()

阅读(1139) 标签: export,

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

A.export()

描述:

将序列转成字符串

语法:

A.export(x:F,…;s)

备注:

将序表/排列/序列中的每条记录,选出字段x并用自选分隔符s隔开,结果以字符串形式返回,结果字符串中的字段名为F

当省略参数x时,输出所有字段,A是序列时生成无名称的单列串。排号按作为整数存。

当省略参数x:F时,若A是包含记录的序列,则记录必须是相同数据结构。

选项:

@t

列名作为第一条记录写在字符串开头

@c

s时用逗号分隔。如果同时有s则用s分隔。

@j

导出成json格式串,忽略s

@w

换行符使用windows风格,即用\r\n,缺省按照操作系统规定。

@x

导出成XML格式串,s为起始点,多层用/分隔,s不可省略。

<xml>

<table>

<row>

<F>v</F>

</row>

</table>

</xml>

@q

导出的文本字段值和标题带有引号

@o

用引号作为转义符,缺省用java风格的反斜杠\,需要与@q配合使用

参数:

A

需要输出的序表/排列/序列

x

输出的字段,省略则输出A中所有字段

F

字串中的结果字段名,省略则使用原字段名

s

字段间自选分隔符,缺省分隔符是tab

返回值:

字符串

示例:

 

A

 

1

=demo.query("select EID,NAME from EMPLOYEE")

 

2

=A1.export()

省略xFs参数

3

=A1.export(;"|")

  

指定分隔符为“|”

4

=A1.export@t(EID:id,NAME:name;",")

指定选出字段和分隔符,并且将列名作为第一条记录写在字符串开头

5

=A1.export@x(NAME;"employee/name")

将序表转为xml格式的字串返回,分别将employeename作为第一、第二层节点

6

=A1.export@j()

将序表转为json格式的字串返回

7

[1,23,34,45]

序列

8

=A7.export()

9

=A1.export@c()

使用@c选项,无s参数时默认用逗号分隔

10

=A1.export@w()

换行符使用windows风格,即用\r\n

11

=["12\r34","aa\nbb"]

 

12

=A11.export()

13

=A11.export@q()

使用@q选项,导出的内容带有引号

14

=A11.export@qo()

使用@o选项,使用引号作为转义符

注意:

字符串的格式:记录间用空格隔开,字段间用自选分隔符隔开,缺省为tab键隔开

相关概念:

f.import()

f.export()

f.export(A,x:F,…;s)

描述:

将序列/排列/序表写入文件

语法:

f.export(A,x:F,…;s)

备注:

A以文本形式写入文件f。当文件不存在时,自动创建(但不能自动创建路径目录),创建的文件缺省为文本格式。当A中存在排号类型的字段时,此字段值以整数形式写入。

A是排列或者序表时,x参数不存在时写入所有字段,A的不可输出字段不能写入文件f,当字段取值为引用记录则写入记录的主键。

A是序列时,x参数不存在时写入文件f的是无字段名的单列文本。

选项:

@t

将字段信息(标题)作为第一行写入文件

@a

追加写入;追加的内容要与原文件内容结构相同,否则报错;文件已有内容时忽略@t;缺省覆盖原文件。

@b

写成二进制文件,速度更快。不支持参数s

@c

不存在参数s时用逗号分隔;存在参数s则用s分隔。

@z

强制@b,分段写入到二进制文件f中,缺省不分段。强制转化成二进制文件,在@z选项中参数s表示分组表达式,存在参数s时认为As有序,仅在s变化时才分段。@z适用于分段导出并行数据量大的二进制文件,导出时同一段的记录不会被拆开。

@w

换行符使用windows风格,即用\r\n,缺省操作系统规定

@q

导出的文本字段值和标题都带有引号

@o

用引号作为转义符,缺省用java风格的\,需要与@q配合使用

参数:

f

文件

A

需要输出的序表/排列/序列

x

需要输出的字段,省略则导出A排列中所有可文本化字段,用#时表示用序号定位

F

结果字段名,省略则使用原字段名

s

对于文本文件为自选分隔符,缺省默认分隔符是tab

示例:

  将排列写入到文本文件中。

 

A

 

1

=demo.query(select * from DEPARTMENT)

 

2

=file(D:\\Department.txt).export(A1)

3

=file(D:\\Department.txt).export@t(A1)

@t选项,第一行的字段信息作为标题写入

 

4

=file(D:\\Department2.txt).export(A1;|)

5

=file(D:\\Department2.txt).export(A1;)

6

=file(D:\\Department2.txt).export@a(A1)

接上例,在文件内容的后边追加A1中的内容

7

=file(D:\\Department3.txt).export@b(A1)

写成二进制文件

8

=file(D:\\Department4.txt).export@t(A1,DEPT:Dept1;"|")

x不省略时,只导出指定字段

9

=file("D:\\dept1.txt").export@ta(A1)

dept1.txt不存在,执行后创建dept1.txt,并且导出第一行为标题

10

[a,s,d,f]

 

11

=file("D:\\myfile.txt").export(A10)

myfile.txt为无字段名单列文件

12

=file("D:\\Department6.txt").export@c(A1)

13

=demo.query("select * from EMPLOYEE order by GENDER")

GENDER排序

14

=file("D:\\EMPLOYEE.btx ").export@z(A12,EID,NAME,SURNAME,GENDER,SALARY;GENDER)

GENDER分组导入到EMPLOYEE. btx文件中

15

=file("D:\\EMPLOYEE.txt").export@w(A1)

换行符使用windows风格,即用\r\n

16

=demo.query("select * from DEPARTMENT").keys(MANAGER)

 

17

=A13.switch(DEPT,A15:DEPT)

18

=file("D:\\EMPLOYEE1.txt").export@t(A17)

A17DEPT为引用记录则导出记录的主键

19

=demo.query("select * from DEPARTMENT")

20

=file("D:\\Department7.txt").export(A19,#1)

#1表示第一列,所以只导出了第一列的数据

21

=file("D:\\Dep1.txt").export@q(A19,#1)

22

=["12\r34","aa\nbb"]

23

=file("D:\\T1.txt").export@q(A22)

24

=file("D:\\T2.txt").export@qo(A22)

注意:

txt文件的格式:记录间用回车符隔开,字段间用自选分隔符隔开,缺省为tab键隔开

这里A必须是由相同数据结构的记录组成的序列

相关概念:

f.import()

f.export(cs,x:F,…;s)

描述:

将游标中的数据读出后写入到文本文件中

语法:

f.export(cs,x:F,…;s)

备注:

将游标cs以文本形式写进文件对象f。当文件不存在时,自动创建这个文件(不能自动创建路径目录)

选项:

@t

将字段信息(标题)作为第一行写入文件

@a

追加写,如果省略则是覆盖原文件中的内容,与@t互斥。必须保证同构,否则报错。

@b

写成二进制文件,速度更快,忽略@t,不支持参数s

@c

s时用逗号分隔。如果同时有s则用s分隔。

@z

强制@b,分段写入到二进制文件f中,缺省不分段。此选项中s为分组表达式,有s参数时认为cs s有序,仅在s变化时才分段。此二进制文件用于并行数据量大时的分段导出,导出时同一段的记录不会被拆开。

@w

换行符使用windows风格,即用\r\n,缺省用操作系统规定

@q

导出的文本字段值和标题都带有引号

@o

用引号作为转义符,缺省用java风格的\,需要与@q配合使用

参数:

f

文件对象

cs

需要输出的游标数据

x

需要输出的字段,省略则导出A排列中所有可文本化字段,用#时表示用序号定位

F

结果字段名,省略则使用原字段名

s

自选分隔符,缺省默认分隔符是tab

示例:

  将游标数据写入到文本文件中。

 

A

 

1

=demo.cursor("select * from DEPARTMENT")

 

2

=file("D:\\Department1.txt").export(A1)

tab分隔符

3

=demo.cursor("select * from DEPARTMENT")

 

4

=file("D:\\Department2.txt").export(A3;"/")

指定分隔符“/”

5

=demo.cursor("select * from DEPARTMENT")

 

6

=file("D:\\Department3.txt").export@t(A5)

第一行的字段信息作为标题写入

 

7

=demo.cursor("select * from DEPARTMENT")

 

8

=file("D:\\Department4.txt").export@t(A7,DEPT:Dept1,DEPT:Dept2;"|")

x不省略时,导出指定字段

9

=demo.cursor("select * from DEPARTMENT")

 

10

=file("D:\\Department5.txt").export@t(A9,DEPT,MANAGER;"/")

省略F则使用原字段名。

11

=demo.cursor("select * from DEPARTMENT")

 

12

=file("D:\\Department5.txt").export@a(A11,DEPT,MANAGER;"/")

接上例,在Department5.txt内容的后边追加A12中的内容

13

=demo.cursor("select * from DEPARTMENT")

 

14

=file("D:\\Department6.txt").export@b(A13)

写成二进制文件,速度更快

15

=demo.cursor("select * from DEPARTMENT")

 

16

=file("D:\\Departmen7.txt").export@c(A15)

使用逗号作为分隔符

17

=demo.cursor("select * from EMPLOYEE order by GENDER")

GENDER排序

18

=file("D:\\EMPLOYEE1.btx ").export@z(A17,EID,NAME,SURNAME,GENDER,SALARY;GENDER)

导出分段二进制文件,按GENDER分组导EMPLOYEE. btx文件中

19

=demo.cursor("select * from EMPLOYEE order by GENDER")

 

20

=file("D:\\EMPLOYEE2.txt").export@w(A19)

换行符使用windows风格,即用\r\n

21

=demo.cursor("select * from DEPARTMENT")

 

22

=file("D:\\Department8.txt").export(A21,#1)

#1表示第一列,所以结果导出游标中的第一列的数据

23

=file("D:\\Dep1.txt").export@q(A21)

导出的文本字段值和标题都带有引号

24

=["12\r34","aa\nbb"].cursor()

游标中的数据内容:

25

=file("D:\\Dep2.txt").export@q(A24)

26

=file("D:\\Dep3.txt").export@qo(A24)

用引号作为转义符

相关概念:

f.export()