因此,我在Xojo(MacOS)上创建了一个使用EndofLine解析段落的程序。但是,当我在Windows操作系统上运行它时,它根本不会解析它。Window操作系统是否识别Xojo中的EndofLine或Chr(10)+Chr(13)?
发布于 2019-05-22 21:36:55
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-22 21:32:46
EndOfLine总是依赖于平台,所以在Windows上,它的值是chr(13)+chr(10),而在macOS上,它的值是chr(10)。您可以使用EndOfLine.Windows和EndOfLine.OSX直接获取这些特定于平台的值。
要规范化字符串中的行尾,可以使用ReplaceLineEndings()函数。
https://stackoverflow.com/questions/56257648
复制相似问题