---
name: "Binary.setBlockData"
section: "3kaya"
platform: "linux"
package: "kaya"
version: "0.4.4-6.2"
release: "Debian 8 (Jessie)"
platforms: ["linux"]
url: "https://new.carta.tech/Binary.setBlockData"
---

# Binary.setBlockData(3kaya)

Set the contents of a block.

## NAME

Binary::setBlockData - Set the contents of a block.

## SYNOPSIS

**Void setBlockData(** *var Binary block, Int offset, \[Int\] bdata* **)**

## ARGUMENTS

**block** The binary block

**offset** The offset to start at (zero-indexed)

**bdata** The data to write, as an array of **Int**  s

## DESCRIPTION

Set the contents of (part of) a block from an array. An **Binary.OffsetOutOfRange (3kaya)** Exception will be thrown if this would cause a write outside the bounds of the block. The following bits of code are equivalent:

-

   setBlockData(block,offset,bdata);\
    // is equivalent to\
    for byte@idx in bdata {\
        poke(block,offset+idx,byte);\
    }

However, **setBlockData**  is more efficient and checks bounds before any data is written - the above for loop could write partial data if **offset+idx**  was greater than **blockSize(block)**

## AUTHORS

Kaya standard library by Edwin Brady, Chris Morris and others (kaya@kayalang.org). For further information see http://kayalang.org/

## LICENSE

The Kaya standard library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License (version 2.1 or any later version) as published by the Free Software Foundation.

## RELATED

**Binary.Binary (3kaya)**

**Binary.array (3kaya)**

**Binary.copyBlock (3kaya)**

**Binary.getBlockChunk (3kaya)**

**Binary.poke (3kaya)**

**Binary.pokeString (3kaya)**
