2017-04-11 63 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

謝謝我認爲文本只適用於TMemo,而不是Tmemo內的TStrings – kaj66

+0

還有更多 - 你可能想要檢查'CommaText','StrictDelimiter'等。 –

0

我剛剛意識到的TStringList本身具有Text屬性。這就回答了我自己的問題。

+0

這對Uli的回答沒有任何意義。你不能刪除這個並接受他的回答嗎? –

+0

在我看到Uli的回答之前,我加了這個評論 – kaj66

相關問題