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

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

?? unit1.pas

?? delphi寫的掃描硬盤中jpg文件的代碼
?? PAS
字號:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, DB, ADODB, Buttons, StdCtrls, ExtCtrls,QDialogs,FileCtrl, Grids,
  DBGrids, ComCtrls;

type
  TForm1 = class(TForm)
    Panel1: TPanel;
    Panel2: TPanel;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    startsec: TEdit;
    endsec: TEdit;
    savedir: TEdit;
    size: TEdit;
    Button1: TButton;
    Button2: TButton;
    ADOConnection1: TADOConnection;
    ADOQuery1: TADOQuery;
    Label5: TLabel;
    DataSource1: TDataSource;
    ADOQuery2: TADOQuery;
    StatusBar1: TStatusBar;
    ADOConnection2: TADOConnection;
    SpeedButton2: TSpeedButton;
    ListBox1: TListBox;
    Label6: TLabel;
    PB: TProgressBar;
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure SpeedButton2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
  function TDCopyFiles(startSector,fileSize,filename,exname,DI:string):integer;
  function ExtFileSeek(Handle: Integer; const Offset: Int64; Origin: Integer): Int64;
  function Findjpgfilehead(startsec,endsec:string;ADOC:TADOConnection;ADOQ:TADOQuery;f:Tlabel;list:Tlistbox;pb:Tprogressbar):string;
  function FindjpgFileend(startsec,endsec,sizemax:string;lab:Tlabel):string;
  function killspace(s:string):string;
  function compareflag(text:string;offi:integer;step:integer):boolean;
var
  Form1: TForm1;
  drivers:pchar;
implementation

{$R *.dfm}
function killspace(s:string):string;
var
  i:integer;
  t:string;
begin
  for i:=0 to length(s)-1 do
  begin
    t:=t+copy(s,i*3+1,2);
  end;
  result:=t;
  //showmessage(vartostr(pos('ff',t)));
end;
function FindjpgFileHead(startsec,endsec:string;ADOC:TADOConnection;ADOQ:TADOQuery;f:Tlabel;list:Tlistbox;pb:Tprogressbar):string;
var
  Buf: array [0..16383] of Byte;     //數據緩沖區
  Buf1: array [0..511] of Byte;
  ShowText, TmpStr: string;
  StarSector,EndSector:integer;
  FileHandle: THandle;
  Count,i,j: Cardinal;
  Curr,pos: Int64;
begin
  adoc.Close;
  adoc.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source=db.mdb;Persist Security Info=True' ;
  adoq.Connection:=adoc;
  if adoq.Active then
  begin
    adoq.Close;
  end;
  adoq.SQL.Clear;
  adoq.SQL.Add('delete * from TD where 1=1');
  adoq.ExecSQL;
  adoq.Close;
  adoq.SQL.Clear;
  adoq.SQL.Add('select * from TD where 1=1');
  adoq.Open;
  begin
    StarSector:=strtoint(trim(startsec));
    EndSector:=strtoint(trim(endsec));
    Pos:=StarSector;
    pb.Position:=0;
    pb.min:=0;
    pb.Max:=(endSector-starsector);
    FileHandle := CreateFile(drivers, GENERIC_READ, FILE_SHARE_READ or FILE_SHARE_WRITE,
      nil, OPEN_EXISTING, 0, 0);
    if FileHandle = INVALID_HANDLE_VALUE then
    begin
      MessageBox(GetDesktopWindow, '打開磁盤失敗', 'ERROR', MB_OK);
      ExitProcess(0);
    end;
    while pos<(EndSector+32) do
    begin
      Curr:=Int64(pos*512);
      Curr:=ExtFileSeek(FileHandle,Curr,0);
      if FileRead(FileHandle, Buf, 16384)<>16384 then
      begin
        showmessage('磁盤讀錯誤');
        ExitProcess(0);
      end else
      begin
      for count:=0 to 31 do
      begin
      i:=0;
      for j:=count*512 to (count+1)*512-1 do
      begin
        buf1[i]:=buf[j];
        i:=i+1;
      end;
        for i := Low(Buf1) to High(Buf1) do
        begin
          TmpStr :=TmpStr+ Format('%2.2x ', [Buf1[i]]);
        end;
        showText:=copy(TmpStr,1,8);
        TmpStr:='';
        f.Caption:=vartostr(pos);
        if showText='FF D8 FF'  then
        begin
          adoq.Insert;
          adoq.FieldByName('filestart').AsString:=vartostr(pos+(count));
          adoq.Post;
          list.Items.Add('找到一個目標,            位于  '+vartostr(pos+(count))+'  扇區')
        end;
      if pb.Position<pb.Max then
        pb.StepIt;
      end;

      end;
      pos:=pos+32;
      Application.ProcessMessages;
    end;
  end;
  result:='1';
  pb.Position:=0;
