Removed string handling methods, added readBytesTerm
This commit is contained in:
parent
814bd5355f
commit
27f4502e5c
|
@ -360,56 +360,15 @@ namespace Kaitai
|
||||||
return ReadBytes(BaseStream.Length - BaseStream.Position);
|
return ReadBytes(BaseStream.Length - BaseStream.Position);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Read a specific set of bytes and assert that they are the same as an expected result
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="expected">The expected result</param>
|
|
||||||
/// <returns></returns>
|
|
||||||
public byte[] EnsureFixedContents(byte[] expected)
|
|
||||||
{
|
|
||||||
var bytes = ReadBytes(expected.Length);
|
|
||||||
if (!bytes.SequenceEqual(expected))
|
|
||||||
{
|
|
||||||
throw new Exception($"Expected bytes: {Convert.ToBase64String(expected)}, Instead got: {Convert.ToBase64String(bytes)}");
|
|
||||||
}
|
|
||||||
return bytes;
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
#region Strings
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Read a string until the end of the stream is reached
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="encoding">The string encoding to use</param>
|
|
||||||
/// <returns></returns>
|
|
||||||
public string ReadStrEos(string encoding)
|
|
||||||
{
|
|
||||||
return System.Text.Encoding.GetEncoding(encoding).GetString(ReadBytesFull());
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Read a string of a specific length from the stream
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="length">The number of bytes to read</param>
|
|
||||||
/// <param name="encoding">The string encoding to use</param>
|
|
||||||
/// <returns></returns>
|
|
||||||
public string ReadStrByteLimit(long length, string encoding)
|
|
||||||
{
|
|
||||||
return System.Text.Encoding.GetEncoding(encoding).GetString(ReadBytes(length));
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Read a terminated string from the stream
|
/// Read a terminated string from the stream
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="encoding">The string encoding to use</param>
|
|
||||||
/// <param name="terminator">The string terminator value</param>
|
/// <param name="terminator">The string terminator value</param>
|
||||||
/// <param name="includeTerminator">True to include the terminator in the returned string</param>
|
/// <param name="includeTerminator">True to include the terminator in the returned string</param>
|
||||||
/// <param name="consumeTerminator">True to consume the terminator byte before returning</param>
|
/// <param name="consumeTerminator">True to consume the terminator byte before returning</param>
|
||||||
/// <param name="eosError">True to throw an error when the EOS was reached before the terminator</param>
|
/// <param name="eosError">True to throw an error when the EOS was reached before the terminator</param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public string ReadStrz(string encoding, byte terminator, bool includeTerminator, bool consumeTerminator, bool eosError)
|
public byte[] ReadBytesTerm(byte terminator, bool includeTerminator, bool consumeTerminator, bool eosError)
|
||||||
{
|
{
|
||||||
var bytes = new System.Collections.Generic.List<byte>();
|
var bytes = new System.Collections.Generic.List<byte>();
|
||||||
while (true)
|
while (true)
|
||||||
|
@ -429,7 +388,22 @@ namespace Kaitai
|
||||||
}
|
}
|
||||||
bytes.Add(b);
|
bytes.Add(b);
|
||||||
}
|
}
|
||||||
return System.Text.Encoding.GetEncoding(encoding).GetString(bytes.ToArray());
|
return bytes.ToArray();
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Read a specific set of bytes and assert that they are the same as an expected result
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="expected">The expected result</param>
|
||||||
|
/// <returns></returns>
|
||||||
|
public byte[] EnsureFixedContents(byte[] expected)
|
||||||
|
{
|
||||||
|
var bytes = ReadBytes(expected.Length);
|
||||||
|
if (!bytes.SequenceEqual(expected))
|
||||||
|
{
|
||||||
|
throw new Exception($"Expected bytes: {Convert.ToBase64String(expected)}, Instead got: {Convert.ToBase64String(bytes)}");
|
||||||
|
}
|
||||||
|
return bytes;
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
Loading…
Reference in New Issue