因此,我在Xojo(MacOS)上创建了一个使用EndofLine解析段落的程序。但是,当我在Windows操作系统上运行它时,它根本不会解析它。 Windows操作系统是否可以识别Xojo中的EndofLine或Chr(10)+ Chr(13)?
答案 0 :(得分:1)
EndOfLine
始终取决于平台,因此在Windows中,其值为chr(13)+chr(10)
,而在macOS上为chr(10)
。您可以使用EndOfLine.Windows
和EndOfLine.OSX
直接获得这些特定于平台的值。
要标准化字符串中的行尾,可以使用ReplaceLineEndings()
函数。
答案 1 :(得分:1)
Xojo的EndOfLine常量确实有所不同,具体取决于您所使用的平台。
您有两种选择来处理此问题:
明确使用平台特定的常量:
EndOfLine.Windows gives CR+LF
EndOfLine.Unix gives LF
更好的方法,尤其是从程序外部导入数据时,例如从文件或网络套接字读取数据时,是为了规范行分隔符以供内部使用,例如:
normalizedString = ReplaceLineEndings (importedString, EndOfLine)
现在,您可以将EndOfLine与normalizedString一起使用,例如将其拆分为单行:
dim lines() as String = normalizedString.Split (EndOfLine)
当您将该字符串写回时,将自动以系统格式保存它。
但是,当您将文本导出到希望它们以某种格式出现的系统时,请将其转换回该格式,如下所示:
// E.g, if you export them for a Mac:
outputString = ReplaceLineEndings (internalString, EndOfLine.Unix)