Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - VBA

Страница: 1 |

 

  Вопрос: очень сложный поиск путем макроса excel( помогите Добавлено: 29.10.09 10:31  

Автор вопроса:  soulthiefer
всем доброго дня ! помогите пожалуйста организовать поиск в эксель посредством макроса !
выкладываю файл в котором сделал все что мог .. в принципе все кроме поиска о котором прошу (
на первой вкладке : вводится пара фамилий людей который знают друг друга... в текстбоксах вводится если фамилии нет еще в списке в сомбобоксе выбирается из списка если существует фамилия ! Кнопка ЗАПИСАТЬ добавляет фамилии из полей в соответствующие колонки ( текстбоксы имеют приоритет перед комбо)
на второй вкладке : как раз и должен быть нужный мне поиск ( поиск ищет цепочку людей через которых я хочу познакомиться с человеком которого указал в комбобоксе на второй вкладке, ТОЕСТЬ найти возможную комбинацию/комбинации по принципу: "Мне нужно познакомиться с Петровым. Посмотрим, кто из моих знакомых, или знакомых моих знакомых знает этого человека ( под кнопкой ПОИСК ВАРИАНТОВ расположен лэйбл3 в нем и должны выводится варианты ! пример запроса и ответов на него на самом листе справа от столбиков фамилий !
ПОМОГИТЕ пожалуйста с этим самым поиском!!! я в полном тупике (

файл с примером
http://rapidshare.com/files/299110332/2.zip.html

сорри не знаю как сюда прикрепить файл

Ответить

  Ответы Всего ответов: 4  

Номер ответа: 1
Автор ответа:
 hip



Вопросов: 3
Ответов: 22
 Профиль | | #1 Добавлено: 31.10.09 22:30
В первую очередь необходимо реализовать структуру для хранения данных, потому что работать в данном случае с экселевским листом нет никакого смысла, алгоритм поиска будет слишком медленный и кривой. То есть смысл такой: программа после запуска в первую очередь считывает данные из первых двух столбцев и сохраняет их в структуре (что-то вроде массива, но сложнее), после чего поиск делает уже в этой структуре. Структура эта называется "сеть" или "граф" и реализуется, например, с помощью классов (это самый простой вариант).
В общем можно написать алгоритм и без этой струтуры, но будет он, повторюсь, очень медленный и кривой. Это примерно тоже самое, что огород детским совочком вскапывать. Проще сразу разобраться в теории сетей, в книгах где она описывается и алгоритмы поиска тоже есть, насколько я могу представить в рамках теории сетей задача, которую вы описали, -тривиальная.
Во всяком случае если бы я столкнулся с подобной задачей, я бы поступил именно так, сетевые алгоритмы - ядро этой задачи и самый быстрый путь.

Ответить

Номер ответа: 2
Автор ответа:
 Smith



ICQ: adamis@list.ru 

Вопросов: 153
Ответов: 3632
 Профиль | | #2 Добавлено: 01.11.09 02:42
Один из "кривых" способов это тупо рекурсией по сети своих классов исключая уже пройденных. Это только если народу не очень много!
Хотя, чтото мне подсказывает, что ТС непоймет нихрена из сказанного :)

Ответить

Номер ответа: 3
Автор ответа:
 soulthiefer



Вопросов: 1
Ответов: 1
 Профиль | | #3 Добавлено: 02.11.09 09:08
Smith пишет:
что ТС непоймет нихрена из сказанного

 

все правильно ничего не понял ((
hip пишет:
в данном случае с экселевским листом нет никакого смысла, алгоритм поиска будет слишком медленный и кривой

в том то и состоит задача что нужно реализовать в макросе экселя !!!!
во первых так стоит задача а во вторых мне оч интересна реализация т к сам осилить не смоог (

Ответить

Номер ответа: 4
Автор ответа:
 hip



Вопросов: 3
Ответов: 22
 Профиль | | #4 Добавлено: 02.11.09 12:40
в том то и состоит задача что нужно реализовать в макросе экселя !!!!

В макросе Excel должен находится код, который считывает данные с листа и сохраняет их в памяти в сетевую структуру, и уже затем ищет варианты в этой структуре, а не на экселевском листе.
В общем что-бы решить эту задачу Вам нужно расширять свои познания в программировании. Путь вам указали:
-написание своих классов
-"сети" или "графы"
-рекурсия.
Если кто-то решит написать этот код за Вас и даст его Вам, Вы там ни черта не поймете, потому-что не имеете представления о вышеперечисленных аспектах программирования.
 То есть у вас два пути- разобраться во всем и осилить таки эту задачу, либо не разбираться и отказаться от решения, потому что решение этой задачи без сетевых структур, это , прямо скажу, не решение.

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам