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ć?
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”
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.