public bool Getblock(ref byte[] buf, UInt32 block_number, Int32 blocklen = -1) // буфер принадлежит вызывающей процедуре { if (Data1CD == null) { return(false); } if (blocklen < 0) { blocklen = (Int32)Pagesize; } if (block_number >= length) { Console.WriteLine($"Попытка чтения блока за пределами файла. Индекс блока {block_number}, всего блоков {length}"); return(false); } //memcpy(buf, MemBlock::getblock(fs, block_number), blocklen); V8MemBlock tmp_mem_block = new V8MemBlock((FileStream)Data1CD, block_number, false, true); byte[] tmp_buf = V8MemBlock.GetBlock((FileStream)Data1CD, block_number); Array.Copy(tmp_buf, buf, blocklen); return(true); }
public byte[] Getblock(UInt32 block_number) { if (Data1CD == null) { return(null); } if (block_number >= length) { Console.WriteLine($"Попытка чтения блока за пределами файла. Индекс блока {block_number}. Всего блоков {length}"); return(null); } V8MemBlock tmpV8MemBlock = new V8MemBlock((FileStream)Data1CD, block_number, false, true); return(V8MemBlock.GetBlock((FileStream)Data1CD, block_number)); }