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