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

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

?? myldbcompression.pas

?? 一個本地database引擎,支持中文T_Sql查詢,兼容DELPHI標準數據庫控件
?? PAS
?? 第 1 頁 / 共 5 頁
字號:
{$ENDIF}


//------------------------------------------------------------------------------
// set size of compressed stream
//------------------------------------------------------------------------------
constructor TMYLDBMemoryStream.Create(Buffer: PChar = nil; DefaultAllocatedSize: Integer = 0);
begin
 FBuffer := nil;
 FBufferSize := 0;
 FAllocatedBufferSize := 0;
 if (Buffer <> nil) then
  begin
   FBuffer := Buffer;
   FBufferSize := MemoryManager.GetMemoryBufferSize(Buffer);
   FAllocatedBufferSize := FBufferSize;
  end
 else
   if (DefaultAllocatedSize <> 0) then
     begin
       FBuffer := MemoryManager.GetMem(DefaultAllocatedSize);
       FAllocatedBufferSize := DefaultAllocatedSize;
     end;
 FPosition := 0;
 inherited Create;
end; // Create


//------------------------------------------------------------------------------
// set size of compressed stream
//------------------------------------------------------------------------------
destructor TMYLDBMemoryStream.Destroy;
begin
 InternalSetSize(0);
 inherited;
end; // Destroy


////////////////////////////////////////////////////////////////////////////////
//
// TMYLDBFileStream
//
////////////////////////////////////////////////////////////////////////////////


//------------------------------------------------------------------------------
// InternalFileCreate
//------------------------------------------------------------------------------
function TMYLDBFileStream.InternalFileCreate(const FileName: string): Integer;
var
  FlagsAndAttributes: DWORD;
begin
  if IsTemporary then
    FlagsAndAttributes := FILE_ATTRIBUTE_TEMPORARY or FILE_FLAG_DELETE_ON_CLOSE
  else
    FlagsAndAttributes := FILE_ATTRIBUTE_NORMAL;

   //Result := FileCreate(FileName);
  Result := Integer(CreateFile(PChar(FileName), GENERIC_READ or GENERIC_WRITE,
                               0, nil, CREATE_ALWAYS, FlagsAndAttributes,
                               0));
end;//InternalFileCreate

//------------------------------------------------------------------------------
// sets new size of the stream
//------------------------------------------------------------------------------
procedure TMYLDBFileStream.InternalSetSize(const NewSize: Int64);
var OldPos: Int64;
begin
 OldPos := Position;
 Position := NewSize;
 Win32Check(SetEndOfFile(FHandle));
 if (OldPos > NewSize) then
  Position := NewSize
 else
  Position := OldPos;
end; // InternalSetSize


//------------------------------------------------------------------------------
// sets new size of the stream
//------------------------------------------------------------------------------
procedure TMYLDBFileStream.SetSize(NewSize: Longint);
begin
 InternalSetSize(NewSize);
end; // SetSize


{$IFDEF D6H}
//------------------------------------------------------------------------------
// sets new size of the stream
//------------------------------------------------------------------------------
procedure TMYLDBFileStream.SetSize(const NewSize: Int64);
begin
 InternalSetSize(NewSize);
end; // SetSize
{$ENDIF}


//------------------------------------------------------------------------------
// read
//------------------------------------------------------------------------------
function TMYLDBFileStream.Read(var Buffer; Count: Longint): Longint;
begin
 Result := FileRead(FHandle, Buffer, Count);
 if (Result = -1) then
  Result := 0;
end; // SetSize


//------------------------------------------------------------------------------
// write
//------------------------------------------------------------------------------
function TMYLDBFileStream.Write(const Buffer; Count: Longint): Longint;
begin
 Result := FileWrite(FHandle, Buffer, Count);
 if (Result = -1) then
  Result := 0;
end; // SetSize


//------------------------------------------------------------------------------
// seek
//------------------------------------------------------------------------------
function TMYLDBFileStream.Seek(Offset: Longint; Origin: Word): Longint;
begin
 Result := FileSeek(FHandle, Offset, Origin);
end; // SetSize


{$IFDEF D6H}
//------------------------------------------------------------------------------
// seek
//------------------------------------------------------------------------------
function TMYLDBFileStream.Seek(const Offset: Int64; Origin: TSeekOrigin): Int64;
begin
 Result := FileSeek(FHandle, Offset, Ord(Origin));
end; // Seek
{$ENDIF}


