text 在nim中读取gzipped文件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了text 在nim中读取gzipped文件相关的知识,希望对你有一定的参考价值。

import
  zlib, streams

type
  GZipStream* = object of StreamObj
    f: GzFile

  GzipStreamRef* = ref GZipStream

proc fsClose(s: Stream) =
  discard gzclose(GZipStreamRef(s).f)

proc fsReadData(s: Stream, buffer: pointer, bufLen: int): int =
  return gzread(GZipStreamRef(s).f, buffer, bufLen)

proc fsAtEnd(s: Stream): bool =
  return gzeof(GZipStreamRef(s).f) != 0

proc newGZipStream*(f: GzFile): GZipStreamRef =
  new result
  result.f = f
  result.closeImpl = fsClose
  result.readDataImpl = fsReadData
  result.atEndImpl = fsAtEnd
  # other methods are nil!

proc newGZipStream*(filename: cstring): GZipStreamRef =
  var gz = gzopen(filename, "r")
  if gz != nil: return newGZipStream(gz)

以上是关于text 在nim中读取gzipped文件的主要内容,如果未能解决你的问题,请参考以下文章

如何在 python 中读取 gzip netcdf 文件?

如何实现,读取远程文件,用GZIP压缩后保存成文件

text 创建Joomla网站的完整备份到tar gzip文件并存储在备份目录中

Perl | Perl读取gzip压缩文件

python没有使用gzip读取gzip文件

如何有效地读取非常大的 gzip 压缩日志文件的最后一行?