Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2003.10.16;
Скачать: [xml.tar.bz2];

Вниз

Системы поиска   Найти похожие ветки 

 
OlegS   (2003-10-05 16:36) [0]

Как работать с файлами MSWord напрямую тоесть извлечь из него информациию не открывая ворд?


 
Gigabyte   (2003-10-05 18:18) [1]

Какую именно информацию?
Можешь попробовать воспользоваться COM-Хранилищами
http://www.g299792458.boom.ru раздел "Мои Статьи"


 
me   (2003-10-06 13:23) [2]

Искать текст можно так:
uses ComObj, ActiveX, AxCtrls, SysUtils, Classes;
...
function FindTextInFile(const FileName, TextToFind: WideString): boolean;
var Root: IStorage;
EnumStat: IEnumStatStg;
Stat: TStatStg;
iStm: IStream;
Stream: TOleStream;
DocTextString: WideString;
begin
Result:=False;

if not FileExists(FileName) then Exit;

// Check to see if it"s a structured storage file
if StgIsStorageFile(PWideChar(FileName)) <> S_OK then Exit;

// Open the file
OleCheck(StgOpenStorage(PWideChar(FileName), nil,
STGM_READ or STGM_SHARE_EXCLUSIVE, nil, 0, Root));

// Enumerate the storage and stream objects contained within this file
OleCheck(Root.EnumElements(0, nil, 0, EnumStat));

// Check all objects in the storage
while EnumStat.Next(1, Stat, nil) = S_OK do

// Is it a stream with Word data
if Stat.pwcsName = "WordDocument" then

// Try to get the stream "WordDocument"
if Succeeded(Root.OpenStream(Stat.pwcsName, nil,
STGM_READ or STGM_SHARE_EXCLUSIVE, 0, iStm)) then
begin
Stream:=TOleStream.Create(iStm);
try
if Stream.Size > 0 then
begin
// Move text data to string variable
SetLength(DocTextString, Stream.Size);
Stream.Position:=0;
Stream.Read(pChar(DocTextString)^, Stream.Size);

// Find a necessary text
Result:=(Pos(TextToFind, DocTextString) > 0);
end;
finally
Stream.Free;
end;
Exit;
end;
end;

end.



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2003.10.16;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.01 c
1-51267
kaif
2003-09-30 00:25
2003.10.16
SelectDirectory + CreateDirButton


14-51484
ORMADA
2003-09-30 15:18
2003.10.16
Окно на основе MS_WINHELP


3-51137
dtm
2003-09-23 17:51
2003.10.16
Тут пролетал запрос, возвращающий


14-51486
wl
2003-09-28 21:30
2003.10.16
где лежат клиенты форумов?


14-51519
Pat
2003-09-26 22:55
2003.10.16
Разминка для мозгов :)





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский