Total Commander Forum Index Total Commander
Форум поддержки пользователей Total Commander
Сайты: Все о Total Commander | Totalcmd.net | Ghisler.com | RU.TCKB
 
 RulesRules   SearchSearch   FAQFAQ   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

[WFX] tcPhonebook
Goto page Previous  1, 2, 3 ... 27, 28, 29, 30, 31  Next
 
Post new topic   Reply to topic    Total Commander Forum Index -> Плагины Total Commander printer-friendly view
View previous topic :: View next topic  
Author Message
MVV



Joined: 15 Oct 2009
Posts: 4811
Location: Ростов-Дон

Post (Separately) Posted: Thu Apr 17, 2014 01:20    Post subject: Reply with quote

Maximus wrote:
Кажись, прояснилось Smile (Благодаря теме на оффоруме и MVV лично. Хотя мог бы и тут носом ткнуть)

Я ж не все темы читаю. Smile

Maximus wrote:
Это не мой диалог - это диалог ТС. Я только могу воспользоваться тем, что предоставляет его интерфейс. Сейчас ничего такого нет или я его в упор не вижу Smile

При чтении описания функций первое внимание - возвращаемым значениям. Smile
ProgressProc function help page wrote:
Total Commander returns 1 if the user wants to abort copying, and 0 if the operation can continue.


amzoom wrote:
а Cancel разве не должен не просто остановиться, но и удалить за собой то, что уже успел сделать? Это же именно Отмена, а не остановка.

Обычно Cancel удаляет только последний частично записанный файл, остальное оставляет. Но что тут считать последним файлом, затрудняюсь сказать.
amzoom wrote:
И ещё: прогрессбар при импорте многоконтактного файла теперь рисуется по делениям, как надо, но вот %-ов не выводится и общее кол-во контактов и сколько уже импортировано - не показывается: по-прежнему видно только "0/1".

Плагины файловых систем могут лишь устанавливать процент и имена файлов, тотал сам показывает вторую шкалу, общие число и размер выбранных файлов, которых в данном случае, похоже, 1. Передавать имена контактов вместо имен файлов при вызове функции прогресса по идее можно, но счётчик файлов всё равно будет показывать число выделенных элементов файловой системы.
_________________
TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое (обсуждение)
WINCMD.RU: AskParam, CopyTree, NTLinks, Sudo, VirtualPanel…
Back to top
View user's profile Send private message
Maximus



Joined: 07 Apr 2005
Posts: 927
Location: Украина, Кировоградская обл., г. Знаменка

Post (Separately) Posted: Thu Apr 17, 2014 10:56    Post subject: Reply with quote

MVV wrote:
При чтении описания функций первое внимание - возвращаемым значениям.

Как-то она ускользнула из внимания, поскольку была очень короткой :)

amzoom wrote:
а Cancel разве не должен не просто остановиться, но и удалить за собой то, что уже успел сделать? Это же именно Отмена, а не остановка.

MVV wrote:
Обычно Cancel удаляет только последний частично записанный файл, остальное оставляет. Но что тут считать последним файлом, затрудняюсь сказать.

Тут поведение аналогичное обычной файловой системе. Копируется, к примеру, папка с неким количеством файлов. При нажатии Отмены копирование просто прекращается. А "именно Отмена", о которой было написано выше, уже больше похожа на Откат.

amzoom wrote:
И ещё: прогрессбар при импорте многоконтактного файла теперь рисуется по делениям, как надо, но вот %-ов не выводится и общее кол-во контактов и сколько уже импортировано - не показывается: по-прежнему видно только "0/1".

MVV wrote:
Плагины файловых систем могут лишь устанавливать процент и имена файлов, тотал сам показывает вторую шкалу, общие число и размер выбранных файлов, которых в данном случае, похоже, 1.

Именно так и обстоят дела :)

MVV wrote:
Передавать имена контактов вместо имен файлов при вызове функции прогресса по идее можно, но счётчик файлов всё равно будет показывать число выделенных элементов файловой системы.

