保存棋盘到文本文件delphi

时间:2015-05-31 11:24:09

标签: delphi

试图将此国际象棋棋盘保存到文本文件中并遇到此错误。

只是为了清楚一点,董事会变量:

Const BoardDimension = 8;

Type
  TBoard = Array[1..BoardDimension, 1..BoardDimension] Of String;

Procedure SaveBoard(Var Board : TBoard);
var
  fptr:text;
  i,j:integer;
  save:char;
begin
  Write('Do you want a save a game? (Enter Y for yes)');
  Readln(save);
  If (Ord(save) >= 97) and (Ord(save) <= 122)
  Then save := Chr(Ord(save) - 32);
  if save='Y'
  then
    begin
      assign(fptr,'SBoard.txt');
      rewrite(fptr);
      reset(fptr);

      for i := 1 to 8 do
      begin
        for j := 1 to 8 do
          begin
            if j=8 then
              writeln(fptr,Board[i,j])
            else
              begin
                write(fptr,Board[i,j]);
                write(fptr,',')
              end
          end;
      end;
      close(fptr);
    end;
end;

错误的屏幕抓取。还有一个屏幕抓取错误被触发的行。

enter image description here

enter image description here

1 个答案:

答案 0 :(得分:2)

I / O错误105是“文件未打开输出”。那是因为这段代码错了:

rewrite(fptr);
reset(fptr);

reset的调用使文件成为只读文件。只需删除它,因为它没有用处。对rewrite的调用会创建新文件并将其打开以进行编写。