arrays - 使用文本文件和数组(需要解释)

标签 arrays delphi

我正忙着写一份 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/

相关文章:

macos - 在MacOS上打开INI文件时出现Unicode映射错误

delphi - 在单元格中输入数据时,更改StringGrid的单元格颜色。德尔菲

delphi - 如何将 IAutoComplete 与 TStringsAdapter 一起使用?

c++ - 在整数数组中连续输入

c++ - 使用 MSVC C++ 编译器创建动态大小的数组

java - 数组中的数组,100 行,动态列

arrays - io_submit 等待所有 oracle dbwriter I/O

javascript - Node.js:文件读取并将字符串作为数组放入数组

multithreading - Delphi - 未创建自定义线程

delphi - TDateTimePicker MaxDate - 不允许将控件设置为当前日期