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

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

?? vclunzip.pas

?? delphi 的壓縮工具代碼
?? PAS
?? 第 1 頁 / 共 5 頁
字號:
      try
         OpenZip;
         theZipFile.Seek(relative_offset, soFromBeginning);
         theZipFile.Read(lrec, SizeOf(local_file_header));
         with lrec do
         begin
            theZipFile.Seek(filename_length, soFromCurrent);
            theZipFile.Read(dhTemp, SizeOf(DecryptHeaderType));
         end;
         for i := 0 to 11 do                            { added this loop 10/23/99  2.20b3+ }
         begin
            dhPtr^ := dhTemp[i];
            Inc(dhPtr);
         end;
      finally
        If (MultiMode = mmNone) then
           CloseZip;
      end;
   end;
   {$ENDIF}
end;

{$IFDEF ISDELPHI}

function TVCLUnZip.GetDecryptHeader(Index: Integer): DecryptHeaderType;
var
   finfo                 : TZipHeaderInfo;
   lrec                  : local_file_header;
   i                     : Integer;
begin
   if (Index > -1) and (Index < Count) then
   begin
      finfo := sortfiles.Items[Index] as TZipHeaderInfo;
   end
   else
      {$IFDEF NO_RES}
      raise EListError.CreateFmt('Index %d is out of range', [Index]);
   {$ELSE}
      raise EListError.CreateFmt(LoadStr(IDS_INDEXOUTOFRANGE), [Index]);
   {$ENDIF}
   if (IsEncrypted[Index]) then
      with finfo do
      begin
         try
            OpenZip;
            theZipFile.Seek(relative_offset, soFromBeginning);
            theZipFile.Read(lrec, SizeOf(local_file_header));
            with lrec do
            begin
               theZipFile.Seek(filename_length, soFromCurrent);
               theZipFile.Read(Result, SizeOf(DecryptHeaderType));
            end;
         finally
           If (MultiMode = mmNone) then
              CloseZip;
         end
      end
   else
      for i := 0 to 11 do
         Result[i] := 0;
end;
{$ENDIF}

function TVCLUnZip.GetZipSize: LongInt;
begin
   Result := 0;
   if FZipName <> '' then
   begin
      OpenZip;
      try
         Result := theZipFile.Size;
      finally
        If (MultiMode = mmNone) then
           CloseZip;
      end;
   end;
end;

procedure TVCLUnZip.WriteNumDisks(NumberOfDisks: Integer);
begin
   FNumDisks := NumberOfDisks;
end;

{ Added these so that they could be overriden in VCLZip 3/11/98  2.03 }

function TVCLUnZip.GetCheckDiskLabels: Boolean;
begin
   Result := FCheckDiskLabels;
end;

procedure TVCLUnZip.SetCheckDiskLabels(Value: Boolean);
begin
   FCheckDiskLabels := Value;
end;

