亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? upublic.pas

?? 工商銀行限制了牡丹卡的網(wǎng)上交易功能.催著我們?nèi)ジ鞣中修k領(lǐng)一張網(wǎng)上交易的通行證:口令卡 口令卡確實(shí)是一個好東東,但使用有點(diǎn)不方便.為此,我寫了這個程序--你能將自己的口令保存為一個程序, 在
?? PAS
字號:
unit uPublic;

interface

uses
  Windows, Messages,
  SysUtils, Classes;


type
  TFileRec = record
    FuncName,
    AppName: string[128];
    Charline: string[10];
    Data: array[1..8,1..10] of String[3];
  end;

TFileRecError = class(Exception);


//這些沒有用到:
//begin
  C1 = '!'..'/';
  C2 = ':'..'@';
  C3 = '['..'`';
  C4 = '{'..'~';

  lk = 'a'..'z';
  uk = 'A'..'Z';
  Num = '0'..'9';
//end;

  TCharType = (ctNum,ctDot,ctABC,ctEmpty);

function SaveToFile(const FileName: string; const dt: TFileRec; Add: Boolean = true): Boolean;

Function LoadFormFile(const FileName: string; var dt: TFileRec): Boolean;

Function CheckData(dt: TFileRec; var ErrStr: string): Boolean;

Function GetKeyByFunc(Code: string; Dt: TFileRec): string;

function GetFirstKeyWord(var pos: Integer;var Typ: TCharType; code: string):string;

Function GetKeyType(pos: integer; Code: string):TCharType;

function GetIndexByChar(const dt: TFileRec; const c: Char):integer;

Function GetKeyWord(dt: TFileRec; const c: Char; i: Integer ): string;


implementation

Function GetKeyWord(dt: TFileRec; const c: Char; i: Integer ): string;
var
  j: integer;
begin
  result := '';
  j := GetIndexByChar(dt,c);
  if j <> -1 then
  begin
    if (i >= low(dt.Data)) and (i <= high(dt.Data)) then
      result := dt.Data[i,j];
  end;
end;

Function CheckData(dt: TFileRec; var ErrStr: string): Boolean;
     Function CheckKey(const s: string): boolean;
     var
       i: integer;
     begin
       result := true;
       for i := 1 to 3 do
         if not (s[i] in ['0'..'9']) then
           result := false;
     end;
var
  i,j: integer;
  s: string[3];
begin
  result := Boolean(1);

  if Trim(dt.FuncName) = '' then
  begin
    result := false;
    ErrStr := '函數(shù)名稱出現(xiàn)問題.';
    exit;
  end;

  dt.Charline := LowerCase(dt.Charline);
  for i := 1 to 10 do
    if not (dt.Charline[i] in ['a'..'z']) then
    begin
      result := false;
      ErrStr := '序列字母出現(xiàn)問題.';
      Break;
    end;
  if integer(result) > 0 then
  begin
    for i := Low(dt.data) to High(dt.data) do
      if Result then
        for j := Low(dt.data[i]) to high(dt.data[i]) do
        begin
          s := dt.data[i,j];
          if not CheckKey(s) then
          begin
            ErrStr := '解碼字符出現(xiàn)問題.';
            result := false;
            Break;
          end;
        end;
  end;
end;

Function GetKeyByFunc(Code: string; Dt: TFileRec): string;
var
  len,pos: Integer;
  typ: TCharType;
  s: string;
  Turbo: boolean;
