Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Delphi 7 & XML


Автор: BigTon 30.4.2008, 23:29
Добрый вечер уважаемые знатоки.
Дано:
1. Есть клиент-серверное приложение.
2. На стороне сервера есть набор файлов, содержащих тестовую и графическую информацию, созданных в MS Word 2003 и сохранённых в формате *.xml.
3. На сервере организована передача клиентской части *.xml файлов.
Вопрос:
Как «отобразить» принятый клиентом *.xml файл?

Давно не занимался программирование в среде Delphi, потому прошу вашей помощи. Существует ли какой компонент, с помощью которого моя задача решиться в «два клика»? Или надо писать свой parser?

Автор: aktuba 1.5.2008, 02:25
TWebBrowser, TMemo, TRichEdit? Да, даже сама форма (canvas) подойдет, чтобы отобразить xml...

Автор: Snowy 1.5.2008, 13:10
Отобразить в каком виде?
В виде Word документа? - Word
В виде xml? - TWebBrowser
В виде дерева? - Пример в книге Марко Канту.
Просто показать xml, как есть? - любой текстовый компонент...
А парсер писать не надо. Их и так полно.
Другое дело, что вид у вордового xml не радует глаз...

Автор: BigTon 2.5.2008, 14:34
У меня была задача передавать некоторый учебный материал (статьи, тесты) от серверной части к клиентской части. Не смейтесь, но на тот момент ничего лучше, чем создавать файлы в MS Visio, сохранять их в *.gif формате, а потом передавать *.gif файлы, я не нашёл (картинка на всех ПК картинка, то есть сохраняется шрифт, выравнивание, и т.д.).
Теперь созданием учебного материала будет заниматься человек, который не желает делать это в MS Visio, а хочет делать это в MS Word.
Почему я предложил сохранять файлы в *.xml? Потому что подумал, что этот формат точно удастся открыть на стороне клиентской части с помощью какого ни будь компонента и моя задача превратиться в чисто тривиальную.
Если есть компонент, позволяющий открывать *.doc файлы, это ещё лучше! Главное чтобы сохранялось всё форматирование документа!
А под словом «открывать», «отображать»  я подразумеваю просмотр документа созданного в MS Word с сохранённым форматированием на стороне клиента.

Автор: pseud 2.5.2008, 16:53
открыть xml, сохраненный в word, в том же виде сможет только word.
поэтому что xml вы передадите, что просто вордовский файл, на клиенте задача одна - получить вордовский файл и открыть его в ворд.
может я че не так понял?

Автор: BigTon 2.5.2008, 17:09
На клиентской стороне может не быть Word’a. Задача: передать *.doc файл клиентской части, и отобразить его в окне моего приложения.

Автор: aktuba 2.5.2008, 18:11
Цитата(BigTon @  2.5.2008,  18:09 Найти цитируемый пост)
Задача: передать *.doc файл клиентской части, и отобразить его в окне моего приложения.

Решение: написать свой Word... Бред.

Автор: BigTon 3.5.2008, 11:45
Причём тут «свой Word»? Неужели я настолько не ясно описал поставленную задачу? Попробую ещё раз…

Необходимо файл, созданный в MS Word, отобразить в окне клиентской части программы.

P.S. В MS Word файл также можно сохранять как *.rtf.

Автор: pseud 3.5.2008, 13:24
стандартными средствами без наличия на клиенте ворда - невозможно.
придется искать сторонние компоненты.

Добавлено через 5 минут и 45 секунд
ваш вопрос:
Цитата(BigTon @  3.5.2008,  11:45 Найти цитируемый пост)
Причём тут «свой Word»?


ваш же ответ
Цитата(BigTon @  2.5.2008,  17:09 Найти цитируемый пост)
Задача: передать *.doc файл клиентской части, и отобразить его в окне моего приложения.


Автор: pseud 3.5.2008, 13:44
Цитата(BigTon @  3.5.2008,  11:45 Найти цитируемый пост)
В MS Word файл также можно сохранять как *.rtf.