Имена импортируемых контактов я отображаю исправно, но ТС действительно считает только количество исходных файлов, а количество импортированных отображает только в виде прогресс-бара.
_________________
tcPhonebook|AppLoader|Українізація TC|Ultimate Calendar
Back to top
View user's profile Send private message
zlll



Joined: 01 Dec 2010
Posts: 5

Post (Separately) Posted: Sun Apr 20, 2014 15:35    Post subject: Reply with quote

Maximus
Приветствую, помоги пожалуйста с проблемой.
Есть у меня овер 500 контактов, при копировании их в плагин, у всех контактов телефоны оказались в поле "Другое" и при экспорте в сводке пусто. Т.е. при переносе контакта на сам телефон, номер телефона этого контакта не отображается. Чтобы всё было корректно приходится открывать контакт при помощи плагина, жать Редактировать контакт, переходить во вкладку Другое, копировать телефон, заходить во вкладку Сводка и вставлять номер туда. Можно ли как-нибудь автоматизировать сей процесс?
Back to top
View user's profile Send private message
Maximus



Joined: 07 Apr 2005
Posts: 927
Location: Украина, Кировоградская обл., г. Знаменка

Post (Separately) Posted: Mon Apr 21, 2014 14:42    Post subject: Reply with quote

zlll wrote:
Приветствую, помоги пожалуйста с проблемой.

Привет.
Причиной данного недоразумения является отсутствие ключевого слова "WORK" или "HOME" в параметрах атрибутов.
Автоматизировать эту проблему можно двумя способами:
1. Добавить (мне) опцию в настройки импорта плагина, а затем выполнить импорт заново. Но тут мне нужно будет немного поработать, а тебе - подождать. Но я что-то большого смысла в этой опции не вижу (особенно если учесть наличие нижеописанного универсального варианта).

2. Воспользоваться SQLiteStudio и регулярными выражениями:
а) Открыть базу данных tcPhonebook.db в SQLiteStudio
б) Открыть в ней таблицу PhoneBook
в) Перейти на вкладку "Данные"
г) Найти нужный столбец (Phone, PhoneMobile или любой другой вид контакта)
д) Выделить все ячейки этого столбца мышью (только не щёлкать по заголовку - это сортировка)
е) Копировать значения через контекстное меню
ё) Вставить значения в текстовый редактор, который поддерживает регулярные выражения (я для таких целей использую EmEditor)
ж) Выделить вставленный текст
з) Вызвать диалог поиска и замены (в EmEditor это Ctrl+H)
и) Найти (.*)\|(.*)\|(.*)
й) Заменить на \3\|\2\|\1 (если нужно поменять местами рабочий и другой) или на \1\|\3\|\2 (если нужно поменять местами личный и другой)
Примечание: Телефоны и другие контакты хранятся в формате рабочие|личные|другие
к) Копировать изменённый текст и вставить его обратно в SQLiteStudio постаравшись перед вставкой не сбросить выделение :)
л) Нажать в SQLiteStudio оранжевую галочку для подтверждения изменений
м) Всё

Если возникнут затруднения, бросай базу в личку - сделаю сам и пришлю обратно.
_________________
tcPhonebook|AppLoader|Українізація TC|Ultimate Calendar
Back to top
View user's profile Send private message
amzoom



Joined: 07 Oct 2009
Posts: 44

Post (Separately) Posted: Sat May 03, 2014 04:16    Post subject: Reply with quote

1. При переименовании импортированного контакта - создаётся дубликат существующего, но уже с новым именем.
2. Файл *.vcf, сохранённый в UTF-8 с BOM (Byte Order Mark) выдаёт ошибку при попытке импортирования.
3. Файл *.vcf, сохранённый в Win 1251 (ANSI - кириллица) при импорте страдает кракозябрами всего текстового содержимого.
4. При экспорте из вашего плагина контактов в единый *.vcf - версия VCARD прописывается 2.1 (хотелось бы 4.0 или хотя бы 3.0 или вообще иметь возможность выбора), но также присутствуют строки:
Code:
PRODID:-//Maximus's Solutions//NONSGML tcPhonebook//EN

