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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 27.07.2010, 21:46   #61
betirsolt
Форумчанин
 
Регистрация: 20.07.2009
Сообщений: 421
По умолчанию

я уже писал прогу которая берет данные из экзеля в стринг грид потом ищет совпадения и все одинаковые записи перебрасывает в другой стринг грид вот процедура
Код:
procedure TForm1.ToolButton4Click(Sender: TObject);
begin
index:=1;
progressform.Show;
progressform.Caption:='Поиск совпадений';
progressform.ProgressBar1.Max:=setchik;
 for k := 1 to setchik  do
   begin
       for j := k+1 to  setchik do
         begin
         if stringgrid1.Cells[3,k]=stringgrid1.Cells[3,j] then
           begin

           for I := 1 to 12 do
         begin
           stringgrid2.Cells[i,index]:=stringgrid1.Cells[i,k];
         end;
         index:=index+1;
         for I := 1 to 12 do
         begin
         stringgrid2.Cells[i,index]:=stringgrid1.Cells[i,j];
         end;
         index:=index+1;
       end;
 end;
        progressform.ProgressBar1.Position:=progressform.ProgressBar1.Position+1;
   end;
   progressform.ProgressBar1.Position:=0;
   progressform.Close;
end;
Уважаемые модераторы, Я всячески стараюсь не нарушать правила сайта, будьте снисходительны
betirsolt вне форума Ответить с цитированием
Старый 27.07.2010, 21:49   #62
DIgorevich
Погулять вышел
Участник клуба
 
Аватар для DIgorevich
 
Регистрация: 17.05.2010
Сообщений: 1,573
По умолчанию

betirsolt Это-то мы уже давно написали... Проблема не только в сравнении, но также выведении доп.полей и еще многое чего. Но всё равно спасибо!
Никогда не знаешь, где тебе повезет... (Фрай)
DIgorevich вне форума Ответить с цитированием
Старый 27.07.2010, 21:59   #63
betirsolt
Форумчанин
 
Регистрация: 20.07.2009
Сообщений: 421
По умолчанию

есть у меня еще один проект который тоже ищет совпадения и не совпадения,есть два столбца А и Б и они сравниваются между собой
вот поиск совпадений
Код:
procedure TForm1.ToolButton5Click(Sender: TObject);
begin
  index:=1;
  progress.Show;
  progress.Caption:='Поиск совпадений в А и Б';

  progress.ProgressBar1.Max:= setchik;
 for k := 1 to setchik  do
   begin

    for j := 1 to  setchik do
       if stringgrid1.Cells[1,k]=stringgrid1.Cells[2,j] then
       begin
          stringgrid1.Cells[3,index]:=stringgrid1.Cells[1,k];
        index:=index+1;
       end;
     progress.ProgressBar1.Position:=progress.ProgressBar1.Position+1;
   end;
 progress.ProgressBar1.Position:=0;
 progress.Close;
end;
вот есть в А но нет в Б
Код:
procedure TForm1.ToolButton6Click(Sender: TObject);
begin
index:=1;
res:=0;
  progress.Show;
  progress.Caption:='Есть в А но нет в Б';

  progress.ProgressBar1.Max:= setchik;
 for k:=1 to setchik  do
   begin
     for j:=1 to  setchik do
          begin
             if stringgrid1.Cells[1,k]=stringgrid1.Cells[4,j] then
             res:=res+1;
          end;

    if res=0 then
    begin
    stringgrid1.Cells[4,index]:=stringgrid1.Cells[1,k];
    index:=index+1;
    end;
    progress.ProgressBar1.Position:=progress.ProgressBar1.Position+1;
    res:=0;
   end;
 progress.ProgressBar1.Position:=0;
 progress.Close;
end;
вот есть в Б но нет в А

Код:
procedure TForm1.ToolButton7Click(Sender: TObject);
begin
index:=1;
res:=0;
  progress.Show;
  progress.Caption:='Есть в Б но нет в А';
  progress.ProgressBar1.Max:= setchik;
 for k:=1 to setchik  do
   begin
     for j:=1 to  setchik do
          begin
             if stringgrid1.Cells[2,k]=stringgrid1.Cells[1,j] then
             res:=res+1;
          end;
    if res=0 then
    begin
    stringgrid1.Cells[5,index]:=stringgrid1.Cells[2,k];
    index:=index+1;
    end;
    progress.ProgressBar1.Position:=progress.ProgressBar1.Position+1;
    res:=0;
   end;
    progress.ProgressBar1.Position:=0;
 progress.Close;
