Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.05.2009, 02:38   #1
VadEr
Форумчанин
 
Аватар для VadEr
 
Регистрация: 24.03.2009
Сообщений: 375
По умолчанию Добавление записи в файл (Delphi)

Помите разобраться: выводится ошибка
Type 'TPeople' needs finalization - not allowed in file type

Код:
unit apprec_;
interface
uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, ExtCtrls;
type
  TForm1 = class(TForm)
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Edit1: TEdit; 
    Button1: TButton;
    Label4: TLabel;
    Edit2: TEdit;
    Edit3: TEdit;
    procedure FormActivate(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

  // запись файла
  TPeople=record
     nem: string[15];  
     fam: string[20]; 
     pas: string; 
   end;

var
  Form1: TForm1;
  f: file of TPeople; // файл записей - база данных
implementation
{$R *.DFM}

// активизация формы
procedure TForm1.FormActivate(Sender: TObject);
var
  resp : word; // ответ пользователя
begin
  AssignFile(f, 'data.db');
  {$I-}
  Reset(f);  // открыть файл
  Seek( f, FileSize(f)); // указатель записи в конец файла
  {$I+}
  if IOResult <> 0 then rewrite(f);
end;

// щелчок на кнопке Добавить
procedure TForm1.Button1Click(Sender: TObject);
var
  user: TPeople;
begin
  with user do
  begin
     nem := Edit1.Text;
     fam := Edit2.Text;
     pas := Edit3.Text;
  end;
  write(f, user); // записать содержимое полей записи в файл
end;

// завершение работы программы
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
     CloseFile(f);  // закрыть файл
end;
end.
VadEr вне форума Ответить с цитированием
Старый 15.05.2009, 07:07   #2
Скандербег
Форумчанин
 
Регистрация: 04.04.2009
Сообщений: 438
По умолчанию

Компилятор не может определить размер структуры (record) для записи в файл из-за того что не указан размер строки в поле pas: string;. Здесь тоже нужно указать длину строки как и для двух других переменных.
Скандербег вне форума Ответить с цитированием
Старый 15.05.2009, 10:30   #3
VadEr
Форумчанин
 
Аватар для VadEr
 
Регистрация: 24.03.2009
Сообщений: 375
По умолчанию

Благодарю.
VadEr вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибка записи в файл nisoldatov Софт 2 31.03.2009 02:24
Добавление записи.... Droid БД в Delphi 2 04.06.2008 15:50
Interbase, добавление записи Алёна БД в Delphi 9 25.03.2008 11:54
Как на Delphi открыть для записи файл в интеренте? Tyson78 Работа с сетью в Delphi 4 15.02.2008 10:16