end;
function FindjpgFileend(startsec,endsec,sizemax:string;lab:Tlabel):string;
var
  Buf: array [0..511] of Byte;     //數據緩沖區
  ShowText, TmpStr: string;
  StarSector,EndSector:integer;
  FileHandle: THandle;
  ReadCount,i: Cardinal;
  Curr,pos1,offi,chushi,t: Int64;
  flag:boolean;
begin
  result:='0';
  begin
    StarSector:=strtoint(trim(startsec));
    EndSector:=strtoint(trim(endsec));
    Pos1:=StarSector;
    chushi:=pos1;
    FileHandle := CreateFile(drivers, GENERIC_READ, FILE_SHARE_READ or FILE_SHARE_WRITE,
      nil, OPEN_EXISTING, 0, 0);
    if FileHandle = INVALID_HANDLE_VALUE then
    begin
      MessageBox(GetDesktopWindow, '打開磁盤失敗', 'ERROR', MB_OK);
      ExitProcess(0);
    end;
    T:=(chushi+strtoint(sizemax) div 512);
    while (pos1<EndSector) and (pos1<T)  and (not flag) do
    begin
        Curr:=Int64(pos1*512);
        Curr:=ExtFileSeek(FileHandle,Curr,0);
        if FileRead(FileHandle, Buf, 512)<>512 then
        begin
          showmessage('磁盤讀錯誤');
          ExitProcess(0);
        end else
        begin
          for i := Low(Buf) to High(Buf) do
          begin
            TmpStr :=TmpStr+ Format('%2.2x ', [Buf[i]]);
          end;
          showtext:=killspace(TmpStr);
          offi:=pos('FFD9',showtext);

          if (offi>0) and  compareflag(showtext,offi,4)then
          begin
            result:=vartostr(((pos1)*512+((offi+1) div 2))-chushi*512);
            flag:=true;
          end;
          TmpStr:='';
        end;
        lab.Caption:=vartostr(pos1);
        pos1:=pos1+1;
        Application.ProcessMessages;
      end;
  end;
end;

function ExtFileSeek(Handle: Integer; const Offset: Int64; Origin: Integer):Int64;
begin
  Result := Offset;
  Int64Rec(Result).Lo := SetFilePointer(THandle(Handle), Int64Rec(Result).Lo,
    @Int64Rec(Result).Hi, Origin);
end;
function TDCopyFiles(startSector,fileSize,filename,exname,DI:string):integer;
var
  Buf: array[0..511]  of Byte;     //數據緩沖區
  ShowText, TmpStr: string;
  StarSector:integer;
  FileHandle: THandle;
  i: Cardinal;
  Fsize:integer;
  Curr,pos,Compare: Int64;
  FileStream:Tfilestream;
  dir:string;
