Wyszukiwanie w BCB

Witam

Czy wie ktoś jak można w Builderze zrealizować wyszukiwanie danego słowa w plikach doc lub pdf?

Czyli np mam słowo “forum” i jakąś lokalizację na dysku np “C:/dokumenty” gdzie znajdują się dokumenty doc i chcę zwrócić nazwy tylko tych plików w których znajduje się słowo “forum”

Za pomocą jakich mechanizmów/funkcji/komponentów można to zrealizować?

Z góry dzięki za każdą odpowiedz

Jeśli plik PDF ma nieskompresowane strumienie to możesz potraktować go jako plik tekstowy. W przeciwnym wypadku musisz plik odpowiednio zinterpretować i rozkompresować strumienie danych, co jest stosunkowo trudne. Możesz na sf.net poszukać odpowiedniej biblioteki (najlepiej jeśli uda Ci się znaleźć jakąś prymitywną bibliotekę konwertującą PDF do tekstu lub HTMLa).

Jeśli chodzi o DOCa to w większości wypadków tekst jest w nim zapisany w sposób otwarty w UNICODE. Rozwiązanie jak powyżej: albo traktujesz jak plik tekstowy w UNICODE albo szukasz biblioteki.

Traktowanie w/w jako plików tekstowych ma jedną wadę. Przykładowo w jeśli autorem pliku doc będzie Maria Krotochwila a szukasz słowa chwila, to zostanie ono odnalezione w DOCu. Podobne problemy istnieją w przypadku PDFa. Dodatkowo w PDFie będziesz miał problem z polskimi literami jeśli liczysz na to, że stumień nie jest skompresowany i akurat Ci się poszczęści.

A wiesz może czy jest jakaś możliwość odwołania się do Windowsowej wyszukiwarki plików? Tam jest taka możliwość wyszukiwania o jaką mi chodzi tylko nie wiem jak się do tego odwołać.

Przy zwykłym odczycie (przez stream) niezakodowanego pliku PDF nie pojawia się tekst tylko jakieś “krzaczki”

Przypuszczalnie możesz użyć Windows Desktop Search 2 API ( http://msdn2.microsoft.com/en-us/library/aa965362.aspx ) lub Windows Search 3 API ( http://msdn2.microsoft.com/en-us/library/aa965362.aspx ). Umiejętność programowania aplikacji COM niezbędna (jak w przypadku każdego API windowsowego innego niż WinApi).

Hmmm to trochę niewiele mi daje. Może jakieś inne pomysły?

Jest jeszcze trzecia opcja: inżynieria odwrotna formatu i pisanie własnego kodu do interpretacji DOCów i PDFów. Użyj sugestii pierwszej - pogrzeb na SF. Prościej się nie da.