function TVCLUnZip.UnZip: Integer;
begin
   FBusy := True;
   CancelOperation := False;
   Result := 0;
   try
      if DestDir <> '?' then
      begin
         { Following Changed from OpenZip which was being bypassed. 03/15/01  2.21+ }
         ReadZip;
         OpenZip;  { Make sure it's open because ReadZip closes it again }
         Result := UnzipFiles(theZipFile);
         CloseZip;
      end;
   finally
      FBusy := False;
      CancelOperation := False;
   end;
end;

function TVCLUnZip.UnZipSelected: Integer;
begin
   UnZippingSelected := True;
   Result := UnZip;
   UnZippingSelected := False;
end;

procedure TVCLUnZip.ClearSelected;
var
   i                     : Integer;
begin
   for i := 0 to Count - 1 do
      Selected[i] := False;
   FNumSelected := 0;
end;

function TVCLUnZip.UnZipToStream(theStream: TStream; FName: string): Integer;
begin
   Result := 0;
   if (Trim(FName) = '') or (theStream = nil) then
      exit;
   FBusy := True;
   ZipStream := theStream;
   CancelOperation := False;
   StreamZipping := True;
   OpenZip;
   FilesList.Clear;
   FilesList.Add(FName);
   try
      Result := UnzipFiles(theZipFile);
   finally
      StreamZipping := False;
      CloseZip;
      FBusy := False;
      CancelOperation := False;
   end;
end;

function TVCLUnZip.UnZipToStreamByIndex(theStream: TStream; Index: Integer): Integer;
begin
   Result := 0;
   if (theStream = nil) then
      exit;
   FBusy := True;
   ZipStream := theStream;
   CancelOperation := False;
   StreamZipping := True;
   OpenZip;
   FilesList.Clear;
   try
      Selected[Index] := True;
      UnZippingSelected := True;
      Result := UnzipFiles(theZipFile);
   finally
      StreamZipping := False;
      CloseZip;
      FBusy := False;
      CancelOperation := False;
      UnZippingSelected := False;
   end;
end;

function TVCLUnZip.UnZipToBuffer(var Buffer: PChar; FName: string): Integer;
begin
   Result := 0;
   if (Trim(FName) = '') then
      exit;
   FBusy := True;
   MemZipping := True;
   OpenZip;                                             { 12/4/98  2.17P+ }
   FilesList.Clear;
   FilesList.Add(FName);
   if (Buffer = nil) then
      MemBuffer := nil
   else
      MemBuffer := Buffer;
   try
      Result := UnzipFiles(theZipFile);
      if (Buffer = nil) then
         Buffer := MemBuffer;
   finally
      MemZipping := False;
      CloseZip;
      FBusy := False;
      CancelOperation := False;
      MemBuffer := nil;
   end;
end;

function TVCLUnZip.UnZipToBufferByIndex(var Buffer: PChar; Index: Integer): Integer;
begin
   FBusy := True;
   MemZipping := True;
   OpenZip;                                             { 12/4/98  2.17P+ }
   FilesList.Clear;
   if (Buffer = nil) then
      MemBuffer := nil
   else
      MemBuffer := Buffer;
   try
      if Index > -1 then
         Selected[Index] := True;
      if not DoAll then
         UnZippingSelected := True;
      Result := UnzipFiles(theZipFile);
      if (Buffer = nil) then
         Buffer := MemBuffer;
   finally
      MemZipping := False;
      CloseZip;
      FBusy := False;
      CancelOperation := False;
      MemBuffer := nil;
      UnZippingSelected := False;
   end;
end;

procedure TVCLUnZip.OpenZip;
{$IFDEF KPDEMO}
{$IFNDEF NO_RES}
var
   tmpMStr2              : string;
   {$ENDIF}
   {$ENDIF}
begin
   {$IFDEF KPDEMO}
   if not (csDesigning in ComponentState) then
   begin
      if not DelphiIsRunning then
      begin
         {$IFDEF NO_RES}
         MessageBox(0,
            'This unregistered verion of VCLZip will only run while the Delphi IDE is running',
            'Warning', mb_OK);
         {$ELSE}
         tmpMStr := LoadStr(IDS_NOTREGISTERED);
         tmpMStr2 := LoadStr(IDS_WARNING);
         MessageBox(0, StringAsPChar(tmpMStr), StringAsPChar(tmpMStr2), mb_OK);
         {$ENDIF}
         Abort;
      end;
   end;
   {$ENDIF}
   if theZipFile = nil then
      theZipFile := TLFNFileStream.CreateFile(FZipName, fmOpenRead or fmShareDenyWrite,
         FFlushFilesOnClose, BufferedStreamSize);
   if files = nil then
      GetFileInfo(theZipFile)
   else
      if (not ArchiveIsStream) and
         (FileDateToDateTime(FileGetDate(TLFNFileStream(theZipFile).Handle)) <> filesDate) then
         GetFileInfo(theZipFile);
end;

procedure TVCLUnZip.CloseZip;
begin
   if not FKeepZipOpen then
   begin
      theZipFile.Free;
      theZipFile := nil;
   end;
end;

procedure TVCLUnZip.AskForNewDisk(NewDisk: Integer);
begin
   SwapDisk(NewDisk);
end;

function TVCLUnZip.SwapDisk(NewDisk: Integer): TStream;
{ NewDisk is the disk number that the user sees. Starts with 1 }
var
   tmpZipName            : string;

   function CurrentDiskLabel(NewDisk: Integer): Boolean;
   var
      VolName            : string[11];
      Disk               : string;
   begin
      {Need to check disk label here}
      if MultiMode = mmSpan then
      begin
         Disk := UpperCase(LeftStr(FZipName, 3));
         VolName := GetVolumeLabel(Disk);
         if RightStr(VolName, 3) = Format('%3.3d', [NewDisk]) then
            Result := True
         else
            Result := False;
      end
      else
         Result := True;
   end;

begin
   theZipFile.Free;
   theZipFile := nil; {1/27/98 to avoid GPF when Freeing file in CloseZip. v2.00+}
   tmpZipName := FZipName;
   repeat
      repeat
         FOnGetNextDisk(Self, NewDisk, tmpZipName);
      until (not CheckDiskLabels) or (tmpZipName = '') or (CurrentDiskLabel(NewDisk));
      if tmpZipName = '' then
         raise EUserCanceled.Create('User canceled loading new disk.');
   until FileExists(tmpZipName); {1/29/98 To avoid problem if file doesn't exist}
   theZipFile := TLFNFileStream.CreateFile(tmpZipName, fmOpenRead, False, BufferedStreamSize);
   CurrentDisk := NewDisk - 1;                          { CurrentDisk starts with 0 }
   filesDate := FileDateToDateTime(FileGetDate(TLFNFileStream(theZipFile).Handle));
   FZipName := tmpZipName;
   Result := theZipFile;
end;

procedure TVCLUnZip.NewDiskEvent(Sender: TObject; var S: TStream);
begin
   SwapDisk(CurrentDisk + 2);
   S := theZipFile;
end;

procedure TVCLUnZip.ClearZip;
var
   SaveKeepZipOpen       : Boolean;
begin
   SaveKeepZipOpen := FKeepZipOpen;
   FKeepZipOpen := False;
   CloseZip;
   FKeepZipOpen := SaveKeepZipOpen;
   if (sortfiles <> nil) and (sortfiles <> files) then
      sortfiles.Free;
   files.Free;
   files := nil;
   sortfiles := nil;
   ecrec.Clear;
   ZipIsBad := False;
   filesDate := 0;
   FNumDisks := 1;
   MultiMode := mmNone;
   if not ArchiveIsStream then
      FZipName := '';
end;

procedure TVCLUnZip.ReadZip;
var
   TryAgain              : Boolean;
   RememberKeepZipOpen   : Boolean;
begin
   CancelOperation := False;
   FImproperZip := False;
   repeat
      {$IFNDEF KPSMALL}
      Screen.Cursor := crHourGlass;
      {$ENDIF}
      TryAgain := False;
      try
         OpenZip;
      except
         on EIncompleteZip do
         begin
            {$IFNDEF KPSMALL}
            Screen.Cursor := crDefault;
            {$ENDIF}
            { zip file must be closed in this case  1/25/00 2.20+  }
            RememberKeepZipOpen := KeepZipOpen;
            KeepZipOpen := False;
            CloseZip;
            KeepZipOpen := RememberKeepZipOpen;
            if Assigned(FOnIncompleteZip) then
               tryagain := True;
         end;
      else
         begin
            ClearZip;
            {$IFNDEF KPSMALL}
            Screen.Cursor := crDefault;
            {$ENDIF}
            raise; { raise the exception so the application knows }
         end;
      end;
   until (TryAgain = False);
   CloseZip;
   {$IFNDEF KPSMALL}
   Screen.Cursor := crDefault;
   {$ENDIF}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲欧美视频在线观看| 成人伦理片在线| 国产成人激情av| 欧美在线视频全部完| 久久精品亚洲麻豆av一区二区| 亚洲亚洲精品在线观看| 国产91精品欧美| 日韩精品在线一区| 日韩影院精彩在线| 色女孩综合影院| 国产精品女同一区二区三区| 蜜臀av一区二区| 欧美精品99久久久**| 艳妇臀荡乳欲伦亚洲一区| 成人免费电影视频| 久久久www成人免费毛片麻豆 | 国产成人欧美日韩在线电影| 在线观看视频一区| 国产精品久久久久影院色老大| 国产一区二区调教| 精品欧美黑人一区二区三区| 日本欧美在线观看| 欧美日韩国产一二三| 亚洲一区二区成人在线观看| 色狠狠桃花综合| 一区二区欧美精品| 色婷婷综合久久久| 亚洲综合丝袜美腿| 在线日韩国产精品| 亚洲综合色区另类av| 欧美日韩中文另类| 五月天欧美精品| 在线综合视频播放| 蜜臀av国产精品久久久久| 日韩你懂的电影在线观看| 麻豆精品国产传媒mv男同| 日韩欧美国产一区二区三区| 久久精品国产成人一区二区三区| 欧美成人一区二区| 免费观看在线色综合| 欧美精品一区二区三区视频 | 婷婷久久综合九色综合伊人色| 欧亚洲嫩模精品一区三区| 亚洲午夜精品网| 欧美一区二区网站| 精品亚洲免费视频| 中文字幕第一区二区| 91福利视频网站| 日本不卡高清视频| 久久久久久日产精品| av电影天堂一区二区在线观看| 亚洲日本一区二区| 欧美视频完全免费看| 奇米色一区二区三区四区| 国产亚洲1区2区3区| 色88888久久久久久影院野外| 亚洲电影你懂得| 2017欧美狠狠色| 99热99精品| 香蕉成人伊视频在线观看| 久久免费看少妇高潮| 91网上在线视频| 久久99久久精品| 中文字幕在线一区| 69久久99精品久久久久婷婷| 国产精品一二一区| 亚洲国产美女搞黄色| 久久九九久久九九| 欧美私人免费视频| 国产成人av电影在线播放| 亚洲成av人片在线观看| 国产午夜亚洲精品午夜鲁丝片| 欧洲国内综合视频| 国产电影精品久久禁18| 亚洲自拍另类综合| 久久精品视频一区二区| 欧美日韩国产另类一区| 东方欧美亚洲色图在线| 奇米色777欧美一区二区| 亚洲色图制服诱惑| 久久久精品综合| 日韩一区二区三区免费看| 成人久久视频在线观看| 蜜臀久久久久久久| 亚洲一区二区视频在线| 国产精品丝袜一区| 精品1区2区在线观看| 欧美日韩一区三区| 不卡的av电影在线观看| 国产在线精品免费| 日韩精品一卡二卡三卡四卡无卡| 亚洲乱码日产精品bd| 国产精品天干天干在观线| 久久亚洲精精品中文字幕早川悠里| 欧美日韩国产系列| 在线免费观看不卡av| 91蜜桃网址入口| 成人av网站免费观看| 国产1区2区3区精品美女| 美腿丝袜亚洲综合| 日韩精品一级中文字幕精品视频免费观看 | 国产在线观看一区二区| 日韩高清在线一区| 亚洲图片欧美色图| 亚洲欧美视频在线观看视频| 国产精品久久久久久久久免费相片 | av电影在线观看完整版一区二区| 韩国三级在线一区| 日韩av电影一区| 日日摸夜夜添夜夜添亚洲女人| 一区二区三区四区国产精品| 成人欧美一区二区三区| 国产精品美女久久久久久2018| 国产嫩草影院久久久久| 亚洲国产成人自拍| 中文字幕高清不卡| 亚洲欧洲日韩av| 亚洲免费观看在线观看| 1000部国产精品成人观看| 自拍偷拍欧美激情| 亚洲精品中文在线| 一区二区三区精品在线| 亚洲午夜免费视频| 美女网站视频久久| 国产精品888| 不卡的av电影在线观看| 色婷婷综合久久久久中文一区二区 | 精品一区二区三区欧美| 激情图区综合网| 国产91丝袜在线18| 91一区二区三区在线观看| 色婷婷av一区二区三区之一色屋| 国产精品蜜臀在线观看| 亚洲同性gay激情无套| 亚洲小说欧美激情另类| 蜜桃一区二区三区在线观看| 国产精品原创巨作av| 9色porny自拍视频一区二区| 日本精品视频一区二区三区| 欧美蜜桃一区二区三区| 精品国产一区二区精华| 国产精品久久久久一区二区三区 | 亚洲欧洲www| 婷婷成人激情在线网| 国产一区二区三区免费在线观看 | 国产精品午夜在线观看| 亚洲国产色一区| 国产乱码精品一区二区三区五月婷| 成人不卡免费av| 日韩一区二区三区在线| 亚洲男人的天堂在线观看| 美腿丝袜一区二区三区| 色综合天天综合在线视频| 8v天堂国产在线一区二区| 国产欧美精品一区二区色综合朱莉| 亚洲精品成人悠悠色影视| 免费欧美在线视频| 色欧美片视频在线观看| 久久久.com| 欧美aa在线视频| 色综合久久综合| 国产欧美va欧美不卡在线| 日韩不卡免费视频| 91天堂素人约啪| 久久精品视频免费观看| 蜜桃久久精品一区二区| 99国产精品国产精品久久| 精品女同一区二区| 偷拍日韩校园综合在线| av成人动漫在线观看| 欧美精品一区二区精品网| 亚洲mv在线观看| 99久久精品国产毛片| 26uuu精品一区二区| 午夜欧美一区二区三区在线播放| 成人福利视频网站| 久久久激情视频| 精品亚洲免费视频| 欧美www视频| 蜜臀av性久久久久av蜜臀妖精| 在线观看免费视频综合| 国产精品丝袜一区| 国产不卡在线播放| 久久亚洲综合色一区二区三区| 日韩精品国产精品| 欧美肥妇free| 亚洲国产成人tv| 欧美在线免费播放| 亚洲午夜视频在线| 欧美日韩一区二区在线视频| 亚洲精品视频免费看| www.欧美色图| 最新日韩在线视频| 91一区二区三区在线播放| 亚洲欧洲日韩在线| 色综合久久久网| 亚洲国产精品人人做人人爽| 在线一区二区三区四区| 亚洲一区二区精品久久av| 欧美日韩一区三区|