Exemplo n.º 1
0
        /// <summary>
        /// setzt die Abschnittsdaten mit den Daten des <see cref="BinaryReaderWriter"/> ab der aktuellen (!) Position des <see cref="BinaryReaderWriter"/>
        /// </summary>
        /// <param name="type"></param>
        /// <param name="bw"></param>
        /// <returns></returns>
        public bool SetSectionDataFromWriter(int type, BinaryReaderWriter bw)
        {
            if (!ContainsType(type) || bw == null)
            {
                return(false);
            }
            Section sec = sections[type];

            sec.Data            = bw.ToArray();
            sec.Position.Length = (uint)sec.Data.Length;
            return(true);
        }
Exemplo n.º 2
0
            /// <summary>
            /// schreibt den Blockheader und die Blockdaten
            /// </summary>
            /// <param name="wr"></param>
            public new void Write(BinaryReaderWriter wr)
            {
                BinaryReaderWriter wrtmp = new BinaryReaderWriter();

                base.Write(wrtmp);

                SubCount = (UInt16)DataSize.Count;
                //Unknown1 = (UInt16)(SubCount + 1);

                wrtmp.Write(Unknown1);
                wrtmp.Write(SubCount);

                for (int i = 0; i < DataSize.Count; i++)
                {
                    wrtmp.Write(DataSize[i]);
                }

                wrtmp.Write(HasCopyright);
                wrtmp.Write(Unknown2);
                wrtmp.Write(Unknown3);
                wrtmp.Write(Unknown4);
                wrtmp.Write(Unknown5);
                wrtmp.Write(Unknown6);
                wrtmp.Write(Unknown7);

                for (int i = 0; i < Name.Count; i++)
                {
                    wrtmp.WriteString(Name[i]);
                }

                wrtmp.Write(Unknown8);
                wrtmp.Write(Unknown9);

                wrtmp.Seek(1);
                wrtmp.Write((short)(wrtmp.Length - 3)); // Länge des Datenbereiches schreiben
                wrtmp.Seek(0);

                wr.Write(wrtmp.ToArray());

                wrtmp.Dispose();
            }