在Delphi中找到Pos()的换行符

时间:2013-11-11 01:33:45

标签: delphi break

我通常使用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中做到这一点并且从来没有遇到任何问题。

1 个答案:

答案 0 :(得分:5)

您正在以错误的顺序传递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