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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.08.2010, 17:44   #1
kurz
 
Регистрация: 17.08.2010
Сообщений: 9
По умолчанию StringGrid.cells[1,i] делить на число(Delphi7)

нужно StringGrid.cells[4,i] занести значение StringGrid.cells[1,i] деленное на число.как перевести.
Код:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    StringGrid1: TStringGrid;
    BitBtn2: TBitBtn;
    BitBtn3: TBitBtn;
    BitBtn4: TBitBtn;
    Edit1: TEdit;
    OpenDialog1: TOpenDialog;
    MainMenu1: TMainMenu;
    N1: TMenuItem;
    N2: TMenuItem;
    Load1: TMenuItem;
    Exit1: TMenuItem;
    Help1: TMenuItem;
    About1: TMenuItem;
    BitBtn1: TBitBtn;
    procedure BitBtn4Click(Sender: TObject);
    procedure BitBtn3Click(Sender: TObject);
    procedure BitBtn2Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure About1Click(Sender: TObject);
    procedure N2Click(Sender: TObject);
    procedure Load1Click(Sender: TObject);
    procedure Exit1Click(Sender: TObject);
    procedure BitBtn1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}



procedure SaveGrid(Grid:TStringGrid;FileName:string);
var
f: textfile;
x, y: integer;
begin
assignfile(f,Filename);
rewrite(f);
writeln(f, grid.colcount); // çàïèñü êîëè÷åñòâà êîëîíîê
writeln(f, grid.rowcount); // çàïèñü êîëè÷åñòâà ñòðîê
for X := 0 to grid.colcount - 1 do
for y := 0 to grid.rowcount - 1 do
writeln(F, grid.cells[x, y]);  // çàïèñü äàííûõ
closefile(f);
end;

procedure LoadGrid(Grid:TStringGrid;FileName:string);
var
f: textfile;
temp, x, y: integer;
tempstr: string;
begin
assignfile(f, Filename);
reset(f);
readln(f, temp); // ñ÷èòûâàíèå êîëè÷åñòâà êîëîíîê
grid.colcount := temp;
readln(f, temp); // ñ÷èòûâàíèå êîëè÷åñòâà ñòðîê
grid.rowcount := temp;
for X := 0 to grid.colcount - 1 do
for y := 0 to grid.rowcount - 1 do
begin
readln(F, tempstr);
grid.cells[x, y] := tempstr; // ñ÷èòûâàíèå äàííûõ
end;
closefile(f);
end;
procedure TForm1.BitBtn4Click(Sender: TObject);
begin
close;
end;

procedure TForm1.BitBtn3Click(Sender: TObject);
begin
OpenDialog1.FileName := '*.*';
  if  OpenDialog1.Execute then
    Edit1.Text := OpenDialog1.FileName;

savegrid(stringgrid1,OpenDialog1.FileName);
end;

procedure TForm1.BitBtn2Click(Sender: TObject);
begin
 OpenDialog1.FileName := '*.*';
  if  OpenDialog1.Execute then
    Edit1.Text := OpenDialog1.FileName;

loadgrid(stringgrid1,OpenDialog1.FileName);
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
StringGrid1.Cells[0,0] := 'Íàçâàíèå';
StringGrid1.Cells[1,0] := 'êóïëÿ(RUB)';
StringGrid1.Cells[2,0] := 'ïðîäàæà(RUB)';
StringGrid1.Cells[3,0] := 'êîëè÷åñòâî';
StringGrid1.Cells[4,0] := 'êóïëÿ(USD)';
StringGrid1.Cells[5,0] := 'ïðîäàæà(USD)';
StringGrid1.Cells[6,0] := 'êóïëÿ(EUR)';
StringGrid1.Cells[7,0] := 'ïðîäàæà(EUR)';
end;

procedure TForm1.About1Click(Sender: TObject);
begin
showmessage('âûïîëíèë ñòóäåíò 210 ãðóïïû Øåíäðÿ Àðòóð');
end;

procedure TForm1.N2Click(Sender: TObject);
begin
OpenDialog1.FileName := '*.*';
  if  OpenDialog1.Execute then
    Edit1.Text := OpenDialog1.FileName;
savegrid(stringgrid1,OpenDialog1.FileName);
end;

procedure TForm1.Load1Click(Sender: TObject);
begin
OpenDialog1.FileName := '*.*';
  if  OpenDialog1.Execute then
    Edit1.Text := OpenDialog1.FileName;

loadgrid(stringgrid1,OpenDialog1.FileName);
end;


procedure TForm1.Exit1Click(Sender: TObject);
begin
close;
end;

procedure TForm1.BitBtn1Click(Sender: TObject);
var
  v:array[1..10]of real;
  i:integer;
