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

阅读(1535) 标签: 序列, 写入文件,

描述:

将序列/游标中的数据写入到文件中。

语法:

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

备注:

A/cs计算表达式x以文本形式写入到文件f

参数x省略则写入所有字段,当字段取值为引用记录,则写入记录的主键,Fx的结果字段名。

当文件f不存在时,自动创建(但不能自动创建路径目录),创建的文件缺省为文本格式。

A是序列且x参数省略时,以无字段名的单列文本形式写入文件f

A中成员为序列时,缺省写成json串。

A中存在排号类型的字段时,此字段值以十六进制串形式写入。二进制输出时则使用原数据类型。

 A中不可输出的字段(比如图片)不能写入文件f

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

选项:

@t

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

@a

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

@b

写成二进制文件,速度更快。忽略@t;小文件不分段,足够大则重写分段。

@b时,参数sA的字段或字段表达式,有参数s时认为As有序,仅在s变化时才分段;追加写时新数据的s值必须是不同的。

@c

s缺省时用逗号分隔。

@w

换行符使用windows风格,即用\r\n,缺省操作系统规定。同时使用@b时,将序列的序列写成结构化数据,第一行作为字段名。

@q

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

@o

使用Excel标准转义,串中双个引号表示一个引号,其它字符不转义。

参数:

f

文件。

A/cs

序列/游标,A成员是序列时,则再拼上分隔符写出。

x

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

F

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

s

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

示例:

  将序表写出到txt文件:

 

A

 

1

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

 

2

=file("Dep.txt").export(A1;"|")

A1序表中所有字段写入到文件中,|为分隔符,生成文件内容如下:

  使用@t选项,将第一行作为标题写入:

 

A

 

1

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

 

2

=file("Dep.txt").export@t(A1)

 

生成文件内容如下:

  使用@a选项,追加写入:

 

A

 

1

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

 

2

=file("Dep.txt").export@a(A1)

在原文件内容后追加A1中的内容:

  导出指定字段:

 

A

 

1

=demo.cursor("select EID,NAME,BIRTHDAY,SALARY from EMPLOYEE")

 

2

=file("emp.txt").export@t(A1,NAME,age(BIRTHDAY):Age)

导出A1游标中的NAMEBIRTHDAY字段,BIRTHDAY计算表达式后结果字段名设为Age

3

=file("emp2.txt").export@t(A1,#1,#2)

使用#1#2表示A1中的第1、第2个字段:

  使用@b选项,写出到集文件:

 

A

 

1

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

 

2

=file("Dep.btx").export@b(A1)

写出的集文件默认带有标题:

  使用@b选项,写出分段集文件:

 

A

 

1

=10000.new(~:id,rand(10):xb).sort(xb)

生成对xb字段有序的序表。

2

=file("stest.btx").export@b(A1;xb)

写出根据xb分段的集文件,在xb有变化时分段。

  写出序列且省略x参数时:

 

A

 

1

[a,s,d,f]

 

2

=file("myfile.txt").export(A1)

生成无字段名单列文件:

  序表的字段值为引用记录时:

 

A

 

1

=demo.query("select EID,NAME,DEPT from EMPLOYEE order by GENDER")

 

2

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

 

3

=A1.switch(DEPT,A2:DEPT)

DEPT字段值为指引记录:

4

=file("empswtich.txt").export@t(A3)

导出文件结果如下:

写入json:

 

A

 

1

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

 

2

=A1.group(DEPT).new(~:DEPT)

返回序列,成员为序表:

3

=file("empj.txt").export(A2)

文件中写入json串:

  使用@q选项,写出的文本字段值和标题带有引号:

 

A

 

1

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

 

2

=file("Dep.txt").export@qt(A1,#1)

  使用@o选项,串中两个引号表示一个引号:

 

A

 

1

f1,f2,f3

2,"dd""ff",3

 

2

=A1.import@coq()

3

=file("o.txt").export@coq(A2)

使用@o选项,串中两个引号表示一个引号,写出的t5.txt内容如下:

相关概念:

f.import()