# cbMemRead()

Reads data from a memory board into an array.

## Function Prototype

C/C++

int cbMemRead(int BoardNum, unsigned short DataBuffer[], long FirstPoint, long Count)

Visual Basic

Function cbMemRead(ByVal BoardNum&, DataBuffer%, ByVal FirstPoint&, ByVal Count&) As Long

## Arguments

BoardNum

The number associated with the board when it was installed with InstaCal or created with cbCreateDaqDevice(). BoardNum may be 0 to 99.

DataBuffer

Pointer to the data array.

FirstPoint

Index of first point to read, or FROMHERE. Use FirstPoint to specify the first point to read. For example, to read data sample numbers 200 through 250, set FirstPoint = 200 and Count = 50.

Count

Number of data points (words) to read.

## Returns

- Error code or 0 if no errors
- DataBuffer – data read from the memory board.

## Notes

- If you are going to read a large amount of data from the board in small chunks, set FirstPoint to FROMHERE to read each successive chunk. Using FROMHERE speeds up the operation of cbMemRead() when working with large amounts of data.
- For example, to read 300,000 points in 100,000 point chunks, the calls would look like this:

cbMemRead (0, DataBuffer, 0, 100000)

cbMemRead (0, DataBuffer, FROMHERE, 1000000)

cbMemRead (0, DataBuffer, FROMHERE, 1000000)

- DT-Connect Conflicts: The cbMemRead() function can not be called while a DT-Connect transfer is in progress. For example, if you start collecting A/D data to the memory board in the background (by calling cbAInScan() with the DTCONNECT + BACKGROUND options) you can not call cbMemRead() until the cbAInScan() has completed. If you do you will get a DTACTIVE error.