readRecord method

Future<void> readRecord(
  1. int index
)

Implementation

Future<void> readRecord(int index) async {
  check();
  int pos = 100 + index * 8;

  if (pos - channelOffset < 0 ||
      channelOffset + buf.limit <= pos ||
      lastIndex == -1) {
    ShpLogger().v("Filling buffer...");
    channelOffset = pos;
    await (afileReader as FileReaderRandom).setPosition(pos);
    buf.clear();
    await afileReader.readIntoBuffer(buf);
    buf.flip();
  }

  buf.position = pos - channelOffset;
  recOffset = buf.getInt32();
  recLen = buf.getInt32();
  lastIndex = index;
}