我正在尝试使用Delphi Pascal创建一个复数计算器。第一部分是提取字符串条目,通过在'i'上插入定界符来分离实部和虚部。例如:一个数字条目可以是: 7 + 2i 或任何其他组合。这是我的方法:
TForm2.btnExtractClick(Sender: TObject);
var sCode, pic: string;
sConst: integer;
im,re: integer;
iConst: string;
j,k, delimiterPos: integer;
begin
memDisplay.Clear;
sCode := Edit1.Text;
sConst := Pos (sCode, 'i');
im := StrToInt(Copy(sCode, sConst - 1));
Delete(sCode, sConstant - 1, im);
re := StrToInt(sCode);
但是我遇到以下错误:
答案 0 :(得分:1)
您搜索的子字符串应该是Pos
的第一个参数。
替换
Pos(sCode, 'i')
与
Pos('i', sCode)
此功能记录在这里:http://docwiki.embarcadero.com/Libraries/en/System.Pos
您的代码还有许多其他问题,但这可以回答这里提出的主要问题,即为什么Pos
返回0
。我不会尝试调试您的其余代码,尤其是因为这不是您的真实代码,因为它包含编译错误。
要解决代码中的后续问题,您必须学习使用调试器。每行代码执行完毕后,逐步遍历代码并检查每个局部变量的值。将调试器下看到的值与基于纸张静态分析的期望值进行比较。