2011-04-20 178 views
1

如何將文本文件的段落分別添加到德爾福的備忘錄中? 蘇將段落添加到TMemo

+0

鑑於TMemo的富文本功能,其中的paragrpaph等於可作爲Memo.Lines [I]訪問的單獨行(或通過單個Readln()調用讀取的字符串)。爲了防止猜測,請給出段落的定義。 – user422039 2011-04-21 05:53:52

回答

2

您可以:

使用TMemo.LoadFromFile並加載整個文件直接

Memo1.LoadFromFile(YourFileNameHere); 

使用TStringList.LoadFromFile,並從那裏

var 
    SL: TStringList; 
begin 
    SL := TStringList.Create; 
    try 
    SL.LoadFromFile(YourFilenameHere); 
    Memo1.Lines.Assign(SL); 
    finally 
    SL.Free; 
    end; 
end; 

// or 
var 
    SL: TStringList; 
    s: String; 
    // or i: Integer; 
begin 
    SL := TStringList.Create; 
    try 
    SL.LoadFromFile(YourFilenameHere); 
    for s in SL do 
     Memo1.Lines.Add(s); 
    // or 
    // for i := 0 to SL.Count - 1 do 
    // Memo1.Lines.Add(SL[i]); 
    finally 
    SL.Free; 
    end; 
end; 

添加的每一行(包括空白的)如果你想添加一個新的段落,你可以使用這個:

Memo1.Lines.Add(''); // Add a blank line to separate paragraphs 

然後使用上面的代碼添加新的單行到備忘錄。

最後,如果你在備忘錄文本,你想整個文本塊添加爲新的段落:

var 
    s: string; 
    Stream: TFileStream; 
begin 
    Stream := TFileStream.Create(YourFilenameHere, fmOpenRead); 
    try 
    SetLength(s, Stream.Size); 
    Stream.Read(s[1], Stream.Size); 

    // sLineBreak is in System.pas 
    Memo1.Lines.Text := Memo1.Lines.Text + sLineBreak + s; 
    finally 
    Stream.Free; 
    end; 
end; 

如果這些都不是你想要什麼,你需要是更具體與您的問題。

+0

可能是'Memo1.Lines.LoadFromFile()'。不知道如果使用額外的字符串列表會有很大的不同.. – 2011-04-21 00:20:02

+2

@Sertac:我同意,但有「添加段落......分開」,我不知道如何解釋。所以我提供了一些解決方案。 :) – 2011-04-21 00:30:22

+0

@Ken - 的確,我想知道它是什麼意思.. – 2011-04-21 00:36:06