问题标签 [freepascal]

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 投票
2 回答
1073 浏览

freepascal - 帕斯卡 - 不写入文件

你好,帕斯卡大师!我有一个自定义记录的文件类型:

以及打开并向文件添加新元素的函数:

问题是,实际上没有任何东西写入文件。我究竟做错了什么?

0 投票
2 回答
302 浏览

pascal - 在 Pascal 中实现冒泡排序时出现奇怪的运行时错误

这个片段不仅会导致运行时错误,而且如果我使用调试器运行它,它会使 FPC 关闭。

代码本身是一个非常大的源文件的一部分,我可以发布整个内容,但导致错误的只是那一堆行。调试器在以下行终止:

tplayers 只是一种定义为记录数组的类型,其中包含一堆其他变量中的分数(整数)。tplayers 是上述记录的类型。我完全不知所措;FPC(虽然不在调试模式下)吐出一个超出范围的错误,但在我的观察下,我看到我试图读取的变量存在。非常感谢任何帮助!

0 投票
3 回答
1370 浏览

delphi - 编写要从 gcc 应用程序调用的 Delphi/FreePascal DLL

我需要将我的部分 Win32 Delphi 应用程序提供给另一家公司的 Linux gcc 程序。

吞吐量和部署要求使任何类型的远程服务都不合适,因此我正在考虑使用 FreePascal 构建 gcc 应用程序可以调用的 .SO(Linux 等效的 DLL)。

自从我使用 C/C++ 并且从未在 Linux 上使用过很长时间了,所以我有点不确定如何最好地构建 DLL/SO 接口以与 gcc 调用者兼容。

这是我的数据结构的表示

要通过 FreePascal 使此 Process 方法在外部可用。所以我需要如何修改这些声明?我在想一些事情

我在正确的轨道上吗?我不必完全正确,其他公司的程序员很可能会纠正我的错误。我只是不想让他们看到我发给他们的东西时笑得太厉害。

0 投票
1 回答
388 浏览

mysql - 从外部应用程序查询 MYSQL(我的代码效率低下)?

我有一个数据库,我需要尽可能快地反复查询。我的查询执行得很快,但似乎还有一些额外的滞后。

我有一种感觉,这种滞后是由于我每次都在启动和取消启动连接。有没有办法避免这种情况?

我没有使用 libmysql(至少,不是直接使用)。我在 Lazarus/FreePascal 中使用“mysql50”包(类似于 delphi),它又使用 libmysql(我认为)。

如果有人查看我的代码并指出(或者甚至修复)一些低效率的地方,我将不胜感激。

这个库的目的是传递从 MQL4(金融交易市场的一种类似 C 语言的专用语言)发送的查询,并从我的 MYSQL 数据库(通过管道连接到该数据库)返回一行。

0 投票
1 回答
299 浏览

for-loop - Free Pascal - 解决问题的查询(不是语法) - 如何处理此循环的下一阶段

我有更多的“解决问题”问题,而不是与语法相关的问题。

简而言之,我正在创建一个程序,它将读取一个充满单词的文本文件(可能是密码列表),每行一个单词 - 我将在循环中使用 ReadLn 来读取该位。对于它找到的每个单词,我希望它添加“一定量”的混淆,以符合如今用户在密码中使用“3”而不是“E”或“1”而不是“I”的方式。我在 IT 安全领域工作,密码破解通常是其中的一部分,这就是该程序的用途。

到目前为止,我已经设法创建了一个程序,它为字母表中的每个字母生成了一个充满许多不同值的 LEET 表,并将它们堆叠在一个 StringGrid 中,我可以作为该过程的一部分访问它(并且它也可以直观地输出到桌子)。

我的问题是这样的:例如,给定“爱德华”这个词,我如何决定我应该混淆它的级别?只是第一个字母“E”被替换为“3”,也许仅此而已?或者前两个字母 'E' 和 'd' 被替换为 LEET 表中字母 E 和 d 的所有值(这意味着将从 'Edward' 生成几十个新单词,依此类推),或“E”的所有值,但仅此而已……列表还在继续。潜在地,对于每个单词,我都可以创造出数千个额外的单词!一个 100Gb 的源文件很快就会变成 TB!

换句话说,我需要设置程序将运行的“级别”,用户可以决定。但我不确定如何构建该级别?

所以我不确定如何使它工作?在开始之前,我并没有真正考虑清楚。我最初的想法是“有一个程序可以从计算机中获取单词索引,然后生成每个单词的变体来解释混淆字符的人,这将是一件很酷的事情。” 但是在编写代码之后,我意识到这是一项比我想象的更大的工作,我现在被困在实际“LEETing my input file”的部分!

0 投票
1 回答
1370 浏览

string - 如何交换字符串变量中的一些值并使用 Free Pascal 将其写回新值?

使用 ReadLn(InputFile, strVar) 从文本文件中读取一行后,我需要读取 strVar 的每个字符,如果它包含字母“E”(例如),我想输出(写入新文件,事实上)原始变量,但“E”被交换\替换为数字“3”。

因此,如果从文件中读取“示例”,我希望将“3xample”写入新文件。

如何在 Free Pascal 中编写交换代码(我可以写入文件位)?其他语言似乎有交换功能什么的。

谢谢

泰德

0 投票
1 回答
954 浏览

freepascal - 如何在 FreePascal 中逐字读取输入?

我想逐字阅读标准输入(即输入字符串始终是用空格分隔的单词的集合)。现在我正在使用该read函数,并按字符读取输入字符。

是否可以?谢谢!

0 投票
1 回答
1474 浏览

c# - FreePascal 64 位 DLL 和调用 C# 应用程序

我正在尝试编译一个 64 位 dll 以用于 64 位 C# 应用程序。我有一个简单的类和一个简单的应用程序来尝试和测试它,无论我尝试做什么,它都会失败。这是代码:

德尔福

C#

任何人都可以看出它有什么问题吗?如果不喜欢创建相同的简单场景来尝试让它发挥作用,我就完蛋了!

0 投票
1 回答
280 浏览

exception - 在 GDB 中捕获 FreePascal 异常

我有一个用 fpc 编译的巨大的帕斯卡代码。我收到随机的“EInOutError”异常,我正在尝试使用 gdb 对其进行调试。

我已经尝试过break fpc_raiseexception、catch throw、catch exception、catch catch。似乎没什么用...

引发异常时如何中断(在 gdb 进行回溯)?

0 投票
1 回答
189 浏览

windows - 你如何在 FreePascal 中加载多个库?

我可以完美地加载第一个 DLL,但如果我尝试加载第二个 DLL,它会失败。

信息:

  • 操作系统:Windows Vista
  • FPC:2.4.4
  • 无论我是从 EXE 还是从第一个 DLL 中加载第二个 DLL,第二个都会失败。
  • 无论第一个 DLL 是否静态加载,第二个都会失败。
  • 无论哪个是要加载的第二个 DLL。
  • 我控制 DLL 的源代码。
  • 没有外部依赖。
  • 它发生在非常简单的 DLL 中。
  • GetLastError() 返回 487 错误 (ERROR_INVALID_ADDRESS)。
  • 它只发生在使用 FPC 生成的 DLL 中。

我缺少一些东西,我无法弄清楚。

谢谢

回答:好的,我发现了我的问题,我的 fp.cfg 文件中有 -WN 命令行开关