我正在尝试使用 VHDL 读取可能具有不同格式的文件。我知道您应该使用以下两行代码一次读取一行,读取该行中的各个元素。
readline(file, aline);
read(aline, element);
Run Code Online (Sandbox Code Playgroud)
然而我的问题是会read(aline, element)返回什么element?如果该行为空,它会返回什么?如果我使用它 5 次并且我的行只有 4 个字符,它会返回什么?
我想知道的原因是,如果我正在读取有效数据之间具有任意数量空格的文件,我如何解析这些有效数据?
该文件包含由任意数量的空格(任意数量的空格、制表符或换行符)分隔的 ASCII 字符。如果该行以 # 开头,则该行是注释,应被忽略。
除了这些注释之外,文件的第一部分包含的字符仅为可变大小的字母或数字组合。换句话说:
readline(file, aline);
read(aline, element);
Run Code Online (Sandbox Code Playgroud)
然而,文件的大部分(在读取一定数量的字之后)将是纯粹的任意长度的数字,并由任意数量的空格分隔。换句话说,文件的第二部分是这样的:
123 ABC 12ABB3
Run Code Online (Sandbox Code Playgroud)
我必须能够单独解析这些数字(并如此解释它们)。
我有一个正在后台 Python 3.5 进程中写入的文件。文件是在此过程中打开的(基本上是一个正在运行的 Python 脚本),但我忘记包含文件关闭语句以偶尔在该脚本中刷新缓冲区。该脚本是无限的,除非手动结束,并且我(现在)知道终止 python 进程将导致缓冲区中的所有数据丢失。无论如何,有没有办法恢复要在这个已经运行的进程中写入的数据?
这个问题更多是为了满足我自己的好奇心,而不是其他任何事情。我想知道如何使用 d3 选择已经存在于 HTML 文档正文中的 SVG 元素,而无需先使用 d3 创建该 SVG 元素。我希望以下代码段可以工作,但它不起作用,这让我感到非常沮丧。
<html lang="en">
<head>
<script src="https://cdnjs.cloudflare.com/ajax/libs/d3/3.4.1/d3.min.js">
</script>
<script type="text/javascript">
// If the below is changed to append instead of select it works
// but what if I don't want to create the SVG using d3
var svg = d3.select("body").select("svg")
var circle = svg.append("circle")
.attr("cx", 50)
.attr("cy", 50)
.attr("r", 20)
</script>
<style>
</style>
</head>
<body>
<svg>
</svg>
</body>
</html>Run Code Online (Sandbox Code Playgroud)