S.import()

阅读(1005) 标签: 字符串, 读出内容, 序表,

描述:

用字符串中读出的内容作为记录返回成序表。

语法:

S.import(Fi:type;fmt,…;s)

备注:

用字符串S中读出的内容作为记录,最终返回成序表。

参数:

S

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

Fi

读出的字段,缺省读出所有。

type

字段类型,包括:boolintlongfloatdecimalnumberstringdatetimedatetime,缺省使用第一行数据类型。type为整数时表示排号键,排号数据目前只允许使用16个字节。

fmt

日期时间格式。

s

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

选项:

@t

f第一行记录作为字段名,不使用本选项则使用_1_2,…作为字段名。

@c

 s缺省时用逗号分隔

@s

不拆分字段,读成单字段串构成的序表,忽略参数。

@i

结果集只有1列时返回成序列。

@q

剥离数据项两端引号,包括标题,处理转义;中间的引号不作处理。

@a

将单引号作为引号处理,缺省不处理,可与@q@p组合使用

@o

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

@p

解析时处理括号和引号匹配,括号内分隔符不算,同时引号外转义也处理。

@f

不做任何解析,简单用分隔符拆成串。

@l

允许续行,行尾是转义字符\

@k

保留数据项两端的空白符,缺省将自动删除两端空白符。

@e

Fi在串中不存在时将生成null,缺省将报错。

@d

行内有数据不匹配类型和格式时删除该行,此时会按type检查类型@p@q时括号和引号不匹配时也删除该行。

@n

行内的列数不匹配算时忽略此行。

@v

@d@n联合使用,出现不匹配时抛出违例,并且中断程序,输出出错行的内容。

@w

将每行读成序列,返回序列的序列,列名也算作一行。

@r

先读成串再解析,避免某些字符集的错误,使用该选项速度会慢。

返回值:

序表

示例:

 

A

 

1

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

 

2

=A1.(~.array().concat@c())

转换为字串序列:

3

=A2(1).import(;",")

选取序列中的一个字串,从字串中选出所有字段,并指定分隔符为逗号,最后返回结果为序表:

4

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

 

5

= A4.export()

6

= A4.export@t(EID:id,NAME:name,SURNAME:surname;"|")

7

=A5.import()

无参数,缺省分隔符为tab,用_1_2,…作为字段名:

8

=A6.import@t(id:int,name;"|")

选出idname字段,分隔符为“|”

9

=A6.import@f()

使用@f选项,直接用分隔符拆成串:

10

1,2,"3,3",(4,4),[5,5],'6,6'

 

11

=A10.import@c()

使用@c选项,分隔符缺省使用逗号:

12

=A10.import@cp()

使用@p选项,解析时处理括号和引号匹配:

13

=A10.import@cpa()

使用@a选项,将单引号作为引号处理:

14

=A2(1).import@c()

使用@c选项,分隔符缺省使用逗号:

15

=A5.import@s()

使用@s选项,不拆分字段,读成单字段串构成的序表:

16

=A5.import@si()

结果集只有1列时返回成序列:

17

"uy'd'uj"

 

18

=A17.import()

19

=A17.import@q()

使用@q先剥离两端的引号后再转为序表,中间的引号不作处理:

20

f1,f2,f3

2,"dd""ff",3

 

21

=A20.import@coq()

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

22

=" abc ".import@k()

保留两端的空白符。

23

=A6.import@te(id:int,name,dept;"|")

dept在串中不存在时生成null

24

id|name|surname

a|Rebecca|Moore

2|Ashley|Wilson

3|Rachel|Johnson

4|Emily|Smith

5|Ashley|Smith

6|Matthew|Johnson

7|Alexis|Smith

8|Megan|Wilson

 

25

=A24.import@td(id:int,name;"|")

行内有数据不匹配类型,则删除该行:

26

=A24.import@tvd(id:int,name;"|")

检查类型匹配且出错时抛出违例,中断程序,输出出错行的内容,此处报错信息:

Error in cell A26

27

id|name|surname

1|Rebecca|Moore

2|Ashley

3|Rachel|Johnson

4|Emily

 

28

=A27.import@tdn(id:int,name,surname;"|")

23行内数据列数与序表不匹配,故忽略这两行:

29

=A24.import@w(;"|")

使用@w选项,将行读成序列的序列:

30

11,22,"3",\

33,44,55,

66,77,88

 

31

=A30.import@l()

使用@l选项,行尾为转义符\时允许续行:

相关概念:

f.import()

f.export()

A.export()