我正忙着写一份 11 年级的旧试卷,我的老师没有解释诸如 (ipos -1) 之类的事情的重要性,任何人都可以解释为什么需要这样做,因为目前我正在挣扎了解 ipos-1 以及复制和删除功能的作用。代码如下:
procedure TForm1.CreateBookCode1Click(Sender: TObject);
var icount,k,ipos:integer;
begin
richedit1.Clear;
richedit1.Lines.Add('Book Title'+#9+'Book Code');
for k:=1 to icount do
begin
ipos := pos(';',arrBooks[k]);
arrtitle[k] := copy(arrbooks[k],1,ipos-1);
delete(arrbooks[k],1,ipos);
ipos := pos(',',arrbooks[k]);
arrsurname[k]:= copy(arrbooks[k],1,ipos-1);
arrcode[k] := copy(arrsurname[k],1,3) +inttostr(k);
richedit1.Lines.add(arrtitle[k] + #9 + arrcode[k]);
end;
最佳答案
ipos := pos(';',arrBooks[k]);
arrtitle[k] := copy(arrbooks[k],1,ipos-1);
这表示“将 arrtitle 数组的第 k 个元素设置为 arrbooks 数组第 k 个元素中第一个分号之前的字符串。
换句话说,每个元素的标题是该元素的第一部分,即分号之前的位。
ipos减1的原因是ipos是arrbooks数组第k个元素中分号的位置。从副本中减一意味着您不复制分号。
请注意,这里至少存在两个问题:
1) icount 似乎未初始化。它应该包含 arrbooks 数组中的元素数量。
2) 在设置 ipos 的行中,arrbooks 输入错误:它的大写 B
删除(arrbooks[k],1,ipos);
这表示“从 arrbooks 数组的第 k 个元素中删除从头开始到分号(包括分号)的所有字符(因为 ipos 指向 arrbooks 数组的第 k 个元素中的分号)。
关于arrays - 使用文本文件和数组(需要解释),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26698204/