Показать сообщение отдельно
  #1  
Старый 19.05.2011, 14:36
khosveta khosveta вне форума
Прохожий
 
Регистрация: 11.04.2011
Сообщения: 3
Репутация: 10
Вопрос ошибка при работе с файлом

не нашла в нете ответ на свой вопрос. Куча подобных примеров, пишу также, а у меня не работает.

В классе TMySQLFileWaterBodyExporter создаю атрибут типа TextFile. При запуске программы пишет ошибку "Access violation at address 00402E6C in module "project1.exe". Write of address 00000004". Падает имено при обращении к AssignFile.

Когда локально в процедуре объявляю переменную TextFile, все ОК.

Не понимаю, что не так?

Код:
unit Unit1;

interface

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

type
  TMySQLFileWaterBodyExporter = class
  private
     F: TextFile;
  public
     procedure Prepare();
     procedure Close();
  end;

  TForm1 = class(TForm)

    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    MySQLFileWaterBodyExporter: TMySQLFileWaterBodyExporter;
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TMySQLFileWaterBodyExporter.Prepare();
begin
  AssignFile(F, '111.txt');
  Rewrite(F);
  CloseFile(F);
end;

procedure TMySQLFileWaterBodyExporter.Close();
begin
   //CloseFile(ExportFile);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  MySQLFileWaterBodyExporter.Prepare();
  MySQLFileWaterBodyExporter.Close();
end;

end.
Вложения
Тип файла: rar test.rar (161.6 Кбайт, 2 просмотров)
Ответить с цитированием