所以我在 Xojo(MacOS) 上创建了一个使用 EndofLine 解析段落的程序。但是,当我在 Windows 操作系统上运行它时,它根本不会解析它。Window 操作系统能识别 Xojo 中的 EndofLine 或 Chr(10)+Chr(13) 吗?
问问题
114 次
2 回答
1
EndOfLine
始终依赖于平台,因此对于 Windows,其值为chr(13)+chr(10)
,而在 macOS 上为chr(10)
. 您可以使用EndOfLine.Windows
和直接达到这些特定于平台的值EndOfLine.OSX
。
要规范化字符串中的行尾,您可以使用该ReplaceLineEndings()
函数。
于 2019-05-22T13:32:45.827 回答
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)
于 2019-05-22T13:36:55.303 回答