end;
ну вот и все.надеюсь ниче не попутал.и надеюсь хоть как то поможет,могу оба готовых проекта дать если надо
Уважаемые модераторы, Я всячески стараюсь не нарушать правила сайта, будьте снисходительны
betirsolt вне форума Ответить с цитированием
Старый 27.07.2010, 22:11   #64
betirsolt
Форумчанин
 
Регистрация: 20.07.2009
Сообщений: 421
По умолчанию

Цитата:
Сообщение от DIgorevich Посмотреть сообщение
betirsolt Это-то мы уже давно написали... Проблема не только в сравнении, но также выведении доп.полей и еще многое чего. Но всё равно спасибо!
что еще я не пойму?какие поля?че конкретно надо?
Уважаемые модераторы, Я всячески стараюсь не нарушать правила сайта, будьте снисходительны
betirsolt вне форума Ответить с цитированием
Старый 27.07.2010, 22:22   #65
DIgorevich
Погулять вышел
Участник клуба
 
Аватар для DIgorevich
 
Регистрация: 17.05.2010
Сообщений: 1,573
По умолчанию

Цитата:
Сообщение от betirsolt Посмотреть сообщение
что еще я не пойму?какие поля?че конкретно надо?
Та уже всё написано завтра ТС отпишется.

artemavd Лови, проверяй. Убедительно прошу, сначала экзешник проверь, а потом уже код смотри

Копия 79979.rar
Никогда не знаешь, где тебе повезет... (Фрай)
DIgorevich вне форума Ответить с цитированием
Старый 27.07.2010, 23:41   #66
psycho-coder
Участник клуба
 
Аватар для psycho-coder
 
Регистрация: 06.04.2009
Сообщений: 1,524
По умолчанию

алгоритм сравнения пишется за пять минут. Единственная проблема на мой взгляд - это раскраска. Ни когда ею не занимался.

P.S. Просто не вижу смысла расписывать тему на семь страниц из-за пустяка.
psycho-coder вне форума Ответить с цитированием
Старый 28.07.2010, 00:05   #67
DIgorevich
Погулять вышел
Участник клуба
 
Аватар для DIgorevich
 
Регистрация: 17.05.2010
Сообщений: 1,573
По умолчанию

Цитата:
Сообщение от psycho-coder Посмотреть сообщение
Просто не вижу смысла расписывать тему на семь страниц из-за пустяка.
В таком случае, почитайте ВСЕ посты в теме. Раз уж вам места жалко...
Никогда не знаешь, где тебе повезет... (Фрай)
DIgorevich вне форума Ответить с цитированием
Старый 28.07.2010, 00:35   #68
psycho-coder
Участник клуба
 
Аватар для psycho-coder
 
Регистрация: 06.04.2009
Сообщений: 1,524
По умолчанию

Цитата:
Сообщение от DIgorevich Посмотреть сообщение
В таком случае, почитайте ВСЕ посты в теме. Раз уж вам места жалко...
Мне места не жалко. Мне лень это все читать и вникать.
Беглый просмотр показал, что несколько разных вариантов есть.
psycho-coder вне форума Ответить с цитированием
Старый 28.07.2010, 03:51   #69
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
По умолчанию

DIgorevich, респект! . Вот сейчас работает вроде правильно. Только есть пара маленьких нюансов-уточнения.
1. Почему происхожит задержка при выводе результата? Возможно ли как-тот ускорить?
2. Не получается сохранить в Excel файл. Сейчас ищу другую процедуру сохранения..
В твоем коде сохранения выдается ошибка:
"OLE error 800A03EC". Мне кажется, что это из за того, что столбцов слишком много.
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.

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

Цитата:
1. Почему происхожит задержка при выводе результата? Возможно ли как-тот ускорить?
У меня задержки вообще нет... Может дело в размере файла, т.к. она сначала заполняет результатом 3-ю сетку, а потом ее уже отображает.

Цитата:
2. Не получается сохранить в Excel файл. Сейчас ищу другую процедуру сохранения..
В твоем коде сохранения выдается ошибка:
"OLE error 800A03EC". Мне кажется, что это из за того, что столбцов слишком много.
У меня данная процедура также работала (хотя она заточена под обычный StringGrid). Ошибку может выдавать из-за версии Офиса также.
Никогда не знаешь, где тебе повезет... (Фрай)
DIgorevich вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
StringGrid Определение значений по 3-ем критериям Juliya_U Помощь студентам 3 04.05.2010 14:19
сверка значений на другом листе подстановка подходящего marc-nikita Microsoft Office Excel 5 07.02.2010 14:10
умножение значений Stringgrid zluchka Помощь студентам 3 03.11.2009 11:33
StringGrid сумма значений monushka Общие вопросы Delphi 21 26.10.2009 17:12
Сверка данных с помощью VBA mal001 Microsoft Office Excel 2 06.08.2008 14:39