2012-04-06 11 views
2

Delphiを使用して特定の文字列の後ろにあるメモフィールドからデータを削除するにはどうすればよいですか? :メモフィールドの内容から特定の行を削除する

<Data I want to keep> 

======= Old Data ======== 
<line 1> 
<line 2> 
etc. 

古いデータラインの後(およびそれを含む)のすべてのデータを削除するようにDelphiに指示する方法を教えてください。しかし、私が保持したいデータに触れないでください?

答えて

8

のようなもの:

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); 
+2

+1を迅速に解決策は、'はsetLengthその後、I> 0の場合(1秒、I)であるかもしれません。少なくとも質問はデータベースに関するものなので、少なくともSystem.Deleteであるべきです。 'with'ステートメントで不注意でデータを削除したり、初心者のコンパイラエラーを解決するのが難しくなったりするのは簡単です。 –

+0

いつ、どこから呼び出すのですか? – NGLN

1

はこのお試しください: - ;しかし、 `

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; 
+4

downvotingしませんが、質問は「TMemo」ではなくメモ*フィールド*に関するものでした。 :) –

関連する問題