你的位置:首页 > 软件开发 > Java > 集算器协助java处理结构化文本之对齐连接

集算器协助java处理结构化文本之对齐连接

发布时间:2015-12-08 09:00:02
数据库有关联语句,可以方便地进行对齐连接运算,但有时数据是存储在文本文件中的,用JAVA直接计算需要写大量循环语句才能实现,代码繁琐且运行低效。使用集算器来辅助Java编程,可以方便高效地解决此类问题。下面我们通过例子来看一下具体作法。 文本文件emp.txt存储着员工 ...

集算器协助java处理结构化文本之对齐连接

  数据库有关联语句,可以方便地进行对齐连接运算,但有时数据是存储在文本文件中的,用JAVA直接计算需要写大量循环语句才能实现,代码繁琐且运行低效。使用集算器来辅助Java编程,可以方便高效地解决此类问题。下面我们通过例子来看一下具体作法。

  文本文件emp.txt存储着员工信息,EId等于1的员工不在该文件中。文本文件sOrder.txt存储着订单信息,其SellerId字段和emp中的EId字段相对应,SellerId等于2的订单不在该表中。部分源数据如下:

  emp.txt

集算器协助java处理结构化文本之对齐连接

sOrder.txt

集算器协助java处理结构化文本之对齐连接

现在需要将emp的Name、Dept、Gender这三个字段对齐到sOrder中,计算结果输出到新文件中。期望的计算结果如下:

集算器协助java处理结构化文本之对齐连接

集算器代码:

集算器协助java处理结构化文本之对齐连接

A1格和A2格分别从文本文件中读取数据,并存入两个变量emp和sOrder。这里使用了函数import,其默认的列分割符是tab,函数选项@t表示将第一行读为字段名。由于例子中只需要emp.txt中的部分字段,因此A1需要以字段名做参数。计算完成后,emp和sOrder的值如下图:

集算器协助java处理结构化文本之对齐连接

A3:=join@1(sOrder:s,SellerId;emp:e,EId)。函数join执行连接运算,并将两个表改名为s和e。其中函数选项@1表示左连接,即例子中的要求:将emp对齐到sOrder中。计算后结果如下:

集算器协助java处理结构化文本之对齐连接

点击蓝色链接可以看到具体的记录,如下:

集算器协助java处理结构化文本之对齐连接

右连接只是交换对齐的位置,同样可以用集算器来实现。比如将sOrder按照emp对齐,只需要在代码中交换两者的顺序,即=join@1(emp:e,EId;sOrder:s,SellerId),计算结果如下:

集算器协助java处理结构化文本之对齐连接

全连接也很容易实现,只需要使用函数选项@f,代码是:join@f(sOrder:s,SellerId;emp:e,EId),计算结果如下:

集算器协助java处理结构化文本之对齐连接

连接运算共有四种,除了上面提到的左连接、右连接、全连接,还有内连接。函数join默认执行内连接,代码是=join(sOrder:s,SellerId;emp:e,EId),计算结果如下:

集算器协助java处理结构化文本之对齐连接

回到例子中,A4:=A3.new(s.OrderID, s.Client, s.SellerId, s.Amount, s.OrderDate, e.Name, e.Dept, e.Gender)。这句代码从连接的表中取得需要的字段,组成新的结构化二维表格,计算结果如下:

集算器协助java处理结构化文本之对齐连接

对齐的工作已经完成,下面将数据输出到新的文件,代码为:=file(“E: \\result.txt”).export@t(A4)。

函数export默认使用tab作为列分割符,函数选项@t表示将字段名输出在第一行。打开result.txt,可以看到内容如下:

集算器协助java处理结构化文本之对齐连接

上述脚本已经完成了所有的对其输出工作,接下来只需在JAVA代码中调用即可。

    //建立esProc jdbc连接

原标题:集算器协助java处理结构化文本之对齐连接

关键词:JAVA

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。