小编Foa*_*oad的帖子

强制 ANTLR 在特定文件夹中生成输出文件

我不喜欢将 ANTLR 生成的文件与我的.g4语法和其他版本控制文档放在同一位置。我想将所有生成的文件放在一个单独的嵌套文件夹中,可以通过.gitignore. 到目前为止,我尝试的是<someFolder>在主文件夹内创建一个文件夹,然后从该文件夹内运行:

cd <someFolder>
antlr ../<grammarFile.g4>
Run Code Online (Sandbox Code Playgroud)

但是,它仍然会溢出父文件夹中的所有生成的文件。

PS这应该不重要,但我的环境是 macOS。

antlr antlr4

3
推荐指数
1
解决办法
2040
查看次数

OpenModelica解决PDE初始化错误

我正在尝试使用OpenModelica来数值求解非常简单的PDE du/dx = du/dt,边界条件为u(0,t)= t ^ 2且u_x(0,t)= 0.我写了下面的代码:

model pdetest_1

    parameter Real L=1;
    parameter Integer N=100;
    parameter Real dx=L/(N-1);
    parameter Real[N] x=array(i*dx for i in 0:N-1);

    Real u[N],ux[N];

initial equation

    for i in 1:N loop
      u[i]=0;
    end for;

equation
    u[1]=(time)^2;
    ux[1]=0;

    for i in 2:N loop
      u[i]=u[i-1]+dx*ux[i-1];
      der(u[i])=ux[i];
    end for;

end pdetest_1;
Run Code Online (Sandbox Code Playgroud)

它确实编译但它没有完成模拟退出,错误如下:

Blocstdout | OMEditInfo |

C:/ Users /.../ AppData/Local/Temp/OpenModelica/OMEdit/pdetest_1.exe -port = 50450 -logFormat = xmltcp -override = startTime = 0,stopTime = 1,stepSize = 0.002,tolerance = 1e-6 ,solver = …

pde modelica openmodelica

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

如何强制`findstr`忽略`无法打开`返回

我正在尝试使用findstr在文件夹中搜索寻找一些字符串:

findstr /spin /c:"string" *
Run Code Online (Sandbox Code Playgroud)

但是它返回了很多Cannot open错误,这使我很难找到找到的确切匹配项。

使用Cmder命令时:

grep -r "string" .
Run Code Online (Sandbox Code Playgroud)

我收到Permission denied相同文件夹的错误。如果我使用命令:

grep -rs "string" .
Run Code Online (Sandbox Code Playgroud)

它给了我很好和干净的结果。是否有类似的标志findstrcmd命令组合来执行相同的操作?

已经有一些关于findstr Cannot open错误的帖子,解释了什么是错误的以及如何解决它,但我不在乎它为什么会发生。我只希望命令忽略这些Cannot open行并仅打印出完全匹配的行。

windows cmd findstr

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

如何检查 SymPy 表达式是否具有解析积分

我想在这里解决我的另一个问题所以只要没有积分的解析/符号解决方案,我就需要 sympy 返回错误。

例如,如果我尝试:

from sympy import *
init_printing(use_unicode=False, wrap_line=False, no_global=True)
x = Symbol('x')
integrate(1/cos(x**2), x)
Run Code Online (Sandbox Code Playgroud)

它只是 [漂亮] 打印积分本身

在此处输入图片说明

没有解决和/或给出无法解决的错误!

PS 我也在Reddit 上问过这个问题。

python symbolic-math sympy integral

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

为什么所有导入的ThermoPower Library组件都具有“没有相应的'内部'声明”?

我正在非常努力地尝试在OpenModelica上为Rankine电源循环建模,但收效甚微。这是通过复制ThermoPower库“ RankineCycle”示例的图表视图来完成的。为了简化此过程,已进行了简化。

我一直从OM Message Browser中收到“翻译警告”,告诉我正在使用的所有这些组件都没有与已经分别嵌入在库代码中的“外部声明”相关联的“内部声明”。

我尝试手动进入与每个组件翻译警告关联的代码,并添加所说的“内部声明”,但这在解决问题上没有成功。

我还尝试过在外部代码声明中添加“ //”,以希望也无法成功省略这些命令。

这是代码:

[1] 11:52:20 Translation Warning
[ThermoPower.Water: 5482:7-5482:63]: No corresponding 'inner' declaration found for component .ThermoPower.System Superheater.fluidFlow.system declared as 'outer '.
  The existing 'inner' components are:
    There are no 'inner' components defined in the model in any of the parent scopes of 'outer' component's scope: ThermoPower.Water.Flow1DFV$Superheater$fluidFlow.
  Check if you have not misspelled the 'outer' component name.
  Please declare an 'inner' component with the same name in the top scope.
  Continuing flattening by only …
Run Code Online (Sandbox Code Playgroud)

modelica openmodelica

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

Ghostscript On Windows 导致 -dPDFSETTINGS 选项无效

为了解决我在 Windows 上压缩/缩小由 MikTeX 生成的 PDF 文件的问题我在 Cmder 上尝试这个 bash 脚本

shrinkpdf.sh in.pdf > out.pdf
Run Code Online (Sandbox Code Playgroud)

但是我收到错误:

