NewsArcWizard
Назначение
News Arc Wizard - еще одна "фирменная" особенность Fidolook SL.
[AN]:"Мастер поможет вам решить проблему спасения ваших
сообщений от слишком интеллектуального Outlook Express, который почему-то решил,
что он лучше чем вы знает, какие сообщения нужны, а какие нет. Ответьте на
вопросы Мастера, и смотрите, что из этого получится. Удачи! Перед тем, как вы
продолжите, закройте другие программы, использующие ваши базы
данных."
News Arc Wizard предназначен для сохранения резервной копии базы сообщений
путем операций экспорта/импорта базы сообщений во внешний файл(файлы) или базу
данных, а также копирования сообщений из группы новостей в локальную
папку. Экспорт и импорт осуществляется дополнительными модулями, расположенными
в папке {Fidolook folder}/Converts. При необходимости вы можете написать
собственный конвертер в нужный вам формат.
Доступ к функциям производится через кнопку в панели Filolook:
Настройка NewsArcWz
В настоящее время функциональность NewsArcWizard реализована в виде набора
конвертеров - модулей, представляющих собой обычные Windows DLL (что позволяет
другим программистам реализовывать собственные процедуры экспорта и импорта,
благодаря предоставляемому NewsArcWz открытому и публичному интерфейсу доступа
к базам ОЕ прямо при работающем ОЕ и при этом синхронно).
В стандартную поставку NewsArcWz входят:
- внутренний конвертер - для перемещения сообщений внутри текущей (открытой
данной identity) базы DBX
- конвертер для экспорта базы сообщений DBX в набор *.nsw (или *.eml - в
зависимости от типа выбранных сообщений) файлов. (Модуль nws_eml_files.dll).
- конвертер для экспорта во внешнюю базу данных через ISAM совместимый драйвер, позволяющий преобразовывать
сообщения из DBX в практически любой формат базы данных (Access, Excel, FoxPro,
Lotus,Paradox,dBase и прочее, в том числе HTML и текстовые).
Если конечно у вас есть эти программы или как минимум установлен Microsoft Access.
Внедрение ОлеОбьектов пока только в Access. (Модуль daoddx.dll).
- конвертер экспорта/импорта базы сообщений в Outlook Express
из формата Unix Mailbox. (Модуль mbox_inout.dll).
Рассмотрим настройку NewsArcWz в случае использования внутреннего конвертора
для сохранения архивной копии базы сообщений:
- Чтобы начать работу с Мастером, нажмите кнопку NewArc на
панели инструментов Fidolook. Появится окно Welcome, а в нем - приведенное выше
сообщение. Нажмите кнопку Next.
- Окно Task. Создайте новое задание или измените название одного из
существующих. Можно создать несколько различных заданий для разных целей. В
этом диалоге три кнопки: Add (добавить новое задание),
Edit (Изменить название выделенного задания),
Delete (Удалить выделенное задание).
- Окно Choose direction - что мы хотим сделать с сообщениями? По умолчанию
нажата кнопка Copy messages (or create backup) (Копировать
сообщения или создать архивную копию). Эта опция позволяет выбрать и
использовать встроенный конвертер для перемещений сообщений внутри OE
(собственно backup). Тут же можно выбрать внешний фильтр для работы,
об этом будет рассказано ниже.
- Окно Export from. Тут следует указать папки, из которых будут взяты
сообщения для архивации. При установленном флажке Newsgroups
only в окне настройки отображаются только папки новостей, при
сброшенном - еще и локальные папки. Выберите нужные папки. Используйте Ctrl или
Shift для выделения нескольких папок одним нажатием на кнопку мыши, для
выделения всех папок используйте комбинацию Ctrl+A или кнопку Select
All. Для снятия выделения со всех папок предназначена кнопка
Clear All. Папки в которых есть сообщения с установленным
атрибутом Watched ("просматриваемые") будут подсвечены.
Совет: отобрать нужные сообщения и сделать
их "просматриваемыми" (или "надеть на них очки" (меню Сообщение - Посмотреть
обсуждение) следует заранее.
- Окно Export to - куда записывать сообщения. В левом окошке выберем одну из
существующих папок Оutlook Еxpress. В нее будет помещена вновь созданная папка,
название которой задается в Output folder name (по умолчанию -
_BackUp). В этой папке будет размещены все сохраняемые сообщения.
- Окно Export-import rules - правила выбора сообщений для
экспорта/импорта.
При установленном флажке Watched only
(recommended) будут архивироваться только "просматриваемые" сообщения (с
установленным атрибутом Watched). В противном случае, если флажок сброшен,
будут выбраны все сообщения в папке. В этом же окне имеются две
дополнительные опции: Mark message as unread (Пометить
сообщения как непрочитанные) и Allow duplicates (Разрешить
дублирование). Обе опции по умолчанию выключены.При установленном флажке
To reproduce a hierarchy of folder в папке назначения
сохранится структура папок сохраняемых групп. В этом случае сообщения из разных
групп новостей будут размещаться в разных подпапках. Если флажок снять - все
попадет "в одну кучу". Переключатели Show Outlook Express
folder (показывать папки Outlook Express) и Show Local Folders
Only (Показывать только локальные папки) задают разные варианты
отображения папок в окне слева.
- Окно Ready to run - выбор вариантов запуска задания. Предоставляет три
варианта действий:
- Do not run - save only - задание просто сохраняется и
может быть выполнено выбором его из меню NewArc (туда все задания и
помещаются).
- Run now - после нажатия Finish задание будет немедленно
выполнено (и сохранено - для вызова потом с через тоже меню).
- Always run on exit - в нестоящее время временно не
доступно, потенциально - автоматический запуск по закрытию ОЕ.
В NewArcWz на вкладке Export-Import criteria по умолчанию стоит флаг Watched
Only. Это означает что экспортируются только сообщения помеченные как Watched
(с очками). В результате если в фолдере нет отмеченных сообщений - то на выход
не пройдет ни одно сообщение. Это касается всех конвертеров.
Процедура создания задания, выбора вида операции, выбора групп
или папок сообщений для экспорта при использовании внешних конверторов
полностью аналогичны описаной ранее процедуре для случая внутреннего
конвертора, поэтому ниже будем рассматривать процесс использования
NewArcWizard с шага выбора конвертора для экспорта/импорта:
- Экспорт сообщений в nws и eml -файлы (DBX to Nws or Eml files)
Выберите на шаге 3 пункт Export и далее следуйте указаниям мастера. Когда
появится окно с фильтрами экспорта, выберите "DBX to Nws or Eml files".
Далее появится окно с настройками фильтра, в котором вам необходимо ввести (или
проверить) несколько параметров.
Для этого вида экспорта требуется указать путь по которому будет происходить
сохранение. Там будет создана директория в которую будет производиться экспорт
сообщений и непосредственно имя папки FL из которой сообщения будут браться.
Также можно указать, удалять ли содержимое папки перед записью туда файлов,
переписывать ли файлы с одинаковым именем и устанавливать ли дату файлов с письмами
соответсвенно дате получения писем.
Далее процедура выбора сообщений для экспорта (окно
Export-import rules) и окно выбора режима запуска задания (окно
Ready to run) полностью аналогичны уже описанным ранее.
В результате в указанной папке будет создан набор *.nws ил *.eml файлов каждый из
которых представляет собой отдельное сообщение из числа находящихся в выбранной
папке и подходящее под условие для выбора.
- Импорт из Unix mailbox (Unix mailbox to DBX)
Формат почтового
ящика "Unix Mailbox" более или менее стандартен и применяется в Unix и
Unix-подобных системах, а также используется во всех версиях почтовой программ
под Windows и Macintosh "Eudora", "Netscape", а также в качестве формата
экспорта в программах под Windows "Agent/Free Agent" и "TheBat!".
Unix Mailbox
представляет собой тестовый файл с сообщениями. Каждое сообщение начинаеся со
строки, первые символы которой "From " (без кавычек и без двоеточия - в отличие
от поля "From: "). Дальше (обычно) должен идти адрес отправителя (или
обозначение "???@???" - как в Eudora), три буквы английского сокращения для дня
недели, три буквы английского сокращения для месяца, число, время (в 24-часовом
формате) и год (4 цифры). Обычно (но не обязательно) сообщения также
разделяются пустой строкой. Если маркерная строка (начинающаяся с "From ")
встречается в тексте или заголовке сообщения, то она "квотируется" знаком
"больше" (превращается в ">From"). При интерпретации/импорте сообщения эти
квоты должны удаляться. Разделителем строк является "перевод строки" (LF),
которому может предшествовать, а может и не предшествовать знак "возврата
каретки" (CR).
Выберите на шаге 3 пункт Export и далее следуйте указаниям мастера. Когда
появится окно с фильтрами экспорта, выберите "Unix mailbox to DBX".
Далее появится окно с настройками фильтра, в котором вам необходимо указать,
из каких файлов нужно произвести импорт.
После указания источников мастер попросит указать папку FL, куда нужно записать
сообщения, после чего собственно и будет произведен импорт.
-
Экспорт в базу данных (DBX to ISAM)
Выберите на шаге 3 пункт Export и далее следуйте указаниям мастера. Когда
появится окно с фильтрами экспорта, выберите "DBX to ISAM".
Далее появится окно с настройками фильтра, в котором вам необходимо ввести (или
проверить) несколько параметров:
- Путь вывода;
- Драйвер ISAM;
- Поля базы данных, их длинну и тип;
- Удаление существующих записей в базе;
Есть также расширенные возможности, вызываемые кнопкой 'Advanced'
и позволяющие настроить интерфейс экспорта вручную.
Замечания по реaлизации:
Хранение в формате OleObject реализовано только для Access баз. Просто мне
неизвестен формат в каком можно хранить объекты в других базах. Для Access же
сейчас можно сохранять как "Outlook Express (mail-news) message" или "Text
document *.txt". (Чекбокс Ole Text object - если включен - то как "Text
document"). Однако стандартный механизм внедрения работает жутко медленно и
пока не рекомендуется для большого количества сообщений. Видимо придется делать
собственную реализацию:).
Для полей в формате Text - существенно значение имеет размер поля (Max
Length). Сейчас запись в поле обрезается до указанного в Max Length размера (в
предыдущей версии генерировалась ошибка и запись не производилась). Вообще если
нужно гарантированно сохранить все строки как есть то лучше хранить строки в
формате Memo (если формат базы поддерживает его конечно :).
Проверка на дубликаты пока не производится - вопрос в разработке. Под
комбобоксом Select ISAM driver имеется весьма важный лейбл куда выводится
информация о возможностях выбранного формата - просьба читать его
внимательно.
Само сообщение сохраняется "как есть" - без декодирования и разделения на
составные части. Если нужно - можно сделать любой вариант. Это оставлено на
потом
Для того чтоб подключиться к внешней базе данных, конвертору нужно
сформировать т.н. Connection String. Вот как она должна выглядеть для разных
драйверов: (первая строка не используется - просто название формата, вторая -
рабочая, передаваемая интерфейсам DAO).
******Microsoft Jet Database drive:\path\filename.mdb
******dBASE III dBASE III; drive:\path
******dBASE IV dBASE IV; drive:\path
******dBASE 5 dBASE 5.0; drive:\path
******Paradox 3.x Paradox 3.x; drive:\path
******Paradox 4.x Paradox 4.x; drive:\path
******Paradox 5.x Paradox 5.x; drive:\path
******Microsoft Excel 3.0 Excel 3.0; drive:\path\filename.xls
******Microsoft Excel 4.0 Excel 4.0; drive:\path\filename.xls
******Microsoft Excel 5.0 or Microsoft Excel 95 Excel 5.0;drive:\path\filename.xls
******Microsoft Excel 97 Excel 8.0; drive:\path\filename.xls
******Lotus 1-2-3 WKS and WK1 Lotus WK1; drive:\path\filename.wk1
******Lotus 1-2-3 WK3 Lotus WK3; drive:\path\filename.wk3
******Lotus 1-2-3 WK4 Lotus WK4; drive:\path\filename.wk4
******HTML Import HTML Import; drive:\path\filename
******HTML Export HTML Export; drive:\path
******Text Text; drive:\path
******ODBC ODBC; DATABASE=database; UID=user; PWD=password; DSN=datasourcename; [LOGINTIMEOUT=seconds;] None
******Microsoft Exchange Exchange 4.0; MAPILEVEL=folderpath; [TABLETYPE={ 0 | 1 }];[PROFILE=profile;] [PWD=password;] [DATABASE=database;]
******FoxPro 2.XX-3.XX FoxPro X.X; drive:\path
******FoxPro DBC FoxPro DBC; drive:\path\filename.dbc
Остальные форматы по аналогии.
Общее для всех типов баз:
- Данная строка формируется из 2х верхних полей ввода + поля выбора с
драйверами (именами форматов). В верхнем всегда путь, в нижнем - или имя
директории или имя файла. (должен ли он/она существовать - об этом ниже).
Используя кнопку Advanced можно назначить эту строку напрямую, тогда
содержимое полей ввода и поля выбора с именем драйвера учитываться не
будет.
- В информационном окне под полем выбора драйвера DaoDdx показывает, что
ожидает увидеть - директорию или файл: One table per file - yes(no).
- Если ожидается файл, то как правило расширение можно не указывать. Оно
будет добавлено автоматически (Access, Excel, Lotus и тд). В худшем случае
(HTML export, Text и т.п.) будут созданы файлы без расширения. Пока их
придется переименовать вручную (возможно в следующих версиях конвертера это
поведение будет изменено).
- DaoDdx оптимистично предполагает что все ISAM драйвера соответствуют самой
свежей версию Jet (& DAO) установленную на машине. На сейчас это обычно Jet
4/0 (DAO 3/6). Это не так для некоторых драйверов (например, на некоторых системах драйвера для FoxBase как оказалось поддерживают только Jet3/5 (DAO3/5). На это случай
воспользовавшись кнопкой Advanced можно понизить версию DAO
(жестко назначив ее и тем самым принудительно отключив автоопределение версии DAO).
- DaoDdx показывает может ли конвертор самолично создать базу или она должна
существовать: Can create DB on export - yes(no). В основном это для драйверов
понимающих под базой - директорию, но так же например для FoxPro DBC.
- DaoDdx показывает - может ли драйвер добавлять записи в существующую
таблицу или же он может работать только с новой, чистой, им самим же созданной
таблицей (не базой!): This process will overwrite data if exported to an
existing file. В этом случае нужно опять же убедиться - а есть ли
таблица.
Последняя версия
Модули NewArcW2.dll, nws_eml_files.dll, mbox_inout.dll входят в основной пакет Fidolook.
Обновления
-
Интерфейс
Предоставляется по запросу.
Разработчики
Автор: Andrey No <andrey_no@mail.primorye.ru>
|