亚洲欧美第一页_禁久久精品乱码_粉嫩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一区二区三区免费野_久草精品视频
bt7086福利一区国产| 亚洲欧美一区二区不卡| 成人午夜私人影院| 精品在线播放午夜| av高清久久久| 亚洲天天做日日做天天谢日日欢| 成人app在线| 悠悠色在线精品| 欧美日本在线视频| 蜜臀久久久99精品久久久久久| 精品国一区二区三区| 激情五月激情综合网| 国产精品色哟哟网站| 在线免费视频一区二区| 亚洲国产视频在线| 日韩欧美在线123| 成人性生交大片免费看视频在线| 最新热久久免费视频| 欧美视频自拍偷拍| 久久成人羞羞网站| 国产精品久99| 欧美一级夜夜爽| 国产激情一区二区三区桃花岛亚洲| 亚洲欧美在线高清| 欧美性三三影院| 久久99精品久久久久| 亚洲欧美区自拍先锋| 欧美蜜桃一区二区三区| 亚洲欧美综合网| 在线播放欧美女士性生活| 在线观看91av| 精品一区二区三区的国产在线播放 | 精品少妇一区二区三区| 国产一区二区三区四区在线观看| ...av二区三区久久精品| 一区二区三区中文在线| 欧美三日本三级三级在线播放| 久久久精品蜜桃| 欧美丝袜第三区| 欧美日韩一区二区欧美激情| 中文字幕一区二区三区精华液| 欧美日韩你懂得| 国产91精品欧美| 亚洲二区在线观看| 国产精品免费丝袜| 日韩视频免费观看高清在线视频| 91视视频在线观看入口直接观看www | 成人中文字幕在线| 天天av天天翘天天综合网色鬼国产| 国产欧美日韩中文久久| 日韩欧美国产电影| 久久久久久夜精品精品免费| 国产美女一区二区三区| 亚洲国产一区在线观看| 欧美r级在线观看| 91亚洲国产成人精品一区二区三| 免费高清在线视频一区·| 亚洲影视在线播放| 亚洲欧洲日产国码二区| 精品福利av导航| 欧美一区二区福利视频| 欧美专区日韩专区| 99国产精品久久| 国产91在线|亚洲| 国产精品伊人色| 免费一级欧美片在线观看| 一区二区在线观看视频在线观看| 中文字幕巨乱亚洲| 国产视频在线观看一区二区三区 | 久久精品久久久精品美女| 亚洲国产成人91porn| 亚洲色图.com| 亚洲免费观看在线视频| 国产精品久久二区二区| 亚洲欧美在线视频| 亚洲欧洲日韩av| 亚洲欧美日韩国产成人精品影院| 亚洲欧美一区二区三区极速播放| 亚洲人成人一区二区在线观看 | 欧美日韩一级视频| 日本高清成人免费播放| 色狠狠色狠狠综合| 色呦呦日韩精品| 日本道免费精品一区二区三区| 不卡电影免费在线播放一区| 成人黄色av电影| 99综合影院在线| 国产激情一区二区三区| 风流少妇一区二区| av在线这里只有精品| 国产ts人妖一区二区| 国产精品77777竹菊影视小说| 国产成人av电影在线| 成人国产亚洲欧美成人综合网| eeuss鲁一区二区三区| 色老汉一区二区三区| 在线精品视频免费观看| 欧美老肥妇做.爰bbww| 欧美电影精品一区二区| 国产亚洲一区二区三区在线观看| 国产精品久久久久久久久免费樱桃 | 蜜臀国产一区二区三区在线播放| 久久国产麻豆精品| 成人免费观看视频| 色综合久久综合| 91精品国产综合久久国产大片| 精品美女一区二区| 亚洲色图欧美在线| 麻豆免费精品视频| 成人国产精品免费观看动漫| 91国产成人在线| 日韩欧美区一区二| 国产精品久久久久一区二区三区共 | 亚洲国产精品精华液ab| 一区二区三区在线免费视频| 蜜臀av性久久久久蜜臀aⅴ流畅 | 欧美韩国一区二区| 亚洲成年人影院| 国产传媒一区在线| 欧美日韩中文国产| 久久九九久精品国产免费直播| 一区二区三区加勒比av| 九九久久精品视频| 91成人免费电影| 久久久精品tv| 视频在线观看国产精品| 国产一区欧美二区| 精品视频一区三区九区| 中文字幕欧美三区| 日本成人在线网站| 在线视频你懂得一区二区三区| 精品蜜桃在线看| 亚洲综合无码一区二区| 风间由美中文字幕在线看视频国产欧美| 欧美日韩亚洲高清一区二区| 国产精品毛片a∨一区二区三区| 日韩国产欧美一区二区三区| 91麻豆免费视频| 久久精品水蜜桃av综合天堂| 石原莉奈在线亚洲二区| 91欧美一区二区| 国产日产欧产精品推荐色| 日韩高清在线不卡| 在线免费观看成人短视频| 亚洲国产电影在线观看| 国产一区在线观看麻豆| 欧美一区二区视频在线观看2020| 亚洲图片激情小说| 国产99久久久精品| 精品免费日韩av| 久久精品99国产精品| 欧美日韩午夜影院| 亚洲免费视频中文字幕| 99久久99久久免费精品蜜臀| 日本一区二区三级电影在线观看 | 亚洲午夜视频在线观看| 9色porny自拍视频一区二区| 国产精品护士白丝一区av| 国产一区二区精品久久91| 日韩一区国产二区欧美三区| 亚洲二区视频在线| 欧美日韩一区二区三区高清| 亚洲第一电影网| 欧美日韩视频在线观看一区二区三区| 亚洲精品少妇30p| av电影在线观看不卡| 国产精品久久久99| 91在线国内视频| 亚洲日本一区二区| 91浏览器在线视频| 亚洲精品视频免费观看| 91国偷自产一区二区使用方法| 一个色在线综合| 欧美午夜精品免费| 日韩影院精彩在线| 欧美一区二区大片| 国产伦理精品不卡| 国产日产欧美一区| 色综合天天综合色综合av| 一区二区三区美女视频| 欧美日韩国产美女| 免费在线观看视频一区| ww亚洲ww在线观看国产| 国产99久久久国产精品免费看 | 一区二区欧美国产| 欧美日韩国产免费一区二区| 美国毛片一区二区| 国产午夜亚洲精品羞羞网站| 不卡av在线网| 亚洲综合免费观看高清在线观看| 欧美日韩日日摸| 免费xxxx性欧美18vr| 久久久久99精品国产片| 波多野结衣中文一区| 亚洲成人免费观看| 久久亚洲影视婷婷| 99国内精品久久| 日韩电影网1区2区| 国产丝袜美腿一区二区三区| 欧美中文字幕一区|