델파이 RTF (Rich Text Format) 사용방법
서식있는 텍스트 형식 의 약자인
RTF 란?
서식있는 텍스트 파일과 일반 텍스트 파일의 혼합
텍스트 파일과 달리
RTF 파일은 굵게, 기울임 꼴, 밑줄, 글 머리 기호,
다른 글꼴 및 텍스트 양쪽 맞춤과 같은
일부 서식 지정 기능을 제공합니다.
그러나 전체 워드 프로세서에있는
모든 기능을 제공하지는 않습니다.
RTF 편집기의 예는 Microsoft WordPad입니다.
그러나 모든 텍스트 또는 워드 프로세서 프로그램은
RTF 문서를 만들 수있는 위에서 언급
한 서식 지정 기능을 사용하여 문서를 만들 수 있습니다.
일반 텍스트를 RTF 파일로 변환하는 방법
WordPad 또는 Microsoft Word와 같은
RTF 편집기에서 파일 일반 텍스트 파일을 엽니다.
일단 다른 이름 으로 저장 옵션을 선택하고
파일 형식이 * .rtf, * .docx, * .odt
또는 다른 RTF 파일 형식인지 확인하십시오.
델파이에서 RTF 사용해보기
리치에디터에서 RTF 불러오기
//Get the data from the database as AnsiString
rtfString := sql.FieldByName('rtftext').AsAnsiString;
//Write the string into a stream
stream := TMemoryStream.Create;
stream.Clear;
stream.Write(PAnsiChar(rtfString)^, Length(rtfString));
stream.Position := 0;
//Load the stream into the RichEdit
RichEdit.PlainText := False;
RichEdit.Lines.LoadFromStream(stream);
stream.Free;
DB에 RTF 형식으로 저장하기
//Save to stream
stream := TMemoryStream.Create;
stream.Clear;
RichEdit.Lines.SaveToStream(stream);
stream.Position := 0;
//Read from the stream into an AnsiString (rtfString)
if (stream.Size > 0) then begin
SetLength(rtfString, stream.Size);
if (stream.Read(rtfString[1], stream.Size) <= 0) then
raise EStreamError.CreateFmt('End of stream reached with %d bytes left to read.', [stream.Size]);
end;
stream.Free;
//Save to database
sql.FieldByName('rtftext').AsAnsiString := rtfString;
Delphi RTF Text
Function GetRTFtext(Const RichEdit: TRichEdit): String;
var
MemoryStream : TMemoryStream;
RTFText : AnsiString;
begin
MemoryStream := TMemoryStream.Create;
try
RichEdit.Lines.SaveToStream(MemoryStream);
MemoryStream.position := 0;
if MemoryStream.size > 0 then
SetString(RTFText, pchar(MemoryStream.Memory), MemoryStream.size);
finally
FreeAndNil(MemoryStream);
end;
Result := String(RTFText);
end;
추가 팁~!
For loading the rtf text:
//Get the data from the database as AnsiString
rtfString := sql.FieldByName('rtftext').AsAnsiString;
//Write the string into a stream
stream := TMemoryStream.Create;
stream.Clear;
stream.Write(PAnsiChar(rtfString)^, Length(rtfString));
stream.Position := 0;
//Load the stream into the RichEdit
RichEdit.PlainText := False;
RichEdit.Lines.LoadFromStream(stream);
stream.Free;
For saving the rtf text:
//Save to stream
stream := TMemoryStream.Create;
stream.Clear;
RichEdit.Lines.SaveToStream(stream);
stream.Position := 0;
//Read from the stream into an AnsiString (rtfString)
if (stream.Size > 0) then begin
SetLength(rtfString, stream.Size);
if (stream.Read(rtfString[1], stream.Size) <= 0) then
raise EStreamError.CreateFmt('End of stream reached with %d bytes left to read.', [stream.Size]);
end;
stream.Free;
//Save to database
sql.FieldByName('rtftext').AsAnsiString := rtfString;
'Delphi > 프로시저-함수' 카테고리의 다른 글
StringGrid의 Cell에 입력 값 제한 (0) | 2023.06.02 |
---|---|
초를 시간 분 초 형식으로 리턴 (0) | 2021.07.22 |
델파이 JSON to Object 한줄 (0) | 2021.07.20 |
델파이 프로시저와 함수 (0) | 2021.07.19 |
델파이 기본함수 (0) | 2021.07.15 |
댓글