//------------------------------------------------------------------------------
// Create
//------------------------------------------------------------------------------
constructor TMYLDBFileStream.Create(const FileName: string; Mode: Word; IsTemporary: Boolean = False);
begin
 FBlockSize := DefaultFileBlockSize;
 FMode := Mode;
 FFileName := FileName;
 FIsTemporary := IsTemporary;
 if (Mode = fmCreate) then
  begin
   //FHandle := FileCreate(FileName);
     FHandle := InternalFileCreate(FileName);
   if (FHandle < 0) then
    raise EMYLDBException.Create(10104,ErrorLCannotCreateFile,[FileName]);
  end
 else
  begin
   FHandle := FileOpen(FileName,Mode);
   if (FHandle < 0) then
    raise EMYLDBException.Create(10105,ErrorLCannotOpenFile,[FileName,Mode]);
  end;
end; // Create


//------------------------------------------------------------------------------
// Destroy
//------------------------------------------------------------------------------
destructor TMYLDBFileStream.Destroy;
begin
 if FHandle >= 0 then
  FileClose(FHandle);
 inherited;
end; // Destroy




////////////////////////////////////////////////////////////////////////////////
//
// TMYLDBTemporaryStream
//
////////////////////////////////////////////////////////////////////////////////


//------------------------------------------------------------------------------
// sets new size of the stream
//------------------------------------------------------------------------------
procedure TMYLDBTemporaryStream.InternalSetSize(const NewSize: Int64);
begin
 if (FInMemory) then
  FMemoryStream.Size := NewSize
 else
  FFileStream.Size := NewSize;
end; // InternalSetSize


//------------------------------------------------------------------------------
// sets new size of the stream
//------------------------------------------------------------------------------
procedure TMYLDBTemporaryStream.SetSize(NewSize: Longint);
begin
 InternalSetSize(NewSize);
end; // SetSize


{$IFDEF D6H}
//------------------------------------------------------------------------------
// sets new size of the stream
//------------------------------------------------------------------------------
procedure TMYLDBTemporaryStream.SetSize(const NewSize: Int64);
begin
 InternalSetSize(NewSize);
end; // SetSize
{$ENDIF}


//------------------------------------------------------------------------------
// read
//------------------------------------------------------------------------------
function TMYLDBTemporaryStream.Read(var Buffer; Count: Longint): Longint;
begin
 if (FInMemory) then
  Result := FMemoryStream.Read(Buffer,Count)
 else
  Result := FFileStream.Read(Buffer,Count);
end; // Read


//------------------------------------------------------------------------------
// write
//------------------------------------------------------------------------------
function TMYLDBTemporaryStream.Write(const Buffer; Count: Longint): Longint;
begin
 if (FInMemory) then
  begin
    if (FDisableTempFiles or (FMemoryStream.Size + Int64(Count) <= FMemoryLimit)) then
     Result := FMemoryStream.Write(Buffer,Count)
    else
     begin
      FFileName := GetTempFileName;
      FFileStream := TMYLDBFileStream.Create(FFileName,fmCreate,True);
      FFileStream.LoadFromStream(FMemoryStream);
      FFileStream.Position := FMemoryStream.Position;
      FMemoryStream.Free;
      FMemoryStream := nil;
      FInMemory := false;
      Result := FFileStream.Write(Buffer,Count);
     end;
  end
 else
  begin
    Result := FFileStream.Write(Buffer,Count);
  end;
end; // Write


//------------------------------------------------------------------------------
// seek
//------------------------------------------------------------------------------
function TMYLDBTemporaryStream.Seek(Offset: Longint; Origin: Word): Longint;
begin
 if (FInMemory) then
  Result := FMemoryStream.Seek(Offset,Origin)
 else
  Result := FFileStream.Seek(Offset,Origin);
end; // Seek


{$IFDEF D6H}
//------------------------------------------------------------------------------
// seek
//------------------------------------------------------------------------------
function TMYLDBTemporaryStream.Seek(const Offset: Int64; Origin: TSeekOrigin): Int64;
begin
 if (FInMemory) then
  Result := FMemoryStream.Seek(Offset,Origin)
 else
  Result := FFileStream.Seek(Offset,Origin);
end; // Seek
{$ENDIF}


//------------------------------------------------------------------------------
// Create
//------------------------------------------------------------------------------
constructor TMYLDBTemporaryStream.Create(DisableTempFiles: Boolean);
begin
 FDisableTempFiles := DisableTempFiles;
 FBlockSize := DefaultTemporaryBlockSize;
 FMemoryLimit := DefaultTemporaryLimit;
 FFileName := '';
 FInMemory := True;
 FMemoryStream := TMYLDBMemoryStream.Create;
 FFileStream := nil;
end; // Create


