예제 #1
0
파일: ZimReader.cs 프로젝트: DanWBR/Zim
        private Article GetArticle(DirectoryEntry DE)
        {
            Article A = new Article();

            A.DirectoryEntry = DE;

            ArticleCluster AC = GetArticleCluster(DE.Cluster);

            A.Body = AC.Blobs[DE.Blob];
            return(A);
        }
예제 #2
0
파일: ZimReader.cs 프로젝트: DanWBR/Zim
        private ArticleCluster GetArticleCluster(int ClusterNumber)
        {
            ArticleCluster AC = new ArticleCluster();

            zimFileBinaryReader.BaseStream.Seek(ClusterPointers [ClusterNumber], SeekOrigin.Begin);

            AC.Compression = (ArticleCluster.CompressionType)zimFileBinaryReader.ReadByte();

            switch (AC.Compression)
            {
            case ArticleCluster.CompressionType.LZMA2:
                AC.PopulateArticle(XZ.OpenXZ(zimFileBinaryReader));
                break;

            default:
                AC.PopulateArticle(zimFileBinaryReader.BaseStream);
                break;
            }

            return(AC);
        }
예제 #3
0
파일: ZimReader.cs 프로젝트: sambott/Zim
        private ArticleCluster GetArticleCluster(int ClusterNumber)
        {
            ArticleCluster AC = new ArticleCluster ();
            zimFileBinaryReader.BaseStream.Seek (ClusterPointers [ClusterNumber], SeekOrigin.Begin);

            AC.Compression = (ArticleCluster.CompressionType)zimFileBinaryReader.ReadByte ();

            switch (AC.Compression) {

            case ArticleCluster.CompressionType.LZMA2:
                AC.PopulateArticle (XZ.OpenXZ (zimFileBinaryReader));
                break;

            default:
                AC.PopulateArticle (zimFileBinaryReader.BaseStream);
                break;
            }

            return AC;
        }