Trace32 постоянно читает файл

Я пытаюсь создать сценарий для языка Trace32 PRACTICE, который считывает некоторые данные из файла .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

Спасибо !


person El Puerco Total    schedule 31.01.2017    source источник


Ответы (1)


Правильный подход - закрыть и снова открыть файл, чтобы вернуться в начало файла. (Нет команды поиска.)

Однако в вашем скрипте есть ошибка: функция FILE.EOFLASTREAD() возвращает TRUE (), если последняя команда READ вернула только пустые данные, потому что вы достигли конца файла. В вашем коде вы больше не выполняете команду READ, когда вы достигли конца файла. Таким образом, FILE.EOFLASTREAD() продолжит возвращать ИСТИНА ().

Следующее будет работать:

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
person Holger    schedule 31.01.2017