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

Вниз

Открыть документ MS Office   Найти похожие ветки 

 
JJ ©   (2006-03-02 18:56) [0]

Здравствуйте! Есть файлы с произвольным расширением. Файлы формата Word или Excel. Как открыть эти файлы соответствующей программой?


 
Virgo_Style ©   (2006-03-02 19:24) [1]

ShellExecute


 
JJ ©   (2006-03-02 19:58) [2]

Проблема в том, например, имя word`овского или excel`евского файла есть oooddmml.NNN, где NNN - любое численное значение, а ShellExecute запускает ассоциированную по расширению программу. Как сделать что-то типа ссылки "Открыть документ Office" в меню пуск-программы, только с передачей имени файла?


 
Virgo_Style ©   (2006-03-02 20:31) [3]

JJ ©   (02.03.06 19:58) [2]
ассоциированную по расширению программу


или указанную с указанным же параметром


 
JJ ©   (2006-03-03 09:56) [4]

Да, а как определить word`овский это файл или excel`евский?


 
JJ ©   (2006-03-03 10:43) [5]

Суть такая. В каталог сетевого диска приходять разные отчеты, которые могут быть вордом, экселем или архивным файлом. Имена файлов произвольные, т.е. по расширению не определишь формат файла. Необходимо написать плагин к фару, который открывал бы эти файлы или запускал соответствующее приложение. Архивные файлы фаром распознаються и с ними проблем нет. Офисные файлы (как ворд так и эксель) имеют общую сигнатуру - первые 4 байта. Различия, по которым можно определить формат файла, наблюдаються в конце. Т.е. для просмотра этого файла фар открывает его, читает первые 128 байт и передает их по списку файловых плагинов. Мой плагин определяет по сигнатуре офисный это файл или нет, и потом открывает его, переходит в конец файла для уточнения формата. Затем запускает соответствуещее приложение, которое перетягивает файл по сети и открывает его. При этом диск сетевой и к нему могут обращаться много пользователей.

Можно ли определив по сигнатуре файл передать его для открытия офисному пакету не зная ворд это или эксель?


 
Сергей М. ©   (2006-03-03 11:21) [6]

Можно.
Но не по сигнатуре, а открыв файл документа как structured storage.
Класс корневого стореджа укажет принадлежность документа.


 
JJ ©   (2006-03-03 13:32) [7]

А можно подробнее?


 
Сергей М. ©   (2006-03-03 13:38) [8]

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/stg/stg/extracting_the_code_samples.asp


 
Экспериментатор   (2006-03-03 21:23) [9]


> Можно ли определив по сигнатуре файл передать его для открытия
> офисному пакету не зная ворд это или эксель?

А сильно ли так важно различать Word это или Excel/
Или может добавить все таки опознавательный символ в имя файла
(для различения формата)
А потом использовать ShellExecute
Как вариант можно написать расширение Explorer"a
использовав IContextMenu
Добавить два пункта в меню
"Открыть как документ Microsoft Word"
"Открыть как документ Microsoft Excel"
Могу в принципе помочь в таком варианте



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

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

Наверх





Память: 0.47 MB
Время: 0.015 c
15-1142449191
TStas
2006-03-15 21:59
2006.04.09
Как устроен клавиатурный шпион?


2-1142815153
BOB_KAMIKAZE
2006-03-20 03:39
2006.04.09
ПАНЕЛЬ ЗАДАЧ


3-1139476234
_Вован
2006-02-09 12:10
2006.04.09
Как программно удалить master-пароль Paradox-таблицы ?


3-1140170790
LostDelpher
2006-02-17 13:06
2006.04.09
Можно ли прочитать данные из Грида в чужом приложении


1-1141564987
Jiurafsdfsdf
2006-03-05 16:23
2006.04.09
Как запустить из delphi приложение Excel?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский