gpt4 book ai didi

c# - RDotNet ICharacterDevice 捕获输出

转载 作者:行者123 更新时间:2023-11-30 23:11:24 25 4
gpt4 key购买 nike

我正在尝试实现一个 ICharacterDevice 来捕获完整的输出。我找到了一些关于此的信息,例如:

Implementing an interactive R console in c# / rdotnet?

然而,我发现不可能找到一个完整的例子,并且很难靠我自己来实现它。有没有人用例子做过这个?

非常感谢

标记

最佳答案

为了捕获输出,您需要实现自己的 ICharacterDevice。好消息是您真的只需要实现 WriteConsole 方法。您可以从默认的 ConsoleDevice 开始或从头开始自己的。

public class MyCharacterDevice : RDotNet.Devices.ICharacterDevice
{
public StringBuilder sb = new StringBuilder();

public void WriteConsole(string output, int length, RDotNet.Internals.ConsoleOutputType outputType)
{
sb.Append(output);
}

//rest of the implementation here
}

我添加了一个 StringBuilder 到我的并附加了每条输出消息。

最后,您需要将此 ICharacterDevice 传递给 GetInstance 和 Initialize 方法:

RDotNet.StartupParameter sp = new StartupParameter();
sp.Interactive = false;
sp.Quiet = false;

MyCharacterDevice ic = new MyCharacterDevice();
REngine.SetEnvironmentVariables(Rpath);
REngine engine = REngine.GetInstance("", true, sp, ic);

if (engine.IsRunning == false)
{
engine.Initialize(sp, ic, true);
}

//engine.Evaluate code...

string rConsoleMessages = ic.sb.ToString();

关于c# - RDotNet ICharacterDevice 捕获输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44715940/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com