Создать поисковик
C чего посоветуете начать?
Хочу попробовать создать поисковик для локальной сети (в билдере 6) построенной в основном на Win2000 - 2003 Server. Сеть доменного типа, поиск производить только в папках общего доступа. Меня интересуют вопросы относительно работы в сети - компоненты, функции и т.д.
C чего посоветуете начать?
Я немного не понял, чего он искать-то должен? Документы али людей али ещё чего? И, как я понимаю, он должен это делать на всех машинах в сети? Так есть таки Microsoft Search Engine, поставляемый, афаир, с Microdoft Office Professional, пиши к нему надстройку...
TListItem *ListItem;
struct hostent* hostEnt;
SOCKADDR_IN sat;
NETRESOURCE *pNr;
HANDLE hEnum;
WNetOpenEnum(RESOURCE_CONTEXT,RESOURCETYPE_ANY,0,pNr,&hEnum);
NETRESOURCE NetResource[1024];
DWORD dwCount=1000;
DWORD dwSize=sizeof(NetResource);
WNetEnumResource(hEnum,&dwCount,(LPVOID*)&NetResource,&dwSize);
for(int dw=1; dw<dwCount; dw++)
{
try
{
String dd=NetResource[dw].lpRemoteName;
dd=dd.SubString(3,53);
ListItem=ListView2->Items->Add();
ListItem->Caption=dd;
hostEnt=gethostbyname(dd.c_str());
sat.sin_addr.S_un.S_un_b.s_b4=hostEnt->h_addr[3];
ListItem->SubItems->Add(sat.sin_addr.S_un.S_un_b.s_b4);
}
catch(...)
{
}
}
WNetCloseEnum(hEnum);
delete NetResource;
Я немного не понял, чего он искать-то должен? Документы али людей али ещё чего? И, как я понимаю, он должен это делать на всех машинах в сети? Так есть таки Microsoft Search Engine, поставляемый, афаир, с Microdoft Office Professional, пиши к нему надстройку...
Он должен производить поиск файлов. Для начала хотя бы по названиям.
Нужен исходник или приблизительный код программы.
_
:???:Как создать поисковик который искал бы файлы на заданном ему жёстком диске(или его каталоге)?(на win xp)
Нужен исходник или приблизительный код программы.
_
Поищи зде по форуму по функциям FindFirstFile,FindnextFile. Примеров будет полно.
Спасибо за помощь vitaly2003s!
Вот так можно определить машины в локалке.
TListItem *ListItem;
struct hostent* hostEnt;
SOCKADDR_IN sat;
NETRESOURCE *pNr;
HANDLE hEnum;
WNetOpenEnum(RESOURCE_CONTEXT,RESOURCETYPE_ANY,0,pNr,&hEnum);
NETRESOURCE NetResource[1024];
DWORD dwCount=1000;
DWORD dwSize=sizeof(NetResource);
WNetEnumResource(hEnum,&dwCount,(LPVOID*)&NetResource,&dwSize);
for(int dw=1; dw<dwCount; dw++)
{
try
{
String dd=NetResource[dw].lpRemoteName;
dd=dd.SubString(3,53);
ListItem=ListView2->Items->Add();
ListItem->Caption=dd;
hostEnt=gethostbyname(dd.c_str());
sat.sin_addr.S_un.S_un_b.s_b4=hostEnt->h_addr[3];
ListItem->SubItems->Add(sat.sin_addr.S_un.S_un_b.s_b4);
}
catch(...)
{
}
}
WNetCloseEnum(hEnum);
delete NetResource;
Добавляет кучу пустых ListItem-ов и в конце маленько итемов с кракозябрами... У тебя это точно работает?
Добавляет кучу пустых ListItem-ов и в конце маленько итемов с кракозябрами... У тебя это точно работает?
У меня работает.
У меня работает.
Может это зависит от типа сети?
Может это зависит от типа сети?
Возможон и зависит... Я проверял на домашней сетке без доменов. Все компы WinXP Pro.
В сети было только трое - имена троих и высветились.
Собственно, разве такая уж проблема, что у тебя там высвечивается еще и хрень всякая? Попытки подключения к хрени все равно будут провальными...