Esempio n. 1
0
        void WriteStreams(Stream file)
        {
            BinaryWriter     writer = new BinaryWriter(file);
            PackedDataHeader header = WriteHeader(writer);

            WriteStreams(writer);

            string runtime = data.Options.Runtime;

            writer.Write(runtime);
            writer.Write(runtime.Length);

            writer.Write(header.Start);
        }
Esempio n. 2
0
        ArrayList ReadStreams(Stream file)
        {
            BinaryReader     reader = new BinaryReader(file);
            PackedDataHeader header = ReadHeader(reader);
            PackedDataTable  table  = header.DataTable;
            ArrayList        result = new ArrayList();
            int count = table.RowCount;

            for (int i = 0; i < count; i++)
            {
                byte[] data = ReadStream(reader, header.Start, table[i]);
                result.Add(data);
            }
            return(result);
        }
Esempio n. 3
0
        // private methods...
        PackedDataHeader ReadHeader(BinaryReader reader)
        {
            Stream baseStream = reader.BaseStream;
            int    length     = (int)baseStream.Length;

            baseStream.Seek(length - 4, SeekOrigin.Begin);
            int start = reader.ReadInt32();

            baseStream.Seek(start, SeekOrigin.Begin);
            PackedDataHeader header = new PackedDataHeader();

            header.Start = start;
            header.Read(reader);
            ReadOptions(reader);
            return(header);
        }
Esempio n. 4
0
        // private methods...
        PackedDataHeader WriteHeader(BinaryWriter writer)
        {
            Stream baseStream  = writer.BaseStream;
            int    headerStart = (int)baseStream.Length;

            baseStream.Seek(headerStart, SeekOrigin.Begin);
            PackedDataHeader header = new PackedDataHeader();

            header.Start = headerStart;
            int count = data.StreamCount;

            for (int i = 0; i < count; i++)
            {
                PackedDataStream stream = data[i];
                int length = stream.Data.Length;
                header.DataTable.AddRow(length);
            }
            header.Write(writer);
            WriteOptions(writer);
            return(header);
        }