-3
while not eof(MyFile) do
begin
  Readln(MyFile,sLine);
  iCheck := pos('*',sLine);

  if iCheck >= 0 then
    K := K + 1;
  else
    K := 1;
  sLine := sArrayParty[K];
end;

K是我的柜台。MyFile设置为文本文件。

我正在尝试在 while 语句中运行 if 语句,以检查是否有*一行读入 sLine。如果是这样,我希望我的计数器增加,从而将以下文本放入数组的下一个索引中。所以基本上我有一个文本文件,其中的信息由*分隔符分隔,我希望每条信息都填充一个新索引。但是每次我把 if 语句放进去时,delphi 都会出现痉挛。

4

3 回答 3

6

您的代码中有明显的语法错误,编译器准确地解释了它是什么:

[DCC Error] Unit1.pas(22): E2153 ';' not allowed before 'ELSE'

;因此,请阅读错误消息包含的单词,并删除else:

if iCheck > 0 then
   K := K + 1
else
  K := 1;    

Unit1.pas( 在我的示例中,括号中的数字是编译器停止工作(22)确切行号,因此之前的else行将是第 21 行。编辑器窗口底部的行号告诉您清楚的是哪一行。

于 2013-10-23T00:47:09.883 回答
1

如果没有 ' ' 则 pos 函数将返回 0,如果有 ' ' 则它将返回第一个出现位置。

如果 iCheck >= 0 那么

应改为if iCheck > 0 then

于 2013-10-23T05:38:32.320 回答
0

我记得我们可以将字符串分配给字符串列表并将字符串列表的分隔符属性分配给'*'

IE。strlst.delimiter := '*'; strlst.text := 线;

所以你可以让每个字符串遍历strlst ...

(我用这个很久了,我现在没有delphi来测试它,如果有任何问题请纠正我)

于 2013-12-06T10:13:03.760 回答