public IEnumerable <IXlsString> ReadStringsFromContinue(XlsBiffContinue sstContinue) { CurrentRecord = sstContinue; CurrentRecordOffset = 4; // +4 skips BIFF header if (sstContinue.Size - CurrentRecordOffset == 0) { yield break; } if (CurrentState == SstState.StringData) { byte b = ReadByte(); CurrentIsMultiByte = b != 0; } while (true) { if (!TryReadString(out var result)) { yield break; } yield return(result); } }
/// <summary> /// Parses strings out of a Continue record /// </summary> public void ReadContinueStrings(XlsBiffContinue sstContinue) { if (_strings.Count == UniqueCount) { return; } foreach (var str in _reader.ReadStringsFromContinue(sstContinue)) { _strings.Add(str); if (_strings.Count == UniqueCount) { break; } } }
/// <summary> /// Appends Continue record to SST /// </summary> /// <param name="fragment">Continue record</param> public void Append(XlsBiffContinue fragment) { continues.Add((uint)fragment.Offset); m_size += (uint)fragment.Size; }
/// <summary> /// Appends Continue record to SST /// </summary> /// <param name="fragment">Continue record</param> public void Append(XlsBiffContinue fragment) { continues.Add((uint)fragment.Offset); m_size += (uint)fragment.Size; }