我通常使用C++Builder,刚刚开始在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