我找到了一个例子,
READ #1 "filename.hex" &data
& data是一个PRACTICE宏。我需要解析这些数据。由于它存储在宏中,我无法做到。是否可以将其存储在PRACTICE变量中?如果是这样,命令会是什么样的?
答案 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