从备注字段的内容中删除特定行
Posted
技术标签:
【中文标题】从备注字段的内容中删除特定行【英文标题】:Removing Specific Lines From Contents of a Memo field 【发布时间】:2012-04-06 22:25:56 【问题描述】:如何使用 Delphi 从某个字符串之后的备注字段中删除数据,例如,我正在浏览的数据库中的数据显示如下:
<Data I want to keep>
======= Old Data ========
<line 1>
<line 2>
etc.
我如何告诉 Delphi 删除旧数据行之后(包括)之后的所有数据?但不要触摸我希望保留的数据?
【问题讨论】:
【参考方案1】:类似:
var
I: Integer;
s: string;
begin
s := 'your big string with ======= Old Data ======== and more';
I:=Pos('======= Old Data ========',s);
if I>0 then
Delete(s, I, MaxInt);
ShowMessage(s);
【讨论】:
+1 不过,更快的解决方案可能是if I > 0 then SetLength(s, I - 1);
。至少,它应该是System.Delete
,尤其是因为问题是关于数据库的。使用with
语句的粗心大意的人很容易犯错误并删除数据(或最终导致难以解决新手的编译器错误)。【参考方案2】:
试试这个:
procedure myForm.ClearFromLine(value: string);
var
i, index: integer;
begin
index := memo.lines.IndexOf(value);
if index = -1 then
Exit;
memo.lines.BeginUpdate;
try
for i := memo.lines.count - 1 downto index do
memo.lines.delete(i);
finally
memo.lines.EndUpdate;
end;
end;
【讨论】:
不反对,但问题是关于备忘录字段,而不是TMemo
。 :)以上是关于从备注字段的内容中删除特定行的主要内容,如果未能解决你的问题,请参考以下文章