Показать сообщение отдельно
  #4  
Старый 13.05.2013, 01:52
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

Здесь всё прикольнее, чем может показаться, ТСу просто нужно из мемо распарсить строки в таблицу, в соседней теме он это довольно подробно объяснил. Предложенный код меня не вдохновил, поэтому, всё равно, всё по своему сделал, не смог от такого удержаться:

На форме должны быть кнопка, мемо и стрингрид (вкладка палитры компонентов Additional -> StringGrid)

Код:
procedure TForm1.Button1Click(Sender: TObject);
 function nu(ds: string): string;
  begin
   Result:= Copy(ds, 1, pos(',', ds)-1);
  end;
var
 i, b, b5, b6: integer;
 sl, sv, su: TStrings;
 flg: boolean;
begin
 su:= TStringList.Create;
 sv:= TStringList.Create;
 sl:= TStringList.Create;

 for i := 0 to Memo1.Lines.Count-1 do
  begin
   flg:=true;

   for b := 0 to su.Count-1 do
    if nu(Memo1.Lines.Strings[i]) = su.Strings[b] then flg:= false;

   if flg then su.Add(nu(Memo1.Lines.Strings[i]));
 end;

   StringGrid1.RowCount:=su.Count+1;

   for b := 0 to su.Count-1 do
    begin
     sv.Clear;
     for i := 0 to Memo1.Lines.Count-1 do
      if nu(Memo1.Lines.Strings[i]) = su.Strings[b] then
         sv.Add(Memo1.Lines.Strings[i]);

      b5:= 0;
      b6:= 0;

      for i := 0 to sv.Count-1 do
       begin
        sl.Text:= StringReplace(sv.Strings[i],',',#10,[rfReplaceAll]);
        inc(b5, StrToInt(sl.Strings[4]));
        inc(b6, StrToInt(sl.Strings[5]));
       end;

     StringGrid1.Cells[1, b+1]:= su.Strings[b];
     StringGrid1.Cells[2, b+1]:= IntToStr(b5);
     StringGrid1.Cells[3, b+1]:= IntToStr(b6);
    end;

 sl.Free;
 sv.Free;
 su.Free;
end;
Оно работает, проверено электроникой
Ответить с цитированием