我尝试了所有选项在输出文件中创建一个新行,但我仍然得到一个txt文件,其中包含以前信息的所有内容。即使有这个超级简单的代码:
globals [file]
to setup clear-all
set file "results\\GA1.txt" if is-string? file
[while [file-exists? file]
[set file replace-item (length file - 5) file "11" ]
file-open file] end
to go tick write-to-file end
to write-to-file file-print (word ticks) FILE-TYPE "\n" file-write 1 file-print (word " " 2 ";") file-write 1 file-print (word " " 2 ";") file-print "" ;; blank line end
我没有空行或换行符。我在NetLogo 4.1中工作。有人知道会出现什么问题吗?
答案 0 :(得分:3)
您是否在Windows上并使用记事本查看文件?几乎每一个 其他Windows程序现在了解Unix风格的换行符, 但记事本没有。
答案 1 :(得分:1)
您忘记使用file-close
关闭文件或强制它使用file-flush
将数据写入磁盘。
执行file-write
时,数据不会立即写入磁盘。它被放置在缓冲区中。当缓冲区足够大时,数据将写入磁盘。您可以使用file-flush
或file-close
命令强制netlogo将数据写入文件。
答案 2 :(得分:1)
参考文献建议使用更好的编辑器。但有一种方法可以使记事本工作。
如果将字符串“\ r \ n”添加到数据中(使用文件类型或其他类型),则可以使用记事本。
记事本使用较旧的回车符(“\ r”)/新行(“\ n”)格式。 Unix系统只使用新行。
答案 3 :(得分:0)
试试这个,这对我有用
file-open "locations.txt"
ask turtles
[file-print xcor]
file-close
如果您想要更多休息时间,请使用此
file-open "locations.txt"
ask turtles
[file-print xcor file-print "\n"]
file-close