ASSEMBLY 8086从文件

时间:2017-05-21 19:46:30

标签: file assembly io x86-16 emu8086

我是装配新手, 我试图从文本文件中删除特定的行 例如:删除文件的第三行 我尝试了很多东西,但我没有设法做到这一点 请有人帮帮我吗?

感谢, 荫

1 个答案:

答案 0 :(得分:1)

文件是字节流。什么是“文本文件”取决于您对任务的定义和使用的编码。

如果这是学校项目(emu8086让我这么认为),那么你可能正在处理简单的原始ASCII文本文件,即一个字节=一个字符。然后你可能在文本中有DOS新行(<EOL> =“行尾”)(两个字节:13,10)(如果你熟练的话,你也可以支持unix一个字节10和old-mac一个)字节13行结束,甚至错误[10,13]对)。

因此,要删除第三行,您需要打开源文件,打开目标文件进行写入,并复制包含第二个换行符的每个字节(或在源文件中检测到<EOF> =“文件结尾”时完成在第三行之前)。然后,您只需继续读取源文件,直到达到第四个<EOL>字节序列,然后将剩余的字节从源文件复制到目标文件。

即。想象5个空行的源文件,当在hexa查看器中查看时,您将看到这些字节:

0D 0A 0D 0A 0D 0A 0D 0A 0D 0A
;           ^^^^^ this is third line content, will be removed

删除第三行后,新文件将包含以下字节:

0D 0A 0D 0A 0D 0A 0D 0A

=只有4个空行。