小编Max*_*Max的帖子

Delphi(win32)序列化库

是否有任何Delphi序列化库能够序列化记录和记录数组而不是类?

delphi serialization

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

在 Lazarus 中是否有类似于 Delphi“使用调试 DCU”的选项

我想调试 Lazarus 库代码。在 Delphi IDE 中,我只需选中 Project Options -> Compiler -> Use Debug DCUs 选项。拉撒路有没有类似的东西?

ide delphi lazarus

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

强制进行浮点计算

在IronPython中有任何方法可以强制将包含整数值的表达式计算为浮点数.例如,我喜欢这个表达方式

1/3
Run Code Online (Sandbox Code Playgroud)

被评估为

1./3. 
Run Code Online (Sandbox Code Playgroud)

结果为0.333 ...

我需要这个通过IronPython在C#项目中创建一个简单的运行时表达式计算器.我无法强制用户输入带有尾随小数点的表达式.

python ironpython expression

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

操纵不使用大数字

为什么不Manipulate[]使用大数字?例如,这是有效的

Manipulate[k, {k, 0, 1000000000, 1}]
Run Code Online (Sandbox Code Playgroud)

而这不是

Manipulate[k, {k, 0, 10000000000, 1}]
Run Code Online (Sandbox Code Playgroud)

我相信应该有一些Mathematica变量影响这个,但我找不到一个.

wolfram-mathematica

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

写下键盘快捷键

它曾经是Mathematica 7中的Ctrl+ =,但在Mathematica 8中,而不是在下面写,这个快捷方式开始自由格式输入.tutorial/KeyboardShortcutListing上的文档尚未更新.现在使用哪种快捷方式写下面的?

wolfram-mathematica mathematica-frontend mathematica-8

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

在另一个线程中引发异常

如何在Delphi中的另一个线程中引发异常?我有线程1和线程2,我想在线程1中引发异常并在线程2中捕获它.

编辑

我现在可以看到我最初的解释令人困惑.我想要做的是从线程1初始化线程2中的异常引发.因此引发异常并在线程2中捕获,但是此过程由线程1控制.假设我有一个主线程创建一个工作线程.我需要一种机制来优雅地从主线程中停止工作线程,但由于某些原因,这里无关紧要,我不能使用TThread.Terminate/Terminated模式.所以我认为,如果我可以启动(注入?)从主线程中提取工作线程,则可以将其用作停止信号.

delphi exception-handling thread-safety

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

从IronPython脚本访问主机类

如何从IronPython脚本访问C#类?C#:

public class MyClass
{
}

public enum MyEnum
{
    One, Two
}

var engine = Python.CreateEngine(options);
var scope = engine.CreateScope();
scope.SetVariable("t", new MyClass());
var src = engine.CreateScriptSourceFromFile(...);
src.Execute(scope);
Run Code Online (Sandbox Code Playgroud)

IronPython脚本:

class_name = type(t).__name__     # MyClass
class_module = type(t).__module__ # __builtin__

# So this supposed to work ...
mc = MyClass() # ???
me = MyEnum.One # ???

# ... but it doesn't
Run Code Online (Sandbox Code Playgroud)

UPDATE

我需要导入托管程序集中定义的类.

c# ironpython

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

三重平等表达评估

假设我们有3个变量,我们需要ASSERT它们都可以等于-1或者都不能等于-1.我写了以下代码:

x := 1;
y := 1;
z := 1;

ASSERT( (x = -1) = (y = -1) = (z = -1) );
Run Code Online (Sandbox Code Playgroud)

我经常写这种检查,但两个变量.令人惊讶的是,三重比较也被编译,但它没有按预期工作.对于(1,1,1)值,我希望它评估为真.在替换变量值和简化之后,我们得到:

ASSERT( False = False = False );
Run Code Online (Sandbox Code Playgroud)

我认为它应该评估为True,但事实并非如此.那么三重比较如何评估?

delphi expression

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

解析分层CSV的功能方法

我正在尝试创建一段代码,但无法使其正常工作.我能想到的最简单的例子是解析一些CSV文件.假设我们有一个CVS文件,但数据以某种层次结构组织在其中.像这样:

Section1;
        ;Section1.1
        ;Section1.2
        ;Section1.3
Section2;
        ;Section2.1
        ;Section2.2
        ;Section2.3
        ;Section2.4
Run Code Online (Sandbox Code Playgroud)

等等

我这样做了:

let input = 
"a;
;a1
;a2
;a3
b;
;b1
;b2
;b3
;b4
;b5
c;
;c1"

let lines = input.Split('\n') 
let data = lines |> Array.map (fun l -> l.Split(';'))

let sections = 
  data 
  |> Array.mapi (fun i l -> (i, l.[0])) 
  |> Array.filter (fun (i, s) -> s <> "")
Run Code Online (Sandbox Code Playgroud)

我得到了

val sections : (int * string) [] = [|(0, "a"); (4, "b"); (10, "c")|]
Run Code Online (Sandbox Code Playgroud)

现在我想为每个部分创建一个行索引范围列表,如下所示:

[|(1, 3, …
Run Code Online (Sandbox Code Playgroud)

f# functional-programming

4
推荐指数
1
解决办法
696
查看次数

不能将std :: iota与std :: set一起使用

我想创建一组数字:0,1,2,3,4 ......以下代码无法编译:

std::set<int> s;
std::iota(s.begin(), s.end(), 0);
Run Code Online (Sandbox Code Playgroud)

带有以下错误消息:

error C3892: '_First' : you cannot assign to a variable that is const
Run Code Online (Sandbox Code Playgroud)

编译器是VC++ 2012.相同的代码适用于矢量.我应该如何使用它?

UPDATE

我现在可以看到我的代码没有意义,因为没有指定设置大小.

以下是有关我的问题的更多详细信息.

我有一个包含[0,N]范围内的一些数字的集合.在我的应用程序中,我需要多次计算这些集合的集合差异.N是固定的.

让我们说N = 5,第一组是s1 = {0, 3, 4}.我需要计算设定差异{0, 1, 2, 3, 4} \ {0, 3, 4} == {1, 2}.这个操作应该经常针对不同的集合执行,所以我认为我可以创建一个包含所有数字的集合({0, 1, 2, 3, 4}在这种情况下)并用于std::set_difference计算这些差异.

c++ stl visual-c++ c++11

4
推荐指数
1
解决办法
2198
查看次数