Anylogic在每次模拟运行之前以编程方式更新表



在我的anylogic模型中,我的代理从基于Excel文件的数据库表中接收他们的参数(这是工作的部分(。在Excel文件中,每个单元格都存储了自己的代码,因此每次打开文件时,单元格值都会发生变化。

我希望每次自动运行我的模型时,Excel文件都会再次读入(即代理的参数值会发生变化(
为此,我参加了";在每次运行之前":

Database myFile = new Database(this, "rohdaten2", "C:Users2nd UserModelsTestModel_Excel-Pt3_DatabasisForSimulationChanges12 DataBasis_Changing_w7oMakros.xlsx");  
rohdaten.importFromExternalDB(myFile.getConnection(), "Rohdaten", "rohdaten", true, false);

不幸的是,我现在得到错误:

描述:无效的转义序列(有效的转义序列是\b\t\t\r\ quot;'\(。位置:TestModel_Excel-Pt3_DatabasesForSimulationChanges1/ParametersVariation-参数变化实验

错误是由于文件位置的指定,但根据Anylogic帮助,您应该这样做。一般来说,我的编程技能,包括Java编程技能,都不足以让我知道现在该做什么或如何解决这个问题。

尝试使用双反斜杠而不是单反斜杠。Java中的Backslash是一个特殊的字符,所以您不能单独使用它。Java字符串中的双反斜杠转换为单反斜杠。

你的代码看起来像:

Database myFile = new Database(this, "rohdaten2", "C:\Users\2nd User\Models\TestModel_Excel-Pt3_DatabasisForSimulationChanges1\02 DataBasis_Changing_w7oMakros.xlsx");  

下面是一篇关于Java中转义字符的文章。https://codegym.cc/groups/posts/escaping-characters-java

最新更新