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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? archiveeditunit.pas

?? 游戲克星江湖行游戲修改工具全部源碼,功能很強的。
?? PAS
?? 第 1 頁 / 共 4 頁
字號:
{

name:(1999.12.1 -jhx1)
			江湖行 II jhx2 
			2002.10.13 renamed to 'GamePaladin II'
CopyRight:XuGanQuan  gqxunet#163.com 
Description:A game cheat tool

This program is free software; you can redistribute it       and/or modify it under the terms of the GNU General Public    License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later     version.                                                                                                                  This program is distributed in the hope that it will be      useful, but WITHOUT ANY WARRANTY; without even the implied    warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR      PURPOSE.  See the GNU General Public License for more        details.                                                                                                                    You should have received a copy of the GNU General Public    License along with this program; if not, write to the Free    Software Foundation, Inc.,                                    675 Mass Ave, Cambridge, MA 02139, USA.      
}
unit ArchiveEditUnit;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Gauges, ComCtrls, ToolWin, StdCtrls, Buttons, ExtCtrls,ChildFormUnit,
  ImgList, Menus;
resourcestring
String_Filenotask='沒有文件搜索任務,請新建加入;';
String_Filenoresult='搜索次數: 0 , 找到數目:0  ';
String_FileScanResult='搜索次數:%d , 找到數目:%d ';
String_FileInScan='當前的文件搜索任務正在進行,請等待.';
String_FileInScanTitle='文件搜索任務進行信息';
String_InvalidInput='無效的輸入數據,請檢查.';
String_Addtask='還沒有文件搜索任務 ,是否現在創建?';
String_Addtasktitle='沒有文件搜索任務信息';
String_InScan='當前的任務正在進行,請等待.';
String_InScanTitle='任務進行信息';
String_FileTaskinvalid='對應的存檔文件不存在.  ';
String_FileTypeNoMatch='輸入的類型不匹配上次類型(高階/低階),'+
                        '你想進行新類型的搜索嗎?';
String_FileTypeNoMatchTitle='輸入的類型不匹配信息';
String_FileAskRepeatInitLowLevelTitle='文件低階搜索重復初始化信息';
String_FileAskRepeatInitLowLevel='已經進行了初始化文件的低階搜索,'#13#10+
                         '是否再次初始化?';
String_FileNoResultAgainTitle='無結果信息';
String_FileNoResultAgain='抱歉,找不到任何匹配的地址,是否再次搜索?';
String_InvalidByte='%s 不是合法的 Byte 類型數據,請檢查';
String_InvalidWord='%s 不是合法的 Word 類型數據,請檢查';
String_InvalidDword='%s 不是合法的 Dword 類型數據,請檢查';
String_InvalidInt64='%s 不是合法的 Int64 類型數據,請檢查k';
String_InvalidSingle='%s 不是合法的 Single 類型數據,請檢查';
String_InvalidDouble='%s 不是合法的 Double 類型數據,請檢查';
String_InvalidString='%s 不是合法的 Text 類型數據,請檢查';
String_FileTaskResult='任務: %s '#13#10'找到 %d 個地址,'#13#10'用時 %f 秒.';
String_FileTaskResultTitle='搜索結果';
String_FileInitialLowLevel='文件搜索任務:%s'#13#10'低階搜索初始化完成.';


