Re: Новости дискуссионного листа "Программирование. Форум !!!"
Здравствуйте !
> Да задача состоит из двух для меня пока незвестных
> 1. как зачитать файл типа RTF
Ну, с этим все достаточно просто. Можно воспользоваться
возможностями стандартного контрола Windows - Rich Edit.
Это расширенный редактор. В него можно загрузить RTF,
а потом взять оттуда обычный текст и разобрать вручную.
Оконные классы (если на API писать) :
Для ричедита версии 1.0 - "RICHEDIT".
Для версий 2.0 и выше - "RichEdit20A" (для ANSI - версии),
"RichEdit20W" (Unicode версия).
Для того, чтобы просто переконвертировать RTF в текст
хватит ричедита версии 1.0.
В MFC есть класс CRichEditCtrl - обертка самого контрола,
CRichEditView - контрол в виде View (там добавлены обработчики
стандартных команд MFC, реализована вставка OLE - объектов,
реализована сериализация (загрузка/выгрузка) документов).
Для решения твоей задачи достаточно проинициализировать в программе
ричедит (загрузить соответствующую dll - ку) функцией AfxInitRichEdit,
создать скрытое окно и взять немного кода MFC, где производится
сериализация документа, грузить в ричедит сам RTF, а потом
взять обычный текст из ричедита либо при помощи GetWindowText,
либо при помощи сохранения из RichEdit в виде текста (у него есть
такая возможность).
Ну а потом - дело техники - разобрать по строкам.
> 2.как передать задание программе запущенной на удаленном компе в в
> иде списка
> имеется в виду нескольких строк
Ну тут к твоим услугам полный спектр возможностей передачи данных.
Конечно же, первым решением напрашивается использовать сокеты.
Но для использования сокетов должны быть установлены и настроены службы
TCP IP. Однако, надо думать, если юзается инет на обоих компах, то
TCP должно быть.
Можно использовать майлслоты (MailSlots).
Если не заморачиваться (и, imho это самый легкий путь) , то можно
организовать соединение через поименованные каналы (Named Pipes).
Преимущество данного подхода в том, что не придется возиться с сокетами,
а можно будет использовать простые функции работы с файлами.
То есть можно открыть поименованный канал при помощи функции
CreateNamedPipe. Она возвратит дескриптор, который можно будет использовать
для операции ReadFile. CreateNamedPipe должна вызываться на принимающей
стороне (на том компе, где работает закачка).
На компе, где парсится RTF можно вызвать функции ConnectNamedPipe+WriteFile
или TransactNamedPipe для передачи данных.
Ложкой дегтя здесь является то, что CreateNamedPipe есть только в
WinNT 3.1 и выше/Win2000 (то есть на компе с задачей закачки должна быть NT
или 2k), ConnectNamedPipe тоже есть в NT/2k только. В Win98/95
есть только TransactNamedPipe.
Вот. Если что непонятно - могу расписать подробнее.
Vic.
P.S. Народ, может я чего забыл про возможности передачи данных по сетке ?
-*Информационный канал Subscribe.Ru
Написать в лист: mailto:comp.soft.prog.prog-list@subscribe.ru
Отписаться: http://subscribe.ru/member/unsub?grp=comp.soft.prog.prog&email=
http://subscribe.ru/ mailto:ask@subscribe.ru