begin
  code := LowerCase(Code);
  pos := 1;
  len := length(code);
  Dt.Charline := LowerCase(dt.Charline);
  dt.FuncName := trim(LowerCase(dt.FuncName));
  Turbo := true;
  s := GetFirstKeyword(pos,typ,Code);
  case typ of
    ctNum,
    ctDot:
    begin
      result := '聲明函數(shù)名稱的字符是錯誤的.';
      exit;
    end;
    ctEmpty:
    begin
      result := '空白的代碼.';
      exit;
    end;
    ctAbc: Turbo := SameText(s,Dt.FuncName);
  end;
  if not turbo then
  begin
    result := '沒有找到匹配的函數(shù)名稱.';
    Exit;
  end;
  s := GetFirstKeyword(pos,typ,Code);
  case typ of
    ctNum,
    ctABC:
    begin
      result := '發(fā)現(xiàn)多余的文本:' + s;
      exit;
    end;
    ctEmpty: result := '代碼異常結(jié)束了.';
    ctDot: TurBo := s = '(';
  end;
  if not Turbo then
  begin
    result := '函數(shù)之后緊跟著的符號是:"(". ';
    exit;
  end;
  s := GetFirstKeyword(pos,typ,Code);
  if typ = ctAbc then
  begin
    while Length(s) < 4 do
    begin
      s := s + GetFirstKeyword(pos,typ,code);
      if (typ = ctdot) or (typ = CtEmpty) then
      begin
        result := '參數(shù)錯誤.';
        Turbo := false;
        Break;
      end;
    end;
  end
  else
    result := '參數(shù)錯誤.';

  if Turbo then
  begin
    if length(s) > 4 then
    begin
      result := '參數(shù)錯誤.';
    end
    else
    if not ((s[1] in ['a'..'z']) and (s[2] in ['0'..'9'])
       and (s[1] in ['a'..'z'])  and (s[2] in ['0'..'9']) ) then
       result := '錯誤的參數(shù):' + s
    else
    begin
      if GetFirstKeyWord(pos,typ,code) <> ')' then
        result :=  '缺少括號 ")".'
      else
      begin
        result := GetKeyWord(dt,s[1],StrToInt(s[2]));
        s := GetKeyWord(dt,s[3],StrToInt(s[4]));

        if (result = '') or (s = '') then
        begin
          Result := '不匹配的參數(shù).';
          exit;
        end
        else result := result + s;
      end;
    end;
  end;

end;

function GetFirstKeyWord(var pos: Integer;var typ: TCharType; code: string):string;
var
  len: integer;
