NetLogo无法在每次运行前加载CSV
我是NetLogo的新手,正在尝试导入带有州坐标的CSV。我使用了这里给出的代码,它工作得很好。唯一的问题是我必须关闭Netlogo并运行代码才能获得输出。如果我再次运行它,它不会工作,除非我关闭软件 我调试了我的代码,并意识到它不会进入NetLogo无法在每次运行前加载CSV,csv,netlogo,Csv,Netlogo,我是NetLogo的新手,正在尝试导入带有州坐标的CSV。我使用了这里给出的代码,它工作得很好。唯一的问题是我必须关闭Netlogo并运行代码才能获得输出。如果我再次运行它,它不会工作,除非我关闭软件 我调试了我的代码,并意识到它不会进入,而[not file at end?]循环多次运行。这是奇怪的行为。我已经初始化了我所有的列表和变量,并且全部重置。感谢您的帮助 我的代码: to load-physician-file file-open "Physician-File.csv"
,而[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
我强烈怀疑您缺少
文件关闭
或文件全部关闭
也许与预期相反,
clear all
不会关闭文件,file open
也不会返回到已经打开的文件的开头。您说的是“此处给定的代码”,但实际上没有提供代码。我的意思是“此处给定的代码”。我发现了一个流行的代码。我编辑了这个问题以包含代码。stackoverflow非常庞大,NetLogo中可能有多个代码打开文件。好的做法是显示代码(正如您现在所做的那样),并链接到您在哪里找到它的问题。这样,您的问题和原始问题就会链接起来,这样其他人就可以找到这两个问题的讨论。我也使用了文件关闭。在文件打开之前,在加载医生文件
的顶部添加文件关闭所有
,不会解决问题吗?好的。它起作用了![file close all]在[file open]语句之前工作。如果[file close all]在end语句之前,则不起作用。谢谢你的帮助!