标签: pascal

教孩子Pascal的简单问题

我被要求把Pascal带给一个孩子.尽管在我设法获得教程之前从未见过Pascal,但我现在已经足够教他了.

我写信给你们看看是否有人可以指出一些涉及简单算法的基本练习,例如:排序这个数组,找到平均值等等...

它可以是任何语言,我只需要找一些练习,这样他就可以锻炼身体.

algorithm pascal

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

在InnoSetup的语言文件中获取[Messages]值

我知道我可以很容易地收到消息

[CustomMessages]
AdditionalIcons=blablabla
Run Code Online (Sandbox Code Playgroud)

使用此代码:

ExpandConstant('{cm:AdditionalIcons}');
Run Code Online (Sandbox Code Playgroud)

获取AdditionalIcons字符串消息.但是,如何在此内部获取消息?

[Messages]
ButtonNext=huhu
ButtonInstall=bubu
Run Code Online (Sandbox Code Playgroud)

我需要的是得到ButtonNext,ButtonInstall和其他价值,这是不可能使用这样的代码来获取这些值:

ExpandConstant('{cm:ButtonNext}');
Run Code Online (Sandbox Code Playgroud)

我该如何查询这些值?

相关链接

Inno安装脚本提示

windows installation installer pascal inno-setup

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

哪里可以保存一些简单的数据?

我想知道保存一些简单的不敏感数据的最佳位置在哪里?像一些URL和一些设置.

请指教.

delphi pascal

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

Delphi Pascal - 使用SetFilePointerEx和GetFileSizeEx,在读取文件时获取物理媒体的确切大小

我不知道如何使用RTL中没有的任何API.我一直在使用SetFilePointer和GetFileSize将物理磁盘读入缓冲区并将其转储到文件中,这样的循环就可以完成2GB以下闪存卡的工作:

SetFilePointer(PD,0,nil,FILE_BEGIN);
SetLength(Buffer,512);
ReadFile(PD,Buffer[0],512,BytesReturned,nil);
Run Code Online (Sandbox Code Playgroud)

但是,GetFileSize的限制为2GB,SetFilePointer也是如此.我有绝对不知道如何delcare一个外部API,我已经看了RTL和谷歌搜索了很多例子,并没有找到正确的答案.

我试过这个

function GetFileSizeEx(hFile: THandle; lpFileSizeHigh: Pointer): DWORD; 
    external 'kernel32';
Run Code Online (Sandbox Code Playgroud)

并按照建议这样做

function GetFileSizeEx(hFile: THandle; var FileSize: Int64): DWORD;
    stdcall; external 'kernel32';
Run Code Online (Sandbox Code Playgroud)

但是该函数返回0,即使我使用的是有效的磁盘句柄,我已经确认并使用较旧的API转储数据.

我正在使用SetFilePointer跳转每512字节和ReadFile写入缓冲区,反过来我可以使用它来设置我何时使用WriteFile将初始程序加载程序代码或其他内容写入磁盘.我需要能够将文件指针设置超出2gb.

有人可以帮我做外部声明和调用GetFileSizeEx和SetFilePointerEx工作,所以我可以修改我的旧代码,使用4到32GB的闪存卡.

delphi api pascal delphi-2009

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

Delphi to C# - 做一些硬核转换的体面工具?

我已经尝试了一些可用的选项,比如Netcoole的Delphi2CS和TurnSharp.它们都是非常简单的代码,如果你有组件,它将产生大量的错误.我的项目很大,大约1GB,计算所有vcl,源和存储库.是否有这样的工具来进行这种重型转换?谢谢.

.net c# delphi pascal visual-studio

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

Pascal对象:如何进行类型化的前向声明?

我正在将伟大的fmod C标题翻译成Pascal,而且因为前向声明而被卡住了.如果我在类型之前声明了该函数,则错误为"FMOD_CODEC_STATE:unknown",如果我在函数之前声明FMOD_CODEC_STATE ,则错误为"FMOD_CODEC_METADATACALLBACK:unknown"我是否知道如何解决此问题?非常感谢你 !

type
  FMOD_CODEC_STATE = Record
    numsubsounds: Integer;
    waveformat: array[0..0] of FMOD_CODEC_WAVEFORMAT;
    plugindata: Pointer;

    filehandle: Pointer;
    filesize: Cardinal;
    fileread: FMOD_FILE_READCALLBACK;
    fileseek: FMOD_FILE_SEEKCALLBACK;
    metadata: FMOD_CODEC_METADATACALLBACK;
  end;
  FMOD_CODEC_METADATACALLBACK    = function (codec_state: FMOD_CODEC_STATE; tagtype: FMOD_TAGTYPE; name: PChar; data: Pointer; datalen: Cardinal; datatype: FMOD_TAGDATATYPE; unique: Integer):FMOD_RESULT;
Run Code Online (Sandbox Code Playgroud)

delphi pascal object

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

如何在Pascal中导入代码?

Pascal的C语言#include "code.h",Python语言import code等方法是什么?

import pascal load include

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

for C循环使用枚举

我在尝试为C++中的每个循环制作时遇到问题.我不确定这是否可能在C++中如果我仍然不知道这样做.

我有一个简单的问题用帕斯卡写的,它找到了一年中的一天,当时是星期五13或星期六25没有遇到哪一天.

在pascal我有这样的代码:

{First I declare types}
type
    months = (January, February, March, April, May, June, July, August, September, October, November, December);
...
{Then I declare variable for months}
var
    m: mesec;
...
{Then I can declare for loop that will loop over months}
for m:= januar to december do
...
Run Code Online (Sandbox Code Playgroud)

在python中也可以使用类似的方法为每个循环执行枚举.我的问题是:

在C++中有没有任何方法可以为枚举做甚至循环?

我知道这可能看起来像一个乞讨者的问题,但我尝试了几种不同的方法来做它不起作用.不编译.

c++ enums pascal for-loop

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

创建新的类指针

我想创建一个名为"CustomParam"的类的指针,所以我声明了

pCustomParam = ^CustomParam
Run Code Online (Sandbox Code Playgroud)

Class CustomParam得到了以下类变量,它们应该在构造函数中设置为0:

var keyArray: array of String;
var valueArray: array of String;
var paramArray: array of pCustomParam;
var isParamArray: array of Boolean;
var size: Integer;   
Run Code Online (Sandbox Code Playgroud)

构造函数看起来像这样:

constructor CustomParam.create;
begin
    inherited; 
    size:= 0;
    SetLength(keyArray,0);
    SetLength(valueArray,0);
    SetLength(isParamArray,0);
    SetLength(paramArray,0); 
end;
Run Code Online (Sandbox Code Playgroud)

并被宣布为:

constructor create; overload; 
Run Code Online (Sandbox Code Playgroud)

现在我尝试用"new"创建指向CustomParam的指针,如下所示:

var pointerToCustomParam: pCustomParam; 
begin
new(pointerToCustomParam);
Run Code Online (Sandbox Code Playgroud)

但它不会跳转到CustomParam类的构造函数.如果我手动调用构造函数如下:

pointerToCustomParam^.create; 
Run Code Online (Sandbox Code Playgroud)

应用程序将在SetLength命令上崩溃.

我注意到的是,变量"pointerToCustomParam"在"新"函数之后直接得到了垃圾内容.

我希望你能帮助我,信息足够:)

谢谢 :)

delphi pascal pointers class

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

如何解释Pascal中的等式?

如何在Pascal中编写以下等式?

在此输入图像描述

它等于pow(x, 2) / (pow(pow(16 - x*x, 1/2)), 3)吗?

pascal

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