刚打开刚才编译的.net应用程序并在文件的二进制结构中找到了下一个:

我刚刚使用我的HTTP解析器工具,我正在使用子串搜索算法进行训练,并在不同的地方找到了一些人类"Ivan Medvedev"的真实姓名.
它是什么?
我现在正在浏览python.org的python教程.我在10.9,我正在尝试使用zlib库来压缩字符串.但是,len(compressedString)并不总是小于len(originalString).我的翻译代码如下:
>>> import zlib
>>> s = 'the quick brown fox jumps over the lazy dog'
>>> len(s)
43
>>> t = zlib.compress(s)
>>> len(t)
50
>>> t
'x\x9c+\xc9HU(,\xcdL\xceVH*\xca/\xcfSH\xcb\xafP\xc8*\xcd-(V\xc8/K-R(\x01J\xe7$VU*\xa4\xe4\xa7\x03\x00a<\x0f\xfa'
>>> len(zlib.decompress(t))
43
>>> s2 = "something else i'm compressing"
>>> len(s2)
30
>>> t2 = zlib.compress(s2)
>>> len(t2)
37
>>> s3 = "witch which has which witches wrist watch"
>>> len(s3)
41
>>> t3 = zlib.compress(s3)
>>> len(t3)
37
Run Code Online (Sandbox Code Playgroud)
有谁知道为什么会这样?
假设数学表达式的字符数少于原始数字.例-
20880467999847912034355032910578可表示为(23 ^ 23 +10)
这看起来像一个很好的压缩方法.它可以用于压缩大文件吗?
更新 - 我并不是说将文件转换为大二进制数.假设我有一个文本文件,我用它们的ascii值替换它中的所有字符.现在我在十进制数字系统中有一个大数字.我可以将它表达为一个数学表达式,如上例所示.
我想这很简单,但我在DotNetZip示例或文档中找不到任何帮助.我需要将文件夹添加到包含文件夹和文件的zip文件中,我需要维护文件夹而不是仅压缩文件,但使用以下文件总是剥离文件夹:
using (ZipFile zip = new ZipFile())
{
string[] files = Directory.GetFiles(@TempLoc);
string[] folders = Directory.GetDirectories(@TempLoc);
zip.AddFiles(files, "Traces");
foreach (string fol in folders)
{
zip.AddDirectory(fol, "Traces");
}
zip.Comment = "These traces were gathered " + System.DateTime.Now.ToString("G");
zip.Save(arcTraceLoc + userName.Text + "-Logs.zip");
}
Run Code Online (Sandbox Code Playgroud)
我正在使用循环,因为我找不到类似于DotNetZip中的'AddFiles'的文件夹的功能.
谢谢.
例如,我有一些文件夹包含我要压缩的文件,但我想在创建之前估计存档的大小.如果需要算法可以使用预定义大小订单的临时文件小于文件夹大小.
谁能建议这样的算法或现有的压缩程序?
我想减少我的apk文件大小.所以,我试图压缩MyApp.apk文件中的resoruces.arsc文件.因为该文件是APK文件中最可缩减的文件.我测试了几个apk文件(包括其他应用程序),但它工作得很好.应用程序执行时的性能也没有什么不同.还有其他问题/原因吗?为什么该文件不压缩?
我是python的新手.我的要求是将所有文件从源目录压缩(压缩)到目标目录.我使用了stackOverFlow中的以下代码.
import zipfile, os
locfile = "D:\Python\Dir_dir\Dir_dir\ABC.txt"
loczip = "D:\Python\Dir_dir\Dir_dir2\ABC_TEST.zip"
zip = zipfile.ZipFile (loczip, "w")
zip.write (locfile)
zip.close()
Run Code Online (Sandbox Code Playgroud)
它正在创建一个zip文件,但它包含整个继承的目录结构.除了驱动器(D:/),结构的其余部分被添加到zip中.它看起来如下:"D:\ Python\Dir_dir\Dir_dir2\ABC_TEST.zip\Python\Dir_dir\Dir_dir\ABC.txt"
而我想:"D:\ Python\Dir_dir\Dir_dir2\ABC_TEST.zip\ABC.txt"
它也没有压缩.
请有人分享这个问题的解决方案.
谢谢,Subrat
我目前正在从几个数据库查询中生成大量输出.生成的XML文件大约为2GB.(这是一年的数据).为了节省一些磁盘空间和客户端的下载时间,我使用GZipStream类将此文件添加到压缩文件中.请参阅下文,了解我目前如何将文件压缩为gz.注意:fi对象是FileInfo.
using (FileStream inFile = fi.OpenRead())
using (FileStream outFile = File.Create(fi.FullName + ".gz"))
using (GZipStream Compress = new GZipStream(outFile, CompressionMode.Compress))
{
byte[] buffer = new byte[65536];
int numRead;
while ((numRead = inFile.Read(buffer, 0, buffer.Length)) != 0)
{
Compress.Write(buffer, 0, numRead);
}
}
Run Code Online (Sandbox Code Playgroud)
这种方法工作正常,但要求我将2GB文本文件写入磁盘,然后再将其全部读回来,以便将其添加到GZipStream中,然后将其作为压缩文件再次写回.这似乎是浪费时间.
有没有办法直接将我的2GB字符串添加到GZipStream而无需先写入磁盘?
我试图用一些使用zlib1.2.8的代码调试问题.问题是这个较大的项目可以创建存档,但Z_DATA_ERROR在尝试提取该存档时会遇到标题问题.
为此,我用C++编写了一个小型测试程序,压缩("缩小")指定的常规文件,将压缩数据写入第二个常规文件,并提取("膨胀")到第三个常规文件,一行为一时间 我然后diff第一个和第三个文件,以确保我得到相同的字节.
作为参考,该测试项目位于:https://github.com/alexpreynolds/zlib-test并在Clang下编译(也应该在GNU GCC下编译).
我更大的问题是如何在我的大项目中正确处理标题数据.
在我的第一个测试场景中,我可以使用以下代码设置压缩机械:
z_error = deflateInit(this->z_stream_ptr, ZLIB_TEST_COMPRESSION_LEVEL);
Run Code Online (Sandbox Code Playgroud)
在这里,ZLIB_TEST_COMPRESSION_LEVEL是1为了提供最佳速度.然后我deflate()在z_stream指针上运行,直到没有任何东西从压缩中消失.
要提取这些字节,我可以使用inflateInit():
int ret = inflateInit(this->z_stream_ptr);
Run Code Online (Sandbox Code Playgroud)
那么在这种情况下标题格式是什么?
在我的第二个测试场景中,我设置了deflate机器,如下所示:
z_error = deflateInit2(this->z_stream_ptr,
ZLIB_TEST_COMPRESSION_LEVEL,
ZLIB_TEST_COMPRESSION_METHOD,
ZLIB_TEST_COMPRESSION_WINDOW_BITS,
ZLIB_TEST_COMPRESSION_MEM_LEVEL,
ZLIB_TEST_COMPRESSION_STRATEGY);
Run Code Online (Sandbox Code Playgroud)
这些放气常数分别是,1对于电平,Z_DEFLATED为方法,15+16或31对窗口位,8用于存储器级,并Z_DEFAULT_STRATEGY为策略.
前inflateInit()呼叫不起作用; 相反,我必须使用inflateInit2()并指定一个修改的窗口位值:
int ret = inflateInit2(this->z_stream_ptr, ZLIB_TEST_COMPRESSION_WINDOW_BITS + 16);
Run Code Online (Sandbox Code Playgroud)
在这种情况下,窗口位值不是31在deflateInit2()调用中,而是15+32或 …
我听说Google snappy是一个快速解压缩库.
Snappy库使用什么作为算法?
是否有一些算法在解压缩方面更快?
压缩率和编码不是我的兴趣,但实时解压缩是我感兴趣的.
非常感谢你提前!