Tag: 压缩

重复的文本查找

我的主要问题是试图找到一个合适的解决方案来自动转换它,例如: d+c+d+f+d+c+d+f+d+c+d+f+d+c+d+f+ 进入这个: [d+c+d+f+]4 即找到彼此相邻的重复项,然后从这些重复项中缩短“循环”。 到目前为止,我找不到合适的解决方案,我期待着回应。 PS为了避免混淆,前面提到的样本并不是唯一需要“循环”的东西,它因文件而异。 哦,这是用于C ++或C#程序,要么很好,尽管我也接受任何其他建议。 此外,主要思想是所有工作都由程序本身完成,除了文件本身之外没有用户输入。 这是完整的文件,供参考,我为拉伸页面道歉:#0 @ 16 v225 y10 w250 t76 l16 $ ED $ EF $ A9 p20,20> ecegb> d <bgbgecgec d + d + f + a +> c + <a + f + a + f + d + f + d + c cegbgegec ec […]

如何使用.NET压缩目录?

我有一个包含多个文件的目录。 我想将此文件夹压缩为zip或tar.gz文件。 我怎样才能在C#中完成他的工作?

如何从C#.NET 4.5中的zip存档中提取特定目录?

我有以下内部结构的zip文件: file1.txt directoryABC fileA.txt fileB.txt fileC.txt 将文件从“directoryABC”文件夹中提取到硬盘上的目标位置的最佳方法是什么? 例如,如果目标位置是“C:\ temp”,那么其内容应为: temp directoryABC fileA.txt fileB.txt fileC.txt 此外,在某些情况下,我只想提取“directoryABC”的内容,结果将是: temp fileA.txt fileB.txt fileC.txt 如何通过在C#.NET 4.5中使用System.IO.Compression中的类来实现此目的?

如何使用zlib.NET扩展文件?

我正在使用zlib.NET库来尝试和扩充由zlib压缩的文件(可能在Linux机器上)。 这就是我正在做的事情: zlib.ZInputStream zinput = new zlib.ZInputStream(File.Open(path, FileMode.Open, FileAccess.Read)); while (stopByte != (data = zinput.ReadByte())) { // check data here } zinput.Close(); 数据字节与压缩数据字节匹配,因此我必须做错事。

如何在文件的一部分上使用DeflateStream?

我正在研究另一个问题的解决方案,即读取PNG的’zTXt’块中的数据。 我就是在文件中找到块,并阅读zTXt的关键字。 我在阅读zTXt的压缩部分时遇到问题。 我之前从未使用过DeflateStream对象,并且遇到了一些麻烦。 在读取时,似乎期望长度参数为“未压缩”字节。 但就我而言,我只知道“压缩”字节中数据的长度。 为了解决这个问题,我将需要解压缩的所有数据放入MemoryStream中,然后使用DeflateStream“读取结束”。 现在这只是peachy,除了它抛出一个InvalidDataException,并显示消息“块长度与其补码不匹配”。 现在我不知道这意味着什么。 怎么可能出错? 块的格式是4个字节用于ID(“zTXt”),一个大端32位int用于数据长度,数据,最后是CRC32校验和,我现在忽略它。 zTXt块的格式首先是以null结尾(字符串作为关键字),然后是压缩方法的一个字节(总是0,DEFLATE方法),其余数据是压缩文本。 我的方法接受一个新的FileStream,并返回一个包含zTXt关键字和数据的字典。 这是现在的怪物: public static List<KeyValuePair> GetZtxt(FileStream stream) { var ret = new List<KeyValuePair>(); try { stream.Position = 0; var br = new BinaryReader(stream, Encoding.ASCII); var head = br.ReadBytes(8); // The header is the same for all PNGs. if (!head.SequenceEqual(new byte[] { 0x89, 0x50, […]

如何使用gzip压缩.net对象实例

我想在将数据库的QUERYS添加到缓存之前压缩结果。 我希望能够压缩任何引用类型。 我有一个用于压缩字符串的工作版本..这个想法基于scott hanselman的博客文章http://shrinkster.com/173t 任何压缩.net对象的想法? 我知道它将是一个只读缓存,因为缓存中的对象只是字节数组。

zlib压缩字节数组?

我有这个未压缩的字节数组: 0E 7C BD 03 6E 65 67 6C 65 63 74 00 00 00 00 00 00 00 00 00 42 52 00 00 01 02 01 00 BB 14 8D 37 0A 00 00 01 00 00 00 00 05 E9 05 E9 00 00 00 00 00 00 00 00 00 00 […]

从C#NET 3.5中的byte 保存文件

我的TCP客户端在数据包中接收图像。图像使用zlib压缩。任务是解压缩图像并将其放在表单上。 我打算将压缩的图像保存在当前目录中,解压缩并在表单上加载解压缩的文件。 第一个问题是保存文件(压缩).zlib可以保存解压缩。 下面的代码加载压缩文件并在解压缩后保存。 private void decompressFile(string inFile, string outFile) { System.IO.FileStream outFileStream = new System.IO.FileStream(outFile, System.IO.FileMode.Create); zlib.ZOutputStream outZStream = new zlib.ZOutputStream(outFileStream); System.IO.FileStream inFileStream = new System.IO.FileStream(inFile, System.IO.FileMode.Open); try { CopyStream(inFileStream, outZStream); } finally { outZStream.Close(); outFileStream.Close(); inFileStream.Close(); } } public static void CopyStream(System.IO.Stream input, System.IO.Stream output) { byte[] buffer = new byte[2000]; int len; […]

LZW压缩C#中的字符串

我在C#中寻找一个LZW压缩算法,它采用“字符串”并返回一个字符串。 我谷歌搜索了几个小时,我发现所有使用MemoryStream,BinaryWriters等。 我只是希望能够做到这样的事情: string _data = “12345”; string _result = CompressToLZW(_data); string _data = “12345”; string _result = CompressToLZW(_data); 然后通过Ajax将该字符串传递给浏览器。 我已经有了javascript的LZW解压缩算法(http://rosettacode.org/wiki/LZW_compression#JavaScript) 谢谢。- 更新: 这是我现在使用的代码http://paste.lisp.org/display/12198 string _data = “12345_12345_12345_12345”; byte[] byteArray = Encoding.ASCII.GetBytes(_data); MemoryStream _st = new MemoryStream(byteArray); StreamReader _sr = new StreamReader(_st); MemoryStream streamoutput = new MemoryStream(); BinaryWriter _output= new BinaryWriter(streamoutput); LZW.Compress(_sr, _output); string _res […]

GZipStream的减压性能很差

我有一个连接到后端WAS服务器的.NET 2.0 WinForms应用程序。 我正在使用GZipStream来解码从对服务器发出的HttpWebRequest调用返回的数据。 返回的数据是压缩的CSV,Apache正在压缩。 整个服务器堆栈是Hibernate – > EJB – > Spring – > Apache。 对于小响应,性能很好( 150KB的响应时,解压缩需要60多秒。 大部分时间似乎花在GZipStream构造函数中。 这是显示我从HttpWebResponse调用获取响应流的位置的代码: using (Stream stream = this.Response.GetResponseStream()) { if (this.CompressData && this.Response.ContentEncoding == “gzip”) { // Decompress the response byte[] b = Decompress(stream); this.ResponseBody = encoding.GetString(b); } else { // Just read the stream as a string using […]