Здравствуйте.
Хочу добавить сообщений с одним из собеседников. На своей же миранде, этой же версии, сделал с помощью History++ текстовый файл вида:
Полная история CleriC - Antonidze
###
### Полная история
### CleriC (ICQ: 200911462) - Antonidze (ICQ: 208558068)
### (generated by history++ plugin)
###
[10.01.2014 22:24:47] CleriC:
ты на работе еще? О_о
[11.01.2014 11:14:36] Antonidze:
привет!
не, я вчера аську забыл выключить, на гору вчера ездил
а сегодня на работе
Текстовый файл, который генерирует History++, сохраняется по умолчанию в кодировке UTF-16 LE (пробовал UTF-16 BE с BOM и без).
Если попробовать импортировать файл в контакт плагином Import TXT (с шаблоном History++ pattern), плагин пишет что не найден заголовок.
В historypp_p.ini по умолчанию, для шаблона History++ pattern прописан Charset=UCS2
Я пересохраняю файл в кодировке UTF-8. Теперь плагин пишет что "Импорт запущен", но "В этом файле нет сообщений".
Пробовал прописывать в historypp_p.ini Charset=UTF8 - тоже самое.
Подскажите, пожалуйста, как же мне успешно воспользоваться плагином и хоть что-то импортировать в нужный мне контакт?
ЗЫ Раньше, на Миранде ИМ 8.26, я делал это с помощью плагина mbot. Там был написан скрипт hpp_import.php который отлично все считывал.
VersionInfo
CPU: Intel(R) Core(TM) i7 CPU 950 @ 3.07GHz [Intel64 Family 6 Model 26 Stepping 5] [DEP Enabled] [8 CPUs]
Installed RAM: 6136 MBytes
Operating System: Microsoft Windows 7 Ultimate Edition, 64-bit Service Pack 1 (build 7601)
Internet Explorer: 9.11.9600.16428 (build 99600)
Administrator privileges: No
OS Languages: (UI | Locale (User/System)) : Russian/Russian | Russian/Russian
Free disk space on Miranda partition: 2557 MBytes
Miranda NG Version: 0.94.6 build #6797 [running inside WOW64]
Build time: 6 Nov 2013 1:33:28
Profile: H:\Prog\Miranda NG\Profiles\Mcl\Mcl.dat
Profile size: 31064064 Bytes
Profile creation date: 8 Jan 2014 11:49:18
Language pack: Russian (RU) [0419]
Service Mode: No
Active Plugins (11):
AdvaImg.dll v.0.11.0.1 [6 Nov 2013 1:28:06] - Miranda image services
AVS.dll v.0.11.1.1 [6 Nov 2013 1:27:08] - Avatar service
CrashDumper.dll v.0.0.4.22 [5 Nov 2013 21:30:22] - Crash dumper
Dbx_3x.dll v.0.11.0.1 [6 Nov 2013 1:27:08] - Miranda NG database driver
Dbx_mmap.dll v.0.11.0.1 [6 Nov 2013 1:27:12] - Miranda NG mmap database driver
HistoryPP.dll v.1.5.1.5 [14 Oct 2013 6:06:30] - History++
ICQ.dll v.0.11.0.1 [6 Nov 2013 1:27:46] - IcqOscarJ Protocol
ImportTXT.dll v.0.0.1.10 [5 Nov 2013 21:34:00] - Import TXT
KeepStatus.dll v.0.8.0.97 [5 Nov 2013 21:28:50] - Keep status
MobileState.dll v.0.0.1.2 [5 Nov 2013 21:31:04] - Mobile state
Spamotron.dll v.0.0.4.6 [5 Nov 2013 21:32:30] - Spam-o-tron
Unloadable Plugins (1):
DbChecker.dll v.0.0.0.0 [6 Nov 2013 1:30:32] - <unknown>
Protocols and Accounts:
-------------------------------------------------------------------------------
ICQ 1 - Enabled 0 - Disabled Loaded
MRA 0 - Enabled 1 - Disabled Not Loaded
SKYPE 0 - Enabled 1 - Disabled Not Loaded
Icon Packs:
-------------------------------------------------------------------------------
hicoloricq.dll [27 May 2001 0:13:46]
HistoryPP_icons.dll [3 May 2008 18:08:36]
HistoryPP_icons.dll1 [5 Nov 2013 21:30:54]
mirabilisicons.dll [7 Apr 2002 3:05:06]
Original ICQ Icons.dll [27 May 2001 5:13:46]
Proto_AIM.dll [6 Nov 2013 1:29:28]
Proto_Facebook.dll [6 Nov 2013 1:29:26]
Proto_GG.dll [6 Nov 2013 1:29:28]
Proto_ICQ.dll [6 Nov 2013 1:29:30]
Proto_IRC.dll [6 Nov 2013 1:29:30]
Proto_Jabber.dll [6 Nov 2013 1:29:30]
Proto_MRA.dll [5 Nov 2013 21:29:28]
Proto_MSN.dll [6 Nov 2013 1:29:30]
Proto_Skype.dll [30 Dec 2013 16:05:14]
Proto_Yahoo.dll [6 Nov 2013 1:29:30]
TabSRMM_icons.dll [6 Nov 2013 1:30:56]
Toolbar_icons.dll [6 Nov 2013 1:29:34]
xStatus_ICQ.dll [6 Nov 2013 1:28:00]
xStatus_Jabber.dll [6 Nov 2013 1:28:02]
xStatus_MRA.dll [5 Nov 2013 21:29:14]
Post Merge: 11 01 2014, 10:05:18
Разобрался я в чем дело.
По умолчанию, в historypp_p.ini указан следующий шаблон на сообщения:
Pattern=^\[(\d\d?)\.(\d\d?)\.(\d\d\d?\d?)\s(\d\d?):(\d\d?)\]\s([^\r\n]+?):$
А необходим следующий:
Pattern=^\[(\d\d?)\.(\d\d?)\.(\d\d\d?\d?)\s(\d\d?):(\d\d?):(\d\d?)\]\s([^\r\n]+?):
И в секции [Message] исправить
Direction=7
Seconds=6
Что бы плагин понял, что 6-ой блок регулярки содержит секунды, а 7-ой - направление (от кого) сообщения.
Да из скайпа то я выколупал историю, в таком виде:
Spoiler
[31.12.2012 22:39:32] CleriC: привет, Коля, с наступающим тебя!
[31.12.2012 22:39:58] Коля: привет, и тебя тоже с Наступающим
[05.06.2013 10:50:37] CleriC: Коля, привет
Проблема в том, что importtxt жалуется на отсутствие заголовка, хотя все там ок должно быть. Подозреваю что он хочет UID в виде чисел. Номера ICQ ведь из чисел состоят. А скайп буквенно-цифровой идентификатор (логин) имеет. Поэтому, наверное importtxt и не хочет с ним работать?
Задать бы вопрос создателю плагина...
Да. Вот такой сделал файл:
Spoiler
###
### Полная история
### CleriC (ICQ: 200911462) - В Коля (Skype: nick.vas)
### (generated by history++ plugin)
###
[31.12.2012 22:39:32] CleriC: привет, Коля, с наступающим тебя!
[31.12.2012 22:39:58] В Коля: привет, и тебя тоже с Наступающим
[05.06.2013 10:50:37] CleriC: Коля, привет
И вот такой шаблон:
Spoiler
[General]
Name=Skype
Type=1
Charset=UTF8
UseHeader=3
UsePreMsg=1
[Message]
Pattern=^\[(\d\d?)\.(\d\d?)\.(\d\d\d?\d?)\s(\d\d?):(\d\d?):(\d\d?)\]\s([^\r\n]+?):$
Direction=7
Day=1
Month=2
Year=3
Hours=4
Minutes=5
Seconds=6
[Header]
Pattern=^###\n###\s[^\n]+?\n###\s([^\n]+?)\s\([^\n]+?:\s([^\n]+?)\)\s-\s([^\n]+?)\s\([^\n]+?:\s([^\n]+?)\)\n###\s[^\n]+?\n###\n
In=3
Out=1
InNick=3
OutNick=1
InUID=4
OutUID=2
[PreMessage]
PreRN=0
AfterRN=0
Пишет что не найден заголовок. Но регулярка точно рабочая, тестировал здесь (http://regex101.com/).
HystoryPP сохраняет лог в таком виде:
Spoiler
###
### Полная история
### CleriC (ICQ: 200911462) - Bac (ICQ: 271193557)
### (generated by history++ plugin)
###
[19.09.2011 11:24:55] CleriC:
привет
[19.09.2011 11:44:03] Bac:
привет)
В кодировке UTF-16 LE без BOM. В той же кодировке я и пересохранил лог скайпа.
В настройках распознавания skype.ini (importtxt) поставил:
[General]
Charset=UCS2
Заголовок для лога скайпа я видоизменил следующим образом:
Spoiler
###
### Полная история
### CleriC (Skype: iC1eriC) - Васильев Коля (Skype: nick.vasiliev)
### (generated by history++ plugin)
###
Но все равно, почему-то, не может он прочитать заголовок.
Там еще есть возможность разобрать лог без заголовка, взяв контакт из названия файла. Но если посмотреть шаблон:
[FileName]
Pattern=^[^\r\n]+?\\(\d{5,})\.txt$
InUID=1
Видно, что он хочет 5 и более ЦИФР (что логично для ICQ). Но не подходит для скайпа.
За количество переводов строки до и после сообщения, в importtxt отвечает следующая секция:
Spoiler
[PreMessage] Обработка сообщения перед импортом в базу
PreRN= удалить переводы строк в начале сообщения (целое число или -1 тогда все)
AfterRN= удалить переводы строк в конце сообщения (целое число или -1 тогда все)
PreSP= удалить пробелы в начале каждой строки сообщения
AfterSP= удалить пробелы в конце каждой строки сообщения
возможные значения:
целое число
-1 все
-2 кол-во равно длине распознаного шаблона заголовка сообщения (актуально для Message Export)
любой параметр может отсутствовать или быть равен нулю, тогда не используется
SP использовать только в случае крайней необходимости, потому что замедляется работа
Т.к. у меня в логе скайпа переводов строки нигде нет - я поставил нули.
Но пока до сообщений дело даже не дошло, он даже заголовок не может разобрать. Причем, мне все-таки кажется, что не хочет дружить плагин importtxt с плагином skype. Возможно из-за того что скайповый (буквенный) UID его не устраивает.
UPD
Вот для примера, только что проверил - импорт работает.
Лог (сделанный HistoryPP) вида:
Spoiler
###
### Полная история
### CleriC (ICQ: 200911462) - Commander Duck (ICQ: 112074746)
### (generated by history++ plugin)
###
[21.01.2014 11:02:32] CleriC:
привет
футболки получил, все супер! большое спасибо
[21.01.2014 16:32:48] Commander Duck:
пожалуйста
Кодировка UTF-16 LE без BOM.
Шаблон importtxt вида
Spoiler
[General]
Name=History++ pattern (Cler)
Type=1
Charset=UCS2
UseHeader=3
UsePreMsg=1
[Message]
Pattern=^\[(\d\d?)\.(\d\d?)\.(\d\d\d?\d?)\s(\d\d?):(\d\d?):(\d\d?)\]\s([^\r\n]+?):$
Direction=7
Day=1
Month=2
Year=3
Hours=4
Minutes=5
Seconds=6
[Header]
Pattern=^###\r\n###\s[^\r\n]+?\r\n###\s([^\r\n]+?)\s\([^\r\n]+?:\s([^\r\n]+?)\)\s-\s([^\r\n]+?)\s\([^\r\n]+?:\s([^\r\n]+?)\)\r\n###\s[^\r\n]+?\r\n###\r\n
In=3
Out=1
InNick=3
OutNick=1
InUID=4
OutUID=2
[PreMessage]
PreRN=1
AfterRN=2
Результат:
Spoiler
(https://forum.miranda-ng.org/proxy.php?request=http%3A%2F%2Fi60.fastpic.ru%2Fbig%2F2014%2F0206%2F5e%2Ff76474321a8aa82958955341a835ea5e.png&hash=8297b26867634b545b455c15be819df87317a70d)
А со скапом не работает :(
Post Merge: 06 02 2014, 06:45:55
Все, разобрался :)
«Учится, учится и еще раз учится!» Прав был дедушка Ленин.
Вот, держите, может будет кому полезно, шаблон для распознавания лога скайпа:
Spoiler
[General]
Name=Skype new
Type=1
Charset=UCS2
UseHeader=3
UsePreMsg=1
[Message]
Pattern=\[(\d\d?)\.(\d\d?)\.(\d\d\d?\d?)\s(\d\d?):(\d\d?):(\d\d?)\]\s([^\r\n]+?):\s
Direction=7
Day=1
Month=2
Year=3
Hours=4
Minutes=5
Seconds=6
[Header]
Pattern=^###\r\n###\s[^\r\n]+?\r\n###\s([^\r\n]+?)\s\([^\r\n]+?:\s([^\r\n]+?)\)\s-\s([^\r\n]+?)\s\([^\r\n]+?:\s([^\r\n]+?)\)\r\n###\s[^\r\n]+?\r\n###\r\n
In=3
Out=1
InNick=3
OutNick=1
InUID=4
OutUID=2
[PreMessage]
PreRN=0
AfterRN=0
Лог вида:
Spoiler
###
### Полная история
### CleriC (Skype: iC1eriC) - Васильев Коля (Skype: nick.vas)
### (generated by history++ plugin)
###
[31.12.2012 22:39:32] CleriC: привет, Коля, с наступающим тебя!
[31.12.2012 22:39:58] Васильев Коля: привет, и тебя тоже с Наступающим
[05.06.2013 10:50:37] CleriC: Коля, привет
Для снятия со скайпа всего лога переписки, надо открыть контакт, нажать "С самого начала", выделить весь текст (ctrl+a) и скопировать его в текстовый файл UTF-16 LE без BOM. В файл добавить шапку как в примере.
Друзья, помогите пожалуйста.
У меня довольно не тривиальная ситуация, мне надо было соединить истории 7 миранд, и старых и новых. И вот, в самом конце решил добить это дело импортированием importtxt из папки MsgExport - сохранялась папка\файлы мирандой NG
Только я не могу понять, что у меня за шаблон такой сохранялся и где его можно взять. Перегуглился, больше не могу )
Spoiler
------------------------------------------------
History for
User : >>
Protocol : ICQ
UIN : 88**44428
FirstName :
LastName :
Age : 0
Gender :
e-mail :
Nick :
City :
State :
Phone :
Homepage :
- About -
------------------------------------------------
>> 18.02.14 12:14:27 день добрый
>> 18.02.14 12:15:54 есть ли у вас такой web8
собираюсь покупать
<< 18.02.14 13:48:02 Здравствуйте
<< 18.02.14 13:48:09 Есть такой
....
...
...
и т.д.
Вроде бы всё должно быть просто из миранды в миранду. Но что то не так и я не могу понять что.. Все шаблоны перепробовал.. Не импортирует
Файлы у меня в utf8 сохранены.
....
Поставил на свежую версию плагин MsgExport . Оказывается это почти стандартный шаблон у меня, только галочка >> << делать выставлена.
Есть ли простой способ перенести в общую базу сообщения из этих тхт. Их просто много, около 8к.
Подскажите пожалуйста, как быть
Спасибо большое за помощь!
Но не получается :(
Пишет:
No messages in this file
Added: 0 messages
Шаблон сделал из historypp_p.ini, заменив одну строчку
1magent.ini
[General]
Name=MailRu Agent pattern
Type=1
Charset=UCS2
UseHeader=3
UsePreMsg=1
[Message]
Pattern=^([^\r\n]+?)\s\((\d\d?)\.(\d\d?)\.(\d\d\d?\d?)\s(\d\d?):(\d\d?)\)$
Direction=7
Day=1
Month=2
Year=3
Hours=4
Minutes=5
Seconds=6
[Header]
Pattern=^###\r\n###\s[^\r\n]+?\r\n###\s([^\r\n]+?)\s\([^\r\n]+?:\s([^\r\n]+?)\)\s-\s([^\r\n]+?)\s\([^\r\n]+?:\s([^\r\n]+?)\)\r\n###\s[^\r\n]+?\r\n###\r\n
In=3
Out=1
InNick=3
OutNick=1
InUID=4
OutUID=2
[PreMessage]
PreRN=1
AfterRN=2
файл импорта
###
### Полная история
### solaris (ICQ_1: 8538146) - dragonfly (ICQ_1: 455749014)
### (generated by history++ plugin)
###
dragonfly (18.07.2012 17:28):
Саш, вроде получилась...вымучила я его))
solaris (18.07.2012 17:28):
Ты - МОЗГ ! :-D
Молодец, на самом деле
dragonfly (18.07.2012 17:28):
я уже эти пути по разному меняла))
dragonfly (14.01.2014 13:53):
Саш, привет! Ты знаешь, когда сделал ворд и эксель всё было ок, но со след.дня снова начало выскакивать
Но не получается :(
Обратите внимание на группы (Group). См. скрин (в правой части).
Spoiler
(https://hsto.org/files/c6f/361/334/c6f3613345ca433eb4b1abd6f0a1ece7.png)
Исправьте в вашем шаблоне
[Message]
Direction=7
Day=1
Month=2
Year=3
Hours=4
Minutes=5
Seconds=6
В соответствии с группами в регулярке. Секунд у вас в логе нет.
Ещё, возможно, надо проверить кодировку файла. UCS2 , UTF-8 или ANSI.
Выложите, пожалуйста, готовый файл для импорта. Добавим в шаблоны
Файл опубликовать не проблема.
Но где-то нужно к нему написать инструкцию. Так как это не прямой импорт из БД MailRu Агента, а
1) средствами MailRu Агента делается экспорт в html
2) html открывается в браузере
3) выделяется вся страница, копируется в буфер обмена,
4) создаётся текстовом файле с правильной кодировкой, в него копируется буфер и вручную пишется шапка
Вместо 1-3 можно скопировать сразу в буфер из истории MailRu Агента, но тогда нужен чуть другой шаблон, так как в этом случае после имени и времени нет знака ":".
Короче, для варианта с ":"
MailRu_Agent.ini
[General]
Name=MailRu Agent pattern
Type=1
Charset=UCS2
UseHeader=3
UsePreMsg=1
[Message]
Pattern=^([^\r\n]+?)\s\((\d\d?)\.(\d\d?)\.(\d\d\d?\d?)\s(\d\d?):(\d\d?)\):$
Direction=1
Day=2
Month=3
Year=4
Hours=5
Minutes=6
[Header]
Pattern=^###\r\n###\s[^\r\n]+?\r\n###\s([^\r\n]+?)\s\([^\r\n]+?:\s([^\r\n]+?)\)\s-\s([^\r\n]+?)\s\([^\r\n]+?:\s([^\r\n]+?)\)\r\n###\s[^\r\n]+?\r\n###\r\n
In=3
Out=1
InNick=3
OutNick=1
InUID=4
OutUID=2
[PreMessage]
PreRN=1
AfterRN=2
Нашел руководство по importtxt, вероятно его стоит опубликовать в wiki
pattern_cfg_ru.txt
Структура файла шаблона плагина importtxt начиная с версии 0.0.1.2
Расширение файла .ini
[General]* Общие параметры
Name=* Имя шаблона, выводится в списке
Type=* Тип импорта возможные значения
1 - импорт из текстовых файлов
2 - импорт из бинарных файлов
*******параметры для импорта текста*********
Charset=* кодировка ANSI, UTF8, UCS2
Codepage= кодовая страница для ANSI
UseHeader= 0..3 - использовать заголовок
первый бит использовать заголовок для распознавания направления
второй бит использовать заголовок для распознования контакта назначения
UsePreMsg= 0 - не использовать предварительную обработку сообщений,
даже если не используется, то всё равно будут удаляться все переводы строки в конце и в начале
1 - использовать предварительную обработку
*******параметры для бинарного импорта*********
BinProcedure= Используется для установки процедуры бинарного импорта (обязательна при Type=2)
Возможные значения:
1 - mContacts
2 - QHF
3 - ICQ6
4 - ICQ5
*******общие параметры*********
UseFileName= использовать имя файла для определения UID
DefaultExtension= Расширение файлов по умолчанию (если нет то txt)
*******параметры для импорта текста*********
[Message]* Сообщение
Pattern=* рег. выражение для разбора заголовка сообщения
In= варианты направления, если нет или пустые то используется из заголовка
Out= если UseHeader=0 и In пустой, то ошибка
Direction=* номер подвыражения определяющее направление сообщения (либо жестко заданное либо ник или уин)
Day=* номер подваражения дня
Month=* номер подваражения месяца
Year=* номер подваражения года
Hours=* номер подваражения часов
Minutes=* номер подваражения минут
Seconds= номер подваражения секунд (может быть 0, тогда при импорте принимается за 00)
[Header] Заголовок файла
Pattern=* рег. выражение заголовка
In=* подвыражение определяющее то что сообщение входящее (Ник, Уин)
Out= подвыражение определяющее то что сообщение исходящее (Ник, Уин)
может быть 0 или отсутствовать, если при импорте Direction<>In тогда оно исходящее, такая случайная фишка, но очень помогающая
InNick=* Ник собеседника
OutNick= Ваш Ник //не используется
InUID=* UID собеседника
OutUID= ваш UID //не используется
[PreMessage] Обработка сообщения перед импортом в базу
PreRN= удалить переводы строк в начале сообщения (целое число или -1 тогда все)
AfterRN= удалить переводы строк в конце сообщения (целое число или -1 тогда все)
PreSP= удалить пробелы в начале каждой строки сообщения
AfterSP= удалить пробелы в конце каждой строки сообщения
возможные значения:
целое число
-1 все
-2 кол-во равно длине распознаного шаблона заголовка сообщения (актуально для Message Export)
любой параметр может отсутствовать или быть равен нулю, тогда не используется
SP использовать только в случае крайней необходимости, потому что замедляется работа
*******общие параметры*********
[FileName] Имя файла
Pattern=* шаблон для распознования
InNick=* Ник собеседника
OutNick= Ваш Ник //не используется
InUID=* UID собеседника
OutUID= Ваш UID //не используется
* обязательная секция, если указаны UseHeader=1, а секции [Header] нет, то ошибка, аналогично с [PreMessage] и [FileName]
* обязательный параметр в секции, если параметр не обязателен то по умолчанию используется либо 0 для PS, либо -1 для RN , либо пустая строка
* если в UseHeader включен второй бит, то обязателен либо InUID, либо InNick, приоритетом распознавания является UID
* в Имени файла аналогично
UID означает Уникальный ИДентификатор :) это может быть UIN, JID и т.д.
examples_ru.txt
Пример файла:
************
История сообщений с Неизвестный (000000000)
Сохранено из Jimm 07.06.2008 11:49:17
------------------------------------>>>-
Abyss (06.09.2007 17:52:51):
Привет!
------------------------------------<<<-
Неизвестный (06.09.2007 18:03:09):
Хай
************
Шаблон такой:
[General]
Name=Jimm import pattern
Charset=ANSI
UseHeader=2
UsePreMsg=1
[Message]
Pattern=^------------------------------------(<<<|>>>)-\r\n\s([^\r\n]+?)\s\((\d\d?)\.(\d\d?)\.(\d\d\d?\d?)\s(\d\d?):(\d\d?):(\d\d?)\):$
In=<<<
Out=>>>
Direction=1
Day=3
Month=4
Year=5
Hours=6
Minutes=7
Seconds=8
[PreMessage]
PreRN=1
AfterRN=2
[Header]
Pattern=^\r\n\tИстория сообщений с ([^\r\n]+?)\s\((\d{5,})\)\r\n\tСохранено из Jimm\s[^\r\n]+?\r\n
InNick=1
InUID=2
Коментарии: основные моменты содержаться в pattern_cfg,
Такие значения RN потому что:
считаем...
Привет!{\r\n} Раз
{\r\n} два после
------------------------------------<<<-
Неизвестный (06.09.2007 18:03:09):{\r\n} Один до
Хай
UseHeader=2 используем заголовок только для определения контакта назначения
====================================================================================================================================
Для History++
=============
Пример файла
************
###
### Полная история
### Abyss (ICQ: 0000000) - Неизвестный (ICQ: 00000000)
### (создана модулем history++)
###
[06.09.2007 17:52:51] Abyss:
Привет!
[06.09.2007 18:03:09] Неизвестный:
Хай
************
Файл шаблона выглядит так:
**************************
[General]
Name=History++ pattern
Charset=UCS2
UseHeader=3
UsePreMsg=1
[Message]
Pattern=^\[(\d\d?)\.(\d\d?)\.(\d\d\d?\d?)\s(\d\d?):(\d\d?):(\d\d?)\]\s([^\r\n]+?):$
Direction=7
Day=1
Month=2
Year=3
Hours=4
Minutes=5
Seconds=6
[Header]
Pattern=^###\r\n###\s[^\r\n]+?\r\n###\s([^\r\n]+?)\s\([^\r\n]+?:\s([^\r\n]+?)\)\s-\s([^\r\n]+?)\s\([^\r\n]+?:\s([^\r\n]+?)\)\r\n###\s[^\r\n]+?\r\n###\r\n
In=3
Out=1
InNick=3
OutNick=1
InUID=4
OutUID=2
[PreMessage]
PreRN=1
AfterRN=2
**************************
Все аналогично только добавляется обработка заголовка, получаем ник для того чтобы потом его использовать в качестве маркера направления
========================================================================================================================================
Для Message Export
==================
Файл:
*****
------------------------------------------------
History for
User : Неизвестный
Protocol : ICQ
UIN : 00000000
FirstName : Mister
LastName : X
Age : 0
Gender : M
e-mail :
Nick : Неизвестный
City :
State : 66
Phone :
Homepage :
- About -
------------------------------------------------
Abyss 06.09.2007 17:52:51 Привет
Как дела?
Неизвестный 06.09.2007 18:03:09 Хай, нормально
*******************
[General]
Name=Message export import pattern
Charset=UTF8
UseHeader=3
UsePreMsg=1
[Message]
Pattern=^([^\r\n]+?)[\s]+?(\d\d?)\.(\d\d?)\.(\d\d\d?\d?)\s(\d\d?):(\d\d?):(\d\d?)\s
Direction=1
Day=2
Month=3
Year=4
Hours=5
Minutes=6
Seconds=7
[Header]
Pattern=^------------------------------------------------\r\n[\s]+?History for\r\nUser[\s]+?:\s([^\r\n]+?)\r\n(.*\r\n)+?Nick[\s]+?:\s([^\r\n]+?)\s\r\n(.*\r\n)+?^------------------------------------------------$
In=1
InNick=3
[PreMessage]
PreRN=0
AfterRN=1
PreSP=-2
*********************
Добавлено удаление пробелов в многострочных сообщениях PreSP=-2
С этим форматом сообщений бардак: 1) если протокол НЕ ICQ то UID мы не увидим, тоесть ни JID ни что-то там еще не сохраняются
приходится использовать Ник, что не есть гуд
2) Ник! Зачем писать в файлы пробел после ника????
Все строчки (Potocol, User, email) нормальные, а после ника пробел.