Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Для новичков > Сумирование строк


Автор: dedushka191 4.6.2008, 23:10
Доброго времени суток!
У меня возникла проблемка-я реализую матричный метод плана распредиления нагрузки на сеть(в stringgrid)-проблема в том что мне нужно просумировать две строки:первая-М12(1и2-это коордираты),а вторая-М23+М34\М25+М54!При этом вторая строка должна распознаваться как две подстроки,чтобы в результате сумирования получалось=М12+М23+М34\М12+М25+М54!Пробовал через StringList но у меня не получилось!Подскажите пожалуйста! 

Автор: Akeem 4.6.2008, 23:23
В смысле просумировать строки? Может тебе нужно строки перевести в целые числа а потом их просумировать?

Автор: dedushka191 4.6.2008, 23:28
Просто там не числа,а строки((string) и значения на подобе М12+М23\М23+М34)),нужно както разделить их по разделителю "\"!

Автор: THandle 5.6.2008, 07:35
Не знаю. Правильно ли я понял, но вот:

Код

procedure TForm1.Button1Click(Sender: TObject);
var
  s, s1, s2 : string;
  p : integer;
begin
  s := 'M25M15/M54M16';
  p := pos('/', s);
  s1 := Copy(s, 1, p - 1);
  s2 := Copy(s, p + 1 , length(s) - p + 1);
  ShowMessage(s1);
  ShowMessage(s2);
end;


Это? Или опиши что с ними хоть должно делаться. Не совсем понятно честно говоря.

Автор: morpheyushka 5.6.2008, 12:51
Код

procedure TForm1.Button1Click(Sender: TObject);
var
  Summa1, Summa2 : integer;
begin
 Summa1 := StrToInt(StringGrid1.Cells[1, 2]) + StrToInt(StringGrid1.Cells[2, 3]);
 Summa2 := StrToInt(StringGrid1.Cells[2, 3]) + StrToInt(StringGrid1.Cells[3, 4]);
 StringGrid1.Cells[n, m] := IntToStr(Summa1) + '\' + IntToStr(Summa2);
end;


где n, m - координаты ячейки, куда нужно вывести smile 

Автор: dedushka191 5.6.2008, 21:47
Цитата(THandle @ 5.6.2008,  07:35)
Не знаю. Правильно ли я понял, но вот:

Код

procedure TForm1.Button1Click(Sender: TObject);
var
  s, s1, s2 : string;
  p : integer;
begin
  s := 'M25M15/M54M16';
  p := pos('/', s);
  s1 := Copy(s, 1, p - 1);
  s2 := Copy(s, p + 1 , length(s) - p + 1);
  ShowMessage(s1);
  ShowMessage(s2);
end;


Это? Или опиши что с ними хоть должно делаться. Не совсем понятно честно говоря.

Єто то что нужно!Благодаря функции pos-зделалось как надо!!!!Огромное спасибо

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)