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

📄 ppublic.pas

📁 BarCodePrint条码打印机打印管理
💻 PAS
字号:
unit PPublic;
interface
Const MIN_ASC:Integer = 32;
Const MAX_ASC:Integer = 126;
Const NUM_ASC :Integer= 95;
function Cipher(password,from_text:String):String;
function MultiLink(Fang:Integer):LongInt;
function NumericPassword(password:String):LongInt;
function Decipher(password,from_text :String):String;
var
    UserCode:String;
    UserName:String;
    DepartCode:String;
    DepartName:String;
    sModelName:String;
    //function GetInspectionManNameFromCode(Code:String):String;
implementation
uses ADODB,PDataModuleMain;
function MultiLink(Fang:Integer):LongInt;
var
    i:Integer;
begin
    Result:=1;
    for i:=1 to Fang do
            Result:=Result*2
    end;
function NumericPassword(password:String):LongInt;
var
    value:LongInt;
    ch:LongInt;
    shift1:LongInt;
    shift2:LongInt;
    i:Integer;
    str_len:Integer;
    str:Char;
begin
    str_len :=length(password);
    shift1:=0;
    shift2:=0;
    value:=0;
    For i := 1 To str_len do
    begin
        str:=password[i];
        ch := Integer(str);
        value := value Xor (ch * MultiLink(shift1));
        value := value Xor (ch * MultiLink(shift2));

        shift1 := (shift1 + 7) Mod 19;
        shift2 := (shift2 + 13) Mod 23;
    end;
    NumericPassword := value;
end;
function Cipher(password,from_text:String):String;
var
    offset:LongInt;
    str_len:Integer;
    i:Integer;
    ch:Integer;
begin
    offset := NumericPassword(password);
    RandSeed:=offset;

    str_len := length(from_text);
    for i := 1 To str_len do begin
        ch := ord(from_text[i]);
        if (ch >= MIN_ASC) And (ch <= MAX_ASC) Then begin
            ch := ch - MIN_ASC;
            offset :=trunc((NUM_ASC + 1) * random);
            ch := ((ch + offset) Mod NUM_ASC);
            ch := ch + MIN_ASC;
            Result := Result + Chr(ch);
        end;
    end;
end;

function Decipher(password,from_text :String):String;
var
    offset:LongInt;
    str_len:Integer;
    i:Integer;
    ch:Integer;
begin
    offset:=NumericPassword(password);
    RandSeed:=offset;
    str_len := Length(from_text);
    for i :=1 To str_len do begin
        ch := ord(from_text[i]);
        If (ch >= MIN_ASC) And (ch <= MAX_ASC) Then begin
            ch := ch - MIN_ASC;
            offset :=trunc((NUM_ASC + 1) * Random);
            ch := ((ch - offset) Mod NUM_ASC);
            If ch < 0 Then ch := ch + NUM_ASC;
            ch := ch + MIN_ASC;
            Result:=Result+ Chr(ch);
        end;
    end;
End;

{function GetInspectionManNameFromCode(Code:String):String;
var
    ADODataSetTmp:TADODataSet;
begin
    GetInspectionManNameFromCode:='';
    ADODataSetTmp:=TADODataSet.Create(Nil);
    ADODataSetTmp.CommandType:=cmdText;
    ADODataSetTmp.CursorType:=ctOpenForwardOnly;
    ADODataSetTmp.LockType:=ltReadOnly;
    ADODataSetTmp.CommandText:='select * from InspectionMan where IMCode='+
                                    ''''+Code+'''';
    ADODataSetTmp.Connection:=DataModuleMain.ADOConnectionBarCode;
    ADODataSetTmp.Open;
    ADODataSetTmp.Connection:=Nil;
    if not ADODataSetTmp.Eof then
    GetInspectionManNameFromCode:=ADODataSetTmp.FieldByName('IMName').Value;
    ADODataSetTmp.Close;
    ADODataSetTmp.Free;
end;}

end.

⌨️ 快捷键说明

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