![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как работать с Compound Document (он же OLE Structured Storage). [D6, WinXP]
_student © (2005-02-08 18:52:00)Может ктонить знает как с ними работать. Еще лучще компонент для работы с ними. Заранее спасибо.
_student (2005-02-11 11:02:00) [1]Спасибо. Посмотрю.
Misha Uskov (2005-02-08 19:30:00) [2]Вот я глобальный модуль 1С получаю
function TInserterMDForm.GetProgramText(FileName: string): TStringList;
var
RootStg, TextStg, Stg1 : IStorage;
Hr: HResult;
TextStream: IStream;
StringStream: TStringStream;
OS: TOLEStream;
begin
Result:=TStringList.create;
Hr := StgOpenStorage(StringToOleStr(FileName),
nil, STGM_READ or STGM_DIRECT
or STGM_SHARE_EXCLUSIVE,
nil, 0, RootStg);
OLECheck(Hr);
OleCheck(RootStg.OpenStorage(StringToOleStr('TypedText'), nil,
STGM_READ or STGM_SHARE_EXCLUSIVE, nil, 0, TextStg));
OleCheck(TextStg.OpenStorage(StringToOleStr('ModuleText_Number1'), nil,
STGM_READ or STGM_SHARE_EXCLUSIVE, nil, 0, Stg1));
Hr := Stg1.OpenStream(StringToOleStr('MD Programm text'), nil, STGM_DIRECT
or STGM_READ or STGM_SHARE_EXCLUSIVE, 0, TextStream);
OLECheck(Hr);
RootStg.Commit(S_OK);
StringStream:=TStringStream.Create('');
try
OS := TOleStream.Create(TextStream);
try
try
OS.Position:=0;
ZDecompressStream(OS, StringStream);
finally
OS.Free;
end;
Result.Text:=StringStream.DataString;
except
end;
finally
StringStream.Free;
end;
end;
_student (2005-02-08 19:11:00) [3]В таком файле хранится например конфигурация 1С