From f7d84ad1890895b70879e98b6ef4fde3a9a32d54 Mon Sep 17 00:00:00 2001 From: michael Date: Tue, 26 Mar 2019 20:59:02 +0000 Subject: [PATCH] * Fix bug #0035286, UTF chars distorted git-svn-id: trunk@60783 - --- .../fpreport/design/frmfpreportdesignermain.pp | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/components/fpreport/design/frmfpreportdesignermain.pp b/components/fpreport/design/frmfpreportdesignermain.pp index 85a783c99f..8984542717 100644 --- a/components/fpreport/design/frmfpreportdesignermain.pp +++ b/components/fpreport/design/frmfpreportdesignermain.pp @@ -2022,7 +2022,7 @@ procedure TFPReportDesignerForm.SaveDesignToFile(AFileName : string); Var WS: TFPReportJSONStreamer; - S : String; + S : UTF8String; FS : TFileStream; DD : TJSONObject; @@ -2183,7 +2183,8 @@ procedure TFPReportDesignerForm.LoadDesignFromFile(const AFilename: string); var rs: TFPReportJSONStreamer; - fs: TFileStream; + ms : TMemoryStream; + uts : UTF8String; DD,lJSON: TJSONObject; Errs : TStrings; OldName : TComponentName; @@ -2194,12 +2195,16 @@ begin if not FileExists(AFilename) then raise Exception.CreateFmt('The file "%s" can not be found', [AFilename]); - fs := TFileStream.Create(AFilename, fmOpenRead or fmShareDenyNone); + ms := TMemoryStream.Create(); try - lJSON := TJSONObject(GetJSON(fs)); + ms.LoadFromFile(AFilename); + ms.Position := 0; + SetLength(uts,ms.Size); + Move(ms.Memory^,uts[Low(uts)],Length(uts)); finally - FreeAndNil(fs); + FreeAndNil(ms); end; + lJSON := TJSONObject(GetJSON(uts)); StopDesigning; ResetReport; OldName:=FReport.Name;