type
  TArchiveEditForm = class(TChildForm)
    temp_Panel1: TPanel;
    ToolBar1: TToolBar;
    AddFIle_TB: TToolButton;
    delFile_tb: TToolButton;
    Filetasks_LV: TListView;
    Splitter1: TSplitter;
    Panel1: TPanel;
    Splitter2: TSplitter;
    Panel2: TPanel;
    Scan_bn: TSpeedButton;
    EditFile_Sb: TSpeedButton;
    InputHelp_SB: TSpeedButton;
    Value_Edit: TEdit;
    VarType_CB: TComboBox;
    Panel3: TPanel;
    File_Info_SearchResult_LB: TLabel;
    File_info_Name_LB: TLabel;
    Edit_LV: TListView;
    Found_LV: TListView;
    Panel4: TPanel;
    Scan_Gauge: TGauge;
    ImageList1: TImageList;
    DisplayFileScanProcess: TTimer;
    PopupMenu1: TPopupMenu;
    delFiletask_menu: TMenuItem;
    N1: TMenuItem;
    ClearFileTask_menu: TMenuItem;
    PopupMenu2: TPopupMenu;
    PopupMenu3: TPopupMenu;
    Addtolists: TMenuItem;
    N2: TMenuItem;
    EditAddress: TMenuItem;
    DeleteFileEditAddress: TMenuItem;
    ClearAllAddress: TMenuItem;
    N4: TMenuItem;
    ModifyFileEdit: TMenuItem;
    EditFileAddress: TMenuItem;
    StaticText1: TStaticText;
    procedure AddFIle_TBClick(Sender: TObject);
    procedure delFile_tbClick(Sender: TObject);
    procedure Filetasks_LVEdited(Sender: TObject; Item: TListItem;
      var S: String);
    procedure Filetasks_LVClick(Sender: TObject);
    procedure Scan_bnClick(Sender: TObject);
    procedure DisplayFileScanProcessTimer(Sender: TObject);
    procedure InputHelp_SBClick(Sender: TObject);
    procedure Value_EditKeyPress(Sender: TObject; var Key: Char);
    procedure VarType_CBChange(Sender: TObject);
    procedure ClearFileTask_menuClick(Sender: TObject);
    procedure Found_LVDblClick(Sender: TObject);
    procedure Found_LVMouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure EditFile_SbClick(Sender: TObject);
    procedure EditAddressClick(Sender: TObject);
    procedure DeleteFileEditAddressClick(Sender: TObject);
    procedure ClearAllAddressClick(Sender: TObject);
    procedure ModifyFileEditClick(Sender: TObject);
    procedure Edit_LVMouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure EditFileAddressClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
    procedure InitFiletask(theID:Integer);
    function checkandGetFileSize(FileName:string):Dword;
    Procedure AddTasktoList(theIndex:integer);
    Procedure UpdateTaskInfo(theIndex:integer);
    Procedure AddFoundToListView(theIndex:integer);
    Procedure RaiseInputError;
    function AnalyseScan(theIndex:Integer):integer;
    function CheckForScan:boolean;

    function ReadFileData(theFileName:String;theAddress:Dword;Valuetype:integer):string;
  end;

Type
TFileFirstScanThread=class(TThread)
 private
   TheTaskIndex:integer;
 protected
 procedure Execute; override;
 public
  constructor Create(theIndex:Integer);
end;

type
TFileNextScanThread=class(TThread)
 private
   TheTaskIndex:integer;
 protected
 procedure Execute; override;
 public
 constructor Create(theIndex:Integer);
end;

const
  Auto_value=0;
  Byte_value=1;
  word_value=2;
  Dword_value=3;
  int64_value=4;
  Single_value=5;
  Double_Value=6;
  String_Value=7;

  CommonLevel_Value=10;
  Number_Scan = 101;
  String_Scan=102;
  

  LowLevel_Value=20;
  InitialLowLevel_Scan =201;
  Increased_Scan =202;
  Decreased_Scan = 203;
  Changed_Scan = 204;
  Unchanged_Scan = 205;
const Max_FileTaskNUm=255;

