Как я могу получить количество строк текстового файла в specman?

#text #count #specman

#текст #подсчет #specman

Вопрос:

Метод files.file_size() возвращает размер файла, но не существует метода, который возвращает количество строк.

Комментарии:

1. cadence.com/community/CSSharedFiles/forums/storage/69/18110/…

2. Я имею в виду количество строк текстового файла данных, а не строк кода specman

Ответ №1:

Вы можете перебирать строки в файле и просто считать их. Например:

 var count: int;
for each line in file "my_file.txt" do {
    count  = 1;
};
out("The file has ", count, " lines");
  

Обратите внимание, что это не очень эффективно (в отличие от file_size(), она фактически будет считывать содержимое файла построчно). Итак, в случае, если вам нужно использовать количество строк одного и того же файла несколько раз, разумно оставить его в стороне в каком-либо поле или переменной, а не выполнять этот цикл каждый раз.

Ответ №2:

Вы можете использовать метод output_from() для передачи команды командной оболочке. Он возвращает список строк.

 var lines: int;
var filename: string = "myfile.txt";
try {
   lines = output_from(append("wc -l | cut -d " " -f1", filename)[0]).as_a(int);
} else { 
   error("...") 
};