Xojo MacOs与视窗? EndOFLine问题

时间:2019-05-22 13:11:24

标签: realbasic xojo

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

2 个答案:

答案 0 :(得分:1)

EndOfLine始终取决于平台,因此在Windows中,其值为chr(13)+chr(10),而在macOS上为chr(10)。您可以使用EndOfLine.WindowsEndOfLine.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)