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

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

?? myldbtypes.pas

?? 一個本地database引擎,支持中文T_Sql查詢,兼容DELPHI標準數(shù)據(jù)庫控件
?? PAS
?? 第 1 頁 / 共 5 頁
字號:
//------------------------------------------------------------------------------
// Set length of array to specified size
//------------------------------------------------------------------------------
procedure TMYLDBIntegerArray.Assign(v: TMYLDBIntegerArray);
var
  i: Integer;
begin
  SetSize(v.ItemCount);
  for i := 0 to ItemCount-1 do
    items[i] := v.items[i];
end;// Assign


//------------------------------------------------------------------------------
// Set length of array to specified size
//------------------------------------------------------------------------------
procedure TMYLDBIntegerArray.SetSize(newSize: Integer);
begin
 if (newSize = 0) then
  begin
   ItemCount := 0;
   allocItemCount := 0;
   Items := nil;
   Exit;
  end;

 if (newSize > allocItemCount) then
  begin
     AllocBy := AllocBy * 2;
     if (AllocBy > MaxAllocBy) then
      AllocBy := MaxAllocBy;
     if (allocItemCount + AllocBy > newSize) then
      allocItemCount := allocItemCount + AllocBy
     else
      allocItemCount := newSize;
     SetLength(Items,allocItemCount);
  end
 else
  if (newSize < ItemCount) then
   if (allocItemCount-newSize > deAllocBy) then
    begin
     deAllocBy := deAllocBy * 2;
     if (deAllocBy > MaxAllocBy) then
      deAllocBy := MaxAllocBy;
     SetLength(Items,newSize);
     allocItemCount := newSize;
    end;

 ItemCount := newSize;
end;//TMYLDBIntegerArray.SetSize


//------------------------------------------------------------------------------
// inserts an element to the end of items array
//------------------------------------------------------------------------------
procedure TMYLDBIntegerArray.Append(value: Integer);
begin
 SetSize(itemCount + 1);
 Items[itemCount-1] := value;
end;//TMYLDBIntegerArray.Append


//------------------------------------------------------------------------------
// Insert an element into specified position
//------------------------------------------------------------------------------
procedure TMYLDBIntegerArray.Insert(itemNo: Integer; value: Integer);
begin
 inc(ItemCount);
 SetSize(ItemCount);
 if (itemCount <= 1) then
  items[0] := value
 else
 if (itemNo >= itemCount-1)
  then
   items[itemCount-1] := value
  else
   begin
    Move(items[itemNo],items[itemNo+1],
        (itemCount - itemNo-1) * sizeOf(Integer));
    items[itemNo] := value;
   end;
end;//TMYLDBIntegerArray.Insert


//------------------------------------------------------------------------------
// Delete an element at specified position
//------------------------------------------------------------------------------
procedure TMYLDBIntegerArray.Delete(itemNo: Integer);
begin
 if (itemNo < itemCount-1) then
  Move(items[itemNo+1],items[itemNo],
      (itemCount - itemNo-1) * sizeOf(Integer));
 dec(ItemCount);
 SetSize(ItemCount);
end;//TMYLDBIntegerArray.Delete


//------------------------------------------------------------------------------
// moves element to new position
//------------------------------------------------------------------------------
procedure TMYLDBIntegerArray.MoveTo(itemNo, newItemNo: Integer);
var value : Integer;
begin
 if (itemNo = newItemNo) then
  Exit;
 if (itemNo - newItemNo = 1) or (newItemNo-itemNo = 1) then
  begin
   value := items[itemNo];
   items[itemNo] := items[newItemNo];
   items[newItemNo] := value;
   Exit;
  end;
 if (itemNo > newItemNo) then
  begin
   value := items[itemNo];
   Move(PChar(items[newItemNo]),PChar(items[newItemNo+1]),
        (itemNo-newItemNo) * sizeof(Integer));
   items[newItemNo] := value;
  end
 else
  begin
     value := items[ItemNo];
     Move(PChar(items[ItemNo+1]),PChar(items[ItemNo]),
        (newItemNo-ItemNo-1) * sizeof(Integer));
     items[newItemNo-1] := value;
  end;
end;// MoveTo(itemNo, newItemNo : Integer);


//------------------------------------------------------------------------------
// copies itemCount elements to ar from ItmeNo
//------------------------------------------------------------------------------
procedure TMYLDBIntegerArray.CopyTo(
                      var ar: array of Integer;
                      itemNo, iCount: Integer
                             );
