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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 04.05.2014, 11:16   #1
vladimir412
Пользователь
 
Регистрация: 04.01.2014
Сообщений: 18
По умолчанию Обработка типизированного файла (Подскажите, что не так с программой в Delphi?)

Код:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Memo1: TMemo;
    Edit1: TEdit;
    Edit2: TEdit;
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    Button4: TButton;
    Button5: TButton;
    BitBtn1: TBitBtn;
    Edit3: TEdit;
    Edit4: TEdit;
    sSkinManager1: TsSkinManager;
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure Button5Click(Sender: TObject);




    procedure BitBtn1Click(Sender: TObject);

  private
    { Private declarations }
  public
    { Public declarations }
  end;
                                 const
   n=100;
  type
    Shool = record
    FIO: string[40]; // Поле Ф.И.О.
    otc: array[1..3] of word; // Поле массива оценок
    sball : extended; // Поле среднего балла

    end;
var
  Fz : file of Shool; // Файл типа записи
  Ft : TextFile; // Текстовой файл
  Stud : array[1..100] of Shool; // Массив записи
  nzap : integer; // Номер записи
  FileNameZ, FileNameT : string; // Имя файла
  OpenDialog1: TOpenDialog;
  SaveDialog1: TSaveDialog;
var
  Form1: TForm1;

implementation

{$R *.dfm}



 procedure TForm1.FormCreate(Sender: TObject);
begin
  Edit1.Clear; Edit2.Clear; Edit3.Clear; Edit4.Clear;
  Memo1.Clear;
  Button1.Hide; // Сделать невидимой кнопку "Ввести запись"
  nzap:=0;
end;

  procedure TForm1.Button1Click(Sender: TObject);//Ввести повую запись
begin
  nzap:=nzap+1;
  with stud[nzap] do begin
  FIO:=Edit1.Text;
  otc[1]:=StrToInt(Edit2.Text);
  otc[2]:=StrToInt(Edit3.Text);
  otc[3]:=StrToInt(Edit4.Text);
  sball:=(otc[1]+otc[2]+otc[3])/3;
  Memo1.Lines.Add(fio+' '+IntToStr(otc[1])+' '+ IntToStr(otc[2])+ ' '+IntToStr(otc[3]));
end;
Write(fz,Stud[nzap]); // Запись в файл
Edit1.Clear; Edit2.Clear; Edit3.Clear; Edit4.Clear;
end;

  procedure TForm1.Button2Click(Sender: TObject);// Создание нового файла записи

begin
  OpenDialog1.Title :='Создать новый файл'; // Изменение заголовка окна диалога
  if OpenDialog1.Execute then //Выполнение стандартного диалога выбора имени файла
  begin
    FileNameZ:= OpenDialog1.FileName; //Возвращение имени диалогового файла
    AssignFile(Fz, FileNameZ); // Связывание файлового Fz c именем файла
    Rewrite(Fz); // Создание нового файла
end;
Button1.Show; // Сделать видимой кнопку "Ввести запись"
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
  if OpenDialog1.Execute then // Открыть существующий файл выбора имени файла
  begin
    FileNameZ:= OpenDialog1.FileName; // Возвращение имени диалогового файла
    AssignFile(Fz, FileNameZ); // Связывание файловой переменной Fz c именем файла
    Reset(Fz); // Открытие существующего файла
  end;
  nzap:=0;
  while not eof(fz) do begin
  nzap:=nzap+1;
  Read(fz,stud[nzap]); // Чтение записи из файла
  with stud[nzap] do
  Memo1.Lines.Add(fio+' '+IntToStr(otc[1])+' '+IntToStr(otc[2])+
  ' '+IntToStr(otc[3]));
end;
Button1.Show; // Сделать видимой кнопку "Ввести запись"
end;

procedure TForm1.Button4Click(Sender: TObject);//Сортировка записей

var
  i,j : word;
  st : Shool;
  begin
    for i:=1 to nzap-1 do // Сортировка массива записей
    for j:=i+1 to nzap do
    if Stud[i].sball < Stud[j].sball then begin
    st:=Stud[i];
    Stud[i]:=Stud[j];
    Stud[j]:=st;
  end;
  Memo1.Clear;
  for i:=1 to nzap do // Вывод в окно Memo1 отсортированных записей
  with stud[i] do
  Memo1.Lines.Add(IntToStr(i)+' '+fio+' '+FloatToStrf(sball,fffixed,4,2));
end;


procedure TForm1.Button5Click(Sender: TObject);//Сохранение результатов сортировки в текстовом файле

var
  i:word;
begin

  if SaveDialog1.Execute then // Выполнение стандартного диалога выбора имени файла
  begin
    FileNameT:= SaveDialog1.FileName; // Возвращение имени диалогового файла
    AssignFile(Ft, FileNameT); // Связывание файловой переменной Ft c именем файла?
    Rewrite(Ft); // Открытие нового текстового файла
  for i:=1 to nzap do
  with stud[i] do Writeln(Ft,i:4,'. ',fio,sball:8:2); // Запись в текстовой файл
  CloseFile(Ft); // Закрытие текстового файла
end;
end;
 procedure TForm1.BitBtn1Click(Sender: TObject);
begin
  CloseFile(fz); // Закрытие файла записей при нажатии на кнопку  "Выход"
end;

end.

Последний раз редактировалось Stilet; 04.05.2014 в 11:24.
vladimir412 вне форума Ответить с цитированием
Старый 04.05.2014, 11:24   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

И что в твоей Dilphi-программе тебя смутило?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 04.05.2014, 11:26   #3
vladimir412
Пользователь
 
Регистрация: 04.01.2014
Сообщений: 18
По умолчанию

and I with it?
vladimir412 вне форума Ответить с цитированием
Старый 04.05.2014, 11:27   #4
vladimir412
Пользователь
 
Регистрация: 04.01.2014
Сообщений: 18
По умолчанию

она не создает файл загрузки и не загружает из нее соответственно
vladimir412 вне форума Ответить с цитированием
Старый 06.05.2014, 10:56   #5
ZX Spectrum-128
Участник клуба
 
Регистрация: 05.11.2013
Сообщений: 1,601
По умолчанию

Приложите проект.
ZX Spectrum-128 вне форума Ответить с цитированием
Старый 06.05.2014, 11:13   #6
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Владимир, начните с того, что удалите код, отмеченный красным
Цитата:
Код:
var
....
  OpenDialog1: TOpenDialog;
  SaveDialog1: TSaveDialog;
и поместите OpenDialog1 и SaveDialog1 компоненты прямо на форму.
или (что не рекомендую, способ выше с формой проще) займитесь их созданием,удалением!
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
что не так с программой Juli) Паскаль, Turbo Pascal, PascalABC.NET 5 04.06.2013 08:23
Обработка типизированного файла microlab Паскаль, Turbo Pascal, PascalABC.NET 3 20.05.2012 17:36
Обработка типизированного файла со сведениями о книгах (язык C) Светлана18 Помощь студентам 1 26.04.2011 09:00
Подскажите, что не так SWAT Паскаль, Turbo Pascal, PascalABC.NET 0 15.06.2009 15:15
Подскажите что не так... SynonymMixer Работа с сетью в Delphi 10 26.01.2009 23:49