type
  TFiletask=record
  Applyed:Boolean;                       ///占用
  name:String;
  index:integer;
  FilepathName:String;
  ScanType:integer;            //Number_Scan:=  ]
  OldScanType:integer;
  VarType:integer;            //選擇某一類型后,實際搜索類型auto
  OldVarType:integer;
  ScanValue:string;
  TotalProcess:Dword;                   ///應掃描總的地指數
  NowProcess:Dword;                    ////掃描數量
  InSearchProcess:Boolean;               ///是否正在掃描,防止多次點擊
  SearchTimes:DWORD;                   //掃描次數
  AttachedNum:DWORD;
  SaveFileName:String;                  ///存檔文件最新備份
  AddressMemStream:TMemoryStream;         //幾下每個符合的地址
end;

var theFileTask:array[1..Max_FileTaskNUm]of TFiletask;
    CurrentFileTaskIndex:Integer;
    ListToFileTaskIndex:array[1..Max_FileTaskNUm] of Integer; //listview 對應任務Index
    FileTaskNUm:Integer=0;  ///任務個數
    ErrorInputNum:BYTE;
    CanUpdateFileTask:Integer=-999; ///防止更新閃爍,



var
  ArchiveEditForm: TArchiveEditForm;

implementation

uses AddFileTaskUnit, InputhelpUnit, FileRecordUnit, FileEditUnit;

{$R *.dfm}
////
function TArchiveEditForm.checkAndGetFileSize(FileName:string):Dword;
var FHandle:Integer;
    TempSize:Int64;
begin
result:=0;
  if not FileExists(FileName)  then
  begin
   showmessage(format(string_NotExists,[FileName]));
   exit;
  end;
  FHandle := FileOpen(FileName, fmOpenWrite or fmShareDenyNone);
  try
   begin
  if (FHandle<0) then
  begin
   showmessage(format(string_cannotopen,[FileName]));
   exit;
  end;
  TempSize:=GetFileSize(FHandle,nil);
  if (TempSize=0) or (TempSize>=$4000000) then
  begin
   showmessage(format(String_InvalidFile,[FileName]));
   exit;
  end else   result:=Tempsize;
    end;
  finally
      FileClose(FHandle);
  end;
end;
//////////////初始化任務//////////////////////////////////
procedure TArchiveEditForm.InitFiletask(theID:Integer);
begin
with theFileTask[theId] do
begin
    Applyed:=True;
    name:='';
    //index:integer;
    FilepathName:='';
    ScanType:=Number_Scan;            //Number_Scan:=  ]
    OldScanType:=ScanType;
    VarType:=Auto_value;            //選擇某一類型后,實際搜索類型auto
    OldVarType:=Auto_value;
    ScanValue:='';
    TotalProcess:=0;
    NowProcess:=0;
    SearchTimes:=0;
    AttachedNum:=0;
    InSearchProcess:=False;
    SaveFileName:='';
    if Assigned(AddressmemStream)then
       AddressMemStream.SetSize(0) else
       AddressMemStream:=TmemoryStream.Create;
end;
end;


Procedure TArchiveEditForm.AddTasktoList(theIndex:integer);
begin
  with FileTasks_LV.Items.Add do
   begin
   Caption:=theFileTask[theIndex].Name;
   end;
end;

Procedure TArchiveEditForm.UpdateTaskInfo(theIndex:integer);
begin
if FiletaskNum=0 then
begin
  File_info_Name_LB.Caption:=String_Filenotask;
  File_Info_SearchResult_LB.Caption:=String_Filenoresult;
  Found_lv.Clear;
end else
begin
  With theFileTask[theIndex] do
   begin
   File_info_Name_LB.Caption:=Name;
   File_Info_SearchResult_LB.Caption:=Format(String_FileScanResult,[SearchTimes,AttachedNum]);
   end;

end;
end;
///////////////////////////////////
//////////根據輸入的值判斷scantype//////////////////////////////////////////////////
Function GetScanTypeAndTempVar(InputValue:String;theFiletaskIndex:integer):Integer;
var Len:integer;
begin
Result:=-999;
with theFiletask[theFiletaskIndex] do
begin

Len:=length(inputValue);
      if InputValue=''     then
      Exit
