当前位置: 首页>>代码示例>>C#>>正文


C# Stream.ReadUtf8String方法代码示例

本文整理汇总了C#中System.IO.Stream.ReadUtf8String方法的典型用法代码示例。如果您正苦于以下问题:C# Stream.ReadUtf8String方法的具体用法?C# Stream.ReadUtf8String怎么用?C# Stream.ReadUtf8String使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在System.IO.Stream的用法示例。


在下文中一共展示了Stream.ReadUtf8String方法的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: Read

        public static IEnumerable<Base> Read(Stream stream)
        {
            while(stream.Position<stream.Length)
            {
                var nodeType = stream.ReadUtf8String(4);
                switch (nodeType)
                {
                    case "AVAL":
                        {
                            var result = new Aval();
                            var b = (byte)stream.ReadByte();
                            result.unknown = (b & 0x80) == 0x80;
                            if (!result.unknown) throw new UnknownNodeFlagException();

                            result.nameLength = (short)(b & 0x7f);
                            result.name = stream.ReadUtf8String(result.nameLength);
                            result.value = Value.Base.Read(stream);

                            yield return result;
                            break;
                        }
                    case "BLCK":
                        {
                            yield return Blck.Read(stream);
                            break;
                        }
                    case "ROTS":
                        {
                            yield return Rots.Read(stream);
                            break;
                        }
                    case "KCUP":
                        {
                            yield return Kcup.Read(stream);
                            break;
                        }
                    default:
                        throw new UnknownNodeTypeException(nodeType);
                }
            }
        }
开发者ID:13xforever,项目名称:Witcher-2-Save-Editor,代码行数:41,代码来源:Aval.cs

示例2: ReadAllValues

        //public List<KeyValuePair<string, Base>> value;
        private static IEnumerable<KeyValuePair<string, Base>> ReadAllValues(Stream stream)
        {
            while (stream.Position < stream.Length)
            {
                var b = (byte)stream.ReadByte();
                bool f = (b & 0x80) == 0x80;
                if (!f) throw new UnknownNodeFlagException();

                var fieldName = stream.ReadUtf8String(b & 0x7f);

                yield return new KeyValuePair<string, Base>(fieldName,Read(stream));
            }
        }
开发者ID:13xforever,项目名称:Witcher-2-Save-Editor,代码行数:14,代码来源:SQuestLogPhaseStatus.cs

示例3: Read

        internal static IEnumerable<Section> Read(Stream stream)
        {
            for (var i = 0; i < 32; i++)
            {
                // ReSharper disable UseObjectOrCollectionInitializer
                var result = new Section();
                // ReSharper restore UseObjectOrCollectionInitializer
                result.name = stream.ReadUtf8String(32).TrimEnd(char.MinValue);
                if (string.IsNullOrEmpty(result.name)) yield break;

                result.offset = stream.ReadInt32();
                yield return result;
            }
        }
开发者ID:13xforever,项目名称:Witcher-2-Save-Editor,代码行数:14,代码来源:Section.cs

示例4: Read

        public int unknown2; // 4 bytes, 1

        #endregion Fields

        #region Methods

        internal static W2Save Read(Stream stream)
        {
            // ReSharper disable UseObjectOrCollectionInitializer
            var result = new W2Save();
            // ReSharper restore UseObjectOrCollectionInitializer
            result.header = stream.ReadUtf8String(4);
            result.unknown1 = stream.ReadInt32();
            result.unknown2 = stream.ReadInt32();
            result.section = Section.Read(stream).ToList();

            foreach (var sec in result.section)
                sec.ReadData(stream);
            return result;
        }
开发者ID:13xforever,项目名称:Witcher-2-Save-Editor,代码行数:20,代码来源:W2Save.cs

示例5: ReadData

        public void ReadData(Stream stream)
        {
            stream.Seek(offset, SeekOrigin.Begin);

            string nodeType = stream.ReadUtf8String(4);
            switch (nodeType)
            {
                case "BLCK":
                    {
                        data = Blck.Read(stream);
                        break;
                    }
                default:
                    throw new UnknownNodeTypeException(nodeType);
            }
        }
开发者ID:13xforever,项目名称:Witcher-2-Save-Editor,代码行数:16,代码来源:Section.cs

示例6: Read

        public static Blck Read(Stream stream)
        {
            var result = new Blck();
            var b = (byte)stream.ReadByte();
            result.unknown = (b & 0x80) == 0x80;
            if (!result.unknown) throw new UnknownNodeFlagException();

            result.nameLength = (short)(b & 0x7f);
            result.name = stream.ReadUtf8String(result.nameLength);

            result.length = stream.ReadInt32();
            using (var memStream = new MemoryStream(stream.ReadBytes(result.length)))
                result.children = Aval.Read(memStream).ToList();

            return result;
        }
开发者ID:13xforever,项目名称:Witcher-2-Save-Editor,代码行数:16,代码来源:Blck.cs

示例7: Read

        public long unknown; //crc?

        #endregion Fields

        #region Methods

        public static List<FileEntry> Read(Stream stream, int count, out long memoryGate)
        {
            memoryGate = 0;
            var result = new List<FileEntry>(count);
            for (var i=0;i<count;i++)
            {
                var entry = new FileEntry();
                var filenameLength = stream.ReadInt16();
                entry.filename = stream.ReadUtf8String(filenameLength).TrimEnd(char.MinValue);
                entry.unknown = stream.ReadInt64();
                entry.decompressedLength = stream.ReadInt64();
                entry.offset = stream.ReadInt64();
                entry.compressedLength = stream.ReadInt64();
                result.Add(entry);
                var estimatedBufferSize = entry.compressedLength + entry.decompressedLength;
                if (memoryGate < estimatedBufferSize) memoryGate = estimatedBufferSize;
            }
            return result;
        }
开发者ID:13xforever,项目名称:Witcher-2-Save-Editor,代码行数:25,代码来源:FileEntry.cs


注:本文中的System.IO.Stream.ReadUtf8String方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。