2018年9月26日 星期三

Delphi 執行 Escape編碼及解碼


function Escape(Str: string): string;
var
  I: Integer;
  w: Word ;
begin
  Result := '';
  for I := 1 to Length(Str) do
  begin
    w := Word(Str[I]) ;

    if w in [Ord('0')..Ord('9'),Ord('A')..Ord('Z'),Ord('a')..Ord('z')] then
      Result := Result + Char(w)
    else if w <= 255 then
      Result := Result + '%' + IntToHex(w,2)
    else
      Result := Result + '%u' + IntToHex(w,4);
  end;
end;


function Unescape(const Str:String):String;
  // Sub Function Begin =======================
  function UnescapeUncodeChar(const s:String):WideChar;
  var
    r:Array [0..1] of Byte;
  begin
    HexToBin(
             PChar(LowerCase(s)),
             @r,
             SizeOf(r)
             );
    Result:=WideChar((r[0] shl 8) or r[1]);
  end;
  function UnescapeAnsiChar(const s:String):Char;
  begin
    HexToBin(
             PChar(LowerCase(s)),
             @Result,
             SizeOf(Result)
             );
  end;
  // Sub Functionn End ======================
var
  I:Integer;
  C:Integer;
begin
  C:=1;
  SetLength(Result,Length(Str));

  I:=1;
  while I <= Length(Str) do
  begin
    if Str[I] = '%' then
    begin
      if (I < Length(Str)) and (Str[I+1]='u') then
      begin
        Result[C] := UnescapeUncodeChar(
                                     Copy( Str,I+2,4 )
                                     );//Do with '%uxxxx'
        Inc(i,6);
      end
      else
      begin
        Result[C] := Char(
                           UnescapeAnsiChar( Copy(Str,I+1,2) )
                           );//Do with '%xx'
        Inc(I,3);
      end;
    end
    else
    begin
      Result[C] := WideChar(Str[I]);
      //
      Inc(I);
    end;
    Inc(C);
  end;

  SetLength(Result,C-1);

end;

2018年3月25日 星期日

ubuntu 16.04.x 安裝MySql 5.6

因為ubuntu 16.04預設的MySql版本為5.7,若要改成安裝5.6的版本,可以使用下列方式執行。

sudo add-apt-repository 'deb http://archive.ubuntu.com/ubuntu trusty universe'
sudo apt-get update
sudo apt install mysql-server-5.6 
sudo apt install mysql-client-5.6

若安裝後,開機無法自動執行,可以執行下列指令:
sudo update-rc.d -f mysql defaults

2018年1月13日 星期六

Ubuntu 16.4 x64 安裝 Lazaurs 1.8

1. 先下載 Lazaurs 1.8 安裝套件,下載連結 ,檔案包含如下:

  • lazarus-project_1.8.0-1_amd64.deb
  • fpc-src_3.0.4-2_amd64.deb
  • fpc_3.0.4-2_amd64.deb

2. 因為要使用 gdebi 進行套件安裝,所以Ubuntu需要有包含此套件,若沒有,則需要先進安裝。可以直接使用 Ubuntu Software 進行套件查詢及安裝。

3. 開始安裝 Lazarus前,需要先安裝 fpc套件
    $ sudo gdebi fpc_3.0.4-2_amd64.deb
    $ sudo gdebi fpc-src_3.0.4-2_amd64.deb

    安裝 lazarus-project_1.8.0-1_amd64.deb
    $ sudo gdebi lazarus-project_1.8.0-1_amd64.deb

    安裝後,建議重開機。