Scripting Trace32连续读取文件

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

我正在尝试为Trace32实践语言编写一个脚本,该脚本从.txt文件中读取一些数据,然后将值传递给需要调试的变量

我的问题是,一旦.txt到达末尾,我就无法让它返回到文件的顶部并重新开始。有什么想法吗

以下是我目前拥有的,它从一开始就进入IF:

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 恩多