2016-09-02 4 views
3

나는 다음과 같은 코드를 사용하여 RichEdit의 파일을로드하고를 생성합니다. 그러나 TOpenDialog를 다음과 같이 사용할 때 :열기 RTF 파일 오류

with DlgOpen do if Execute then RichEdit1.Lines.LoadFromFile(FileName); 

문제가 발생합니다. 파일로드 괜찮아하지만 바탕 화면에 다음과 같은 오류 메시지가 잎 : 델파이 RTF 파일이 생성 된 2010을 사용하고

error message

2007 Microsoft Word를 사용하고 내가 Win10를 실행하고 있습니다. 오류 메시지를 제거하려면 어떻게해야합니까?

+5

Di 파일 대화 상자에 미리보기 창이 열려 있습니다. –

+0

일부 RTF 파일은 RichEdit에서 읽을 수 없습니다. 이 문제는 특히 UTF-8 또는 유니 코드 파일이있을 때 발생합니다. –

+0

'with do ..' 구문을 제거하고 명시 적으로 코딩하면 차이가 있습니까? –

답변

0

미리보기에서 읽는 파일을 잠그지 못하게 할 수 있으면 해당 파일을 복사하지 않고 바로로드하여 해결할 수 있습니다.

uses IOUtils; 
.... 
.... 
var TempFile: string; 
.... 
if DlgOpen.Execute then 
begin 
    TempFile := IncludeTrailingPathDelimiter(TPath.GetTempPath) + 'Temp.rtf'; 
    CopyFile(PChar(DlgOpen.FileName), PChar(TempFile), False); 
    RichEdit1.Lines.LoadFromFile(TempFile); 
    DeleteFile(TempFile); 
end; 
+0

코드를 작동시킬 수 없습니다. 그러나 내 원래 코드를 실행 "실행 DlgOpen 경우 다음 실행 RichEdit1.Lines.LoadFromFile (FileName);" 더 이상 오류 메시지를 생성하지 않습니다. 아주 이상한. – Rudi

+0

죄송합니다. 문제가 돌아 왔습니다. 오히려 성가신. – Rudi

+0

그건 임시 디렉토리를 얻는 방법이 아니며 경로에서 어떻게 그럴 수있는 방법이 아닙니다. 그리고 파일 이름을 두 번 빌드하지 마십시오. 변수를 사용하십시오. 더 많은주의가 필요합니다. –