Показать сообщение отдельно
  #1  
Старый 05.05.2011, 18:04
iliabest iliabest вне форума
Прохожий
 
Регистрация: 05.05.2011
Сообщения: 2
Репутация: 10
По умолчанию Как вывести значение из DBGrid в переменную

Помогите пожалуйста решить задачу, уже несколько дней мучаюсь и никак не могу понять в чем проблема. У меня DBGrid визуализирует данные таблицы SOKPO, которая содержит 1 столбец с именем P_N, он содержит большое число записей( 93 000 ). Мне нужно чтобы по щелчку кнопки Button1 Итоговые значения записывались в txt файл.
(Я вывел данные по возрастанию "ORDER BY P_N");
Например.
В стоблце P_N, номер 224 встретился 10 раз, а номер 225 встретился 15 раз.
Надо что в текстовый файл попали такие значения :

224 10
225 15

(В итоги 93 000 строк должны превратиться в 69(без повторений))
Умоляю помогите..

Код:
procedure TForm1.Button1Click(Sender: TObject);
var
d:textfile;
k,i,n:Integer;
v:integer;
PN,P_N:string;
begin
AssignFile(d,'Итог.txt');
Append(d);
DBGrid1.DataSource.DataSet.DisableControls;
DBGrid1.DataSource.DataSet.First;
n:=1;
k:=1;
 with DBGrid1 do
  begin
    while not DataSource.DataSet.Eof do
     begin
       for v:=1 to Datasource.DataSet.RecordCount-1 do
        begin
        PN:=Fields[v].AsString;
        Datasource.DataSet.Next;
        P_N:=Fields[v].AsString;
       if PN=P_N then
        begin
          n:=n+1;
          DataSource.DataSet.Next;
        end
       else
        begin
         Write(d,PN,' ');
         Write(d,n, ' ');
         Writeln(d);
         n:=0;
         DataSource.DataSet.Next;
        end;
       DataSource.DataSet.Next;
      end;
      DataSource.DataSet.Next;
     end;
     CloseFile(d);
  end;

 DBGrid1.DataSource.DataSet.EnableControls;
end;
Админ: Пользуемся тегами для оформления кода!
Ответить с цитированием