我的程序有一个ESyntaxError类,我这样使用:
raise ESyntaxError.Create(Message)\nRun Code Online (Sandbox Code Playgroud)\n\n我将该ESyntaxError类定义如下:
ESyntaxError = class(Exception)\nRun Code Online (Sandbox Code Playgroud)\n\n我观察到,如果ESyntaxError.Create(Message)调用了该代码,我的程序\xe2\x80\x99s 退出代码将设置为1. 但在这种情况下我希望将其设置为65.
我尝试这样做:
\n\nExitCode := 65;\nraise ESyntaxError.Create(Message);\nRun Code Online (Sandbox Code Playgroud)\n\n...但是我的应用程序仍然只是以 退出1,而不是65\xe2\x80\x94 我猜是因为内置Exception类总是重置ExitCode为1?(Don\xe2\x80\x99t 确实知道 \xe2\x80\x99 是这种情况,并且在异常文档中没有看到任何明确说明这一点,但我从我在这里观察到的行为推断出这一点)。
或者,如果我想让程序具有非1/非0退出状态,我是否应该以其他方式处理这个问题而不是基于它Exception?
我被分配了要编写的程序。这是说明
问题解决与编程
您需要编写一个伪代码或绘制流程图,以接受客户的信息(名字,姓氏,性别,汽车型号,汽车类别,保险公司,TOC,是否已安装防盗设备,Premium和汽车价值)。根据电子表格部分任务B中给出的计算标准,为每个客户计算补偿金。
最后,您将要:计算完全综合保险的车辆数量b。找到最高的车辆成本c。计算安装防盗机制的所有者的比例d。提示用户输入客户名称,并搜索并显示客户信息,包括要支付的赔偿金。
这是代码`
VAR
First_Name, Last_Name, Model, Insurance_company, stop: array[1..30] of string;
Compensation, V_O_C, P_O_A, A_O_C: array [1..30] of real;
Gender: array [1..30] of char;
T_O_C, Premium, X, Count, CountA, Highest, Category: array [1..30]of integer;
Antitheft_installed: array [1..30] of boolean;
Begin
Count:=0;
CountA:=0;
Highest:=0;
FOR X = 1 to 30 DO
Repeat
Writeln ('Please enter First_Name');
Readln (First_Name[X]);
Writeln ('Please enter Last_Name');
Read Last_ Name [X]
Writeln ('Please enter Gender, M or F');
Readln Gender[X]
Until …Run Code Online (Sandbox Code Playgroud) 您好我正在创建一个非常繁重的应用程序,它在另一个应用程序线程上继续并且还抓取句柄.因此,如果该应用程序会冻结,那么我的应用程序会在目标软件负载很重的情况下不时出现滞后现象
问题是,如果某种程度上更重的应用程序"滞后"我会遇到字符串的意外问题,它们会给我不可靠的输出.
任何人都知道为什么会这样,以及我如何解决这个问题或解决这个问题?
我目前正在使用的解决方案是belove,但这并不是我想要做的事情,因为它确实使运行时非常不可靠,因为我无法确定结果.
function GetInt(MyNum:string):integer;
begin
try
result := strtoint(MyNum);
except
result := 0;
end;
end;
Run Code Online (Sandbox Code Playgroud)
作为一个例子,我做了这个脚本,突然我得到$ ReBEFF不是一个有效的整数.(突然间它已经运行好几个小时了)
oldB是一个Byte,它作为转换为十六进制的数字处理.oldB设置为始终为0,它应该永远不会更改,尤其是对于甚至不在十六进制数字系统内的Re
xx0000 = B
00xx00 = G
0000xx = R
Run Code Online (Sandbox Code Playgroud)
示例脚本(这不是唯一一个遇到字符串问题的代码部分,它无缘无故地随机出现在整个应用程序中)
var
oldR:byte = 0;
oldG:byte = 30;
oldB:byte = 0;
_Down:bool = false;
function GetColor(R, G, B:byte):integer;
var
MyColor:string;
begin
MyColor := '';
MyColor := MyColor + inttohex(B, 2);
MyColor := MyColor + inttohex(G, 2);
MyColor := MyColor + inttohex(R, 2);
result := strtoint('$' + MyColor);
end;
procedure TMainF.DonateColorTimer(Sender: TObject); …Run Code Online (Sandbox Code Playgroud) 我有文本,我需要从文本的开头和文本的结尾删除空格.我只能用while do operator来做.我怎样才能做到这一点?这是程序代码
program RandomTeksts;
uses crt;
var
t:String;
l, x, y:Integer;
const tmin=1; tmax=30;
label
Start,
end;
begin
Start:
clrscr;
writeln('write text (from ',tmin,' to ',tmax,' chars): ');
readln(t);
l:=length(t);
if (l<tmin) or (l>tmax) then
begin
writeln('Text doesn't apply to rules!');
goto end;
end;
clrscr;
begin
randomize;
repeat
x:=random(52+1);
y:=random(80+1);
textcolor(white);
gotoxy(x,y);
writeln(t);
delay(700);
clrscr;
until keypressed;
end;
ord (readkey)<>27 then
goto Start;
end:
end.
Run Code Online (Sandbox Code Playgroud) 我们通常在学校使用Pascal进行编程,但在我的个人生活中,我更喜欢Python,C或C++等新语言.所有这三种语言都使用数据类型Int,但Pascal使用Integer.它实际上是相同的,但"整数"有点长.写这样的东西:
Type int=integer; 一个"好"或"坏"的习惯?