Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

чтение из файла и запись


Arthur ©   (2016-09-29 02:55:00) 

unit Unit1;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, StdCtrls;

type
 TForm1 = class(TForm)
   Button1: TButton;
   procedure Button1Click(Sender: TObject);
 private
   { Private declarations }
 public
   { Public declarations }
 end;

var
 Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var f,g:file of integer;
   x:array of array of integer;
   i,j,n,m,c:integer;
begin
 AssignFile(f,'myfile.txt');
 {$I-}
 Reset(f);
 {$I+};
 if IOResult<>0 then begin
   ShowMessage('файл не найден. прил-е закрыть'); Halt;
 end;
 n:=FileSize(f);
 m:=FileSize(f);
 if (n=0) and (m=0) then begin
   ShowMessage('файл пуст. прил-е закрыть'); CloseFile(f); Halt;
 end;
 AssignFile(g,'youfile.txt');
 Rewrite(g);
 SetLength(x,n,m);
 c:=0;
 for j:=0 to m-1 do
 begin
   for i:=0 to n-1 do
   Read(f,x[i,j]);
   begin
     if x[i,j] mod 2 = 1 then
     c:=c+1;
   end;
   Write(g,c);
   SetLength(x,0,0);
   CloseFile(f); CloseFile(g);
end;
end;

end.


Игорь Шевченко   (2016-09-29 10:20:00) [1]


> после запуска программы и нажатия кнопки выходит ошибка
>  
> Project Project.exe raised exception class EAccessViolation
> with message 'Access violation at address 0045275f in module
> 'Project.exe'. Read of address 00000026'. Process stoped.
>  use step or run to continue.


Запускай из-под отладчика.


iop   (2016-09-29 10:18:00) [2]

1. вложенный массив не инициализирован
2. x - это одномерный массив.  А это обращение к двумерному x[i,j]


ВладОшин   (2016-09-29 07:58:00) [3]

дайте комментарии к вашему коду, где и что, по вашему мнению, делается
начиная с
n:=FileSize(f);
m:=FileSize(f);


Arthur   (2016-09-29 02:59:00) [4]

после запуска программы и нажатия кнопки выходит ошибка  
Project Project.exe raised exception class EAccessViolation with message 'Access violation at address 0045275f in module 'Project.exe'. Read of address 00000026'. Process stoped. use step or run to continue.


Наверх

Титульная страница Поиск, карта сайта Написать письмо