но ведь свойство PRODID поддерживается только в vCard начиная с 3.0 версии, а с 2.1 он несовместим.
Из-за этого моя старенькая нокия (свой нормальный телефон я недавно проетерял) не смогла импортировать контакты из файла. Удалил эту строку у каждого из контактов и всё импортировалось.
5.1. Если адрес (а также, вероятно, и любые другие поля) содержит запятые - то они экранируются бэкслэшем: , > \,, но этот бэкслэш не должен быть виден пользователю, он только для программы-просмотрщика.
5.2. Соответственно, контакты, созданные с нуля в вашем плагине, если они содержат запятые в каких-то полях то при их экспорте в файлы они будут не экранированными и какая-нибудь другая программа или устройство, куда потом будут импортироваться эти файлы - может выдать ошибку/неправильно отработать/упасть/потерять данные/исказить данные.
6. Планируется ли поддержка свойства PHOTO и вообще работа с фото? Если да, то пожалуйста, приделайте оба варианта работы с фото (указание ссылки на картинку и использование base64 кода фотографии).
Back to top
View user's profile Send private message
Maximus



Joined: 07 Apr 2005
Posts: 927
Location: Украина, Кировоградская обл., г. Знаменка

Post (Separately) Posted: Sat May 03, 2014 10:26    Post subject: Reply with quote

amzoom wrote:
1. При переименовании импортированного контакта - создаётся дубликат существующего, но уже с новым именем.

Не удалось воспроизвести. Конкретизируйте обстоятельства.

amzoom wrote:
2. Файл *.vcf, сохранённый в UTF-8 с BOM (Byte Order Mark) выдаёт ошибку при попытке импортирования.

Подтверждаю. Поправлю.

amzoom wrote:
3. Файл *.vcf, сохранённый в Win 1251 (ANSI - кириллица) при импорте страдает кракозябрами всего текстового содержимого.

Вы же поставили принудительный UTF-8 в настройках - вот и результат.

amzoom wrote:
хотелось бы 4.0 или хотя бы 3.0 или вообще иметь возможность выбора

Если буду очень долго жить, то возможно :)

amzoom wrote:
4. При экспорте из вашего плагина контактов в единый *.vcf - версия VCARD прописывается 2.1 но также присутствуют строки:
...
но ведь свойство PRODID поддерживается только в vCard начиная с 3.0 версии, а с 2.1 он несовместим.

Использую эту строку не совсем по назначению, не думал, что её наличие может привести к столь печальным последствиям. Решу этот вопрос.

amzoom wrote:
5.1. Если адрес (а также, вероятно, и любые другие поля) содержит запятые - то они экранируются бэкслэшем: , > \,, но этот бэкслэш не должен быть виден пользователю, он только для программы-просмотрщика.

Не удалось воспроизвести. Ничего они не экранируются. Конкретизируйте обстоятельства.

amzoom wrote:
5.2. Соответственно, контакты, созданные с нуля в вашем плагине, если они содержат запятые в каких-то полях то при их экспорте в файлы они будут не экранированными и какая-нибудь другая программа или устройство, куда потом будут импортироваться эти файлы - может выдать ошибку/неправильно отработать/упасть/потерять данные/исказить данные.

А что не так с запятыми то? Это вполне валидные символы для атрибутов vCard. И почему это другая программа или устройство должно упасть от запятой?

amzoom wrote:
6. Планируется ли поддержка свойства PHOTO и вообще работа с фото? Если да, то пожалуйста, приделайте оба варианта работы с фото (указание ссылки на картинку и использование base64 кода фотографии).

Сейчас как раз в основном над PHOTO и веду работу. Уже реализован импорт и отображение JPEG-формата с base64.
А с указанием ссылки будет сложно. Сложность в том, что я с таким ещё не работал. Не говорю "нет", но займусь этим не раньше, чем реализую полноценный поиск.
_________________
tcPhonebook|AppLoader|Українізація TC|Ultimate Calendar
Back to top
View user's profile Send private message
amzoom



Joined: 07 Oct 2009
Posts: 44

