帕斯卡文件处理

Pascal File Handling

我使用免费的 Pascal 2.6.4 并创建了这段代码。这是一个程序,它要求代表文件中行的数字。除了一件事,一切都有效。当我想显示 1. 行时,它以 "exitcode 217" 停止。 为什么?

Program FileTruncate;

uses
  SysUtils;
  label znova;

const
  filename = 'C:\Users\KVIKY\Desktop\Pascal\Projects\FileHandling\test.txt';

var
  myfile: text;
  line: string;
  counter:integer;
  position:double;


begin

 znova:
  Writeln('Zadaj cislo riadku: ');
  Readln(position);
  if position=0 then exit;
  if position>26 then exit;
  Assign(myfile, filename);
  Reset(myfile);
  counter:=0;
 Repeat
  inc(counter);
  readln(myfile);
  until counter = position-1;
  readln(myfile, line);
  Close(myfile);
  writeln(line);
  Writeln('Stlacte enter pre pokracovanie.');
  Writeln('Zadajte 0 pre ukoncenie programu.');
  readln;
  goto znova;
end.

因为当position为1时,你的repeat-until条件永远不会满足(因为你的counter=1position-1为零,所以counter = position-1会永远不会发生)。

计数器表示目标之前行,所以...

相反,您可以进行不同的初始化:

counter := -1

或者,更好的是,将循环更改为 while-do:

while counter < position-1 do

因为你在循环中有一个readln