//------------------------------------------------------------------------------
// Destroy
//------------------------------------------------------------------------------
destructor TMYLDBTemporaryStream.Destroy;
begin
 if (FMemoryStream <> nil) then
  FMemoryStream.Free;
 if (FFileStream <> nil) then
  FFileStream.Free;
 inherited;
end; // Destroy


////////////////////////////////////////////////////////////////////////////////
//
// TMYLDBCompressedBLOBStream
//
////////////////////////////////////////////////////////////////////////////////


//------------------------------------------------------------------------------
// returns block size for creating a compressed blob stream with specified compression level
//------------------------------------------------------------------------------
function TMYLDBCompressedBLOBStream.InternalGetBlockSize(CompressionMode: Byte): Integer;
begin
 if (CompressionMode = 0) then
  Result := DefaultBLOBBlockSize
 else
 if (CompressionMode <= 3) then
  Result := BlockSizeForFastest
 else
 if (CompressionMode <= 6) then
  Result := BlockSizeForNormal
 else
  Result := BlockSizeForMax;
end; // InternalGetBlockSize


//------------------------------------------------------------------------------
// set size of compressed stream
//------------------------------------------------------------------------------
procedure TMYLDBCompressedBLOBStream.CalculateRate;
var i: 		Integer;
    f,f1:	Extended;
begin
 FCompressedSize := 0;
 if (FCompressionAlgorithm = acaNone) then
  begin
   FCompressedSize := FUncompressedSize;
   FCompressionRate := 0;
  end
 else
 if (FUncompressedSize <= 0) then
  begin
   FCompressedSize := FUncompressedSize;
   FCompressionRate := 0;
  end
 else
  begin
   for i := 0 to FHeaders.ItemCount-1 do
    Inc(FCompressedSize,FHeaders.Items[i].CompressedSize);
   f1 := FUncompressedSize;
   f := FCompressedSize;
   FCompressionRate := (1 - f / f1) * 100.0;
  end;
end; //CalculateRate


