从备注字段的内容中删除特定行

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 &gt; 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。 :)

以上是关于从备注字段的内容中删除特定行的主要内容,如果未能解决你的问题,请参考以下文章

从表视图中删除特定行

Firebase 删除字段中的特定内容

Bash脚本从.txt文件中删除特定行[重复]

SQL查询从特定列中的每个字段中删除某些文本 - Oracle SQL

Java中删除文本文件中特定行的内容

从 .net 类型的数据集插入时,备注字段值被截断为大约 1000 个字符