begin
  len := length(code);
  result := '';
  while (pos <= len) and (code[pos] in [#0..#32]) do inc(pos);
  if pos > len then
  begin
    Typ := ctEmpty;
    exit;
  end;
  Typ := GetKeyType(pos,Code);
  if typ = ctABC then
  begin
    result := code[Pos];
    inc(pos);
    while (pos <= len) and (code[pos] in ['A'..'Z','a'..'z','0'..'9']) do
    begin
      result := result + code[pos];
      inc(pos);
    end;
  end
  else
  if Typ = ctnum then
  begin
    result := code[Pos];
    Inc(pos);
    while (pos <= len) and (code[pos] in ['0'..'9']) do
    begin
      result := result + code[pos];
      inc(pos);
    end;
  end
  else
  if typ = ctdot then
  begin
    result := code[pos];
    inc(pos);
  end;
end;

Function GetKeyType(pos: integer; Code: string):TCharType;
begin
  result := ctEmpty;
  if (pos > 0) and (pos <= length(code)) then
  begin
    if Code[pos] in ['a'..'z','A'..'Z'] then
      result := ctABC
    else
    if code[pos] in ['0'..'9'] then
       Result := ctNum
    else
    if (Code[pos] in ['!'..'/']) or
      (Code[pos] in [':'..'@']) or
      (Code[pos] in ['['..'`']) or
      (Code[pos] in ['{'..'~']) then
      result := ctdot;
  end;
end;

function GetIndexByChar(const dt: TFileRec; const c: Char):integer;
var
  i: integer;
begin
  result := -1;
  for i := 1 to 10 do
   if dt.Charline[i] = c then
   begin
     result := i;
     Break;
   end;
end;

Function LoadFormFile(const FileName: string; var dt: TFileRec): Boolean;
var
  Stream: TStream;
begin
  result := boolean(0);
  if fileExists(FileName) then
  begin
    Stream := TFileStream.Create(FileName, fmOpenRead or fmShareDenyWrite);
    try
      if Stream.Size >= sizeof(dt) then
      begin
        Stream.Position := Stream.size - sizeof(dt);
        stream.Read(dt,sizeof(dt));
        result := true;
      end;
    finally
      Stream.Free;
    end;
  end;
end;

function SaveToFile(const FileName: string; const dt: TFileRec; Add: Boolean = true): Boolean;
var
  Stream: TStream;
  res: TResourceStream;
begin
  result := boolean(0);
  Stream := TMemoryStream.Create;
  try

    res := TResourceStream.Create(HInstance,'ICBC','I_C_B_C');
    try
      TMemoryStream(Stream).LoadFromStream(res);
    finally res.Free; end;

    if add then
      Stream.Size := stream.Size + sizeof(dt);
    if Stream.Size >= sizeof(dt) then
    begin
      Stream.Position := Stream.size - sizeof(dt);
      stream.write(dt,sizeof(dt));
      TMemoryStream(Stream).SaveToFile(Filename);
      result := true;
    end;
  finally
    Stream.Free;
  end;
end;

end.

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久99深爱久久99精品| 制服丝袜亚洲色图| www.成人在线| 亚洲视频精选在线| 3d动漫精品啪啪1区2区免费| 午夜精品福利一区二区蜜股av| 日韩欧美一级二级三级| jlzzjlzz亚洲日本少妇| 久久奇米777| 精品无人码麻豆乱码1区2区| 欧美精品第1页| 午夜电影网一区| 欧美日韩视频在线一区二区| 亚洲一区二区三区美女| 精品午夜久久福利影院| 国产99久久久久久免费看农村| 51精品国自产在线| 午夜天堂影视香蕉久久| 欧美一区二区视频观看视频| 蜜桃久久久久久| 久久免费美女视频| 色噜噜夜夜夜综合网| 亚洲国产精品久久久久秋霞影院 | 成人在线一区二区三区| 国产欧美日韩另类视频免费观看| 成人午夜在线播放| 久久理论电影网| 成人福利视频在线| 国产91精品露脸国语对白| 欧美激情一区二区在线| 91蝌蚪porny| 五月天精品一区二区三区| 色婷婷av一区二区三区大白胸| 亚洲一区二区三区四区中文字幕| 欧美日韩精品一区二区三区 | 欧美精品v日韩精品v韩国精品v| 五月激情丁香一区二区三区| 久久毛片高清国产| 91蜜桃婷婷狠狠久久综合9色| 国产成人一区二区精品非洲| 欧美日产国产精品| 奇米亚洲午夜久久精品| 激情欧美一区二区三区在线观看| 成人理论电影网| 91麻豆精品国产91久久久久久| 久久久久综合网| 青青草国产精品亚洲专区无| 欧美日韩国产大片| 日韩视频一区二区| 欧美一区二区视频免费观看| 国产精品久久综合| 在线中文字幕不卡| 激情图片小说一区| 一个色在线综合| 久久丝袜美腿综合| 欧美女孩性生活视频| 国产成a人亚洲精| 亚洲一区二区三区自拍| 久久精品这里都是精品| 欧美日韩成人一区| 国产a精品视频| 九九国产精品视频| 亚洲电影一区二区三区| 国产三级精品三级| 欧美一级日韩不卡播放免费| 一本到一区二区三区| 国内一区二区在线| 五月婷婷综合网| 亚洲精品欧美在线| 91精品国产欧美日韩| 91成人在线观看喷潮| 高清视频一区二区| 精品亚洲成av人在线观看| 亚洲成av人影院| 一区二区三区波多野结衣在线观看 | 波多野结衣一区二区三区 | 精品美女在线播放| 欧美日本免费一区二区三区| 色综合久久中文综合久久牛| 国产剧情在线观看一区二区| 五月激情综合色| 中文字幕乱码一区二区免费| 精品国产凹凸成av人网站| 91精品国产综合久久婷婷香蕉 | 99re6这里只有精品视频在线观看| 天天综合天天做天天综合| 欧美三级视频在线| 国产日韩精品一区二区三区| 国产中文一区二区三区| 午夜精品成人在线视频| 日韩精品三区四区| 一区二区三区在线视频观看58| 久久久精品人体av艺术| 久久综合狠狠综合久久激情| 久久久久久久久久久黄色| 精品免费视频.| 国产欧美一区二区三区在线看蜜臀 | 国产精品国产三级国产普通话三级| www一区二区| 亚洲欧美色图小说| 亚洲mv大片欧洲mv大片精品| 欧美aa在线视频| 国产九色sp调教91| 成人在线一区二区三区| 欧美在线免费观看视频| 日韩视频一区在线观看| 国产精品卡一卡二| 日韩av高清在线观看| 成人高清在线视频| 91精品国产色综合久久ai换脸| 久久精品亚洲麻豆av一区二区 | 日本黄色一区二区| 欧美大片日本大片免费观看| 国产精品嫩草99a| 久久精品国产99| 欧美日韩国产综合视频在线观看| 国产欧美日韩在线| 免费成人在线播放| 欧美午夜一区二区三区| 一个色妞综合视频在线观看| 亚洲成人免费看| 国产精品一区二区果冻传媒| 久久精品一区蜜桃臀影院| 91麻豆精品在线观看| 午夜视频久久久久久| 久久综合给合久久狠狠狠97色69| 国产在线视视频有精品| 一区二区中文字幕在线| 欧美日韩成人高清| 国产精品羞羞答答xxdd| 欧美a级理论片| 国产精品素人视频| 成人一级片在线观看| 91精品福利在线| 日韩欧美久久久| 亚洲精品大片www| 久久99精品国产麻豆婷婷洗澡| 不卡大黄网站免费看| 欧美日韩电影在线播放| 中文字幕在线一区免费| 日本在线不卡一区| 国产电影一区二区三区| 欧美区一区二区三区| 国产蜜臀av在线一区二区三区| 天天av天天翘天天综合网色鬼国产 | 国产精品免费视频一区| 欧美伊人久久久久久久久影院| 天天综合色天天| 国产欧美日韩精品a在线观看| 色域天天综合网| 国产伦精品一区二区三区在线观看| 国产午夜精品一区二区三区四区| 69堂成人精品免费视频| 激情另类小说区图片区视频区| 国产精品久久久久婷婷二区次| 欧美日韩在线播放一区| 国产一区不卡视频| 日韩精品一二三| 亚洲影院免费观看| 欧美极品另类videosde| 日韩欧美亚洲国产精品字幕久久久 | 91免费看视频| 成年人午夜久久久| 全部av―极品视觉盛宴亚洲| 亚洲综合免费观看高清完整版在线 | 欧美一级夜夜爽| 亚洲少妇最新在线视频| 国产在线播放一区三区四| 777久久久精品| 国产很黄免费观看久久| 国产精品视频一区二区三区不卡| 亚洲一二三四区不卡| 色婷婷综合激情| 亚洲成av人影院| 欧美一区二区二区| 国产999精品久久久久久| 国产精品毛片a∨一区二区三区| youjizz久久| 亚洲一区二区三区四区在线 | 国产欧美精品在线观看| 91女厕偷拍女厕偷拍高清| 一区二区三区小说| 欧美精品 日韩| 国产一区二区在线影院| 自拍偷在线精品自拍偷无码专区 | 337p亚洲精品色噜噜噜| 国精产品一区一区三区mba视频| 亚洲欧美中日韩| 欧美精品 国产精品| 成人一区二区三区视频在线观看| 一区2区3区在线看| 久久久蜜臀国产一区二区| 欧美综合天天夜夜久久| 久久精品噜噜噜成人88aⅴ| 亚洲男人的天堂在线aⅴ视频| 日韩视频免费观看高清完整版 | 欧美日韩午夜精品| 国产精品中文欧美| 青青草国产精品亚洲专区无| 国产精品欧美一区喷水|