//------------------------------------------------------------------------------
// create
//------------------------------------------------------------------------------
procedure TMYLDBCompressedBLOBStream.InternalCreate(ToCreate: Boolean);
begin
 // compression
 FHeaders := TMYLDBCompressedStreamBlockHeadersArray.Create;
 if (ToCreate) then
  begin
   if (FBLOBDescriptor.BlockSize = 0) then
    FBLOBDescriptor.BlockSize := InternalGetBlockSize(FCompressionMode);
   FBLOBDescriptor.NumBlocks := 0;
  end; // compression
 FBlockSize := FBLOBDescriptor.BlockSize;
 FUncompressedSize := 0;
 FCompressedSize := 0;
 LoadHeaders; // loading headers
 FCurrentHeader := 0;
 FPosition := 0;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩一区二区不卡| 亚洲欧美激情插| 精品国产自在久精品国产| 在线播放欧美女士性生活| 色av一区二区| 欧美美女一区二区在线观看| 欧美精品日韩一本| 欧美α欧美αv大片| 精品日韩99亚洲| 国产欧美日韩一区二区三区在线观看| 久久久久久久精| 中文字幕永久在线不卡| 91丨九色丨国产丨porny| 国产一区二区在线观看免费 | 久久99久久久欧美国产| 精品一区二区影视| 国产盗摄女厕一区二区三区| 99在线精品免费| 在线视频国产一区| 日韩三级免费观看| 26uuu欧美| ●精品国产综合乱码久久久久| 亚洲精品视频一区| 日韩精品一级二级| 国产露脸91国语对白| 99热这里都是精品| 欧美视频一二三区| 精品国产一二三| 久久亚洲春色中文字幕久久久| 久久久久久97三级| 亚洲精品欧美激情| 麻豆一区二区三区| 成人动漫一区二区| 欧美日韩国产免费一区二区 | 国产精品夫妻自拍| 亚洲成人免费视频| 国产一区二区三区久久久| 成人福利在线看| 欧美猛男超大videosgay| 久久久电影一区二区三区| 亚洲精品日产精品乱码不卡| 秋霞影院一区二区| av在线综合网| 日韩一区二区三区电影| 国产精品激情偷乱一区二区∴| 视频一区二区欧美| 暴力调教一区二区三区| 51午夜精品国产| 国产精品久久久久久久久免费相片| 舔着乳尖日韩一区| 国产成人av在线影院| 7777精品伊人久久久大香线蕉经典版下载| 久久色.com| 午夜影院在线观看欧美| 成人av资源在线| 日韩色在线观看| 亚洲国产视频直播| 成人免费的视频| 欧美岛国在线观看| 日韩视频一区二区| 精品久久国产字幕高潮| 亚洲激情男女视频| 成人午夜电影久久影院| 日韩一区二区三区在线| 一区二区三区不卡视频在线观看| 精品一区二区三区av| 欧美日韩久久久一区| 综合电影一区二区三区 | 蜜臀久久久久久久| 欧美亚洲禁片免费| 亚洲图片你懂的| 国产精品77777竹菊影视小说| 欧美一区二区久久| 亚洲a一区二区| 91蝌蚪porny| 国产精品久久夜| 国产电影一区二区三区| 精品国产sm最大网站免费看| 无码av中文一区二区三区桃花岛| 91啦中文在线观看| 久久久精品影视| 精品一区二区三区视频| 日韩一区和二区| 日本中文字幕一区二区视频 | 欧美videos中文字幕| 午夜激情一区二区| 色婷婷综合久色| 亚洲男人电影天堂| 91在线观看高清| 亚洲天堂精品在线观看| zzijzzij亚洲日本少妇熟睡| 亚洲国产精品二十页| 国产主播一区二区| 久久综合国产精品| 国产一区欧美日韩| 久久久久久久精| 国产精品综合av一区二区国产馆| 欧美成人猛片aaaaaaa| 麻豆免费精品视频| 欧美成人精精品一区二区频| 久久99久国产精品黄毛片色诱| 日韩一区二区三区av| 蜜桃精品视频在线观看| 欧美电视剧免费全集观看| 激情都市一区二区| 久久久影视传媒| 成人听书哪个软件好| 国产精品第五页| 日本道精品一区二区三区| 亚洲一区二区三区国产| 欧美精选一区二区| 蜜桃在线一区二区三区| 2023国产精华国产精品| 国产精品99久久不卡二区| 国产精品欧美久久久久无广告 | 91视频国产观看| 尤物av一区二区| 免费一级片91| 日韩欧美一二三| 精品一区二区免费看| 久久影院视频免费| 高清在线观看日韩| 国产精品家庭影院| 欧美日韩激情在线| 蜜臀av在线播放一区二区三区| 精品国产乱码91久久久久久网站| 精品一区二区三区免费视频| 国产精品福利一区| 欧美日韩1区2区| 国产乱码字幕精品高清av | 国产精品久久精品日日| 在线免费观看日韩欧美| 奇米精品一区二区三区在线观看一| 精品福利一区二区三区免费视频| 成人黄页毛片网站| 五月天激情综合网| 国产欧美精品在线观看| 欧美日韩免费高清一区色橹橹 | 午夜婷婷国产麻豆精品| 久久综合一区二区| 色噜噜久久综合| 激情综合网av| 有坂深雪av一区二区精品| 日韩精品一区二区三区三区免费 | 欧美日韩中字一区| 国产成人午夜高潮毛片| 亚洲一区二区视频在线观看| 日韩精品一区二区三区视频在线观看| 丁香网亚洲国际| 午夜成人免费视频| 日本一区二区三区dvd视频在线| 欧美午夜宅男影院| 国产风韵犹存在线视精品| 亚洲国产一区二区三区| 久久人人97超碰com| 在线免费一区三区| 国产一区二区91| 午夜精品免费在线| 久久久久久久国产精品影院| 欧美亚洲国产一区在线观看网站| 精品一区二区影视| 亚洲精品国久久99热| 国产视频在线观看一区二区三区 | 一本大道久久a久久精品综合| 久久99精品久久久久久国产越南| 亚洲婷婷综合久久一本伊一区| 精品福利一二区| 91精品婷婷国产综合久久性色| 亚洲综合色区另类av| 26uuu精品一区二区在线观看| 欧美三级视频在线播放| 成人av在线网| 国产精品一级片在线观看| 五月天精品一区二区三区| 最新热久久免费视频| 日韩欧美一级特黄在线播放| 欧美吞精做爰啪啪高潮| 成人黄色免费短视频| 另类成人小视频在线| 亚洲国产精品一区二区久久| 亚洲欧美日韩在线不卡| 国产欧美一区二区精品性| 精品久久一区二区| 91超碰这里只有精品国产| 成人开心网精品视频| 国产精品一区二区果冻传媒| 久久99精品国产麻豆婷婷洗澡| 日韩精品午夜视频| 午夜国产不卡在线观看视频| 亚洲综合在线观看视频| 亚洲免费看黄网站| 亚洲色图清纯唯美| 亚洲日本在线a| 亚洲色大成网站www久久九九| 国产精品午夜电影| 国产精品美女久久久久久久久 | 亚洲3atv精品一区二区三区| 亚洲精品乱码久久久久久黑人| 亚洲日本一区二区三区| 亚洲日本在线视频观看|