从字符串构造位置

Constructing a location from a string

我的网络服务器收到以下字符串:"|project://Detector/src/exporter.rsc|(1762,28,<45,10>,<45,38>)" 使用 toLocation() 函数将其转换为位置将导致 MalFormedURI 错误。

我可以使用 toLocation() 函数将字符串 loc myLoc = toLocation("project://Detector/src/exporter.rsc"); 转换为位置。 使用正则表达式我可以提取 "0,10,<2,0>,<4,10>"。 但是现在的问题是我可以做到:myLoc(0,10,<2,0>,<4,10>),但是我不能做到myLoc("0,10,<2,0>,<4,10>")。我可以使用正则表达式提取所有这些位置数据,然后将其添加到该位置,但这会导致讨厌的代码。

使用位置数据转换字符串的最佳做法是什么,例如。 "|project://Detector/src/exporter.rsc|(1762,28,<45,10>,<45,38>)" 到包含位置数据的位置。

我认为最稳健的方式是这样的:

import ValueIO;
str theString = "|project://Detector/src/exporter.rsc|(1762,28,\<45,10\>,\<45,38\>)";
theLoc = readTextValueString(#loc, theString);

该函数可能会抛出解析错误,您可以捕获并处理这些错误,但我猜您的设置不会发生这种情况。