2014-06-13 3 views
0

문자열을 데이터베이스에서 읽은 RTF 형식으로 변환하려면 어떻게해야합니까? 읽을 때 richedit에서/par {ansistring .......} 태그가있는 문자열이 나타납니다.Delphi XE6, 데이터베이스에서 rtf로드

이 코드를 사용했지만 결과는 동일합니다.

rtfString:= set1.fieldbyname('corpo_rtf').asansistring; 
    stream := TMemoryStream.Create; 
    stream.Clear; 
    stream.Write(PAnsiChar(rtfString)^, Length(rtfString)); 
    stream.Position := 0; 
    corpo.PlainText := False; 
    corpo.Lines.LoadFromStream(stream); 
    stream.Free; 
+0

좋아요,하지만 지금은이 istruction을 실행합니다 : appoggio.fieldbyname ('corpo_rtf'). asansistring : = rtfstring; delphi exit from function. 나는 최종 caracter가 문제라고 생각한다. 무슨 생각해? – user3737012

답변

1

메모리 스트림의 내용이 유효한 RTF이면 코드가 올바르게 작동합니다. 어고, 그럴 수는 없어.

메모리 스트림의 실제 내용을 더 깊이 파고 들어야합니다. 확장자가 .rtf 인 텍스트 파일에 작성하십시오. 워드 패드로로드하십시오. 무슨 일이 일어나는지보십시오. 델파이 애플리케이션이 표시되는 것과 똑같은 것을 볼 수 있습니다.

그렇다면이 부분이 잘못 될 수 있습니까? 가능한 원인은 다음과 같습니다.

  • 데이터베이스의 데이터가 유효한 RTF가 아닙니다.
  • 바람직하지 않은 텍스트 변환이 수행되고 있습니다. rtfStringAnsiString입니다. 그렇지?
+0

좋아요,하지만 지금은이 istruction을 실행합니다 : appoggio.fieldbyname ('corpo_rtf'). asansistring : = rtfstring; 함수에서 델파이 종료. 나는 최종 caracter가 문제라고 생각한다. 무슨 생각해? – user3737012

+0

내가 말할 수있는 정보가 충분하지 않습니다. 나는 당신이 제시 한 사실들로 질문 한 질문에 대답하려고 노력하고 있습니다. –

관련 문제