begin
  result:=strtoint(trim(filesize));
  begin
    StarSector:=strtoint(startSector);
    Fsize:=strtoint(trim(fileSize));
    dir:=di;
    FileHandle := CreateFile(drivers, GENERIC_READ, FILE_SHARE_READ or FILE_SHARE_WRITE,
      nil, OPEN_EXISTING, 0, 0);
    if FileHandle = INVALID_HANDLE_VALUE then
    begin
      MessageBox(GetDesktopWindow, '打開磁盤失敗', 'ERROR', MB_OK);
      ExitProcess(0);
    end;
      pos:=int64(StarSector);
      Curr:=Int64(pos*512);
      FileStream:=TFileStream.Create(dir+'\'+filename+'.'+exname,fmCreate);
      Compare:=(Curr+FSize);
      while Curr<=Compare do
      begin
        Curr:=ExtFileSeek(FileHandle,Curr,0);
        FileRead(FileHandle,buf,sizeof(buf));
        FileStream.Write(Buf,Sizeof(Buf));
        Curr:=Curr+512;
        Application.ProcessMessages;
      end;
        FileStream.Free;

  end;
end;
function compareflag(text:string;offi:integer;step:integer):boolean;
var
  temp,temp1,middle:string;
  i,j:integer;
begin

  temp:=text;
  j:=offi;
  middle:=copy(temp,j+step,(1024-(j+step))+1);
  for i:=0 to (1024-(j+step)) do
  begin
    temp1:=temp1+'0';
  end;
  if middle=temp1 then
  result:=true
  else
  result:=false;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
  button2.Enabled:=false;
  drivers:=pchar('\\.\Physicaldrive0');
  if adoconnection1.Connected then
  adoconnection1.Close;
  adoconnection1.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source=db.mdb;Persist Security Info=True' ;
  adoconnection1.open;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  temp,temp1:array of string;
  i,j:integer;
  hello:string;
begin
  if button2.Enabled then
    button2.Enabled:=false;
  StatusBar1.Panels.Items[0].Text:='';
  listbox1.Clear;
  FindjpgFileHead(trim(startsec.text),trim(endsec.Text),adoconnection1,adoquery1,label5,listbox1,pb);
  if adoconnection1.Connected then
  adoconnection1.Close;
  adoconnection1.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source=db.mdb;Persist Security Info=True' ;
  adoconnection1.open;
  adoquery1.Close;
  adoquery1.SQL.Clear;
  adoquery1.SQL.Add('select * from TD where 1=1 order by ID');
  adoquery1.Open;
  StatusBar1.Panels.Items[0].Text:='文件掃描完成,共找到'+vartostr(adoquery1.recordcount)+'個文件頭,正在完成收尾工作...';
  adoquery1.First;
   if adoquery1.RecordCount>0 then
  begin
  setlength(temp,adoquery1.recordcount+1);
  setlength(temp1,adoquery1.recordcount);
  for i:=0 to adoquery1.RecordCount-1 do
  begin
    temp[i]:=adoquery1.FieldValues['filestart'];
    adoquery1.Next;
  end;

  temp[adoquery1.RecordCount]:=vartostr(strtoint(temp[adoquery1.RecordCount-1])+strtoint(trim(size.text)) div 512 );
  for i:=low(temp)to  high(temp)-1 do
  begin
    temp1[i]:=FindjpgFileend(temp[i],temp[i+1],trim(size.text),label5);
  end;
  adoquery1.First;
  for i:=0 to adoquery1.RecordCount-1 do
  begin
    adoquery1.Edit;
    adoquery1.FieldByName('filesize').AsString:=vartostr(strtoint(temp1[i]));
    adoquery1.Post;
    adoquery1.Next;
  end;
   StatusBar1.Panels.Items[0].Text:='文件掃描完成';
   button2.Enabled:=true;
  end else
   StatusBar1.Panels.Items[0].Text:='沒有找到任何目標對象';

end;

procedure TForm1.Button2Click(Sender: TObject);
var
  i:integer;
begin
  if savedir.Text='' then
  begin
    showmessage('沒有選擇文件的保存目錄');
    exit;
  end else
  begin
    if adoquery1.Active then
    adoquery1.Close;
    adoquery1.SQL.Clear;
    adoquery1.SQL.Add('select * from TD where filesize<>''0''');
    adoquery1.Open;
    if adoquery1.RecordCount>0 then
    begin
      for i:=0 to adoquery1.RecordCount-1 do
      begin
        TDCopyFiles(adoquery1.FieldValues['filestart'],adoquery1.FieldValues['filesize'],'TD_XK_'+inttostr(i),'jpg',trim(savedir.Text));
        StatusBar1.Panels.Items[0].Text:='已恢復'+inttostr(i+1)+'個文件!';
        adoquery1.Next;
      end;
    end else
      showmessage('沒有可以恢復的jpg文件!');
      exit;
  end;
end;

procedure TForm1.SpeedButton2Click(Sender: TObject);
var
  dir:string;
begin
  if SelectDirectory(dir, [sdAllowCreate, sdPerformCreate, sdPrompt],0) then
  begin
    savedir.text:=dir;
  end else
    Exit;
end;

end.

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩国产影片| 高清在线不卡av| 一区二区三区日韩精品视频| 国产欧美日韩卡一| 久久综合色之久久综合| 日韩一区二区三区电影| 日韩欧美黄色影院| 日韩美女视频在线| 精品粉嫩aⅴ一区二区三区四区| 欧美一区二区精品在线| 精品欧美一区二区在线观看| 精品国产乱码久久久久久蜜臀 | 一个色综合av| 亚洲精品伦理在线| 婷婷夜色潮精品综合在线| 视频在线在亚洲| 久久99国产精品尤物| 国产精品综合一区二区三区| 国产成人免费视频网站| 91免费精品国自产拍在线不卡| 色综合久久久久综合| 欧美电影一区二区| 精品三级在线看| 国产精品入口麻豆原神| 一区二区免费在线播放| 日本女优在线视频一区二区| 国产精品自拍网站| 在线亚洲一区观看| 精品乱码亚洲一区二区不卡| 国产精品乱码久久久久久| 一区二区三区四区中文字幕| 欧美aaa在线| 成人性视频网站| 欧美剧情片在线观看| ww亚洲ww在线观看国产| 亚洲精品乱码久久久久久日本蜜臀| 蜜桃av一区二区三区| 成人激情图片网| 欧美一级片在线看| 中文字幕制服丝袜成人av| 美女网站色91| 在线中文字幕不卡| 久久女同互慰一区二区三区| 亚洲自拍偷拍综合| 国产精品一区二区久久精品爱涩 | 91久久久免费一区二区| 欧美一区二区三区影视| 亚洲欧洲精品一区二区三区| 蜜臀av一区二区三区| 色综合色狠狠综合色| 久久九九久久九九| 蜜臀av国产精品久久久久 | 欧美性感一区二区三区| 国产欧美视频一区二区三区| 日韩和欧美一区二区三区| 成人免费视频免费观看| 欧美电影免费观看高清完整版在线| 亚洲免费av高清| 不卡的看片网站| 日本一区二区不卡视频| 国产一区二区三区在线看麻豆| 欧美喷水一区二区| 亚洲福中文字幕伊人影院| 972aa.com艺术欧美| 国产欧美精品区一区二区三区| 久久精品国产99国产精品| 精品视频在线免费观看| 亚洲专区一二三| 色综合视频在线观看| 亚洲免费观看高清完整版在线 | 一区二区三区四区国产精品| 成人激情视频网站| 欧美国产成人在线| 高清不卡一区二区在线| 久久精品视频一区| 东方欧美亚洲色图在线| 久久久久久久久岛国免费| 加勒比av一区二区| 日韩免费观看2025年上映的电影| 日韩av不卡在线观看| 欧美一级免费观看| 美女一区二区视频| 久久久亚洲综合| 成人丝袜高跟foot| 综合婷婷亚洲小说| 91视频一区二区三区| 亚洲制服丝袜av| 欧美日韩午夜在线视频| 日日夜夜一区二区| 欧美不卡一二三| 成人深夜在线观看| 亚洲欧美色一区| 91麻豆精品国产91久久久使用方法| 天涯成人国产亚洲精品一区av| 日韩视频一区在线观看| 国产精品一区二区在线看| 国产精品色在线观看| 欧美在线免费观看亚洲| 久久99久久精品| 国产精品人人做人人爽人人添| 97精品久久久久中文字幕| 午夜精品久久久久久久| 欧美mv日韩mv| 不卡一区在线观看| 午夜精品久久久久久久久| 欧美变态tickle挠乳网站| av电影天堂一区二区在线| 亚洲午夜激情网页| 久久久91精品国产一区二区三区| 国产99久久精品| 亚洲成人av电影在线| 久久久精品天堂| 欧美色区777第一页| 国产不卡在线播放| 一区二区三区免费观看| 精品伦理精品一区| 在线观看www91| 国产精品中文字幕欧美| 天天综合色天天综合色h| 久久只精品国产| 欧美日韩一区二区三区四区五区| 精品一区二区三区蜜桃| 亚洲国产一区二区三区青草影视| 久久精品亚洲国产奇米99| 欧美肥妇毛茸茸| av一区二区三区黑人| 精品一区二区三区在线观看国产| 亚洲老司机在线| 亚洲国产成人一区二区三区| 欧美一区二区福利在线| 色琪琪一区二区三区亚洲区| 国产精品一区二区三区乱码| 日本免费新一区视频| 亚洲精品久久7777| 国产精品久久毛片av大全日韩| 欧美一区二区三区视频免费播放| 色婷婷久久久综合中文字幕 | 国产精品嫩草久久久久| 欧美成人官网二区| 欧美一区日本一区韩国一区| 欧美日韩中文一区| 欧美性高清videossexo| 91国内精品野花午夜精品| 91美女视频网站| 色综合久久久久久久| 99久久久久免费精品国产| 成人免费高清在线观看| 国产成人午夜精品5599| 国产高清精品在线| 国产精品综合二区| 国产不卡视频在线观看| 国产精品亚洲专一区二区三区 | 成人免费看片app下载| 国产成人午夜精品影院观看视频 | 日韩精品视频网站| 日韩国产精品久久久久久亚洲| 婷婷开心久久网| 日本人妖一区二区| 免费成人在线影院| 日韩精品国产欧美| 免费在线一区观看| 韩国av一区二区三区四区| 国内偷窥港台综合视频在线播放| 久久99国产精品尤物| 国产精品2024| 99久久国产综合精品女不卡| av成人老司机| 欧美精品亚洲一区二区在线播放| 欧美日韩日本视频| 日韩精品一区二区三区swag| 久久综合视频网| 国产精品福利电影一区二区三区四区| 17c精品麻豆一区二区免费| 中文字幕欧美一| 亚洲mv大片欧洲mv大片精品| 亚洲午夜精品在线| 国产综合色在线| 99精品久久久久久| 欧美日韩在线播放三区四区| 精品奇米国产一区二区三区| 国产精品区一区二区三区| 一区二区三区中文在线| 男女男精品视频| 成人美女在线观看| 欧美日韩一区在线观看| 久久久国产精品午夜一区ai换脸| 国产精品国产三级国产专播品爱网| 亚洲与欧洲av电影| 国模套图日韩精品一区二区| 波多野结衣一区二区三区| 欧美色窝79yyyycom| 26uuu精品一区二区三区四区在线| 国产精品电影一区二区三区| 男女激情视频一区| 91玉足脚交白嫩脚丫在线播放| 日韩欧美一区二区免费| 中文字幕日韩欧美一区二区三区| 日本aⅴ亚洲精品中文乱码| av午夜精品一区二区三区| 欧美成人综合网站|