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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 04.10.2009, 13:56   #1
Siluet
Форумчанин
 
Регистрация: 05.12.2008
Сообщений: 143
По умолчанию Проблема с типизированными файлами

Здравствуйте..у меня тут проблема..
Вот задача:
Спортсмены-многоборцы принимают участие в соревнованиях по М видам спорта. По каждому виду спорта спортсмен набирает определенное количество очков. Вычислить, сколько очков в сумме набрал каждый спортсмен после окончания соревнований. Вычислить разницу в очках для спортсменов, занявших первое и последнее места.
Вот моя форма

Вот Код:
Код:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    Edit4: TEdit;
    Edit5: TEdit;
    Edit6: TEdit;
    Label1: TLabel;
    Label2: TLabel;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
type a1=record
     fam:string[10];
     o4ki:integer;
     o4ki1:integer;
     o4ki2:integer;
     o4ki3:integer;
     o4ki4:integer;
     ob4:integer;
     end;

var
  Form1: TForm1;
  a:a1;
  fa:file of a1;
implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin

AssignFile(fa,'olimpiada');
Reset(fa);
with a do
while true do begin


edit1.Text:=a.fam;

edit2.Text:=IntToStr(a.o4ki);
edit3.text:=IntToStr(a.o4ki1);
edit4.Text:=IntToStr(a.o4ki2);
edit5.text:=IntToStr(a.o4ki3);
edit6.Text:=IntToStr(a.o4ki4);
a.ob4:=a.o4ki+a.o4ki1+a.o4ki2+a.o4ki3+a.o4ki4;
Write(fa,a);
end;end;
end.
Когда я ввожу все данные и нажимаю на кнопку "Записать"
выходит ошибка:


Объясните пожалуйста, что я не так делаю?
С типизированными файлами работал только в паскале..

Последний раз редактировалось Siluet; 04.10.2009 в 14:00.
Siluet вне форума Ответить с цитированием
Старый 04.10.2009, 14:08   #2
russian-stalker
Участник клубаДжуниор
 
Аватар для russian-stalker
 
Регистрация: 23.08.2008
Сообщений: 1,616
По умолчанию

Reset(fa);
Заменить на:
Rewrite(fa);

Вот правильное чтение и запись:

Код:
//Запись
procedure TForm1.Button1Click(Sender: TObject);
begin
AssignFile(fa,'C:\olimpiada');
Rewrite(fa);
with a do
begin
fam:=edit1.Text;
o4ki:=strtoint(edit2.Text);
o4ki1:=strtoint(edit3.text);
o4ki2:=strtoint(edit4.Text);
o4ki3:=strtoint(edit5.text);
o4ki4:=strtoint(edit6.Text);
ob4:=o4ki+o4ki1+o4ki2+o4ki3+o4ki4;
end;
Write(fa,a);
closefile(fa);
end;
//Чтение
procedure TForm1.Button2Click(Sender: TObject);
begin
AssignFile(fa,'C:\olimpiada');
Reset(fa);
read(fa,a);
with a do
begin
edit1.Text:=a.fam;
edit2.Text:=IntToStr(a.o4ki);
edit3.text:=IntToStr(a.o4ki1);
edit4.Text:=IntToStr(a.o4ki2);
edit5.text:=IntToStr(a.o4ki3);
edit6.Text:=IntToStr(a.o4ki4);
a.ob4:=a.o4ki+a.o4ki1+a.o4ki2+a.o4ki3+a.o4ki4;
closefile(fa);
end;
end;
pushl $0x18E3DF6B
call ICQ

Последний раз редактировалось Stilet; 05.10.2009 в 10:58.
russian-stalker вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с типизированными файлами. Darangel Помощь студентам 1 17.05.2009 19:19
Задача на Паскале по работе с типизированными файлами Ake Помощь студентам 12 14.02.2009 02:47