Post (Separately) Posted: Sat May 03, 2014 22:48    Post subject: Reply with quote

Maximus wrote:
Не удалось воспроизвести. Конкретизируйте обстоятельства.

Просто пкм по контакту, rename, добавить к имени 1 в конец, enter и вуаля: теперь рядом с контакт.vcf будет и контакт1.vcf
Напомню: я использую x64 tcmd и ваш плагин.

Maximus wrote:
Вы же поставили принудительный UTF-8 в настройках - вот и результат.

А, точно. Претензию отзываю.

Maximus wrote:
Использую эту строку не совсем по назначению, не думал, что её наличие может привести к столь печальным последствиям. Решу этот вопрос.

Вообще, по назначению же. Просто пользователю эта информация всё равно не нужна (только файл утяжеляет), но вы, как автор, конечно, имеете право её всё равно принудительно вставлять.

Maximus wrote:
Не удалось воспроизвести. Ничего они не экранируются. Конкретизируйте обстоятельства.
...
А что не так с запятыми то? Это вполне валидные символы для атрибутов vCard. И почему это другая программа или устройство должно упасть от запятой?

У меня с android телефона файл импортировался и все запятые в строке "адрес" в *.vcf файле - экранированы.
По гуглению "commas in vcard" нашлось это:
https://tools.ietf.org/html/rfc6350 (и там же в коде ctrl+f по \, а также это):
Code:
Another question is whether all the escapes are used when a given syntax doesn't happen to include any comma delimiting. Yes, they are: colons, semicolons, and commas are escaped in all values.

и это: http://www.w3.org/2002/12/cal/vcard-notes.html
где даже видно использование не экранированной запятой как разделителя 2-ух групп.
Code:
CATEGORIES:Work,Test group


Maximus wrote:
Сейчас как раз в основном над PHOTO и веду работу. Уже реализован импорт и отображение JPEG-формата с base64.
А с указанием ссылки будет сложно. Сложность в том, что я с таким ещё не работал. Не говорю "нет", но займусь этим не раньше, чем реализую полноценный поиск.

Ок, жду с нетерпением.
Back to top
View user's profile Send private message
Maximus



Joined: 07 Apr 2005
Posts: 927
Location: Украина, Кировоградская обл., г. Знаменка

Post (Separately) Posted: Sat May 03, 2014 23:28    Post subject: Reply with quote

amzoom wrote:
Просто пкм по контакту, rename, добавить к имени 1 в конец, enter и вуаля: теперь рядом с контакт.vcf будет и контакт1.vcf
Напомню: я использую x64 tcmd и ваш плагин.

Сейчас нет возможности проверить на x64. Но проверю обязательно.

amzoom wrote:
Вообще, по назначению же. Просто пользователю эта информация всё равно не нужна (только файл утяжеляет), но вы, как автор, конечно, имеете право её всё равно принудительно вставлять.

Я имел в виду, что я использовал эту строку как признак того, что файл-контакт формировался моим плагином, а затем при импорте обрабатывал один атрибут по-своему.
Но сейчас есть способ избавить и от нестандартного атрибута и от этой, иногда мозолящей мне глаз, строки PRODID в экспортированном файле.

amzoom wrote:
У меня с android телефона файл импортировался и все запятые в строке "адрес" в *.vcf файле - экранированы.

Ну так это android виноват :) шутка, хотя и он тоже.
ОК. Допилю обработку escape-символов.
При импорте мне понятно как эту проблему решить. Но вот при экспорте из плагина что делать? Неужели тоже экранировать? А где гарантии, что другими программами и устройствами это будет воспринято правильно?
По сути запятые могут трактоваться, как специальные символы, только в той части, где указываются свойства атрибута - т.е. до символа двоеточия ':'. Так что вероятно правильным решением будет изменение алгоритма работы плагина только при импорте...

amzoom wrote:
Ок, жду с нетерпением.

По большому счёту, если есть желание, могу в понедельник выложить для тестирования версию с поддержкой импорта/экспорта и отображения PHOTO.