选项 -dPDFSETTINGS=C:/Program Files/Git/screen 的值无效,请使用 -sNAME= 定义字符串常量

我想这与该行有关

-dPDFSETTINGS=/screen
Run Code Online (Sandbox Code Playgroud)

如果您能帮助我了解问题所在以及如何解决它,我将不胜感激。

我的环境是:

  • Windows操作系统:1809
  • 指挥:1.3.14
  • 鬼脚本:9.27

windows pdf bash ghostscript cmder

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

将 double 转换为 int 的安全方法是什么?

我得到了一个遗留代码,其中有人不小心doubleint变量赋值,例如:

int a = 10;
double b = 20;
a = b;
Run Code Online (Sandbox Code Playgroud)

现在摆脱

警告 C4244:“=”:从“double”到“int”的转换,可能会丢失数据

警告,我尝试在上游编辑代码并删除不必要的double变量,但结果证明太乱了!

我也可以使用铸造:

a = (int) b;
Run Code Online (Sandbox Code Playgroud)

但实际上并不能保证b会在一个整数的范围内。我想过做一个辅助功能:

a = (int) b;
Run Code Online (Sandbox Code Playgroud)

但我不确定这是否是最好的实现。我想知道是否有更规范的方法来处理这个问题?

我想要的是:

  • b变量超出整数边界的情况下,程序立即停止
  • 向终端打印一条错误消息,指出发生此问题的具体线路和时间。

提前感谢您的支持。

c error-handling casting safety-critical

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

使用modelica进行简单四链路机制仿真时出错

我正在尝试实现一个4链接机制,我在这里展示的模型如下所示:机制和模型

Revolute1的速度为5 rd/s.所有棒的直径均为0.05μm.世界设置是默认设置,您可以在图片上看到条形矢量.没有其他改变.

当我尝试运行模拟时,我在OpenModelica上遇到这些错误:

[1] 10:29:43符号错误[Modelica.Mechanics.MultiBody.Parts:238:5-238:62]:模型结构奇异,错误发现排序方程

[2] 10:33:25翻译错误内部错误转换模块PFPlusExt索引缩减方法Pantelides失败!

我究竟做错了什么?看起来非常简单.

谢谢.

modelica openmodelica

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

new ActiveXObject() 和 WScript.CreateObject() 有什么区别?

根据Microsoft 文档,可以使用ActiveXObject()WScript.CreateObject()函数创建 COM 对象的实例。好像线条

var objXL = new ActiveXObject("Excel.Application");
Run Code Online (Sandbox Code Playgroud)

var objXL = WScript.CreateObject("Excel.Application");
Run Code Online (Sandbox Code Playgroud)

是相同的。这是一个真实的假设吗?如果不是,有什么区别?显示差异的示例将不胜感激。

PS这个被标记为重复的帖子是关于 VBScript 的CreateObject()方法和 JScript 的WScript.CreateObject(). 它回答提到了 JScript 的ActiveXObject()构造函数,没有进一步详细说明。

activex wsh jscript

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

寻找一个文本编辑器,在关闭文件时自动执行git提交

我也在Reddit上发布了这个问题

我不是版本控制或Git专家,我手动执行所有步骤非常麻烦.我想有一个文本编辑器uplon关闭文件,如果有任何更改,应用这些命令:

  • 检查文件是否已被编辑
  • git add <filename>
  • 打开弹出窗口或选项卡以编辑提交消息
  • git commit -m "the commit message entered in the popup"

如果您能帮助我知道是否有这样的编辑器可以内置此功能或通过插件/插件,我将不胜感激.或者如果可以编写这样的插件.

PS1.它实际上不一定是git,mercurial或其他版本的控制系统也没关系.

PS2.我认为这应该在Vim脚本和/或emacs lisp中可行,如果我知道那些语言.

PS3. 这里这里讨论了不同的想法.显然有可能在关闭时进行git提交,但我想手动编写消息.

git version-control

-2
推荐指数
1
解决办法
502
查看次数

命令行参数的第二个参数采用 char** argv 或 char* argv[] 以外的格式

为了解决我的问题在这里,我想知道是否/如何我可以比在格式定义的命令行参数的第二个变量其他char** argvchar* argv[]原因是 pybind11 不允许函数输入中的任何一个。以下是我尝试过的方法:

方法一:

#include <stdio.h>

int main(int argc, int* argv_){
    for (int i = 0; i < argc; ++i){
        printf("%s\n", (char *)(argv_[i]));
    }
}
Run Code Online (Sandbox Code Playgroud)

这种方法背后的基本原理是指针本质上是一个整数,通过将地址转换为char指针,人们应该能够获得字符串。提前感谢您的支持。

方法二:

#include <stdio.h>
#include <string>

int main(int argc, std::string* argv_){
    for (int i = 0; i < argc; ++i){
        printf("%s\n", argv_[i].c_str());
    }
}
Run Code Online (Sandbox Code Playgroud)

方法三:

#include <stdio.h>
#include <string>
#include <vector>

int main(int argc, std::vector<std::string> argv_){
    for (int i = 0; i < …
Run Code Online (Sandbox Code Playgroud)

c++ segmentation-fault argv command-line-arguments

-6
推荐指数
2
解决办法
666
查看次数