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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 01.12.2014, 22:06   #1
Safok
Пользователь
 
Регистрация: 17.11.2014
Сообщений: 16
По умолчанию Выбрать данные из StringGrid [Delphi]


Есть программа, которая берет инфу и добавляет в стрид грид, есть функция сохранения, как по нажатии на кнопку совершалось действие выводилось в алфавитном порядке список товаров, хранящихся больше ме-сяца, стоимость которых превышает 1000000 р.

Код:
Код:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    edt1: TEdit;
    edt2: TEdit;
    edt3: TEdit;
    lbl1: TLabel;
    lbl2: TLabel;
    lbl3: TLabel;
    btn1: TButton;
    strngrd1: TStringGrid;
    btn2: TButton;
    btn3: TButton;
    btn4: TButton;
    OpenDialog1: TOpenDialog;
    SaveDialog1: TSaveDialog;
    btn5: TButton;
    Label1: TLabel;
    Edit1: TEdit;
    procedure btn1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure btn2Click(Sender: TObject);
    procedure btn3Click(Sender: TObject);
    procedure btn4Click(Sender: TObject);
    procedure grid(var p:integer);
    procedure btn5Click(Sender: TObject);

  private
    { Private declarations }
  public
    { Public declarations }
  end;
type
  trec=record
  name:string[40];
  kolvo:string[40];
  cena:string[40];
  date:TDate;
  end;

var
  Form1: TForm1;
  rec:array [1..100]of trec;
  fff:file of trec;
  n:Integer;
  filename:string;
  txt:Text;
  textname:string;

implementation

{$R *.dfm}

procedure TForm1.btn1Click(Sender: TObject);
begin
n:=n+1;
strngrd1.rowcount:=strngrd1.RowCount+1;
rec[n].name:=edt1.Text;
rec[n].kolvo:=Edit1.Text;
rec[n].cena:=edt2.text;
rec[n].date:=StrToDate(edt3.text);
grid(n);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
with strngrd1 do begin
  cells[0,0]:='N';
  cells[1,0]:='Íàèìåíîâàíèå òîâàðà';
  cells[2,0]:='Êîë-âî';
  cells[3,0]:='Öåíà çà åäèíèöó';
  cells[4,0]:='Äàòà';
end;
end;

procedure TForm1.btn2Click(Sender: TObject);
var i,s,u:Integer;
begin
for i:=1 to n-1 do begin
  S:=i+1;
  while s<=n do begin;
    if (rec[i].name=rec[s].name) and (rec[i].kolvo=rec[s].kolvo) then begin
     for u:=s to n do begin
      rec[u]:=rec[u+1];
     end;
     n:=n-1;
    end else s:=s+1;
  end;
end;
for i:=0 to 4 do strngrd1.cols[i].Clear;
for i:=1 to n do grid(i);
end;

procedure TForm1.btn3Click(Sender: TObject);
var i:Integer;
begin
saveDialog1.DefaultExt:='.r';
saveDialog1.Filter:='.r|*.r|Âñå ôàéëû|*.*';
if saveDialog1.Execute then begin
  filename:=saveDialog1.filename;
  AssignFile(fff,filename);
  Rewrite(fff);
  for i:=1 to n do Write(fff,rec[i]);
  Closefile(fff);
  Form1.caption:=filename;
end;
end;

procedure TForm1.btn4Click(Sender: TObject);
var i:Integer;
s:string;
begin
OpenDialog1.DefaultExt:='.r';
OpenDialog1.Filter:='.r|*.r|Âñå ôàéëû|*.*';
if OpenDialog1.Execute then begin
  n:=0;
  filename:=opendialog1.FileName;
  AssignFile(fff,filename);
  reset(fff);
  while not Eof(fff) do begin
    n:=n+1;
    read(fff,rec[n]);
  end;
  for i:=1 to n do grid(i);
  CloseFile(fff);
  Form1.caption:=filename;
end;      
end;

procedure tform1.grid (var p:integer);
begin
with strngrd1 do begin
  with rec[p] do begin
    cells[0,p]:=IntToStr(p);
    cells[1,p]:=name;
    cells[2,p]:=kolvo;
    cells[3,p]:=cena;
    cells[4,p]:=DateToStr(date);

  end;
end;
end;

procedure TForm1.btn5Click(Sender: TObject);
var i:Integer;
begin
saveDialog1.DefaultExt:='.txt';
saveDialog1.Filter:='.txt|*.txt|Âñå ôàéëû|*.*';
if saveDialog1.Execute then begin
  textname:=saveDialog1.filename;
  AssignFile(txt,textname);
  Rewrite(txt);
  for i:=1 to n do Write(txt,i,#32,rec[i].name:40,#32,rec[i].kolvo:40,#32,rec[i].cena:40,datetostr(rec[i].date));
  Closefile(txt);
end;
end;

end.

Последний раз редактировалось Stilet; 01.12.2014 в 22:17.
Safok вне форума Ответить с цитированием
Старый 02.12.2014, 12:31   #2
Safok
Пользователь
 
Регистрация: 17.11.2014
Сообщений: 16
По умолчанию

Помогите, срочно(ап)
Safok вне форума Ответить с цитированием
Старый 02.12.2014, 14:03   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Safok,

во-первых, куда нужно выводить данные?

во-вторых, никто ваш код в проект собирать не будет. (тем более, что русский текст весь попортился! Чтобы этого не было перед копированием переключайте раскладку клавиатуры на русский язык. Тогда русский текст будет нормально читаться!)

Выкладывайте архив с исходником проекта, посмотрим, что там.
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
задача: есть БД с 2 файлами в которые записываются данные о квартирах, выбрать нужные данные lexa_7up Помощь студентам 4 11.01.2014 19:37
Delphi. Как перевести данные из StringGrid в Stringrid 10Gramm Помощь студентам 2 17.11.2011 16:22
Выбрать ВСЕ выделенные ячейки в StringGrid Os_Mary Компоненты Delphi 5 23.01.2011 18:21
Выбрать данные мкжду \ Shouldercannon Общие вопросы Delphi 3 19.10.2010 17:43
Выбрать данные из массива kzld Microsoft Office Excel 8 26.01.2009 06:36