2011-04-20 2 views
1

어떻게 델파이의 메모에 텍스트 파일의 단락을 개별적으로 추가 할 수 있습니까? 고소TMemo에 단락 추가

+0

TMemo의 리치 텍스트 기능이 좋지 않아 paragrpaph는 Memo.Lines [I] (또는 단일 Readln() 호출로 읽는 문자열)로 액세스 할 수있는 개별 라인과 같습니다. 추측을 막으려면 단락을 정의하십시오. – user422039

답변

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()'이 될 것입니다. 추가 문자열 목록을 사용하면 많은 차이가 있을지 확실하지 않습니다. –

+2

@Sertac : 동의합니다. 단, "단락 추가 ... 분리"가 있었는데 해석 할 방법이 확실하지 않았습니다. 그래서 몇 가지 솔루션을 제공했습니다. :) –

+0

@Ken - 실제로, 그것이 무엇을 의미하는지 궁금합니다. –