小编Che*_*eso的帖子

在Emacs中,这个错误意味着什么?"警告:运行时需要cl包"

我是字节编译模块.它给了我这个警告:

 Warning: cl package required at runtime
Run Code Online (Sandbox Code Playgroud)

为什么这是一个警告?我很清楚我正在使用这个cl包.事实上(require 'cl),模块中有一个声明.

使用这些cl东西有什么问题吗?

如果是,是否有已发布的变通方法列表?我使用的主要内容是mapcandelete-duplicates.

lisp emacs common-lisp

37
推荐指数
3
解决办法
8666
查看次数

在emacs中,如何剥离CR(^ M)并留下LF(^ J)字符?

我正在尝试使用hexl模式从文本文件中手动删除一些特殊字符,但是看不到如何在hexl模式下删除任何内容.

我真正想要的是删除回车并保持换行符.Hexl模式是正确的方法吗?

emacs hex hex-editors

35
推荐指数
6
解决办法
3万
查看次数

如何确定System.IO.IOException的HResult?

System.Exception.HResult属性受保护.我怎样才能偷看异常并获得HResult而不诉诸于反思或其他丑陋的黑客攻击?


情况就是这样:
我想编写一个备份工具,它可以打开和读取系统上的文件.根据本指南,我使用FileAccess.Read和FileShare.ReadWrite打开文件,因为在我阅读文件时,我不在乎文件是否打开.

在某些情况下,当我读文件被打开另一个应用程序,该System.IO.FileStream.Read()方法引发System.IO.IOException,"该进程无法访问文件,因为另一个进程已锁定的一部分文件".这是错误33,或者我认为HResult 0x80070021.[ 编辑:我相信当另一个进程调用LockFileEx来锁定文件中的字节范围时,可以返回此值.]

当我收到此错误时,我想暂停并重试.我认为这是采取适当的行动.如果锁定进程快速释放字节范围锁,那么我可以继续读取该文件.

出于这个原因,我如何区分IOException?我可以想到这些方法:

  • 私人反思 - 不想那样做.Perf会发臭.
  • 调用Exception.ToString()并解析字符串.感觉hacky.在i18n版本中不起作用.

我不喜欢这些选择.是不是有更好,更清洁的方式?


我只是搜索并找到System.Runtime.InteropServices.Marshal.GetHRForException.那将返回像0x80070021这样的uint吗?

.net c# exception hresult

34
推荐指数
3
解决办法
2万
查看次数

.NET:如何有效地检查List <string>中50,000项的唯一性?

在某些库代码中,我有一个可以包含50,000个或更多项的List.

库的调用者可以调用导致字符串添加到列表的方法.如何有效地检查要添加的字符串的唯一性?

目前,在添加字符串之前,我扫描整个列表并将每个字符串与要添加的字符串进行比较.这开始显示超过10,000个项目的规模问题.

我将对此进行基准测试,但对洞察力感兴趣.

  • 如果我用List <>替换List <>,那么随着列表增长到10,000个项目以及更高,ContainsKey()会更快吗?
  • 如果我推迟了所有项目添加后的唯一性检查,它会更快吗?在那一点上,我需要检查每个元素与每个其他元素,仍然是一个n ^^ 2操作.

编辑

一些基本的基准结果.我创建了一个抽象类,它暴露了两种方法:Fill和Scan.填充只用n个项目填充集合(我用了50,000).扫描扫描列表m次(我使用5000)以查看是否存在给定值.然后我为List构建了该类的实现,为HashSet构建了另一个实现.

使用的字符串长度统一为11个字符,并通过抽象类中的方法随机生成.

一个非常基本的微观基准.

Hello from Cheeso.Tests.ListTester
filling 50000 items...
scanning 5000 items...
Time to fill: 00:00:00.4428266
Time to scan: 00:00:13.0291180

Hello from Cheeso.Tests.HashSetTester
filling 50000 items...
scanning 5000 items...
Time to fill: 00:00:00.3797751
Time to scan: 00:00:00.4364431
Run Code Online (Sandbox Code Playgroud)

因此,对于该长度的字符串,当扫描唯一性时,HashSet比List快大约25倍.此外,对于此大小的集合,在向集合添加项目时,HashSet对List没有任何惩罚.

结果很有趣,无效.为了获得有效的结果,我需要进行预热间隔,多次试验,随机选择实施.但我相信这只会略微改变这一点.

感谢大家.

EDIT2

在添加随机化和多重试验之后,HashSet在这种情况下始终优于List,大约20倍.

这些结果不一定适用于可变长度,更复杂对象或不同集合大小的字符串.

.net c# collections list hashset

32
推荐指数
3
解决办法
3662
查看次数

通过DotNetZip库以编程方式提取ZIP文件?

我有一个函数获取ZIP文件并将其解压缩到一个目录(我使用DotNetZip库.)

public void ExtractFileToDirectory(string zipFileName, string outputDirectory)
{
     ZipFile zip = ZipFile.Read(zipFileName);
     Directory.CreateDirectory(outputDirectory);
     zip.ExtractAll(outputDirectory,ExtractExistingFileAction.OverwriteSilently);
}
Run Code Online (Sandbox Code Playgroud)

我的ZIP文件包含多个文件和目录.但我想只提取其中一些文件,而不是全部.

我怎样才能做到这一点?

c# zip extract dotnetzip

32
推荐指数
3
解决办法
4万
查看次数

如何在Q中按顺序链接可变数量的promise?

在Q中看到Chaining任意数量的承诺 ; 我的问题不同.

如何按顺序进行可变数量的调用,每个调用都异步返回?
该场景是一组HTTP请求,其数量和类型由第一个HTTP请求的结果确定.

我想简单地这样做.

我也看到过这样的答案:

var q = require('q'),
    itemsToProcess =  ["one", "two", "three", "four", "five"];

function getDeferredResult(prevResult) {
  return (function (someResult) {
    var deferred = q.defer();
    // any async function (setTimeout for now will do, $.ajax() later)
    setTimeout(function () {
      var nextResult = (someResult || "Initial_Blank_Value ") + ".." + itemsToProcess[0];
      itemsToProcess = itemsToProcess.splice(1);
      console.log("tick", nextResult, "Array:", itemsToProcess);
      deferred.resolve(nextResult);
    }, 600);

    return deferred.promise;
  }(prevResult));
}

var chain = q.resolve("start");
for (var i …
Run Code Online (Sandbox Code Playgroud)

node.js promise q

32
推荐指数
1
解决办法
1万
查看次数

减去2个日期时间字段以获得剩余天数差异

如果有人能帮助我减去2个日期时间字段以获得与众不同的日子,我将不胜感激.

c# datetime timespan

31
推荐指数
3
解决办法
7万
查看次数

.NET:是否有可能让HttpWebRequest自动解压缩gzip的响应?

这个答案中,我描述了如何在HttpWebResponse中围绕响应流使用GZipStream包围,以便对其进行解压缩.

相关代码如下所示:

HttpWebRequest hwr = (HttpWebRequest) WebRequest.Create(url);
hwr.CookieContainer =
    PersistentCookies.GetCookieContainerForUrl(url);
hwr.Accept = "text/xml, */*";
hwr.Headers.Add(HttpRequestHeader.AcceptEncoding, "gzip, deflate");
hwr.Headers.Add(HttpRequestHeader.AcceptLanguage, "en-us");
hwr.UserAgent = "My special app";
hwr.KeepAlive = true;

using (var resp = (HttpWebResponse) hwr.GetResponse()) 
{
    using(Stream s = resp.GetResponseStream())
    {
        Stream s2 = s;
        if (resp.ContentEncoding.ToLower().Contains("gzip"))
            s2 = new GZipStream(s2, CompressionMode.Decompress);
        else if (resp.ContentEncoding.ToLower().Contains("deflate"))
            s2 = new DeflateStream(s2, CompressionMode.Decompress);

         ... use s2 ...
    }
}
Run Code Online (Sandbox Code Playgroud)

有没有办法让HttpWebResponse自动提供解压缩流?换句话说,我可以从上面的代码中消除以下内容:

      Stream s2 = s;
      if (resp.ContentEncoding.ToLower().Contains("gzip"))
          s2 = new GZipStream(s2, CompressionMode.Decompress);
      else if …
Run Code Online (Sandbox Code Playgroud)

.net gzip httpwebrequest

31
推荐指数
1
解决办法
2万
查看次数

在棱角分明,指令中的&符是什么意思?

在这段代码中:

app.directive( 'myCustomDirective', function() {
  return {
    restrict: 'EA',
    scope: { value: '=myCustomDirective', clickable: '&', editing: '=' },
    template: '<span ng-click="handleClick()" ng-bind="value"></span>',
    ...
Run Code Online (Sandbox Code Playgroud)

什么clickable: '&'表示?

当我找到Angular文档时,我无法理解它.它似乎是用catch-22代码编写的,只有已经理解了解释内容的人才能理解.

例如,我发现了这个视频,这显然解释了这件事,但他也可能会说普通话.

angularjs

29
推荐指数
3
解决办法
2万
查看次数

JAXB unmarshaller.unmarshal何时返回JAXBElement <MySchemaObject>或MySchemaObject?

我有两个代码,在两个不同的java项目中,做了几乎相同的事情,(根据xsd文件解组webservice的输入).

但在一种情况下我应该这样写:(输入是一个占位符名称)(元素是OMElement输入)

ClassLoader clInput = input.ObjectFactory.class.getClassLoader();
JAXBContext jc = JAXBContext.newInstance("input", clInput);
Unmarshaller unmarshaller = jc.createUnmarshaller();
Input input = (Input)unmarshaller.unmarshal( element.getXMLStreamReader() );
Run Code Online (Sandbox Code Playgroud)

在另一个lib中,我必须使用JAXBElement.getValue(),因为它是一个返回的JAXBElement,一个简单的(Input)转换只是崩溃:

Input input = (Input)unmarshaller.unmarshal( element.getXMLStreamReader() ).getValue();
Run Code Online (Sandbox Code Playgroud)

你知道是什么导致了这样的差异吗?

java jaxb unmarshalling

27
推荐指数
2
解决办法
3万
查看次数