string - Delphi 中使用 Pos() 查找换行符

标签 string delphi line-breaks

我通常使用 C++Builder 工作,刚刚开始在 Delphi 中进行测试。我无法使用 Delphi 的 (XE5) Pos() 函数找到换行符,而且语法很奇怪。我有什么错吗?对于诸如 StringReplace() 之类的其他函数,它可以正常工作。下面是一个示例代码:

sl := TStringList.Create;
sl.Add('Hello');
sl.Add('world');
sl.Add('!');

if (Pos(sl.Text, #13#10) > 0) then
    ShowMessage('1')
else if (Pos(sl.Text, #13) > 0) then
    ShowMessage('2')
else if (Pos(sl.Text, #10) > 0) then
    ShowMessage('3')
else
    ShowMessage('4');  // Comes always here...

我总是在 C++Builder 中这样做,并且从来没有遇到过问题。

最佳答案

您正在传递 Pos 的参数函数的顺序错误,首先必须传递要搜索的子字符串,然后传递缓冲区字符串。

function Pos(const SubStr, Str: _ShortStr; Offset: Integer): Integer;
function Pos(const SubStr, Str: UnicodeString; Offset: Integer): Integer; overload;
function Pos(const SubStr, Str: _WideStr; Offset: Integer): Integer; overload;
function Pos(const SubStr, Str: _RawByteStr; Offset: Integer): Integer;

试试这个

if  Pos(#13#10, sl.Text) > 0 then

if Pos(sLineBreak, sl.Text) > 0 then

关于string - Delphi 中使用 Pos() 查找换行符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19897541/

相关文章:

javascript - JavaScript 中的换行符没有出现

python - 用 pandas 替换字符串

现有 String 数组中的 Java String 数组

delphi - Win XP 下垂直选项卡无法正确呈现

当我在末尾包含一些内容时,Python 换行符 '\n' 不起作用

ios - 如何使此 UILabel 将电子邮件地址移动到下一行?

javascript - 一行中的字符串

string - 在 apex Controller 中将我的 word 文档的 blob 内容转换为字符串

delphi - Delphi/Pascal 有静态代码分析工具吗?

delphi - 方法指针有基类型吗?