public override object ReadValue(FieldInfo f, ImageReader rdr, ReaderContext ctx) { int i = 0; for (; rdr.PeekByte(i) != 0; ++i) { } var s = Encoding.UTF8.GetString(rdr.ReadBytes(i)); rdr.Offset++; return s; }
private static string ReadSectionName(ImageReader rdr, int maxSize) { byte[] bytes = rdr.ReadBytes(maxSize); Encoding asc = Encoding.ASCII; char[] chars = asc.GetChars(bytes); int i; for (i = chars.Length - 1; i >= 0; --i) { if (chars[i] != 0) { ++i; break; } } return new String(chars, 0, i); }