我是NetLogo的新手并尝试导入具有状态坐标的CSV。我使用了这里给出的代码,它工作正常。唯一的问题是我必须关闭Netlogo并运行我的代码才能获得输出。如果我再次运行它,它不起作用,除非我关闭软件!
我调试了我的代码,并意识到它没有进入多次运行的while [not file-at-end?]
循环。这是奇怪的行为。我已经初始化了所有列表和变量,并重置了所有。任何帮助表示赞赏。
我的代码:
to load-physician-file
file-open "Physician-File.csv"
while [not file-at-end?]
[
set csv file-read-line
set csv word csv ","
set fileList[]
while [not empty? csv]
[
let $x position "," csv
let $item substring csv 0 $x
carefully [set $item read-from-string $item] []
set fileList lput $item fileList
set csv substring csv ($x + 1) length csv
]
set State-abbrev item 0 fileList
if label-states
[
create-state-labels 1
[
set xcor (item 2 filelist - 1.6)
set ycor (item 1 fileList - 1.6)
set size 0
set label item 0 fileList
]
]
]
file-close
end
答案 0 :(得分:1)
我强烈怀疑您错过了file-close
或file-close-all
。
也许与期望相反,clear-all
不关闭文件,file-open
也不会返回已打开文件的开头。