带有变量的Groovy tokenizer

时间:2018-01-24 08:53:19

标签: groovy

在一个用于soapui的groovy脚本中 我有一个循环,我试图用一个变量定义两个变量,但我不知道是语法:

在我的源文件 liste.txt 中,我必须将每个 textLine 的字段(id和日期)分隔为 - ,如下所示: 0D011A2571D4E6FDF290-2021

0D099Z2571D4E6FDF290-2020

//locate the source file
File file1 = new File("C:/User/liste.txt") 
List textLine = file1.readLines() 
def (id, date) = textLine.tokenize( '-' ) //it doesn't work here !

如果我手动编写字符串 textLine

def (id, date) = '0D099Z2571D4E6FDF290-2020'.tokenize( '-' ) 

它有效,结果是:

id = 0D099Z2571D4E6FDF290

date = 2020

我尝试了很多语法但每次都有问题... 如何在tokenizer中编写变量 textLine ?或者是否有一种简单的方法来定义带有1个变量的n个变量?

非常感谢!

2 个答案:

答案 0 :(得分:1)

类似的东西:

new File("C:/User/liste.txt").splitEachLine( '-' ){ 
  if( 2 != it.size() ) return // bail out
  def (id, date) = it
  doSmthWith( id, date )
}

答案 1 :(得分:0)

最后,我继续搜索并找到另一个技巧,我这样做了:

文件file1 =新文件(" C:/User/liste.txt") 列出textLine = file1.readLines()// read toutes les lignes

def Line = textLine.pop()//取最后一行

def id = Line [0..19] //从Line

中拆分19个第一个caracteres

def date = Line [21..24] //从行

分割出21到24的caracteres

结果:

当前行:0D010710C9D4DBC8675B-2024

id = 0D010710C9D4DBC8675B

日期= 2024

希望这能帮助一些人。

感谢 injecter 提供帮助