begin
for i:=1 to stringgrid1.rowcount do
  v:=floattostrf(stringgrid1.cells[1,i]/31);
end;

end.

Последний раз редактировалось Stilet; 18.08.2010 в 08:27.
kurz вне форума Ответить с цитированием
Старый 17.08.2010, 18:05   #2
SNUPY
Форумчанин
 
Регистрация: 15.02.2008
Сообщений: 621
По умолчанию

Код:
StringGrid.cells[4,i] := StringGrid.cells[1,i]/m;
Помог? Ну так нажми на весы!
SNUPY вне форума Ответить с цитированием
Старый 17.08.2010, 18:20   #3
kurz
 
Регистрация: 17.08.2010
Сообщений: 9
По умолчанию

тут вся проблема в типах.стринг не получится делить.
kurz вне форума Ответить с цитированием
Старый 17.08.2010, 18:25   #4
DIgorevich
Погулять вышел
Участник клуба
 
Аватар для DIgorevich
 
Регистрация: 17.05.2010
Сообщений: 1,573
По умолчанию

А кто тебе мешает использовать pos...delete избавляться от лишних символов в строке и преобразовывать ее в Integer (Inttostr(x))?
Никогда не знаешь, где тебе повезет... (Фрай)
DIgorevich вне форума Ответить с цитированием
Старый 17.08.2010, 18:29   #5
kurz
 
Регистрация: 17.08.2010
Сообщений: 9
По умолчанию

может получится дробное число.Integer не подходит.да и с переводом у меня проблемы.
kurz вне форума Ответить с цитированием
Старый 17.08.2010, 18:31   #6
DIgorevich
Погулять вышел
Участник клуба
 
Аватар для DIgorevich
 
Регистрация: 17.05.2010
Сообщений: 1,573
По умолчанию

значит используй Real, а переводить как strtofloat(X)
В предыдущем посте я перепутал надо: strtoint(x)
Никогда не знаешь, где тебе повезет... (Фрай)
DIgorevich вне форума Ответить с цитированием
Старый 17.08.2010, 18:34   #7
kurz
 
Регистрация: 17.08.2010
Сообщений: 9
По умолчанию

написал так
Код:
stringgrid1[4,i]:=floattostr(strtofloat(stringgrid1.cells[1,i])/3);
получил
[Error] Unit1.pas(152): Class does not have a default property

Последний раз редактировалось Stilet; 18.08.2010 в 08:27.
kurz вне форума Ответить с цитированием
Старый 17.08.2010, 18:35   #8
DIgorevich
Погулять вышел
Участник клуба
 
Аватар для DIgorevich
 
Регистрация: 17.05.2010
Сообщений: 1,573
По умолчанию

Цитата:
Сообщение от kurz Посмотреть сообщение
написал так
PHP код:
stringgrid1[4,i]:=floattostr(strtofloat(stringgrid1.cells[1,i])/3); 
получил
[Error] Unit1.pas(152): Class does not have a default property
А кто от буковков избавляться будет перед делением? Да и "stringgrid1[4,i]" - не указатель на ячейку.
Никогда не знаешь, где тебе повезет... (Фрай)
DIgorevich вне форума Ответить с цитированием
Старый 17.08.2010, 18:51   #9
kurz
 
Регистрация: 17.08.2010
Сообщений: 9
По умолчанию

там у меня букв нету. написал
Код:
 stringgrid1.Cells[4,i]:=floattostr(strtofloat(stringgrid1.cells[1,i])/31);
запускаю жму расчет вылетает со ошибкой "is not a valid floating point value"
kurz вне форума Ответить с цитированием
Старый 17.08.2010, 18:53   #10
DIgorevich
Погулять вышел
Участник клуба
 
Аватар для DIgorevich
 
Регистрация: 17.05.2010
Сообщений: 1,573
По умолчанию

как это букв нету? а ты сделай так:
Код:
showmessage(stringgrid1.cells[1,i])
и посмотри строку. Да и нам можешь показать, а то у тебя в первом топике кракозябры вместо русских букв.
Никогда не знаешь, где тебе повезет... (Фрай)
DIgorevich вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с компонентом StringGrid. Delphi7 savraska Помощь студентам 0 05.06.2010 06:26
Delphi7. Таблица StringGrid. Olga67_net Помощь студентам 2 13.05.2010 08:29
Нестандартное использование Cells.FormulaR1C1 и Cells.Text Lokkie Microsoft Office Excel 3 21.01.2009 17:41
Stringgrid, Procedure, cells[m,n]:=DynMas[a,b]. Очередной вопрос начинающего (#003) Albert2008 Компоненты Delphi 4 04.08.2008 12:00
Stringgrid, cells[m,n] и двумерные массивы.(#002) Очередной вопрос начинающего. Albert2008 Компоненты Delphi 4 28.07.2008 19:02