diff --git a/MainFrm.dfm b/MainFrm.dfm index 431368fb6a1eae0b73b63180fc4a3aa6bc5c3c0c..64e74658d53f7694a93c171729c0f2c6c5f2ebae 100644 --- a/MainFrm.dfm +++ b/MainFrm.dfm @@ -203,7 +203,6 @@ object FrmMain: TFrmMain 'getcode()=>getCode()') ScrollBars = ssBoth TabOrder = 0 - ExplicitTop = 312 end object Panel4: TPanel Left = 0 @@ -213,10 +212,6 @@ object FrmMain: TFrmMain Align = alClient BevelOuter = bvNone TabOrder = 1 - ExplicitLeft = 232 - ExplicitTop = 271 - ExplicitWidth = 545 - ExplicitHeight = 177 object Panel5: TPanel Left = 0 Top = 0 @@ -226,9 +221,6 @@ object FrmMain: TFrmMain BevelOuter = bvNone ParentColor = True TabOrder = 0 - ExplicitLeft = 1 - ExplicitTop = 1 - ExplicitWidth = 543 object Label3: TLabel Left = 14 Top = 12 @@ -278,10 +270,6 @@ object FrmMain: TFrmMain Align = alClient ScrollBars = ssBoth TabOrder = 1 - ExplicitLeft = 1 - ExplicitTop = 40 - ExplicitWidth = 543 - ExplicitHeight = 136 end end end diff --git a/MainFrm.pas b/MainFrm.pas index 343ae5fc3ee8fe4c8a5a2f327d56d198b95def2a..7f37939dc6ec44c2ca4c7da3367f34fd6fcc5520 100644 --- a/MainFrm.pas +++ b/MainFrm.pas @@ -78,6 +78,33 @@ implementation {$R *.dfm} +function LoadUTF8File(fileName: string): string; +var + ss: TStringStream; +begin + ss := TStringStream.Create('', TEncoding.UTF8); + try + ss.LoadFromFile(fileName); + result := ss.DataString; + finally + ss.Free; + end; +end; + + +procedure SaveUTF8File(content: string; fileName: string); +var + ss: TStringStream; +begin + ss := TStringStream.Create('', TEncoding.UTF8); + try + ss.WriteString(content); + ss.SaveToFile(fileName); + finally + ss.Free; + end; +end; + procedure TFrmMain.FormCreate(Sender: TObject); var ini: TIniFile; @@ -152,7 +179,7 @@ begin showMessage('测试文件没有找到!'); exit; end; - self.Memo1.Lines.LoadFromFile(fileName); + self.Memo1.Text := LoadUTF8File(fileName); end; procedure TFrmMain.btnSearchClick(Sender: TObject); @@ -260,7 +287,7 @@ begin src := TStringList.Create; tar := TStringList.Create; try - src.LoadFromFile(fileName); + src.Text := LoadUTF8File(fileName); for i := 0 to src.Count - 1 do begin s0 := src.Strings[i]; @@ -271,7 +298,7 @@ begin tar.Append(s1); end; if self.replaceFlag then - tar.SaveToFile(fileName); + SaveUTF8File(tar.Text, fileName); finally src.Free; tar.Free; @@ -302,15 +329,12 @@ procedure TFrmMain.DBGrid1DblClick(Sender: TObject); var fileName: string; begin - with cdsView do + fileName := cdsView.FieldByName('FileName').AsString; + if fileName <> '' then begin - fileName := cdsView.FieldByName('FileName').AsString; - if fileName <> '' then - begin - self.PageControl1.ActivePageIndex := 1; - edtTestFile.Text := fileName; - btnLoadFile.Click; - end; + self.PageControl1.ActivePageIndex := 1; + edtTestFile.Text := fileName; + btnLoadFile.Click; end; end; diff --git a/Win32/Debug/codereplace.exe b/Win32/Debug/codereplace.exe index 2f1453038e7f8fb7eec71f6a7b506069e611a9aa..6be2e24446eddc13448bfad4f89a530f48e1abec 100644 Binary files a/Win32/Debug/codereplace.exe and b/Win32/Debug/codereplace.exe differ