相关疑难解决方法(0)

Delphi中的System.Pos有缺陷吗?

问题

如果TRichEdit中的文字是这样的;

'hello, world'#$D#$A
Run Code Online (Sandbox Code Playgroud)

然后以下例程显示TRUE.但是当RichEdit有

'test'#$D#$A#$D#$A'test'#$D#$A#$D#$A'test'#$D#$A
Run Code Online (Sandbox Code Playgroud)

然后例程显示FALSE.在我看来它是有缺陷的,因为它找到了逗号,但不是新行/换行.我创建了一个解决方法来代替字符串并找到我正在寻找的内容,但我仍然很好奇为什么Delphi函数不起作用.有任何想法吗?

procedure TForm1.Button1Click(Sender: TObject);
var
   sTmp : String;
begin
   sTmp := RichEdit1.Lines.GetText;
   if ( ( Pos( ',', sTmp )  <> 0 ) or
        ( Pos( '"', sTmp )  <> 0 ) or
        ( Pos( '\n', sTmp ) <> 0 ) or
        ( Pos( '\r', sTmp ) <> 0 ) ) then
      Label1.Caption := 'TRUE'
   else
      Label1.Caption := 'FALSE';
end;
Run Code Online (Sandbox Code Playgroud)

解决方法 - 安德烈亚斯的版本(根据输入更快)

function CheckChars( const sData: String ): Boolean;
var
   pCur : PChar;
begin …
Run Code Online (Sandbox Code Playgroud)

delphi delphi-2009

-1
推荐指数
1
解决办法
1988
查看次数

标签 统计

delphi ×1

delphi-2009 ×1