/// <summary> /// Reads the trans list /// </summary> /// <param name="ms"></param> /// <param name="owner"></param> /// <returns></returns> protected ObservableCollection <NdfTranReference> ReadTrans(Stream ms, NdfBinary owner) { var trans = new ObservableCollection <NdfTranReference>(); NdfFooterEntry stringEntry = owner.Footer.Entries.Single(x => x.Name == "TRAN"); ms.Seek(stringEntry.Offset, SeekOrigin.Begin); int i = 0; var buffer = new byte[4]; while (ms.Position < stringEntry.Offset + stringEntry.Size) { var ntran = new NdfTranReference { Id = i }; ms.Read(buffer, 0, buffer.Length); int strLen = BitConverter.ToInt32(buffer, 0); var strBuffer = new byte[strLen]; ms.Read(strBuffer, 0, strBuffer.Length); ntran.Value = Encoding.GetEncoding("ISO-8859-1").GetString(strBuffer); i++; trans.Add(ntran); } // TODO: Trans is actually more a tree than a list, this is still not fully implemented/reversed. return(trans); }
protected void ReadTrans() { var trans = new List <NdfTranReference>(); var stringEntry = Footer.Entries.Single(x => x.Name == "TRAN"); //TODO: int cast is a bit too hacky here, solution needed using (var ms = new MemoryStream(ContentData, (int)stringEntry.Offset - 40, (int)stringEntry.Size)) { int i = 0; var buffer = new byte[4]; while (ms.Position < ms.Length) { var ntran = new NdfTranReference { Offset = ms.Position, Id = i }; ms.Read(buffer, 0, buffer.Length); var strLen = BitConverter.ToInt32(buffer, 0); var strBuffer = new byte[strLen]; ms.Read(strBuffer, 0, strBuffer.Length); ntran.Value = Encoding.GetEncoding("ISO-8859-1").GetString(strBuffer); i++; trans.Add(ntran); } } Trans = trans; }
public NdfTrans(NdfTranReference value, long offset) : base(NdfType.TransTableReference, value, offset) { }
public NdfTrans(NdfTranReference value) : base(NdfType.TransTableReference, value) { }
/// <summary> /// Reads the trans list /// </summary> /// <param name="ms"></param> /// <param name="owner"></param> /// <returns></returns> protected ObservableCollection<NdfTranReference> ReadTrans(Stream ms, NdfBinary owner) { var trans = new ObservableCollection<NdfTranReference>(); NdfFooterEntry stringEntry = owner.Footer.Entries.Single(x => x.Name == "TRAN"); ms.Seek(stringEntry.Offset, SeekOrigin.Begin); int i = 0; var buffer = new byte[4]; while (ms.Position < stringEntry.Offset + stringEntry.Size) { var ntran = new NdfTranReference { Id = i }; ms.Read(buffer, 0, buffer.Length); int strLen = BitConverter.ToInt32(buffer, 0); var strBuffer = new byte[strLen]; ms.Read(strBuffer, 0, strBuffer.Length); ntran.Value = Encoding.GetEncoding("ISO-8859-1").GetString(strBuffer); i++; trans.Add(ntran); } // TODO: Trans is actually more a tree than a list, this is still not fully implemented/reversed. return trans; }