【发布时间】:2018-07-04 11:44:23
【问题描述】:
我需要在仿真期间获取 Vivado 中文本文件的长度。我尝试了下面的代码,但出现错误。
file my_input : TEXT open READ_MODE is "/home/sukru/MD5.dat";
variable my_line : LINE;
variable input_line : LINE;
variable length : integer;
readline(my_input, input_line);
read(input_line, length);
writeline(output, input_line); -- optional, write to std out
write(input_line, integer'(length));
writeline(output, input_line);
错误信息是这样的。
Error: TEXTIO function READ: read a non-integer, an integer is expected
a
-2147483648
我可以阅读文本的索引,但长度是无意义的值。有人指导我如何获取任何文本文件的长度。
【问题讨论】:
-
提供minimal reproducible example 怎么样? (至少包括显示问题的 MD5.dat 行。尝试构建表明您正在阅读的 input_line LINE 不包含可识别为表示整数的文本字符串。
-
.dat 听起来甚至可能是一个二进制文件(即您必须在十六进制编辑器中打开它)?你能显示 MD5.dat 的示例内容吗?
-
我感觉这里有一个 X-Y 问题。为什么需要文件的大小?我写 Verilog 很多年了,从来不需要。
-
这是一个重复的问题。见Is it possible to check the length of an input text file?也怀疑是X-Y问题,已采纳答案。