是否可以从文件读取数据并存储到使用VAR.NEWGLOBAL创建的PRACTICE变量

时间:2015-12-10 06:13:20

标签: trace32 lauterbach

我找到了一个例子,

READ #1 "filename.hex" &data

& data是一个PRACTICE宏。我需要解析这些数据。由于它存储在宏中,我无法做到。是否可以将其存储在PRACTICE变量中?如果是这样,命令会是什么样的?

1 个答案:

答案 0 :(得分:0)

您无法从文件中读取数据并直接将其存储到PRACTICE变量中。但是,您可以将数据读取到PRACTICE宏并将宏的内容分配给PRACTICE变量:

PRIVATE &data                     // declare macro
VAR.NEWGLOBAL char[64] \mydata    // declare variable
READ #1 "filename.hex" &data      // read data from file to macro
Var.Set \mydata="&data"           // assign content from macro to variable

注意:宏只适用于PRACTICE脚本文件(* .cmm文件)。它们在TRACE32命令行中不起作用。

无论如何如果你需要从文件中解析数据,我建议从文件中读取完整的行到格式为%LINE的宏,然后提取具有STRing-PRACTICE功能的宏中所需的内容,如STRing.SPLIT()STRing.MID()STRing.SCANAndExtract()

E.g。从CSV文件的第三列获取值:

PRIVATE &data &value                // declare macros
VAR.NEWGLOBAL char[64] \mydata      // declare variable
READ #1 "filename.csv" %LINE &data  // read one line from file to macro
&value=STRing.TRIM(STRing.SPLIT("&data",",",2))   // get 3rd comma separated value
Var.Set \mydata="&value"            // assign content from macro to variable