private int ReadBlankRecords(int valueLength) { var lengthTotal = 0; if (valueLength <= 8) { return(8); } var skip = SpssMath.GetAllocatedSize(valueLength); lengthTotal += skip == 256 ? 252 : valueLength; skip -= 8; _reader.BaseStream.Seek(skip * 4, SeekOrigin.Current); return(lengthTotal); }
private void WriteString(string value, int valueLength) { var rawVariableLength = SpssMath.GetAllocatedSize(valueLength); var bytes = _encoding.GetBytes(value.TrimEnd(), valueLength); var byteLength = bytes.Length; WriteStringBytes(bytes); _writer.AddPadding(); var writtenBytes = byteLength / 255 * 256 + (byteLength % 255 + 7) / 8 * 8; while (writtenBytes < rawVariableLength) { _writer.WriteCompressedCode(CompressedCode.SpaceCharsBlock); writtenBytes += 8; } }