Кстати, заодно вопрос. Есть ли у кого контакты с PHOTO base64 в формате, отличном от JPEG?
_________________
tcPhonebook|AppLoader|Українізація TC|Ultimate Calendar
Back to top
View user's profile Send private message
amzoom



Joined: 07 Oct 2009
Posts: 44

Post (Separately) Posted: Sun May 04, 2014 00:26    Post subject: Reply with quote

Maximus wrote:
При импорте мне понятно как эту проблему решить. Но вот при экспорте из плагина что делать? Неужели тоже экранировать? А где гарантии, что другими программами и устройствами это будет воспринято правильно?
По сути запятые могут трактоваться, как специальные символы, только в той части, где указываются свойства атрибута - т.е. до символа двоеточия ':'. Так что вероятно правильным решением будет изменение алгоритма работы плагина только при импорте...

Вроде вот это прямое указание на то, что их надо эскапировать
Code:
Some properties may contain one or more values delimited by a COMMA character (U+002C). Therefore, a COMMA character in a value MUST be escaped with a BACKSLASH character (U+005C), even for properties that don't allow multiple instances (for consistency).



Maximus wrote:
По большому счёту, если есть желание, могу в понедельник выложить для тестирования версию с поддержкой импорта/экспорта и отображения PHOTO.

Выкладывайте, конечно.

Maximus wrote:
Кстати, заодно вопрос. Есть ли у кого контакты с PHOTO base64 в формате, отличном от JPEG?

Насколько я понял синтаксис из примера в википедии, то должно получиться так (контакт в vCard v3.0).
Back to top
View user's profile Send private message
Maximus



Joined: 07 Apr 2005
Posts: 927
Location: Украина, Кировоградская обл., г. Знаменка

Post (Separately) Posted: Sun May 04, 2014 01:01    Post subject: Reply with quote

amzoom wrote:
Вроде вот это прямое указание на то, что их надо эскапировать

Для версий 3 и 4 - да, безусловно. Но вот для 2.1, которая используется достаточно широко, я не смог найти подобного подтверждения.
Конечно можно всё выяснить экспериментальным путём, чем я наверное вскоре и займусь.

Quote:
PHOTO;TYPE=JPEG;ENCODING=B:data:image/png

Интересная штука в картинке: с одной стороны TYPE=JPEG, а с другой data:image/png. Что бы это значило? ))

Добавлено спустя 2 минуты:

amzoom wrote:
Насколько я понял синтаксис из примера в википедии, то должно получиться так (контакт в vCard v3.0).

Это самопальный пример или откуда?
_________________
tcPhonebook|AppLoader|Українізація TC|Ultimate Calendar
Back to top
View user's profile Send private message
amzoom



Joined: 07 Oct 2009
Posts: 44

Post (Separately) Posted: Sun May 04, 2014 01:52    Post subject: Reply with quote

Maximus
да, это был "самопальный пример", возможно TYPE= стоило тоже сменить на PNG.
Back to top
View user's profile Send private message
Maximus



Joined: 07 Apr 2005
Posts: 927
Location: Украина, Кировоградская обл., г. Знаменка

Post (Separately) Posted: Sun May 04, 2014 10:24    Post subject: Reply with quote

amzoom
Самопальный я и сам могу :) Мне бы, во-первых, с какой-то программы или устройства, а во-вторых, хотелось бы узнать насколько это вообще распространенное явление - не JPEG.
_________________
tcPhonebook|AppLoader|Українізація TC|Ultimate Calendar
Back to top
View user's profile Send private message
amzoom



Joined: 07 Oct 2009
Posts: 44

Post (Separately) Posted: Sun May 04, 2014 17:39    Post subject: Reply with quote

