Xojo MacOs 对比。 Windows? EndOFLine 问题

Xojo MacOs Vs. Windows? EndOFLine issue

所以我在 Xojo(MacOS) 上创建了一个使用 EndofLine 解析段落的程序。但是,当我在 Windows 操作系统上 运行 它时,它根本不解析它。 Window 操作系统是否识别 Xojo 中的 EndofLine 或 Chr(10)+Chr(13)?

EndOfLine 总是依赖于平台,所以在 Windows 的情况下,它的值是 chr(13)+chr(10),而在 macOS 上它是 chr(10)。您可以使用 EndOfLine.WindowsEndOfLine.OSX.

直接获得这些 platform-specific 值

要规范化字符串中的行结尾,您可以使用 ReplaceLineEndings() 函数。

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)