问题标签 [clarion]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
202 浏览

windows - WinServer 2016 中基于 Clarion 的应用程序,已冻结。关于我们可以用来收集更多信息的工具的建议

我有一个在 Win Server 2016 中运行的 clarion 应用程序与一个 sybase 数据库通信,在过去的几周里,我们发现该应用程序在给定时间为不同的用户冻结。然而,用户可以这样离开会话并开始一个新的会话并且效果很好。已知用户在一台远程服务器或多台服务器上使用同一应用程序的多个实例。话虽如此,我想获得有关冻结的更多信息,并查看了系统中的应用程序事件日志,我看到 explorer.exe 崩溃,但这些与问题在某些时候发生的时间相关,但并非总是如此,检查了来自 Sybase 的数据库事务日志,我没有发现任何崩溃、错误或连接卡住。话说回来,

我很想知道我们可以用来收集 Windows 上冻结的 clarion 应用程序日志的任何应用程序/工具。也很高兴知道是否有人遇到过这种情况以及你们在哪里以及如何调查这个问题。

在此先感谢您的帮助。

0 投票
1 回答
632 浏览

clarion - 号角数据库 (.dat)

我正忙着为他们重写和重新设计客户的软件,该软件已有 20 年历史,是用 Clarion 编写的,我有 .dat 文件(大小为 2mb)。

有谁知道我如何将 clarion 数据库中的信息提取到 csv 中,我用谷歌搜索了它,但是我发现的工具只提取前 50 行。

请注意,它不是 tps 文件(出于某种原因,我的谷歌搜索会导致 tps 文件)

0 投票
1 回答
120 浏览

clarion - 生成输出到命令行

我有一个在命令行上运行的程序。我称之为:myexe.exe 参数。现在我想向我的命令行输出一条消息(例如成功或错误)

我试过了:

如何输出消息或其他数据?

0 投票
1 回答
185 浏览

curl - Clarion 6.3 + libcurl 不起作用

我有 Clarion 6.3 版本,按照主页上的说明,我可以看到 Clarion 将 libcurl 导入系统。

libcurl对于 Clarion 链接

但是在创建一个窗口和一个按钮之后,将上面的代码放在按钮源区域它不起作用,特别是要包含.inc文件的行

有人可以帮我吗?

在此处输入图像描述

0 投票
1 回答
107 浏览

clarion - Clarion - 将 APP 从 APV 导入解决方案时缺少程序参数

我是 Clarion 的新手,正在处理将现有项目迁移到 Git 的任务。

我使用 Clarion 的内部工具将 APP 文件导出为文本(通过Application > Export Application To Text)。但是,在将这些 .APV 文件重新导入 Clarion 后,编译会因无数错误而中断。跟踪这些错误导致发现(在运行差异时)新导入的过程缺少它们的参数签名。

通过Upper Park VC > Save App to Version Control使用 Rick Martin 著名的 Upper Park VC 工具,以及在解决方案资源管理器中右键单击Solution Items并选择VC Getting Started > Test Export and re-Import APP ,也会出现相同的症状文件.

总体而言,问题是,如何修改我的导出/导入流程,以便在将所有 APP 重新导入 Clarion 时保留解决方案状态?

注意:在 Clarion 10 中工作。

0 投票
1 回答
52 浏览

excel - 如何使用shellexecute打印包含多个工作表的exceldocument

我在打印 exeldocument 的应用程序中有一个 shellcommand。

这很好用。

现在有多个工作表(底部的选项卡)的 excel 文件。如何强制 Shellexecute 打印所有工作表?

(我的应用程序在具有多个客户端的服务器上运行,因此需要一个支持所有客户端的解决方案)。

0 投票
2 回答
60 浏览

postgresql - 数字(不是整数或双精度)图片令牌 Clarion+Postgresql

我需要这样的数字掩码:

取 maksimum 给定小数位,但如果最后一位为 0,则修剪它。类似:@n-12_`2 但修剪右 0 和 . 前任:

0 投票
1 回答
207 浏览

string - Clarion 6.3 DLL,*CSTRING 参数导出功能 - 添加不可见参数?

我需要将一个函数调用从我的 Delphi 应用程序中协商到 Clarion 6.3 中提供的 DLL 中。我需要传递一个或两个字符串参数(一个带有两个参数的函数或两个单参数函数)。我们很快决定使用 1 字节的 0 结尾字符串(char*用 C 术语、CSTRINGClarion 术语、PAnsiCharDelphi 术语),这就是事情变得有点不可预测和难以理解的地方。

我们得到的工作解决方案是传递伪装成 32 位整数的无类型指针,然后 Clarion 制造的 DLL 使用 Clarion 程序员称为“pick”或“peek”的东西来遍历内存。还有一些关于 Clarion 和 Visual Basic 之间互操作的论坛文章,其中解决了将字符串从 VB 传递到 Clarion 的问题,并且 Clarion 开发人员从我的肩膀后面瞥了一眼,说“我不需要它的副本,我已经知道了,它很典型”。

然而,从长远来看,这给我们带来了更多负担,因为低级无类型代码在样板文件上更加“丰富”并且容易出错。键入的代码会感觉更好的解决方案。

我在这里寻求的不是“这是复制粘贴并使事情不假思索地工作的模式”——我们已经有了它——更多的是理解,幕后发生的事情,以及我如何依赖它,以及我对 Clarion DLL 的期望。为了避免最终陷入“偶然工作”的解决方案。

当我从他的背后瞥了一眼 Clarion 6.3 的帮助时,这种帮助对低级细节没有帮助。这完全是关于从 Clarion 调用 DLL,而不是关于被调用。我的机器上也没有 Clarion,我不想,咳咳,借它。正如我被告知的那样,开发人员也无法使用 Clarion 6.3 运行时的源代码。

诸如 Clarion 和 VB 之间或 Clarion 和 C# 之间的互操作之类的文章没有帮助,因为它们融合了两种语言的特性,并且提供的关于“裸机”级别的信息更少。

谷歌图书指出“Clarion Tips & Techniques - David Harms”——它似乎对 Clarion 经验丰富的人有有趣的见解,但我是 Clarion 零。至少我无法从中找出支持互操作的低级细节。

有没有办法让 Clarion 6.3 为它制作的 DLL 保存“列表文件”,可能是标准的 *.H 头文件?


因此,重复一遍,正如预期的那样,一个在 Delphi 端传递指针的函数(procedure ...(const param1, param2: PAnsiChar); stdcall;它应该转换为 Cstdcall void ...(char* p1, char* p2)并且据称在 Clarion 中看起来像(LONG, LONG), LONG, pascal, RAW.

该函数以相反的顺序从堆栈中获取两个 32 位参数,使用它们并退出,在 EAX 寄存器中传递返回值(实际上是未使用的垃圾)并从堆栈中清除参数。几乎完全stdcall一样,除了它似乎出于某种模糊的原因保留了 EBX 寄存器。

号角功能入口:

以及它的出口

除了我无法解释使用 EBX 操作并返回垃圾结果之外 - 它按预期工作。但是 - 需要 Clarion 源中的无类型低级操作。

现在据称只接受一个字符串参数的函数:在 Delphi 端 -procedure ...(const param1: PAnsiChar); stdcall;它应该转换为 Cstdcall void ...(char* p1)并且据称在 Clarion 中看起来像(*CSTRING), LONG, pascal, RAW.

号角功能入口:

以及它的出口

这里令人震惊的是,该函数以某种方式期望两个参数,并且只使用了第二个参数(我在 x86 asm 代码中没有看到对第一个参数的任何引用)。该函数似乎工作正常,如果被调用为procedure ...(const garbage: integer; const param1: PAnsiChar); stdcall;which 应该转换为 C stdcall void ...(int garbage, char* p1)

这个“不可见”参数看起来很像面向对象语言方法函数中的 Self/This 指针,但 Clarion 程序员肯定地告诉我没有涉及任何对象。更重要的是,他的“双整数”函数似乎也不期望不可见的参数。

前面提到的“提示”一书将Clarion 类型描述&CSTRING&STRING实际上是引擎盖后面的两个参数,指向缓冲区的指针和缓冲区长度。但是,它没有提供有关它们在堆栈上传递的具体程度的信息。但有人说 Clation 拒绝使用导出的&CSTRING参数化函数制作 DLL。

我可以假设不可见参数是 Clarion 想要存储函数返回值的位置(如果在 Clarion 源代码中对其进行了任何分配),交叉stdcall/PASCAL约定,但汇编程序结尾代码显示明确使用 EAX 寄存器,并且再次'double-LONG' 函数不使用它。

而且,所以,当我制作了“在我的机器上工作”的质量代码时,它成功地调用了 Clarion 函数,通过自愿插入一个垃圾参数——我感觉很模糊,因为我不明白 Clarion 在那里做什么以及为什么做,因此,在任何看似无关的变化之后,它可以在未来突然开始做什么。

那个看不见的参数是什么?为什么会发生在那里?可以期待什么?

0 投票
1 回答
76 浏览

clarion - 如何从 Clarion 中的字符串列表中删除空字符串?

我是 Clarion 编码的初学者,我正在处理可以描述为基本的问题。

我有这个代码: L_COUNTER1 = 2 LOOP IF INSTRING(L_COUNTER2& ';',L_STRING,1,L_COUNTER1 = 0 THEN
L_LIST[L_COUNTER2] = SUB(L_STRING,2,L_COUNTER1-3) L_STRING = SUB(L_STRING,L_COUNTER1,LEN(L_STRING) - L_COUNTER1 + 1) BREAK ELSE L_COUNTER1 = L_COUNTER + 1 END

变量 Counter1 是外循环的一部分。这段代码为我生成了这样的数据

我正在努力实现:

或者至少

但我被困在这个问题上。我尝试遍历元素并检查它们是否不等于空字符串但没有太大成功。

0 投票
0 回答
18 浏览

clarion - 我有一个功能,我可以复制有一些错误的令牌

错误信息 在此处输入图像描述 在此处输入图像描述 错误代码是 05 Access Denied/48 Unable to Log Transaction,这来自 RTL,而不是自定义函数消息,并且仅在从数据库获取令牌时发生。

每次我触发这个函数时,我都会得到不同的错误,可能是什么原因,我附上了屏幕截图,但我想知道根本原因,为什么这些错误每次都不一样,这些是与 TPS 数据库相关的错误吗?

应用程序是在 Clarion 6.0 中开发并在 8.0 中编译的,这些问题不会经常出现,这个错误是间歇性的,并且在任何阶段都会发生,如果它运行顺利,它不会导致任何问题,但是一旦问题弹出它就会不断出现,关于这些的任何想法,您认为这些是代码问题还是可能是号角自定义错误?

文件在网络驱动器上,db 是 topspeed.PFA