begin
 if (itemCount > 0) then
  Move (PChar(items[itemNo]),PChar(ar[0]),sizeOf(Integer)*iCount);
end;// CopyTo(ar : array of Integer; itemNo,itemCount : Integer);


//------------------------------------------------------------------------------
// returns true if value exists in Items array
//------------------------------------------------------------------------------
function TMYLDBIntegerArray.IsValueExists(value: Integer): Boolean;
var i: Integer;
begin
 Result := false;
 for i := 0 to ItemCount-1 do
  if Items[i] = value then
   begin
    Result := true;
    break;
   end;
end; // IsValueExists

function TMYLDBIntegerArray.IndexOf(value: Integer): Integer;
var i: Integer;
begin
 Result := -1;
 for i := 0 to ItemCount-1 do
  if Items[i] = value then
   begin
    Result := i;
    break;
   end;
end;



////////////////////////////////////////////////////////////////////////////////
//
// TMYLDBCompressedStreamBlockHeadersArray
//
////////////////////////////////////////////////////////////////////////////////


//------------------------------------------------------------------------------
// Construct array of specified size
//------------------------------------------------------------------------------
constructor TMYLDBCompressedStreamBlockHeadersArray.Create;
begin
 AllocBy := 10; // default alloc
 DeAllocBy := 10; // default alloc
 MaxAllocBy := 10000; // max alloc
 AllocItemCount := 0;
 ItemCount := 0;
 SetSize(0);
end; // Create


//------------------------------------------------------------------------------
// Destruct array (free mem)
//------------------------------------------------------------------------------
destructor TMYLDBCompressedStreamBlockHeadersArray.Destroy;
begin
 SetSize(0);
 inherited Destroy;
end;//Destroy;


//------------------------------------------------------------------------------
// Set length of array to specified size
//------------------------------------------------------------------------------
procedure TMYLDBCompressedStreamBlockHeadersArray.SetSize(NewSize: Int64);
begin
 if (NewSize = 0) then
  begin
   ItemCount := 0;
   allocItemCount := 0;
   Items := nil;
   Positions := nil;
   Exit;
  end;

 if (NewSize > allocItemCount) then
  begin
     AllocBy := AllocBy * 2;
     if (AllocBy > MaxAllocBy) then
      AllocBy := MaxAllocBy;
     if (allocItemCount + AllocBy > NewSize) then
      allocItemCount := allocItemCount + AllocBy
     else
      allocItemCount := NewSize;
     SetLength(Items,allocItemCount);
     SetLength(Positions,allocItemCount);
  end
 else
  if (NewSize < ItemCount) then
   if (allocItemCount-NewSize > deAllocBy) then
    begin
     deAllocBy := deAllocBy * 2;
     if (deAllocBy > MaxAllocBy) then
      deAllocBy := MaxAllocBy;
     SetLength(Items,NewSize);
     SetLength(Positions,NewSize);
     allocItemCount := NewSize;
    end;
 ItemCount := NewSize;
end;// SetSize


//------------------------------------------------------------------------------
// Finds block containing specified position in user data
//------------------------------------------------------------------------------
function TMYLDBCompressedStreamBlockHeadersArray.FindPosition(Pos: Int64) : Integer;
var i,dx,f,
    oldRes,res: Int64;

 function Compare: Integer;
 begin
  //---------------------------- start of compare -----------------------------------
       // by parent
       if (Positions[i] = pos) then
        Result := 0
       else
        if (Positions[i] < pos) then
         Result := 1
        else
         Result := -1;
  //---------------------------- end of compare -----------------------------------
 end;

begin

 i := ItemCount shr 1;
 dx := i;
 Result := 0;
 if (ItemCount <= 0) then
  begin
   Result := 0;
   Exit;
  end;
  f := 0;
  res := 2;
  while (true) do
   begin
    dx := dx shr 1;
    if (dx < 1) then dx := 1;
     oldRes := res;
     // compare, ascending
     res := Compare;
    if (res < 0) then
     begin
      //  element, specified by value should be higher then current element (+->0)
      i := i - dx;
     end
    else
    if (res > 0) then
     begin
      //  element, specified by value should be lower then current element (+->0)
      i := i + dx;
     end
    else
     begin
      // values are equal
      Result := i;
      break;
     end;
    if  (i < 0) and (dx = 1) then
     begin
      // equal not found
      Result := 0;
      break;
     end;
    if  (i > ItemCount-1) and (dx = 1) then
     begin
      // equal not found
      Result := ItemCount;
      break;
     end;

    if  (i > ItemCount-1) then
     i := ItemCount-1;
    if  i < 0 then
     i := 0;

    if (dx = 1) and (f > 1) then
     begin
      // dx minimum
      // compare, ascending
      res := Compare;
      if (res < 0) and (oldRes > 0) then
       Result := i;
      if (res > 0) and (oldRes < 0) then
       Result := i+1;
      if (res = oldRes) then
       continue;
      break;
     end;// last step
    if (res <> oldRes) and (dx = 1) and (oldRes <> 2) then
     inc(f);
  end;//while dx
 if (Result >= ItemCount) then
     Result := ItemCount-1;
 if (Result > 0) then
  if (Positions[Result] > pos) then
   dec(Result);
 if (Result < 0) then
   Result := 0;
