你好,我需要一个简单的函数来删除左侧的文本字符串,请参见以下示例:
procedure TForm1.Button1Click(Sender: TObject);
var
S: string;
begin
S := 'Hello test test test [delimitator] goodby.. test teest test';
Delete(S, Pos('[delimitator]', S), MaxInt);
RichEdit1.Text := S;
end;
即使我不知道有多少个字符,此功能也会清除右侧的所有字符。
问题是,如何反向操作,删除左侧的所有字符?
你已经知道要使用什么-Pos()
和Delete()
。只要调整如何使用它们:
procedure TForm1.Button1Click(Sender: TObject);
var
S: string;
begin
S := 'Hello test test test [delimitator] goodby.. test teest test';
Delete(S, 1, Pos('[delimitator]', S));
RichEdit1.Text := S;
end;
也许添加代码来处理找不到分隔符的情况。
@fpiette如果找不到分隔符,
Pos()
将返回0,因此Delete(S, 1, 0)
不会删除任何内容。实际上,在左侧进行的删除要比在右侧进行的删除效果更好,在这种情况下,必须特殊处理0以免清除整个字符串。谢谢@Remy Lebeau