2016-02-21

Delphi UTF-8 Conversion Routines

http://docwiki.embarcadero.com/RADStudio/Seattle/en/UTF-8_Conversion_Routines

2016-02-14

dbExpress / dbGO 以TADOConnection / TADODataSet 連結 MS Access 資料庫

ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;Data Source=資料庫檔案路徑;Mode=Read;Jet OLEDB:Database Password=密碼;';

2016-02-11

以 TPerlRegEx.Replace 替代掉符合樣式的字串

環境:Win7+XE4

uses System.RegularExpressionsCore;
:
procedure TForm1.Button1Click(Sender: TObject);
var
  RE: TPerlRegEx;
  slFile,slTmp: TStringList;
begin
  RE:=TPerlRegEx.Create;
  slFile:=TStringList.Create;
  slTmp:=TStringList.Create;

  slFile.LoadFromFile(FOD1.FileName);
  RE.Subject:=slFile.Text;
  RE.Options:=[preCaseLess];   //忽略大小寫
  slTmp.Delimiter:='|';
  slTmp.Text:=Memo1.Lines.Text;
  RE.RegEx:='([\s|\.|\=|\[])('+slTmp.DelimitedText+')([\s|\.|\]])';

  while RE.MatchAgain do begin
    RE.Replacement:='$1GA00_$2$3';  //也可以 " \ " 替代  " $ " 結果相同
    RE.Replace;
  end;

  FreeAndNil(RE);
  FreeAndNil(slFile);
  FreeAndNil(slTmp);
end;

備註:
TPerlRegEx.ComputeReplacement;   //經樣式運算後的替代字串
TPerlRegEx.MatchedText;                 //符合樣式的字串等同 TPerlRegEx.Groups[0]
TPerlRegEx.Replacement:='';            //經運算後似乎無法讓Replace再利用,所以看使用狀況必須重覆執行