NetLogo无法在每次运行前加载CSV

NetLogo无法在每次运行前加载CSV,csv,netlogo,Csv,Netlogo,我是NetLogo的新手,正在尝试导入带有州坐标的CSV。我使用了这里给出的代码,它工作得很好。唯一的问题是我必须关闭Netlogo并运行代码才能获得输出。如果我再次运行它,它不会工作,除非我关闭软件 我调试了我的代码,并意识到它不会进入,而[not file at end?]循环多次运行。这是奇怪的行为。我已经初始化了我所有的列表和变量,并且全部重置。感谢您的帮助 我的代码: to load-physician-file file-open "Physician-File.csv"

我是NetLogo的新手,正在尝试导入带有州坐标的CSV。我使用了这里给出的代码,它工作得很好。唯一的问题是我必须关闭Netlogo并运行代码才能获得输出。如果我再次运行它,它不会工作,除非我关闭软件

我调试了我的代码,并意识到它不会进入
,而[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语句之前,则不起作用。谢谢你的帮助!