View previous topic :: View next topic |
Author |
Message |
Rodny
Joined: 24 Jan 2007 Posts: 949 Location: Могилёв, Беларусь
|
(Separately) Posted: Fri Apr 11, 2014 18:12 Post subject: |
|
|
К разговору об имени файла контакта.
Есть телефонная книга, долгие годы переносимая с телефона на телефон. В силу исторических ограничений контакты записаны в виде "ИВАНОВ АЛ-ДР ПЕТРО". То есть заглавными буквами и с ограничением по длине.
Я импортировал из vcf в плагин и начал расписывать имена/отчества, менять регистр через ИГП, расчитывая, что мои исправления попадут в свойства контакта.
Но я ошибался. В файле "Иванов Александр Петрович.vcf" имя осталось прежним.
Перспектива зайти руками в свойства каждого файла и скопировать имя файла в имя контакта не очень радует, файлов более 300.
В диалоге смены атрибутов обнаружились поля плагина, но в fs.Имя нельзя использовать данные из контентных плагинов.
Вопрос: как (и можно ли средствами сабжа) мне всё это привести к нормальному виду?
Добавлено
А, и ещё багрепорт: при импорте нужно что-то делать с недопустимыми символами, сейчас такие контакты не импортируются, например, "Вокзал ж/д"
Добавлено ещё
Хм, дочитал до 10 страницы и увидел, что это было сделано. Однако, вот этот контакт у меня при импорте потерялся:
Hidden text Code: |
BEGIN:VCARD
VERSION:2.1
N;ENCODING=QUOTED-PRINTABLE;CHARSET=UTF-8:;=D0=92=D0=BE=D0=BA=D0=B7=D0=B0=D0=BB =D0=96/=D0=94
TEL;WORK;VOICE:105
TEL;WORK;VOICE:+375222392128
TEL;WORK;VOICE:+375222393518
CATEGORIES;ENCODING=QUOTED-PRINTABLE;CHARSET=UTF-8:=D0=A1=D0=BB=D1=83=D0=B6=D0=B1=D1=8B
END:VCARD |
|
|
Back to top |
|
|
amzoom
Joined: 07 Oct 2009 Posts: 44
|
(Separately) Posted: Fri Apr 11, 2014 18:22 Post subject: |
|
|
Rodny wrote: | Вопрос: как (и можно ли средствами сабжа) мне всё это привести к нормальному виду? |
Средствами сабжа это можно сделать только вручную.
Правильно это сделать - надо каким-нибудь скриптом (.js/.bat/.ahk/etc.).
Замечу лишь, что
Quote: | Я импортировал из vcf в плагин и начал расписывать имена/отчества, менять регистр через ИГП, расчитывая, что мои исправления попадут в свойства контакта. |
стоило всё-таки после первого "исправленного" контакта зайти в его свойства и проверить влияет ли имя файла на свойства контакта. Хотя и само подобное предположение - мягко говоря, дико. |
|
Back to top |
|
|
Rodny
Joined: 24 Jan 2007 Posts: 949 Location: Могилёв, Беларусь
|
(Separately) Posted: Fri Apr 11, 2014 18:26 Post subject: |
|
|
Я и проверил, где-то после десятка исправлений.
А предположение вполне себе логичное. Если можно формировать имя файла из полного имени контакта, то почему бы и не существовать обратной возможности.
Что ж, если нельзя плагином - будем скриптовать на досуге.
Хотя думаю, что проще будет залезть прямо в базу и там заменить.
Добавлено спустя 2 часа 36 минут:
В общем, если вдруг найдётся ещё любитель нетрадиционного использования плагина.
Требуется что-нибудь для редактирования базы, у меня это дополнение SQLite Manager к Firefox.
1. Приводим имена файлов к нужному виду в TC.
2. Открываем в SQL-редакторе файл базы tcPhonebook.db
3. Выполняем последовательно три запроса
Hidden text Code: | CREATE TABLE PhoneBook2(ID INTEGER PRIMARY KEY AUTOINCREMENT,StructureID INTEGER,Nickname TEXT,Post TEXT,Department TEXT,Company TEXT,Suffix TEXT,Phone TEXT,PhoneMobile TEXT,PhoneFax TEXT,Email TEXT,WebPage TEXT,Country TEXT,Region TEXT,City TEXT,Address TEXT,PostalCode TEXT,Note TEXT,BirthDay REAL,FirstName TEXT,MiddleName TEXT,LastName TEXT,Prefix TEXT,StrByFullName INTEGER) |
Code: | INSERT INTO PhoneBook2 (ID,StructureID, Nickname, Post, Department, Company,Suffix,Phone,PhoneMobile,PhoneFax,Email,WebPage,Country,Region,City,Address,PostalCode,Note,BirthDay,FirstName,MiddleName,LastName,Prefix,StrByFullName)
SELECT
PhoneBook.ID,PhoneBook.StructureID, PhoneBook.Nickname, PhoneBook.Post, PhoneBook.Department, PhoneBook.Company,PhoneBook.Suffix,PhoneBook.Phone,PhoneBook.PhoneMobile,PhoneBook.PhoneFax,PhoneBook.Email,PhoneBook.WebPage,PhoneBook.Country,PhoneBook.Region,PhoneBook.City,PhoneBook.Address,PhoneBook.PostalCode,PhoneBook.Note,PhoneBook.BirthDay,Structure.Name,PhoneBook.MiddleName,PhoneBook.LastName,PhoneBook.Prefix,PhoneBook.StrByFullName
FROM
PhoneBook LEFT JOIN Structure ON PhoneBook.ID = Structure.ID; |
Code: | DROP TABLE PhoneBook;
ALTER TABLE PhoneBook2 RENAME TO PhoneBook; |
4. PROFIT!
Добавлено спустя 17 минут:
А если бы я дочитал до конца 14-ю страницу форума, то не пытался бы два часа разобраться в sql-запросах, а скачал рекомендованную SQLiteStudio и сделал то же самое методом копи-паст за 5 минут |
|
Back to top |
|
|
Maximus
Joined: 07 Apr 2005 Posts: 927 Location: Украина, Кировоградская обл., г. Знаменка
|
(Separately) Posted: Sat Apr 12, 2014 17:51 Post subject: |
|
|
amzoom wrote: | Жму "Yes" и получаю крэш tcmdx64 v8.50. |
Это пофикшено (прошу подтвердить):
http://maximus.in.ua/files/temp-phb/wfx_tcPhonebook_0960beta01/
amzoom wrote: | ок, предположим я и правда первый, кто столкнулся с этими багами. |
Кстати, баг не проявлял себя на x32
amzoom wrote: | Прежде всего, прошу вас ознакомиться с этой и этой ссылками и добавить поддержку каждого из свойств. |
Не всё сразу. По наличию свободного времени.
Сейчас в работе было добавление PHOTO, но пришлось прерваться :)
amzoom wrote: | Что такое виртуальные папки? |
cm_OpenDesktop, cm_OpenPrinters и т.п.
amzoom wrote: | Да что уж там стандартные и расширенные свойства... любое содержимое файла не должно вызывать падения программы. |
Это бесспорно истина.
Добавлено спустя 8 минут:
Rodny wrote: | Однако, вот этот контакт у меня при импорте потерялся |
У меня без проблем импортировался как "Вокзал Ж_Д". Возможно нужно пробовать весь файл контактов целиком. Если что - жду его в личку или на е-почту. _________________ tcPhonebook|AppLoader|Українізація TC|Ultimate Calendar |
|
Back to top |
|
|
amzoom
Joined: 07 Oct 2009 Posts: 44
|
(Separately) Posted: Sat Apr 12, 2014 19:21 Post subject: |
|
|
VERIFIED FIXED
Maximus wrote: | Кстати, баг не проявлял себя на x32 |
Об этом я и не подумал. Я смотрю в сообществе ТС вообще беда с х64.
Maximus wrote: | Не всё сразу. По наличию свободного времени. |
Само собой разумеется.
Импорт в этот раз прошёл успешно, только странно имена у файлов контактов импортировались: 4 шт с нормальной кириллицей, а остальные вот такой кракозябрицей: Р РѕРјР°
Добавлено спустя 5 минут:
И да, заметка по поводу прогресс бара при импортировании: его бы можно улучшить.
Сейчас он считает кол-во импортируемых файлов и в зависимости от завершения импорта какого-то кол-ва этих файлов - рисует %-ты выполнения операции.
И если импортируется 100 контактов из 1 файла, то прогресс бар будет иметь не 100 делений, а ровно 2: 0% и 100%.
Было бы хорошо при импорте делать подсчёт кол-ва контактов изо всех импортируемых файлов и рисовать %-ы от этого числа.
Кол-во контактов можно подсчитать по кол-ву пар BEGIN:VCARD и END:VCARD. |
|
Back to top |
|
|
Maximus
Joined: 07 Apr 2005 Posts: 927 Location: Украина, Кировоградская обл., г. Знаменка
|
(Separately) Posted: Sat Apr 12, 2014 20:13 Post subject: |
|
|
amzoom wrote: | Импорт в этот раз прошёл успешно, только странно имена у файлов контактов импортировались: 4 шт с нормальной кириллицей, а остальные вот такой кракозябрицей: Р РѕРјР° |
Поставь в настройках импорта принудительный UTF-8.
amzoom wrote: | И да, заметка по поводу прогресс бара при импортировании: его бы можно улучшить. |
Я знаю :) Но там не всё так просто. Прогресс-баром сейчас управляет ТС. В интерфейсе плагинов есть функция ProgressProc, посмотрю может ли она помочь с этой бедой. _________________ tcPhonebook|AppLoader|Українізація TC|Ultimate Calendar |
|
Back to top |
|
|
amzoom
Joined: 07 Oct 2009 Posts: 44
|
(Separately) Posted: Mon Apr 14, 2014 02:22 Post subject: |
|
|
Bug
В процессе импорта клик по кнопкам Pause/Cancel не работает: задача продолжает выполняться не смотря ни на что.
И да, форсирование UTF-8 помогло, спасибо. Только всё равно странно: файл-то один, почему часть контактов распозналась как UTF-8, а остальные - нет? Они ж все в одной кодировке в одном файле сохранены. |
|
Back to top |
|
|
Maximus
Joined: 07 Apr 2005 Posts: 927 Location: Украина, Кировоградская обл., г. Знаменка
|
(Separately) Posted: Mon Apr 14, 2014 11:06 Post subject: |
|
|
amzoom wrote: | В процессе импорта клик по кнопкам Pause/Cancel не работает: задача продолжает выполняться не смотря ни на что. |
Это вопрос не ко мне, а к Гислеру. Я этим процессом не управляю.
ТС, видимо, воспринимает нажатия этих кнопок только в промежутках между обработкой файлов. И если выполняется импорт одного файла с несколькими контактами, то очередь до обработки нажатий кнопок дойдёт только после полной обработки этого файла.
amzoom wrote: | И да, форсирование UTF-8 помогло, спасибо. Только всё равно странно: файл-то один, почему часть контактов распозналась как UTF-8, а остальные - нет? Они ж все в одной кодировке в одном файле сохранены. |
Видимо кодировка в некоторых контактах указана, а в некоторых нет. _________________ tcPhonebook|AppLoader|Українізація TC|Ultimate Calendar |
|
Back to top |
|
|
Maximus
Joined: 07 Apr 2005 Posts: 927 Location: Украина, Кировоградская обл., г. Знаменка
|
|
Back to top |
|
|
amzoom
Joined: 07 Oct 2009 Posts: 44
|
(Separately) Posted: Tue Apr 15, 2014 00:42 Post subject: |
|
|
Maximus wrote: | Это вопрос не ко мне, а к Гислеру. Я этим процессом не управляю. |
Done. |
|
Back to top |
|
|
Maximus
Joined: 07 Apr 2005 Posts: 927 Location: Украина, Кировоградская обл., г. Знаменка
|
(Separately) Posted: Tue Apr 15, 2014 09:54 Post subject: |
|
|
Я думаю, что он тут ничего не станет делать.
Для того чтобы всё стало хорошо мне нужно реализовать функцию ProgressProc (о ней я писал выше), которая будет показывать прогресс и, соответственно, в таком случае ТС уже сможет прерывать и ставить его на паузу.
Добавлено спустя 2 часа 10 минут:
Добавил отображение прогресса (т.е. задействовал функцию ProgressProc)
http://maximus.in.ua/files/temp-phb/wfx_tcPhonebook_0960beta03/
На паузу теперь поставить можно в любой момент, но отмена по прежнему воспринимается только в промежутках между файлами.
Больше сделать ничего не могу. _________________ tcPhonebook|AppLoader|Українізація TC|Ultimate Calendar
Last edited by Maximus on Wed Apr 16, 2014 22:28; edited 1 time in total |
|
Back to top |
|
|
amzoom
Joined: 07 Oct 2009 Posts: 44
|
(Separately) Posted: Wed Apr 16, 2014 02:06 Post subject: |
|
|
Maximus wrote: | Это вопрос не ко мне, а к Гислеру. Я этим процессом не управляю.
ТС, видимо, воспринимает нажатия этих кнопок только в промежутках между обработкой файлов. И если выполняется импорт одного файла с несколькими контактами, то очередь до обработки нажатий кнопок дойдёт только после полной обработки этого файла. |
А нельзя ли в вашу функцию импорта добавить проверку "была ли нажата кнопка Cancel?" if (answer==true) { abortOperation();}? |
|
Back to top |
|
|
Maximus
Joined: 07 Apr 2005 Posts: 927 Location: Украина, Кировоградская обл., г. Знаменка
|
(Separately) Posted: Wed Apr 16, 2014 07:51 Post subject: |
|
|
amzoom wrote: | А нельзя ли в вашу функцию импорта добавить проверку "была ли нажата кнопка Cancel?" if (answer==true) { abortOperation();}? |
Это не мой диалог - это диалог ТС. Я только могу воспользоваться тем, что предоставляет его интерфейс. Сейчас ничего такого нет или я его в упор не вижу :) _________________ tcPhonebook|AppLoader|Українізація TC|Ultimate Calendar |
|
Back to top |
|
|
Maximus
Joined: 07 Apr 2005 Posts: 927 Location: Украина, Кировоградская обл., г. Знаменка
|
|
Back to top |
|
|
amzoom
Joined: 07 Oct 2009 Posts: 44
|
(Separately) Posted: Thu Apr 17, 2014 00:30 Post subject: |
|
|
Maximus
а Cancel разве не должен не просто остановиться, но и удалить за собой то, что уже успел сделать? Это же именно Отмена, а не остановка.
И ещё: прогрессбар при импорте многоконтактного файла теперь рисуется по делениям, как надо, но вот %-ов не выводится и общее кол-во контактов и сколько уже импортировано - не показывается: по-прежнему видно только "0/1". |
|
Back to top |
|
|
|
|
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
|