end; //FindPosition


//------------------------------------------------------------------------------
// Insert an element into specified position
//------------------------------------------------------------------------------
procedure TMYLDBCompressedStreamBlockHeadersArray.AppendItem(Value: TMYLDBCompressedStreamBlockHeader; Pos: Int64);
begin
 Inc(ItemCount);
 SetSize(ItemCount);
 Items[ItemCount-1] := value;
 Positions[ItemCount-1] := pos;
end; // AppendItem


////////////////////////////////////////////////////////////////////////////////
//
// TMYLDBBitsArray
//
////////////////////////////////////////////////////////////////////////////////


//------------------------------------------------------------------------------
// return number of bits = 1
//------------------------------------------------------------------------------
function TMYLDBBitsArray.GetNonZeroBitCount: Integer;
var i: Integer;
begin
 Result := 0;
 if (FBitCount > 0) then
  for i := 0 to FBitCount - 1 do
   if (GetBit(i)) then
    Inc(Result);
end; // GetNonZeroBitCount


//------------------------------------------------------------------------------
// set new size
//------------------------------------------------------------------------------
procedure TMYLDBBitsArray.SetSize(NewSize: Integer);
var
  SizeInBytes: Integer;
begin
  SizeInBytes := (NewSize div 8) + Integer((NewSize mod 8) > 0);
  if (NewSize = 0) then
   begin
    if (FBits <> nil) then

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
综合电影一区二区三区| 亚洲国产精品久久久男人的天堂| jlzzjlzz国产精品久久| 亚洲成人av免费| 日本一区二区三区免费乱视频| 欧美午夜在线观看| 国产suv精品一区二区883| 午夜精品福利一区二区三区av| 亚洲国产精品ⅴa在线观看| 欧美老肥妇做.爰bbww视频| 成人黄色大片在线观看| 美女网站视频久久| 亚洲已满18点击进入久久| 久久久www成人免费无遮挡大片| 欧美日韩一本到| 成人免费高清视频在线观看| 美女免费视频一区二区| 一区二区三区日韩精品| 国产精品进线69影院| 国产视频一区二区在线观看| 91精品国产欧美日韩| 欧美亚洲国产一区在线观看网站 | 亚洲男人的天堂av| 久久精品在线免费观看| 日韩久久精品一区| 欧美日韩在线三级| 91麻豆精品在线观看| 成人精品国产福利| 国产盗摄精品一区二区三区在线| 免费观看在线色综合| 三级精品在线观看| 午夜视频一区二区| 亚洲444eee在线观看| 亚洲第一福利一区| 亚洲国产欧美日韩另类综合| 亚洲免费色视频| 午夜精品久久久久久| 一区二区三区日韩在线观看| 有码一区二区三区| 亚洲激情一二三区| 亚洲韩国一区二区三区| 亚洲一区二区三区中文字幕在线| 亚洲色图视频免费播放| 亚洲精品国产无套在线观| 中文字幕一区二区5566日韩| 中文字幕欧美一| 亚洲欧美成aⅴ人在线观看| 亚洲天堂网中文字| 一区二区三区四区乱视频| 一区二区视频在线| 亚洲高清不卡在线| 日日嗨av一区二区三区四区| 免费亚洲电影在线| 激情小说亚洲一区| 国产不卡一区视频| 99re这里只有精品首页| 色天天综合色天天久久| 欧美日韩免费一区二区三区 | 国产99精品国产| 国产精品系列在线观看| 97国产精品videossex| 欧美性一二三区| 日韩免费性生活视频播放| 久久久久久久久伊人| 中文字幕av不卡| 亚洲精品成人悠悠色影视| 天天免费综合色| 黑人巨大精品欧美一区| 大白屁股一区二区视频| 91蝌蚪porny| 欧美丰满美乳xxx高潮www| 欧美sm美女调教| 国产精品看片你懂得| 亚洲成人动漫一区| 精品一区二区免费视频| 成人精品免费看| 欧美日韩色一区| 精品蜜桃在线看| 亚洲欧美综合网| 天天综合色天天综合| 精品一区二区三区欧美| 91在线播放网址| 欧美一区二区三区视频免费播放 | 国产美女主播视频一区| 成人午夜激情在线| 欧美精品一二三四| 久久久久久久久久看片| 亚洲欧美日韩一区二区 | 久久久久高清精品| 亚洲欧美日韩系列| 国产在线精品免费av| 99视频一区二区| 欧美大片日本大片免费观看| 综合在线观看色| 老司机精品视频在线| 91免费观看在线| 2023国产精品| 日韩精品一卡二卡三卡四卡无卡| 成人福利在线看| 日韩欧美国产系列| 亚洲成在人线免费| www.视频一区| 亚洲精品一区二区三区在线观看 | av电影天堂一区二区在线观看| 欧美美女一区二区在线观看| 中文字幕欧美激情| 久久99精品国产麻豆婷婷| 在线观看国产精品网站| 亚洲国产日韩a在线播放 | 3d动漫精品啪啪一区二区竹菊| 国产精品久久久99| 国产在线精品免费| 欧美一三区三区四区免费在线看| 自拍偷拍国产精品| 大桥未久av一区二区三区中文| 欧美一区二区不卡视频| 亚洲成人激情社区| 欧美性一二三区| 亚洲少妇屁股交4| 成人毛片视频在线观看| 26uuu国产日韩综合| 日韩av成人高清| 欧美亚洲国产bt| 亚洲一二三四在线| 91麻豆6部合集magnet| 国产精品天美传媒| 国产一区二区h| 久久婷婷一区二区三区| 久久电影网电视剧免费观看| 欧美一级生活片| 偷拍日韩校园综合在线| 欧美视频在线观看一区| 一个色综合av| 欧美吞精做爰啪啪高潮| 亚洲一区欧美一区| 在线免费观看视频一区| 亚洲综合清纯丝袜自拍| 在线观看三级视频欧美| 亚洲线精品一区二区三区| 色婷婷精品大在线视频| 一区二区免费在线播放| 色就色 综合激情| 亚洲影院久久精品| 欧美日韩国产经典色站一区二区三区| 一区二区三区免费网站| 欧美在线观看一区二区| 婷婷丁香激情综合| 欧美一区二区三区四区五区| 久久se精品一区二区| 精品成人a区在线观看| 精品写真视频在线观看| 欧美精品一区二区三区很污很色的| 美女视频黄免费的久久 | 国产精品一区一区| 欧美国产日韩在线观看| 91免费看片在线观看| 亚洲不卡一区二区三区| 91精品国产色综合久久不卡电影| 麻豆精品久久精品色综合| 久久久久久亚洲综合影院红桃| 国产成人综合在线观看| 中文字幕亚洲电影| 欧美吻胸吃奶大尺度电影| 人禽交欧美网站| 久久免费美女视频| av电影一区二区| 亚洲福利国产精品| 日韩欧美国产小视频| 丰满亚洲少妇av| 一区二区三区日韩精品视频| 日韩视频一区二区三区 | 欧美精品aⅴ在线视频| 麻豆久久久久久久| 国产欧美日韩另类视频免费观看| 色综合久久久久网| 蜜臀精品一区二区三区在线观看 | 欧美精品一区二区三区蜜桃| 99久久精品免费| 日本欧美一区二区三区| 国产精品乱码一区二区三区软件 | 日韩欧美www| 成人91在线观看| 日韩电影在线一区二区| 亚洲国产精品久久久男人的天堂| 日韩一区二区精品在线观看| 成人国产精品免费网站| 日韩**一区毛片| 亚洲视频你懂的| 精品国产人成亚洲区| 91麻豆福利精品推荐| 国产一区二区三区美女| 亚洲成人动漫在线免费观看| 中文字幕av资源一区| 日韩一区二区不卡| 91原创在线视频| 国产一区二区三区在线观看免费| 亚洲成人777| 综合欧美一区二区三区| 欧美mv日韩mv亚洲| 欧美亚洲国产一区二区三区va|