Maximus
судя по http://en.wikipedia.org/wiki/VCard (ctrl+f "base64") base64 кодирование в vCard используется повсеместно для абсолютно разных форматов кодируемого: от текстовых PGP ключей и картинок любого формата до аудиофайлов разных форматов:
Quote:
KEY:
2.1: KEY;PGP:http://example.com/key.pgp
2.1: KEY;PGP;ENCODING=BASE64:[base64-data]
3.0: KEY;TYPE=PGP:http://example.com/key.pgp
3.0: KEY;TYPE=PGP;ENCODING=B:[base64-data]
4.0: KEY;MEDIATYPE=application/pgp-keys:http://example.com/key.pgp
4.0: KEY:data:application/pgp-keys;base64,[base64-data]
LOGO:
2.1: LOGO;PNG:http://example.com/logo.png
2.1: LOGO;PNG;ENCODING=BASE64:[base64-data]
3.0: LOGO;TYPE=PNG:http://example.com/logo.png
3.0: PHOTO;TYPE=PNG;ENCODING=B:[base64-data]
4.0: LOGO;MEDIATYPE=image/png:http://example.com/logo.png
4.0: PHOTO:data:image/png;base64,[base64-data]
PHOTO:
2.1: PHOTO;JPEG:http://example.com/photo.jpg
2.1: PHOTO;JPEG;ENCODING=BASE64:[base64-data]
3.0: PHOTO;TYPE=JPEG:http://example.com/photo.jpg
3.0: PHOTO;TYPE=JPEG;ENCODING=B:[base64-data]
4.0: PHOTO;MEDIATYPE=image/jpeg:http://example.com/photo.jpg
4.0: PHOTO:data:image/jpeg;base64,[base64-data]
SOUND:
2.1: SOUND;OGG:http://example.com/sound.ogg
2.1: SOUND;OGG;ENCODING=BASE64:[base64-data]
3.0: SOUND;TYPE=OGG:http://example.com/sound.ogg
3.0: SOUND;TYPE=OGG;ENCODING=B:[base64-data]
4.0: SOUND;MEDIATYPE=audio/ogg:http://example.com/sound.ogg
4.0: SOUND:data:audio/ogg;base64,[base64-data]


Как я понял - vCard'у пофигу на формат того, что им кодировано, это уже проблемы устройства - умеет ли он работу с этим форматом или нет.

И да, на той же странице присутствуют ещё и такие примеры (без base64, но фото в не JPG формате:
vcard 2.1:
Code:
PHOTO;GIF:http://www.example.com/dir_photos/my_photo.gif

vCard 3.0:
Code:
PHOTO;VALUE=URL;TYPE=GIF:http://www.example.com/dir_photos/my_photo.gif

vCard 4.0:
Code:
PHOTO;MEDIATYPE=image/gif:http://www.example.com/dir_photos/my_photo.gif
Back to top
View user's profile Send private message
Maximus



Joined: 07 Apr 2005
Posts: 927
Location: Украина, Кировоградская обл., г. Знаменка

Post (Separately) Posted: Sun May 04, 2014 21:25    Post subject: Reply with quote

amzoom
С base64 всё понятно и проблем не будет.
PHOTO в виде ссылок на GIF мне уже попадались ранее, а вот именно как часть vCard-файла - ещё ни разу не было ничего кроме JPEG.
_________________
tcPhonebook|AppLoader|Українізація TC|Ultimate Calendar
Back to top
View user's profile Send private message
Maximus



Joined: 07 Apr 2005
Posts: 927
Location: Украина, Кировоградская обл., г. Знаменка

Post (Separately) Posted: Mon May 05, 2014 17:09    Post subject: Reply with quote

amzoom wrote:
1. При переименовании импортированного контакта - создаётся дубликат существующего, но уже с новым именем.

Подтверждаю. Воспроизводится только на Release-версии x64. На x32 и Debug-версии x64 всё нормально. Потому проблему найти будет тяжело.

amzoom wrote:
Выкладывайте, конечно.

Как и обещал, выкладываю:
http://maximus.in.ua/files/temp-phb/wfx_tcPhonebook_0960beta08/
Quote:
Реализована поддержка импорта/экспорта и отображения атрибута PHOTO (изображение контакта, только формат JPEG).

_________________
tcPhonebook|AppLoader|Українізація TC|Ultimate Calendar
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Total Commander Forum Index -> Плагины Total Commander All times are GMT + 4 Hours
Goto page Previous  1, 2, 3 ... 27, 28, 29, 30, 31  Next
Page 28 of 31

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group