问题列表 - 第8656页

使用ADO.NET读取内存中的Excel文件(字节数组)?

我想使用ADO.net从Excel文件中提取一些数据.这个过程在互联网上有很好的记录.我的问题是我的文件已被用户上传,因此仅作为内存中的字节数组存在.出于安全性和性能原因,我宁愿不将此文件写入磁盘.

有没有办法构建连接到字节数组的连接字符串?或者可能将该数组暴露为实际存储在内存中的文件(如我猜的RAM磁盘)?

c# excel ado.net connection-string

5
推荐指数
1
解决办法
4248
查看次数

Delphi:如何组织源代码以提高编译器性能?

我正在开发一个具有相当多依赖性的大型delphi 6项目.编译整个项目需要几分钟的时间.经过一些更改后重新编译有时会更长,以便更快地终止Delphi,擦除所有dcu文件并重新编译所有内容.

有没有人知道识别的方法,是什么让编译器变慢和变慢?有关如何组织代码以提高编译器性能的任何提示?

我已经尝试过以下事项:

  • 显式地包含dpr中的大多数单元而不是依赖于搜索路径:它没有改进任何东西.
  • 使用命令行编译器dcc32:它不是更快.
  • 试着看看编译器做了什么(使用来自SysInternals的ProcessExplorer):显然它大部分时间运行一个名为'KibitzGetOverloads'的函数.但我对这些信息无能为力......

编辑,答案总结到现在为止:

在我的案例中最有效的答案:

  • cnpack中的 "清理未使用的单元引用" 功能.它几乎自动清理了超过1000个引用,使"冷"编译速度快了两倍.("冷"编译=在编译之前擦除所有dcu文件).它从编译器获取引用列表.因此,如果您有一些{$ IFDEF}检查所有配置是否仍然编译.

接下来我想尝试一下:

  • 手动重构单元引用(最终使用抽象类),但它需要更多工作,因为我首先需要确定问题所在.一些可能有用的工具:
    • GExperts向delphi IDE添加了一个项目依赖项浏览器(但不幸的是它无法显示每个分支的大小)
    • Delphi Unit Dependency Viewer V1.0做同样的事情,但没有Delphi.它可以计算一些简单的统计数据(哪些单位被引用最多,......)
    • 在其中一个答案的链接上引用的Icarus.

在我的案例中没有改变任何事情的事情:

  • 将我的程序和所有组件中的每个文件放在一个没有子文件夹的文件夹中.
  • 对磁盘进行碎片整理(我尝试使用ramdisk)
  • 使用ramdisk作为代码源和输出文件夹.
  • 关闭实时扫描防病毒软件
  • 列出dpr文件中的所有单元,而不是依赖于搜索路径.
  • 使用命令行编译器dcc32或ecc32.

不适用于我案件的事情:

  • 避免依赖网络共享.
  • 使用DelphiSpeedUp,因为我已经拥有它.
  • 为所有dcu使用单个文件夹(我总是这样做)

我没试过的事情:

  • 升级到另一个Delphi版本.
  • 使用dcc32speed.exe
  • 使用固态驱动器(我没有尝试过,但我尝试使用ramdisk放置所有源代码.但也许我应该在ramdisk上安装delphi)

delphi compiler-construction optimization

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

如何在元类中使用该方法更改groovy中方法的行为

我想通过以下方式"破坏"Groovy中的方法:

Integer.metaClass.plus {Integer n -> delegate + n + 1}
assert 2+2 == 5
Run Code Online (Sandbox Code Playgroud)

我得到StackOverflowException(这并不奇怪).

有没有办法在元类'闭包中使用"原始"加法?

groovy metaprogramming

5
推荐指数
1
解决办法
1355
查看次数

F#:curried overload/tupled overload问题

在将一些代码迁移到VS2010 b1中包含的最新版本的F#时,我遇到了一个问题,我想知道是否有可用的解决方法 - 如果没有 - 为什么F#编译器的行为被修改为不支持该方案.


type Foo(a) =
    [<OverloadID("CurriedAbc")>]
    member public x.Abc (p:(oneType * anotherType) seq) otherParm = method impl...

    //this overload exists for better compatibility with other languages
    [<OverloadID("TupledAbc")>]
    member public x.Abc (p:Dictionary<oneType, anotherType>, otherParm) =
        x.Abc(p |> Seq.map(fun kvp -> (kvp.Key, kvp.Value))) otherParm
