⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 py_unit.~pas

📁 拼音处理模块原理及补充说明: 原理: 根据操作系统拼音输入法的对照表。 提取出简单的单字对照表
💻 ~PAS
字号:
unit PY_Unit;

interface
uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs;
type
  PYT_Class=Class(TObject)
  private
  FFileName:string;
  PYTable:TMemoryStream;
    { Private declarations }
  function Get_PYT(HZ :Word):string;

  public
    { Public declarations }
  constructor Create(FileName:string);
  destructor Destroy();
  function HZ2PYT(ss:string):string;
  procedure SetPYT(hz,Py:string);
  end;
implementation
constructor PYT_Class.Create(FileName:string);
begin
  inherited Create;
  if FileExists(FileName) then
  begin
    PYTable:=TMemoryStream.Create();
    PYTable.LoadFromFile(FileName);
    FFileName:=FileName;
  end
  else
    Application.MessageBox('拼音表不存在!!!','系统提示',16);
end;
destructor PYT_Class.Destroy();
begin
  PYTable.Free;
  inherited Destroy;
end;
function PYT_Class.Get_PYT(HZ :Word):string;
begin
  Result:=' ';
  pyTable.Position:=hz-45217;
  pyTable.Read(result[1],1);
end;
function PYT_Class.HZ2PYT(ss:string):string;
var i:integer;
begin
  i:=1;
  result:='';
  if Length (ss)<>0 then
  while i > 0 do
  begin
    if Byte(ss[i])<$b0 then
    begin
      result:=result+ss[i];
      i:=i+1;
    end
    else
    begin
      result:=result+Get_PYT(Byte(ss[i])*256+Byte(ss[i+1]));
      i:=i+2;
    end;
  if i>=Length(ss) then break;
  end;
end;
procedure PYT_Class.SetPYT(hz,Py:string);
begin
  if (Length(hz)>1) And (Byte(hz[1])>=$B0) And (py<>'') then
  begin
    if Application.MessageBox('拼音对照表将被改动!!','系统提示',52)=mrYes then
    begin
      PYTable.Position:=Byte(hz[1])*256+Byte(hz[2])-45217;
      pyTable.Write(py[1],1);
      DeleteFile(FFileName);
      PYTable.SaveToFile(FFileName);
    end;
  end;
end;
end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -