zoukankan      html  css  js  c++  java
  • Delphi字符串简码

    从网上找的三个函数自己修改了下,在delphi7运行正常,unicode的版本不能用好像

    输入:1abc天天

    输出:1ABCTT

    unit UnitJM;

    interface

    uses SysUtils;

    function getPY(hzchar: string): char;
    function getStrPY(Astr: string): string;
    function IsMBCSChar(const ch: Char): Boolean;

    implementation

    function IsMBCSChar(const ch: Char): Boolean;
    begin
      Result := (ByteType(ch, 1) <> mbSingleByte);
    end;


    function getPY(hzchar: string): char;
    begin
      case word(hzchar[1]) shl 8 + word(hzchar[2]) of
        $B0A1..$B0C4: result := 'A';
        $B0C5..$B2C0: result := 'B';
        $B2C1..$B4ED: result := 'C';
        $B4EE..$B6E9: result := 'D';
        $B6EA..$B7A1: result := 'E';
        $B7A2..$B8C0: result := 'F';
        $B8C1..$B9FD: result := 'G';
        $B9FE..$BBF6: result := 'H';
        $BBF7..$BFA5: result := 'J';
        $BFA6..$C0AB: result := 'K';
        $C0AC..$C2E7: result := 'L';
        $C2E8..$C4C2: result := 'M';
        $C4C3..$C5B5: result := 'N';
        $C5B6..$C5BD: result := 'O';
        $C5BE..$C6D9: result := 'P';
        $C6DA..$C8BA: result := 'Q';
        $C8BB..$C8F5: result := 'R';
        $C8F6..$CBF9: result := 'S';
        $CBFA..$CDD9: result := 'T';
        $CDDA..$CEF3: result := 'W';
        $CEF4..$D188: result := 'X';
        $D189..$D4D0: result := 'Y';
        $D4D1..$D7F9: result := 'Z';
      else
        RESULT := char(32);
      end;
    end;
    //==============================================================================
    // 获取字符串的JM
    //==============================================================================
    function getStrPY(Astr: string): string;
    var
      i: integer;
      hz, pyzh: string;
      Achar:Char;
    begin
      result := '';
      i:=1;
      while i<(Length(Astr)+1) do
      begin
        aChar:=Astr[i];
        if IsMBCSChar(Achar) then
        begin
          hz := copy(Astr, i, 2);
          pyzh := pyzh + getpy(hz);
          Inc(i,2);
          Continue;
        end;
        pyzh:=pyzh+achar;
        Inc(i);
      end;
      result :=UpperCase(Pyzh);
    end;
    end.

    酒肉穿肠过 佛祖心中留 世人若学我 如同入魔道
  • 相关阅读:
    Vue(小案例_vue+axios仿手机app)_go实现退回上一个路由
    nyoj 635 Oh, my goddess
    nyoj 587 blockhouses
    nyoj 483 Nightmare
    nyoj 592 spiral grid
    nyoj 927 The partial sum problem
    nyoj 523 亡命逃窜
    nyoj 929 密码宝盒
    nyoj 999 师傅又被妖怪抓走了
    nyoj 293 Sticks
  • 原文地址:https://www.cnblogs.com/jspdelphi/p/5380781.html
Copyright © 2011-2022 走看看