else  if inputvalue[1]='?' then
      begin
      VarType:=LowLevel_value;
      Result:=InitialLowLevel_Scan;
      end
else  if InputValue[1]='!' then
      begin
      VarType:=LowLevel_value;
      Result:=Changed_Scan;
      end
else  if InputValue[1]='=' then
      begin
      VarType:=LowLevel_value;
      Result:=UnChanged_Scan;
      end
else  if InputValue[1]='+' then
      begin
      VarType:=LowLevel_value;
      Result:=Increased_scan;
      end
else  if InputValue[1]='-' then
      begin
      VarType:=LowLevel_value;
      Result:=Decreased_scan ;
      end      
else if (
           ((Len>2)   and ( Len<255) )                         and
           (
           ((InputValue[1]='"')   and (InputValue[Len]='"'))    or
           ((InputValue[1]='''') and (InputValue[Len]=''''))
           )

        )
      then
      begin
      ScanValue:=Copy(inputValue,2,Len-2);
      VarType:=CommonLevel_value;
      Result:=String_Scan;
      end
else  begin
      ScanValue:=inputValue;
      /////Vartype必須考慮Combobox的選擇
      Result:=Number_Scan;
      end;
end; ///with end;

end;
//////////////////////////////////////////////////////////////////
/////////////hex to int///////////////////////////////////////////////////////////////////////////////
Function  HexIntChange(inStr:string):String;
var Len:integer;
    TempString:String;
begin
Len:=Length(inStr);
if (Len>2) and ( UpperCase(instr[1])+UpperCase(instr[2])='0X' )then
begin
TempString:='$'+Copy(Instr,3,Len-2);
try
Result:=inttoStr(Strtoint(TempString));
except
showmessage(String_InvalidInput);
end;
Exit;
end;

if (Len>1) and (instr[1]='$') then
begin
try
Result:=inttoStr(Strtoint(instr));
except
showmessage(String_InvalidInput);
end;
Exit;
end;

result:=instr;

end;
////////////根據輸入值判斷輸出可用///////////////////////////////////////////////////////
Function  GetVarTypeAndVarValue(InputValue:String;theFileTaskIndex:integer):Integer;
var ByteTemp:Byte;
    WordTemp:word;
    DwordTemp:Dword;
    Int64Temp:int64;
    SingleTemp:Single;
    DoubleTemp:Double;
    ECode:integer;
begin
Result:=-999; //error value
with theFileTask[theFileTaskIndex] do
begin

   if (ScanType<>Number_Scan) and (ScanType<>String_Scan) then
   begin
   Result:=LowLevel_value;
   Exit;
   end;
   
   if (ScanType=String_Scan) then
   begin
   ScanValue:=inputvalue;
   Result:=CommonLevel_value;
   Exit;
   end;


  if ScanType=Number_Scan then
  begin

  if (VarType=Auto_value) then
     begin
//is integer
      if pos('.',inputValue)=0 then
          try
          begin
          inputValue:=HexIntChange(inputValue);
          val(inputvalue,int64Temp,Ecode);
          if Ecode>0 then Exit;
          ScanValue:=inputValue;
             if (int64Temp shr 8)=0 then Result:=Byte_value
             else if (int64Temp shr 16)=0 then Result:=Word_value
             else if (int64Temp shr 32)=0 then Result:=DWord_value
             else if (int64Temp shr 64)=0 then Result:=Int64_value
            else Result:=Int64_value;
           exit;
          end;
          except
          Exit;
          end;

       //is float
      if pos('.',inputValue)>0 then
      try
      begin
         val(inputValue,DoubleTemp,Ecode);
         if Ecode>0 then Exit;
         ScanValue:=inputValue;
         if ( DoubleTemp-Exp(ln(2)*128)>0 ) or ( DoubleTemp-Exp(ln(2)*(-126))<0) then
         Result:=Double_value else
         Result:=single_value;
         exit;
     end;
     except
     exit;
     end;

     end///Auto_value
     else
     begin

    case VarType of
    Byte_value:  begin
             val(InputValue,ByteTemp,Ecode);
             if Ecode<>0 then Exit else
             begin
             ScanValue:=InputValue;
             Result:=Byte_value;
             end;
                end;
    Word_value:  begin
             val(InputValue,WordTemp,Ecode);
             if Ecode<>0 then Exit else
             begin
             ScanValue:=InputValue;
             Result:=Word_value;
             end;
                end;
    Dword_value: begin
             val(InputValue,DwordTemp,Ecode);
             if Ecode<>0 then Exit else
             begin
             ScanValue:=InputValue;
             Result:=DWord_value;
             end;
             end;
    Int64_value: begin
             val(InputValue,int64Temp,Ecode);
             if Ecode<>0 then Exit else
             begin
             ScanValue:=InputValue;
             Result:=Int64_value;
             end;
                 end;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91女厕偷拍女厕偷拍高清| 国产精品三级电影| 日本一区二区三区电影| 亚洲一区在线观看免费观看电影高清| 蜜臀av一区二区| 在线视频综合导航| 国产精品无码永久免费888| 首页国产欧美久久| 91麻豆国产自产在线观看| 精品理论电影在线观看 | 欧美xxxxx牲另类人与| 亚洲视频在线一区观看| 国产成人亚洲精品青草天美| 日韩欧美一区二区视频| 一区二区三区 在线观看视频| 国产精选一区二区三区| 91精品国产入口在线| 亚洲国产精品欧美一二99| 一本一道久久a久久精品| 国产精品人人做人人爽人人添| 狂野欧美性猛交blacked| 欧美精品乱人伦久久久久久| 一区二区三区四区在线播放| 北条麻妃一区二区三区| 欧美极品xxx| 福利一区福利二区| 国产日韩欧美精品电影三级在线| 久久99久久99| 欧美成人精品二区三区99精品| 视频一区视频二区中文| 欧美日韩国产综合一区二区| 亚洲一区在线看| 欧美天堂一区二区三区| 亚洲一区二区三区视频在线| 欧美日韩一区二区三区在线看 | 日本一区二区三区视频视频| 国产精品一卡二卡| 久久精品人人爽人人爽| 国产在线播放一区| 久久久久久久综合日本| 国产suv精品一区二区三区| 国产亚洲精品超碰| 91亚洲国产成人精品一区二区三| 综合激情成人伊人| 在线视频中文字幕一区二区| 午夜久久久久久| 日韩午夜激情电影| 国产一区二区三区av电影| 国产精品理论片| 在线一区二区视频| 日韩中文欧美在线| 久久影音资源网| 91原创在线视频| 亚洲国产wwwccc36天堂| 日韩一区二区三区av| 国产裸体歌舞团一区二区| 国产女同性恋一区二区| 色噜噜狠狠成人网p站| 亚洲成人免费看| 久久久国产精品午夜一区ai换脸| 成人动漫一区二区在线| 亚洲一区二区三区国产| 精品欧美乱码久久久久久1区2区| 国产精品一区二区在线观看网站| 国产精品久久久久久久久搜平片| 日本精品一级二级| 国内精品国产成人| 亚洲男人电影天堂| 欧美tk—视频vk| 91在线观看免费视频| 亚洲aⅴ怡春院| 国产精品美女久久久久久久久久久 | 日韩黄色一级片| 国产精品久久一级| 91精品国产高清一区二区三区 | 欧洲亚洲精品在线| 精品制服美女久久| 亚洲精品国产无天堂网2021| 欧美成人精品二区三区99精品| 97se亚洲国产综合在线| 青草av.久久免费一区| 亚洲人妖av一区二区| 日韩视频在线你懂得| 日本道色综合久久| 国产精品1024久久| 日本va欧美va欧美va精品| 亚洲另类中文字| 日本一区二区综合亚洲| 欧美一级黄色大片| 在线视频国内自拍亚洲视频| 国产精品乡下勾搭老头1| 日日夜夜精品视频免费| 一区二区视频在线| 国产精品伦理在线| 精品成人佐山爱一区二区| 欧美日韩一级片网站| eeuss影院一区二区三区| 韩国精品在线观看| 偷拍一区二区三区| 亚洲一区二区在线播放相泽| 中文字幕一区二区三区在线不卡 | 国产一区二区精品久久| 日日摸夜夜添夜夜添亚洲女人| 亚洲精品国产成人久久av盗摄| 国产欧美精品区一区二区三区| 精品美女在线播放| 日韩精品一区二区在线观看| 欧美日韩的一区二区| 在线免费亚洲电影| 91国在线观看| 欧美视频在线一区二区三区 | 亚洲在线中文字幕| 一区二区三区在线观看网站| 国产精品丝袜一区| 中文字幕 久热精品 视频在线| 国产欧美一区二区精品性色| 国产三级欧美三级日产三级99 | 3d动漫精品啪啪1区2区免费| 在线免费观看成人短视频| 日本韩国精品在线| 欧洲亚洲精品在线| 717成人午夜免费福利电影| 欧美日韩精品欧美日韩精品一| 欧美日韩电影在线播放| 欧美男生操女生| 欧美成人video| 国产欧美日韩亚州综合| 国产精品电影院| 亚洲一级在线观看| 青椒成人免费视频| 国产伦精品一区二区三区免费| 国产精品一区二区在线观看不卡| 国产精品夜夜嗨| 96av麻豆蜜桃一区二区| 欧美视频在线一区二区三区 | 精品视频在线视频| 欧美丰满嫩嫩电影| 精品国产一区二区三区久久影院| 亚洲国产另类av| 日韩电影在线免费| 国产精品一区二区久久不卡| 北条麻妃国产九九精品视频| 欧美亚洲日本一区| 精品久久五月天| 成人欧美一区二区三区黑人麻豆| 一区二区三区不卡视频在线观看| 舔着乳尖日韩一区| 风间由美一区二区三区在线观看| 色婷婷综合激情| 欧美mv和日韩mv国产网站| 中文字幕在线一区| 午夜精品一区二区三区免费视频 | 日日夜夜精品视频免费| 国产精品影视网| 欧美三级午夜理伦三级中视频| 日韩免费电影网站| 亚洲激情自拍视频| 国产在线精品国自产拍免费| 色视频一区二区| 久久精品男人的天堂| 亚洲乱码日产精品bd| 精久久久久久久久久久| 日本高清不卡视频| 久久精品夜色噜噜亚洲a∨| 亚洲国产精品欧美一二99| 国产白丝精品91爽爽久久| 欧美一区二区三区四区久久| 亚洲免费在线观看视频| 韩国理伦片一区二区三区在线播放| 色偷偷一区二区三区| 国产日韩欧美精品一区| 看电视剧不卡顿的网站| 91黄视频在线观看| 国产精品理伦片| 国产黄色精品网站| 精品福利在线导航| 免费不卡在线视频| 欧美日韩国产一区| 亚洲资源中文字幕| 99精品欧美一区二区三区综合在线| 精品日韩欧美一区二区| 婷婷国产在线综合| 欧美性受xxxx| 亚洲欧美一区二区三区久本道91| 国产精品亚洲一区二区三区妖精 | 亚洲色图一区二区| 粉嫩av一区二区三区在线播放| 欧美成人福利视频| 裸体一区二区三区| 日韩欧美中文一区二区| 日韩av电影免费观看高清完整版 | 亚洲高清免费在线| 欧美亚洲禁片免费| 亚洲精品成a人| 91小视频在线| 亚洲女同一区二区| 色www精品视频在线观看| 亚洲欧美国产77777| 99国产精品国产精品久久| 国产精品久久久久精k8|