ну тогда это уже не вордовский файл и совсем другая история.
rtf сможет открыть не только ворд, например еще WordPad. я думаю он то везде установлен.
вообще его может открыть и TRichEdit но картинкок не будет (по крайней мере у меня в Delphi6Upd2).

как вариант могу предложить:
- кидаем на форму TOleContainer
- назначаем ему наш файл
активируем.

пусть открывает тот кто по умолчанию в винде за это отвечает. но отобразиться все ето именно в нашем окне проги.
сам с этим чудом не работал. подробных советов дать не могу.

Автор: BigTon 3.5.2008, 16:23
Клиент запускает моё приложение, подключается к серверу, получает документ и читает его. Не нужно запускать никаких сторонних программ.
Я просто не верю, что в 2008 году невозможно открыть файл созданный в MS Word средствами Delphi… в MS Word файл можно сохранять во множестве форматов!

Автор: Alexeis 3.5.2008, 16:38
Цитата(pseud @  3.5.2008,  12:44 Найти цитируемый пост)
вообще его может открыть и TRichEdit но картинкок не будет (по крайней мере у меня в Delphi6Upd2).

  Есть сторонние компоненты на базе RichEdit 2.0, которые могут все что и WordPad.

Автор: pseud 3.5.2008, 17:03
Цитата(BigTon @  3.5.2008,  16:23 Найти цитируемый пост)
Я просто не верю, что в 2008 году невозможно открыть файл созданный в MS Word средствами Delphi… в MS Word файл можно сохранять во множестве форматов!


думаю, вы не верите и в то, что средствами дельфи нельзя открыть файл-3dsmax, расставить источники света и прорендерить все тем же дельфи всю эту красоту. не смотря на то что на дворе 2008 год.

вы просто напросто не понятно к чему приплели Word. т.к. как я уже сказал rtf к ворду отношение имеет такое же как и xml.

с него (rtf)  и надо было начинать.

Цитата(Alexeis @  3.5.2008,  16:38 Найти цитируемый пост)
Есть сторонние компоненты на базе RichEdit 2.0, которые могут все что и WordPad.


вот и ответ на ваш вопрос.

Автор: aktuba 3.5.2008, 18:35
Цитата(BigTon @  3.5.2008,  17:23 Найти цитируемый пост)
Клиент запускает моё приложение, подключается к серверу, получает документ и читает его. Не нужно запускать никаких сторонних программ.
Я просто не верю, что в 2008 году невозможно открыть файл созданный в MS Word средствами Delphi… 

Почему нельзя, можно... Только Delphi - это не универсальный конструктор, а язык программирования. Так что, если сильно надо, то даже не важно, в чем сохранено - можно написать свой парсер и отображать как хочется...

Цитата(BigTon @  3.5.2008,  17:23 Найти цитируемый пост)
в MS Word файл можно сохранять во множестве форматов! 

И что? Я чуть запутался... Если говоришь MSWord, то родной для него формат - .doc... .rtf - это не формат ворда, также, как и xml, .txt, .dat и т.д...
Кстати, MS Word еще может и в txt и в html сохранять  smile Для первого используем TMemo, для второго TWebbrowser... Только вот какое отношение они имеют к MS Word?  smile 

Автор: BigTon 4.5.2008, 01:26
Стоило, наверно, написать так: «файл созданный средствами MS Word необходимо «открыть» в клиентской части моей программы». А там уже выяснять какие форматы, какими компонентами можно «открыть».
Свой выбор я остановил на TWebBrowser. Эта компонента почти полностью удовлетворяет моим требованиям: позволяет открывать *.mht файлы.

Спасибо всем за участие и помощь!

Вопрос: мне показалось или TWebBrowser использует «движок» IE или он использует «движок» браузера, установленного по умолчанию?

Автор: aktuba 4.5.2008, 03:08
Цитата(BigTon @  4.5.2008,  02:26 Найти цитируемый пост)
TWebBrowser использует «движок» IE


Автор: BigTon 4.5.2008, 12:15
Ещё раз спасибо. Вопрос решён.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)