Scripting Trace32连续读取文件
我正在尝试为Trace32实践语言编写一个脚本,该脚本从.txt文件中读取一些数据,然后将值传递给需要调试的变量 我的问题是,一旦.txt到达末尾,我就无法让它返回到文件的顶部并重新开始。有什么想法吗 以下是我目前拥有的,它从一开始就进入IF:Scripting Trace32连续读取文件,scripting,embedded,trace32,lauterbach,Scripting,Embedded,Trace32,Lauterbach,我正在尝试为Trace32实践语言编写一个脚本,该脚本从.txt文件中读取一些数据,然后将值传递给需要调试的变量 我的问题是,一旦.txt到达末尾,我就无法让它返回到文件的顶部并重新开始。有什么想法吗 以下是我目前拥有的,它从一开始就进入IF: OPEN #1 C:/Sandboxes/JLR_ADAS_DC/Trace32Scripts/ListCam_new.txt /Read PRIVATE &value // declare macro WHIL
OPEN #1 C:/Sandboxes/JLR_ADAS_DC/Trace32Scripts/ListCam_new.txt /Read
PRIVATE &value // declare macro
WHILE TRUE()
(
if FILE.EOFLASTREAD()
(
CLOSE #1
OPEN #1 C:/Sandboxes/JLR_ADAS_DC/Trace32Scripts/ListCam_new.txt /Read
)
else
(
READ #1 %LINE &line
&value=STRing.TRIM(STRing.SPLIT("&line",",",0))
PRINT "&value"
V canConfigInitFlag = &value
)
)
CLOSE #1
ENDDO
谢谢 关闭并重新打开文件以返回文件顶部是正确的方法。(没有seek命令。) 但是,脚本中有一个bug: 如果最后一个
READ
命令由于到达文件末尾而仅返回空数据,则函数FILE.EOFLASTREAD()
将返回TRUE()。在代码中,一旦到达文件末尾,就不再执行READ
命令。因此,FILE.EOFLASTREAD()
将继续返回TRUE()
以下工作将起作用:
OPEN #1 C:/Sandboxes/JLR_ADAS_DC/Trace32Scripts/ListCam_new.txt /Read
PRIVATE &value &line // declare macros
WHILE TRUE()
(
READ #1 %LINE &line
IF FILE.EOFLASTREAD() // Last READ was after the end of the file
(
CLOSE #1
OPEN #1 C:/Sandboxes/JLR_ADAS_DC/Trace32Scripts/ListCam_new.txt /Read
READ #1 %LINE &line // Read 1st line
)
&value=STRing.TRIM(STRing.SPLIT("&line",",",0))
PRINT "&value"
Var.set canConfigInitFlag=&value
)
CLOSE #1
ENDDO
打开#1 C:/Sandboxes/JLR_ADAS_DC/trace32脚本/ListCam_new.txt/Read
PRIVATE&值&行//声明宏
而TRUE()
(
读取#1%行和行
IF FILE.EOFLASTREAD()//上次读取是在文件结尾之后
(
关闭#1
打开#1 C:/Sandboxes/JLR_ADAS_DC/trace32脚本/ListCam_new.txt/Read
读取#1%行和行//读取第1行
)
&value=STRing.TRIM(STRing.SPLIT(“&line”,“,”,0))
打印“&值”
Var.set canConfigInitFlag=&值
)
关闭#1
恩多