1

我在删除问号时遇到问题。我不希望它们出现在我的 SQL 数据库中。但是我的代码不起作用,我不知道问题出在哪里。

function RemoveQMark(sWork: String): String;
begin
  Delete(sWork, 2, 4);
  Delete(sWork, Length, 2);
  Result := sWork;
end;

我想删除?第一个和最后一个位置的。

4

2 回答 2

6

不需要Delete在传入的字符串上使用。只需使用 DelphiCopy函数将除第一个和最后一个字符之外的所有字符直接复制到结果中:

function RemoveQMark(const sWork: String): String;
begin
  Result := Copy(sWork, 2, Length(sWork) - 2);
end;

使用const 字符串参数允许编译器生成更高效的代码。(没有const,字符串引用计数在函数开始时递增,在结束时递减(在 try...finally 块内))。

于 2013-10-25T12:02:57.410 回答
1
function RemoveQMark(sWork: String): String;
begin
  Delete(sWork, 1, 1);
  Delete(sWork, Length(sWork), 1);
  Result := sWork;
end;
于 2013-10-25T11:57:49.733 回答