顺序表的程序,在pascal里完全正常,在Delphi里就提示:Runtime error 105 at 00403AC6
program list(input,output);
const maxlen=30;
type sqlisttp=record
              data:array[1..maxlen]of integer;
              last:0..maxlen
            end;  var l:sqlisttp;                                       
  procedure view (f:sqlisttp);
    var i:integer;
    begin
      for i:=1 to f.last do
        begin
          write(f.data[i]);
        end;
      writeln
    end;
 procedure creat(var f:sqlisttp);
    var i,ch:integer;
    begin
      i:=1;
      f.last:=0;
      writeln('please input the length of list');
      read(ch);
      f.last:=ch;
      writeln('please input data');
      repeat
        read(ch);
        f.data[i]:=ch;
        i:=i+1;
      until (i>f.last);
      view(f)
    end;
procedure convert(var f:sqlisttp);
  var i,n,m,x:integer;
   
  begin
    n:=f.last;
    m:=n div 2;
    for i:=1 to m do
      begin
        x:=f.data[i];
        f.data[i]:=f.data[n-i+1];
        f.data[n-i+1]:=x
      end;
    view(f)
  end;
begin
  creat(l);
  convert(l)
end.

解决方案 »

  1.   

    105 File not open for output Reported by Write or Writeln on a text file if you do not generate a Console application.
      

  2.   

    我是创建的Console application
      

  3.   

    Console application 要加上{$APPTYPE CONSOLE}编译器指令啊
    改称下面的就不会错了~v~program list(input,output);
    {$APPTYPE CONSOLE}
    const maxlen=30;
    type sqlisttp=record
                  data:array[1..maxlen]of integer;
                  last:0..maxlen
                end;  var l:sqlisttp;
      procedure view (f:sqlisttp);
        var i:integer;
        begin
          for i:=1 to f.last do
            begin
              write(f.data[i]);
            end;
          writeln
        end;
     procedure creat(var f:sqlisttp);
        var i,ch:integer;
        begin
          i:=1;
          f.last:=0;
          writeln('please input the length of list');
          read(ch);
          f.last:=ch;
          writeln('please input data');
          repeat
            read(ch);
            f.data[i]:=ch;
            i:=i+1;
          until (i>f.last);
          view(f)
        end;
    procedure convert(var f:sqlisttp);
      var i,n,m,x:integer;
       
      begin
        n:=f.last;
        m:=n div 2;
        for i:=1 to m do
          begin
            x:=f.data[i];
            f.data[i]:=f.data[n-i+1];
            f.data[n-i+1]:=x
          end;
        view(f)
      end;
    begin
      creat(l);
      convert(l)
    end.