2017-04-11 14 views
0

私は複数行の文字列を持っており、その中からいくつかの行を削除したいと思います。 TMemoコンポーネントには、これを行うために必要なコードが含まれています。複数行の文字列とTstringListの間の変換

MyMemo:=TMemo.Create(nil); 
try 
    MyMemo.Text:=MyString; 
    MyMemo.Lines.Delete(x); // lines I want to delete 
    MyMemo.Lines.Delete(y); 
    MyString:=MyMemo.Text; 
finally 
    MyMemo.Free; 
end; 

しかし、基本的なコンバージョンを行うにはビジュアルコンポーネントを使用するのは間違っているようです。これを行うには、別の、しかし同じように簡単な方法がありますか? おかげ

+0

視覚的な構成要素を避けることについての良い考え方! –

+2

xとyの順序が重要であることに注意してください。 xがyより小さい場合は、元のリストのy-1行を削除します。 –

答えて

4

あなたは右の質問のタイトルで答えを持っている - TStringListを使用します。

procedure MyProcedure(var MyString: string); 
var 
    sl: TStringList; 
begin 
    sl := TStringList.Create; 
    try 
    sl.Text := MyString; 
    sl.Delete(x); // lines I want to delete 
    sl.Delete(y); 
    MyString := sl.Text; 
    finally 
    sl.Free; 
    end; 
end; 
+0

ありがとう、私はテキストがTememo内のTStringではなく、TMemoにしか当てはめられないと思った – kaj66

+0

他にも、 'CommaText'、' StrictDelimiter'などをチェックしたいかもしれません。 –

0

は、私はちょうどTStringListの自体は、Textプロパティを持っていることに気づきました。それは私自身の質問に答えます。

+0

これはUliの答えに何も追加しません。これを取り除いて彼の答えを受け入れることはできませんか? –

+0

私はUliの答えを見る前にこのコメントを追加しました – kaj66

関連する問題