-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文を入れるたびにデルファイが空になります。

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 に答える