Run Code Online (Sandbox Code Playgroud)

此代码生成以下编译时错误:

错误FS0191:此方法的一个或多个重载具有curried参数.考虑重新设计这些成员以采用tupled形式的参数

请注意,这曾经在F#1.9.6.2(9月CTP)上完美运行

f# currying visual-studio-2010

5
推荐指数
1
解决办法
914
查看次数

如何向.NET项目添加或处理帮助文件?

我的任务是将一个在线帮助文​​件添加到Windows应用程序中.所以我脑子里有几个问题:

  • 如何创建帮助文件以及如何将它们添加到Windows窗体项目?

  • 有没有一种很好的方法在VS解决方案中处理它们?

  • 有没有关于如何做到这一点的教程?

.net winforms

6
推荐指数
1
解决办法
1316
查看次数

mailto:链接和webmail

有没有办法实现与webmail客户端一起使用的mailto:link?

编辑 - 所以传统的mailto链接(我怀疑)无法正常工作.那么有没有人看到过类似于你在各种最受欢迎​​的网站上看到的rss按钮?

html

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

是否建议使用"Enum"后缀所有C#枚举以避免命名冲突?

这个stackoverflow问题有一个有趣的讨论,关于如何避免给枚举和属性提供相同的名称,这样你就没有这样的代码:

public SaveStatus SaveStatus { get; set; }
Run Code Online (Sandbox Code Playgroud)

似乎接受的答案建议使用"状态"作为枚举和属性的"状态":

public SaveStatus SaveState { get; set; }
Run Code Online (Sandbox Code Playgroud)

但我认为这很难理解,也不能立即明确什么是什么.

由于这个枚举命名问题是一个不变的问题,我考虑只是总是用"Enum"为我的枚举添加后缀,所以我会这样:

public SaveStatusEnum SaveStatus { get; set; }

SaveStatus = SaveStatusEnum.Succeeded;
Run Code Online (Sandbox Code Playgroud)

有没有人这样做?满意吗?以另一种方式解决了这个问题?

c# enums naming-conventions

15
推荐指数
3
解决办法
5071
查看次数

Groovy for循环执行时间

O Groovy Gurus,

此代码段大约在1秒内运行

    for (int i in (1..10000000)) {
         j = i;
    }
Run Code Online (Sandbox Code Playgroud)

而这个需要将近9秒

    for (int i = 1; i < 10000000; i++) {
         j = i;
    }
Run Code Online (Sandbox Code Playgroud)

为什么会这样?

groovy

12
推荐指数
1
解决办法
3345
查看次数

ASP.NET MVC:如果视图有错误,如何发出编译错误信号?

我的观点有误.只有在Visual Studio中打开视图时才会看到这些错误.

我想在编译时看到错误,而不是在执行时.

是否存在获得此行为的方法?

compiler-construction asp.net-mvc

6
推荐指数
1
解决办法
570
查看次数

为什么一些引用某些导出的const变量的const变量的值为0?

考虑以下.我有两个导出的常量如下:

// somefile.h
extern const double cMyConstDouble;
extern const double cMyConstDouble2;
Run Code Online (Sandbox Code Playgroud)

// somefile.cpp
const double cMyConstDouble = 3.14;
const double cMyConstDouble2 = 2.5*cMyConstDouble;
Run Code Online (Sandbox Code Playgroud)

现在引用这些常量来定义两个静态(局部可见)常量:

// someotherfile.cpp
#include "somefile.h"
static const double cAnotherDouble = 1.1*cMyConstDouble;
static const double cAnotherDouble2 = 1.1*cMyConstDouble2;
printf("cAnotherDouble = %g, cAnotherDouble2 = %g\n",
       cAnotherDouble, cAnotherDouble2);
Run Code Online (Sandbox Code Playgroud)

产生以下输出:

cAnotherDouble = 3.454, cAnotherDouble2 = 0
Run Code Online (Sandbox Code Playgroud)

为什么第二双0?我正在使用.NET 2003 C++编译器(13.10.3077).

c++ double initialization const extern

2
推荐指数
2
解决办法
695
查看次数