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

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

?? archiveeditunit.pas

?? 游戲修改工具(內(nèi)存高低階
?? PAS
?? 第 1 頁(yè) / 共 4 頁(yè)
字號(hào):
{

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='沒有文件搜索任務(wù),請(qǐng)新建加入;';
String_Filenoresult='搜索次數(shù): 0 , 找到數(shù)目:0  ';
String_FileScanResult='搜索次數(shù):%d , 找到數(shù)目:%d ';
String_FileInScan='當(dāng)前的文件搜索任務(wù)正在進(jìn)行,請(qǐng)等待.';
String_FileInScanTitle='文件搜索任務(wù)進(jìn)行信息';
String_InvalidInput='無(wú)效的輸入數(shù)據(jù),請(qǐng)檢查.';
String_Addtask='還沒有文件搜索任務(wù) ,是否現(xiàn)在創(chuàng)建?';
String_Addtasktitle='沒有文件搜索任務(wù)信息';
String_InScan='當(dāng)前的任務(wù)正在進(jìn)行,請(qǐng)等待.';
String_InScanTitle='任務(wù)進(jìn)行信息';
String_FileTaskinvalid='對(duì)應(yīng)的存檔文件不存在.  ';
String_FileTypeNoMatch='輸入的類型不匹配上次類型(高階/低階),'+
                        '你想進(jìn)行新類型的搜索嗎?';
String_FileTypeNoMatchTitle='輸入的類型不匹配信息';
String_FileAskRepeatInitLowLevelTitle='文件低階搜索重復(fù)初始化信息';
String_FileAskRepeatInitLowLevel='已經(jīng)進(jìn)行了初始化文件的低階搜索,'#13#10+
                         '是否再次初始化?';
String_FileNoResultAgainTitle='無(wú)結(jié)果信息';
String_FileNoResultAgain='抱歉,找不到任何匹配的地址,是否再次搜索?';
String_InvalidByte='%s 不是合法的 Byte 類型數(shù)據(jù),請(qǐng)檢查';
String_InvalidWord='%s 不是合法的 Word 類型數(shù)據(jù),請(qǐng)檢查';
String_InvalidDword='%s 不是合法的 Dword 類型數(shù)據(jù),請(qǐng)檢查';
String_InvalidInt64='%s 不是合法的 Int64 類型數(shù)據(jù),請(qǐng)檢查k';
String_InvalidSingle='%s 不是合法的 Single 類型數(shù)據(jù),請(qǐng)檢查';
String_InvalidDouble='%s 不是合法的 Double 類型數(shù)據(jù),請(qǐng)檢查';
String_InvalidString='%s 不是合法的 Text 類型數(shù)據(jù),請(qǐng)檢查';
String_FileTaskResult='任務(wù): %s '#13#10'找到 %d 個(gè)地址,'#13#10'用時(shí) %f 秒.';
String_FileTaskResultTitle='搜索結(jié)果';
String_FileInitialLowLevel='文件搜索任務(wù):%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;            //選擇某一類型后,實(shí)際搜索類型auto
  OldVarType:integer;
  ScanValue:string;
  TotalProcess:Dword;                   ///應(yīng)掃描總的地指數(shù)
  NowProcess:Dword;                    ////掃描數(shù)量
  InSearchProcess:Boolean;               ///是否正在掃描,防止多次點(diǎn)擊
  SearchTimes:DWORD;                   //掃描次數(shù)
  AttachedNum:DWORD;
  SaveFileName:String;                  ///存檔文件最新備份
  AddressMemStream:TMemoryStream;         //幾下每個(gè)符合的地址
end;

var theFileTask:array[1..Max_FileTaskNUm]of TFiletask;
    CurrentFileTaskIndex:Integer;
    ListToFileTaskIndex:array[1..Max_FileTaskNUm] of Integer; //listview 對(duì)應(yīng)任務(wù)Index
    FileTaskNUm:Integer=0;  ///任務(wù)個(gè)數(shù)
    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;
//////////////初始化任務(wù)//////////////////////////////////
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;            //選擇某一類型后,實(shí)際搜索類型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;
///////////////////////////////////
//////////根據(jù)輸入的值判斷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;
////////////根據(jù)輸入值判斷輸出可用///////////////////////////////////////////////////////
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;

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
福利一区二区在线观看| 一区二区三区国产精华| 极品销魂美女一区二区三区| 欧美精品一区二区不卡| 国产在线日韩欧美| 久久久久99精品一区| 成人动漫精品一区二区| 自拍偷拍亚洲欧美日韩| 一本色道久久综合亚洲91 | www.成人在线| 国产清纯在线一区二区www| 国产精品一级片| 国产精品色婷婷久久58| 成人动漫一区二区| 亚洲国产一区二区视频| 日韩一区二区三| 国产一区在线观看视频| 国产精品久久久久久久岛一牛影视| 成人免费av网站| 亚洲自拍都市欧美小说| 精品裸体舞一区二区三区| 成人性生交大片免费看在线播放| 亚洲欧美怡红院| 欧美色偷偷大香| 国产毛片精品一区| 亚洲免费观看高清完整版在线| 欧美乱熟臀69xxxxxx| 国产成人三级在线观看| 亚洲一区二区三区四区在线免费观看| 欧美一卡二卡三卡四卡| 大陆成人av片| 国产一区二区三区国产| 久久在线观看免费| 一本大道久久精品懂色aⅴ | 亚洲综合av网| 精品国产91乱码一区二区三区| 成人高清免费在线播放| 日本一道高清亚洲日美韩| 国产精品日产欧美久久久久| 欧美一区二区三区免费大片 | 9l国产精品久久久久麻豆| 亚洲一区在线观看免费| 久久久久久免费| 91麻豆精品国产91久久久资源速度| 国产成人亚洲综合a∨婷婷| 日日夜夜一区二区| 亚洲乱码中文字幕综合| 欧美国产视频在线| 亚洲精品一区二区在线观看| 欧美午夜在线观看| 99视频有精品| 国产在线精品免费av| 日日夜夜精品视频免费 | 亚洲第一搞黄网站| 国产精品午夜春色av| 精品精品国产高清a毛片牛牛| 欧美日韩亚洲综合在线 欧美亚洲特黄一级| 国产精品一区二区视频| 日本va欧美va瓶| 亚洲亚洲人成综合网络| 亚洲人成精品久久久久| 国产视频一区二区在线| 精品国产电影一区二区| 666欧美在线视频| 欧美亚洲愉拍一区二区| 91在线丨porny丨国产| 不卡的av电影| 成人性生交大片免费看在线播放| 国产一区二区三区精品视频| 免费亚洲电影在线| 三级精品在线观看| 日韩精品成人一区二区三区| 亚洲成人手机在线| 亚洲午夜精品17c| 亚洲综合成人在线| 亚洲在线视频免费观看| 亚洲资源中文字幕| 亚洲在线观看免费视频| 一区二区三区精品在线| 亚洲精品国产精品乱码不99| 亚洲欧洲中文日韩久久av乱码| 国产精品久久久久天堂| 中文字幕第一区| 亚洲欧美日韩在线| 亚洲欧美激情视频在线观看一区二区三区| 国产欧美一区二区三区沐欲| 国产女人18水真多18精品一级做 | 欧美中文字幕一区二区三区| 91国偷自产一区二区开放时间| 精品国产三级a在线观看| 欧美电影免费观看高清完整版在线 | 色呦呦一区二区三区| 97久久精品人人爽人人爽蜜臀 | 亚洲欧美激情一区二区| 亚洲综合成人在线| 视频一区二区三区中文字幕| 麻豆成人综合网| 狠狠色伊人亚洲综合成人| 国产精品18久久久久| 不卡欧美aaaaa| 91亚洲精品一区二区乱码| 欧美午夜电影网| 91精品国产欧美日韩| 久久综合色播五月| 国产精品色一区二区三区| 亚洲美女视频在线| 天天色综合天天| 精品一区二区三区免费观看| 国产v日产∨综合v精品视频| 99久久久国产精品| 欧美亚洲免费在线一区| 欧美大片在线观看一区二区| 国产片一区二区| 亚洲国产三级在线| 久久99精品久久只有精品| 成人国产精品免费网站| 欧美日韩国产首页在线观看| 久久―日本道色综合久久| 亚洲乱码中文字幕| 久草在线在线精品观看| 91麻豆国产福利在线观看| 欧美一区二区视频网站| 日本一区二区不卡视频| 亚洲成人精品一区二区| 国产成人三级在线观看| 欧美日韩精品欧美日韩精品一 | 日韩精品在线看片z| 日韩一区有码在线| 日本美女视频一区二区| 成人午夜短视频| 日韩一区二区高清| 亚洲美女少妇撒尿| 国产精品亚洲视频| 欧美四级电影在线观看| 国产女人18毛片水真多成人如厕 | 高清不卡一区二区| 欧美一级理论片| 亚洲综合视频在线| 国产91综合一区在线观看| 91精品国产一区二区三区| 亚洲天堂免费看| 国产精品123区| 欧美一区日韩一区| 夜夜嗨av一区二区三区中文字幕| 国产精品一二三四五| 91麻豆精品国产91久久久 | 欧美精品一区二区三区一线天视频| 国产日韩欧美a| 久久国产欧美日韩精品| 欧美系列亚洲系列| 亚洲三级在线看| 国产伦精品一区二区三区视频青涩 | 国产成人8x视频一区二区 | 91黄色免费网站| 欧美国产日韩a欧美在线观看| 蜜桃av噜噜一区二区三区小说| 色婷婷国产精品| 国产精品久久夜| 国产精品亚洲一区二区三区妖精| 欧美成人女星排行榜| 日韩影院在线观看| 精品婷婷伊人一区三区三| 亚洲美女免费视频| 91免费国产视频网站| 最新高清无码专区| 99久久伊人久久99| 国产欧美日韩另类一区| 国产精品一区在线观看乱码| xnxx国产精品| 国产一区二区电影| 国产亚洲欧美中文| 国产不卡在线播放| 国产精品福利一区二区| 成人av免费在线观看| 亚洲视频在线一区观看| 97se亚洲国产综合自在线不卡| 国产精品初高中害羞小美女文| 成人国产精品免费观看| 亚洲天堂网中文字| 欧美在线观看一区| 日本不卡视频一二三区| 日韩欧美国产精品| 精品亚洲porn| 一区二区激情视频| 久久久久久电影| 国产黄人亚洲片| 中文子幕无线码一区tr| av动漫一区二区| 亚洲一区影音先锋| 日韩一区二区三区免费观看| 久久国产精品无码网站| 欧美韩国日本综合| 91福利视频在线| 日本欧美肥老太交大片| 久久人人97超碰com| 99在线精品视频| 午夜精品久久久| 精品国产麻豆免费人成网站| 99热精品国产| 日本强好片久久久久久aaa|