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.Windows
和 EndOfLine.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)
所以我在 Xojo(MacOS) 上创建了一个使用 EndofLine 解析段落的程序。但是,当我在 Windows 操作系统上 运行 它时,它根本不解析它。 Window 操作系统是否识别 Xojo 中的 EndofLine 或 Chr(10)+Chr(13)?
EndOfLine
总是依赖于平台,所以在 Windows 的情况下,它的值是 chr(13)+chr(10)
,而在 macOS 上它是 chr(10)
。您可以使用 EndOfLine.Windows
和 EndOfLine.OSX
.
要规范化字符串中的行结尾,您可以使用 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)