问题标签 [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 投票
4 回答
1973 浏览

c# - Clarion:可以使用 C# 程序集吗?

是否可以使用 Clarion 的 C# 程序集?如果不。是否可以运行用 C# 编写的简单控制台应用程序并将其输出读回 Clarion?在这两种情况下,你会怎么做?在装配的情况下,您是否需要对它做一些特别的事情才能让 Clarion 访问它?在这两种情况下,您将如何在 Clarion 中做到这一点?

原因是我们有两个用 C# 编写的方法,供用 C# 编写的应用程序使用。但我们也需要在 Clarion 应用程序中使用相同的方法。而且我们真的不想再为 Clarion 编写方法,因为它们有点复杂......

0 投票
2 回答
141 浏览

backup - 您为数据集(磁盘上的文件)使用什么备份库/代码?

我正在我的新(小)应用程序Oldaer中实现备份功能。我有独立的桌面文件(而不是坐在 SQL 数据库中)。

环顾四周,我决定使用 Clarion 3rd-Party 模板,将它们打包成一个文件,然后压缩(霍夫曼的)那个文件。恢复正好相反。解压,解压。

但是,我不相信这是理想的。

您为数据集实施了哪些备份功能?

当然,“备份/恢复”功能还有很多。位置、跟踪/存档、开箱即用信息(例如让用户知道存档文件中内容的更好方法)。但这是另一个问题。

0 投票
5 回答
1063 浏览

version-control - Clarion 6 的源代码控制

我们仍在 Clarion 6 Enterprise 中开发大量应用程序。我想知道是否有人知道与 Clarion 6 配合良好的源代码控制系统?

0 投票
4 回答
2875 浏览

http - 在 Clarion 中发布到网络

我正在为客户端开发一个 RESTful API。问题是,他使用的是一种相当晦涩的语言,叫做 Clarion。它是专有的和封闭的,文档不能在线免费获得。

每当我们讨论将数据从他的代码传递到我的代码并再次返回时,他都会开始谈论“ftp 文件上传”和直接服务器到服务器的 SQL。不用说,这些想法带回了过去糟糕日子的景象。我做了一些谷歌搜索,我找不到任何证据表明这种语言能够创建 HTTP Post 请求,更不用说使用 SSL 加密来保护它们免受窥探了。

我正在寻找足够具体的建议,以便我可以指导他完成他的讨价还价。我特别想避免尝试通过 FTP 将 XML 请求作为文件传递,或者将它们写入磁盘并调用一些脚本。不言而喻,但我也对在我的服务器上运行专有的 clarion 服务器代码或 DLL 不感兴趣。

Clarion 是否能够生成 POST 请求?在 Clarion 中很难生成 XML 吗?是否有更简单/更容易使用的格式,我的客户可能会更成功?没有任何数据比键/值对更复杂。

我正在用 python 编码,但如果有某种方法可以将数据传输到我的服务器,我可以反序列化任何合理的数据格式。

0 投票
11 回答
25405 浏览

algorithm - 如何计算整数范围内的每个数字?

想象一下,您出售用于对房屋、储物柜门、酒店房间等进行编号的金属数字。当您的客户需要对门/房屋进行编号时,您需要找出每个数字中要运送的数量:

  • 1 到 100
  • 51 至 300
  • 1 到 2,000,左边有零

显而易见的解决方案是从第一个数字到最后一个数字进行循环,将计数器转换为左侧有或没有零的字符串,提取每个数字并将其用作索引以增加 10 个整数的数组。

我想知道是否有更好的方法来解决这个问题,而不必遍历整个整数范围。

欢迎使用任何语言或伪代码的解决方案。


编辑:

答案
是 CashCommons 的 JohnWayne Conrad评论说我目前的方法足够好且足够快。让我用一个愚蠢的类比:如果你被要求在不到 1 分钟的时间内计算棋盘中的方格,你可以通过一个一个地计算方格来完成任务,但更好的解决方案是数边数和做乘法,因为稍后可能会要求您计算建筑物中的瓷砖。
Alex Reisner指出了一个非常有趣的数学定律,不幸的是,它似乎与这个问题无关。
Andres建议使用我正在使用的相同算法,但使用 %10 操作而不是子字符串来提取数字。
约翰在 CashCommonsphord建议预先计算所需的数字并将它们存储在查找表中,或者为了原始速度,存储在一个数组中。如果我们有一个绝对的、不可移动的、一成不变的最大整数值,这可能是一个很好的解决方案。我从未见过其中之一。
高性能标记过滤器计算了各种范围所需的数字。一百万的结果似乎表明有一个比例,但其他数字的结果显示出不同的比例。
过滤器发现了一些可用于计算数字的数字的公式,这些数字是十的幂。 Robert Harvey在 MathOverflow 上发布问题时有过一次非常有趣的经历。一个数学家用数学符号写了一个解决方案。
阿罗诺特使用数学开发和测试了一个解决方案。发布后,他查看了源自 Math Overflow 的公式,发现其中存在缺陷(指向 Stackoverflow :)。
noahlavine开发了一种算法并以伪代码形式呈现。

一个新的解决方案
在阅读了所有答案并做了一些实验后,我发现对于从 1 到 10 n -1 的整数范围:

  • 对于数字 1 到 9,需要 n*10 (n-1)
  • 对于数字 0,如果不使用前导零,则需要 n*10 n-1 - ((10 n -1) / 9)
  • 对于数字 0,如果使用前导零,则需要 n*10 n-1 - n

第一个公式是由过滤器(可能是其他人)找到的,我通过反复试验找到了另外两个(但它们可能包含在其他答案中)。

例如,如果 n = 6,则范围是 1 到 999,999:

  • 对于数字 1 到 9,我们需要 6*10 5 = 每个数字 600,000
  • 对于数字 0,没有前导零,我们需要 6*10 5 – (10 6 -1)/9 = 600,000 - 111,111 = 488,889
  • 对于数字 0,带前导零,我们需要 6*10 5 – 6 = 599,994

可以使用High-Performance Mark结果检查这些数字。

使用这些公式,我改进了原始算法。它仍然从整数范围内的第一个数字循环到最后一个数字,但是,如果它找到一个 10 的幂的数字,它会使用公式将数字添加到数字上,计算 1 到 9 的整个范围内的数量或 1 到 99 或 1 到 999 等。这是伪代码中的算法:

例如,对于 786 到 3,021 的范围,计数器将递增:

  • 由 1 从 786 到 790(5 个周期)
  • 由 9 从 790 到 799(1 个周期)
  • 由 1 从 799 到 800
  • 由 99 从 800 到 899
  • 由 1 从 899 到 900
  • 由 99 从 900 到 999
  • 由 1 从 999 到 1000
  • 999 从 1000 到 1999
  • 1999 年至 2000 年
  • 999 从 2000 年到 2999
  • 由 1 从 2999 到 3000
  • 由 1 从 3000 到 3010(10 个周期)
  • 由 9 从 3010 到 3019(1 个周期)
  • 由 1 从 3019 到 3021(2 个周期)

总计:28 个周期 未优化:2,235 个周期

请注意,此算法在没有前导零的情况下解决了该问题。要将它与前导零一起使用,我使用了一个技巧:

如果需要带前导零的 700 到 1,000 范围,请使用 10,700 到 11,000 的算法,然后从数字 1 的计数中减去 1,000 - 700 = 300。

基准和源代码

我测试了原始方法,使用 %10 的相同方法和一些大范围的新解决方案,结果如下:

基准应用程序的屏幕截图:(来源:clarion.sca.mx
替代文字

如果您想查看完整的源代码或运行基准测试,请使用以下链接:

接受的答案

noahlavine解决方案可能是正确的,但我只是无法遵循伪代码,我认为有一些细节缺失或没有完全解释。

Aaronaught解决方案似乎是正确的,但代码对我来说太复杂了。

我接受了过滤器的回答,因为他的思路指导我开发了这个新的解决方案。

0 投票
1 回答
807 浏览

sql-server-2005 - ODBC Linked server in sql 2005 doesn’t work from remote box

I have a dev workstation with sql 2005 installed and in it I created a linked server to a odbc connection to a clarion database. I can run select statements against it inside sql Mgt studio. When I take a second workstation and connect to the sql on the first box using sql mgt studio, then try the exact same query I get

OLE DB provider "MSDASQL" for linked server "liveclarion" returned message "[SoftVelocity Inc.][TopSpeed ODBC Driver][ISAM]ISAM Table Not Found".

Any thoughts? It appears to have the same functionality on a second sql server. No remote sql mgt studio connect success in queries against my linked ODBC clarion DB.

All done with windows authentication and the same AD user.

0 投票
1 回答
345 浏览

.net - 将 devExpress WinForms 控件与 Clarion NET 一起使用

devexpress winforms 控件在 Clarion NET 中的集成有多无缝?它真的有效吗?舒服吗?

0 投票
1 回答
688 浏览

mysql - 在 2 种不同类型的数据库之间共享 1 个表

我遇到的问题是我想在两个不同的数据库之间同步一个表。数据库 1 位于装有 MySQL 的 XP 服务器上 数据库 2 位于装有 Clarion 的 Novell 服务器上。

是否可以在两个数据库之间共享一个表用户?因此,当数据放入数据库 1 时,数据库会自动与数据库 2 同步。完成后,表:用户在两个数据库中是否相同?

提前致谢!

0 投票
3 回答
826 浏览

opengl - 如何在 Clarion 中正确传递数组地址?

原型:

变量:

代码:

错误:

没有可用的匹配原型- C:...

原型本身有问题还是我传递了错误的变量?

有关更多细节,有问题的实际函数是 glSelectBuffer( GLsizei , *GLuint ),PASCAL

其中 GLSizei 等同于 ULONG,GLuint 等同于 ULONG。

等式是否可能导致系统崩溃?我不这么认为,因为到目前为止还没有其他问题可以使其他功能与 Clarion 兼容,但尤其是这个问题非常麻烦。该函数正在寻找一个用户定义大小的数组以用作保存选择数据的缓冲区。我认为创建一个缓冲区很简单(参见:myArray ULONG, DIM(30)),然后只传递变量,因为它应该传递数组的地址,但到目前为止,这只导致上面列出的编译错误.

任何帮助将不胜感激。

0 投票
1 回答
649 浏览

java - 如何从 Java 访问 Clarion 表

我有这个客户,这个系统编码在Clarion. 他需要一个网络Java服务来公开API他们系统中的一些内容。

有谁知道访问和修改任何给定的号角表(.dat文件)的最佳方法?