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

Спасибо!

1 ответ

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

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

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

OPEN # 1 C: /Sandboxes/JLR_ADAS_DC/Trace32Scripts/ListCam_new.txt / Читать
PRIVATE &value &line  // объявляем макросы

WHILE TRUE() 
(ЧИТАТЬ #1 % ЛИНИЯ & линия
    IF FILE.EOFLASTREAD()  // Последнее чтение было после конца файла
    (ЗАКРЫТЬ #1
        OPEN #1 C:/Sandboxes/JLR_ADAS_DC/Trace32Scripts/ListCam_new.txt / Читать
        ЧИТАТЬ #1 %LINE &line  // Читать 1-ю строку)
    & Значение =STRing.TRIM(String.split ("& строка","",0))
    ПЕЧАТЬ "& стоимость"
    Var.set canConfigInitFlag=& значение)
ЗАКРЫТЬ #1
ENDDO
Другие вопросы по тегам