我正在开发一个可以将值插入到文本文件中的程序,并且无法提出一种有效的方法。目标是在Z轴上的每次更改之前都有一个M220命令。该命令基于整个程序中有多少Z变化。我目前的想法是:
Take the text file, and transfer it into an array
Read through each character to see if there is a Z
Count the total amount of Z's
Start at the beginning of the array
Create a new array that copies the first one
If a Z value is found, insert a line before it with the M220 command
Overwrite the text file with the new array
这对我来说效率非常低,特别是因为我要处理超过20Mb的txt文件。有没有明显更好的方法来做到这一点?
答案 0 :(得分:1)
您可以逐行读取文件,而无需将整个内容存储在内存中。
第一遍:逐行阅读文件并计算Z' s。
第二遍:逐行读取文件并将每行写入临时文件。在编写行之前,检查是否需要使用M220命令插入新行。如果是,则在当前行之前写下此行。
之后,您可以删除原始文件并将临时文件复制到原始文件名。