Не часто возникающая проблема, которая, тем не менее,...

Не часто возникающая проблема, которая, тем не менее, иногда становится Проблемой с большой буквы. Ну вот умер телефон, или, даже, еще не умер, но показывает все признаки старческого маразма (а техника нынче стареет все быстрее и быстрее, причем, что бы не говорили, не только морально, но и физически, хотя и по тем же причинам, по которым стареет морально: маркетинг, хуле; но сейчас не об этом).


Итак, распаковал я коробочку с новехоньким коммуникатором. Но звонть-то куда? Учитывая срочность (надо было выходить через 5 минут) я решил воспользоваться подручными средствами, а именно встроенными средствами винды для синхронизации контактной книги (через блютус). Фирменную утилиту в виду недостатка времени качать даже не стал. Видимо, зря. Потому как русскоязычные контакты, оказавшись в чреве Microsoft Outlook (а, будучи установленной, именно он управляет контактами), превратились в кракозябры. Что самое удивительное, внутри телефона они превратились ровно в такие же кракозябры. Поняв, что с наскока разешить это не удасться, я списал несколько номеров, которые предположительно могут мне понадобиться, и оставил это дело до появления свободного времени.



Свободное время наступило. И, первым делом, я задался вопросом, как же вернуть кодировку в нормальный вид. Напоследок оставив размышления о том, как из запихать внутрь нового телефона. 


Поверхностное гугление показало только то, что такая проблема действительно встречается. Решения не было (вернее, адекватностью они не отличались). Ну чтож, свой путь, так свой.


Слава богу, Аутлук дает выделить сразу все контакты. И даже скопировать (даже через контекстное меню). Это уже что-то. Настраиваем отображение в виде таблицы, выбираем только те столбцы, в которых реально что-то записано (благо, таких всего-то раз-два и обчелся), выделяем все контакты и копируем. Вставить можно, например, в блокнот и увидеть, что значение из столбцов разделены табуляцией. Чтож, не самое удобное, зато можно хоть как-то автоматизировать работу. Получив вот это месиво идем к Тёме на сайт  и нагло насилуем его декодер (предварительно удалив русские подписи к столбцам, добавленые заботливым Аутлуком, чтобы малину не портили). Тёмин декодер справляется быстро и безошибочно. На выходе мы получаем что-то вроде: 

Василий Пупкин      +79001234567     pupkin@example.com

И еще кучу таких же строк. Tab-separated-values - брат "формата" csv. Все контакты красивенько, как на тарелочке. Осталось придумать, как скормить их телефону. Делать это через аутлук (а этот формат он понимает почти без подсказок) уже не хочется.


Первый вариант: написать утилиту для коммуниктатора (ведроид, как-никак), которая сама распарсит файл и распихает его по адресной книге. Останавила лень и джава (хотя СДК поставил первым делом).


Второй идеей было: ведроид ж, наверняка vCard понимает. Остается только написать конвертер tsv в vCard. Отлично, этим путем и было решено пойти. Конвертер напишем, например, на Erlang. Ну, почему бы и нет, например. Написался конкурентный-преконкурентный конвертер на 60 строк довольно быстро (сырца не привожу, так как вконтакт не предоставляет средств для его надлежащего оформления). Еще немного гугла, чтобы понять, как сказать, что это номер именно мобильника и вуаля! Получился файлик из записей вроде:

BEGIN:VCARD

VERSION:3.0

FN:Василий Пупкин

TEL;TYPE=cell:+79001234567

EMAIL:pupkin@example.com

END:VCARD


Затаив дыхание, пуляем им в ведроида по блютусу (опять же стандартными средствами). Он файлик сливает, несколько смущая кракозябрами в названии. Пробуем его открыть, следует вопрос "куда импортировать", выбираем и... Наблюдаем, как контакты с нормальными именами оказываются в списке. Ура, задача решена! Теперь есть куда звонить и, что самое главное, я знаю, кто звонит мне. Повозиться, конечно, пришлось не по делу, но в качестве бонуса я получил сотни морального удовлетворения. Пойду себя порадую чем-нибудь вкусненьким. 
Not a frequent problem, which, however, sometimes becomes a Problem with a capital letter. Well, the phone died, or, even, has not died yet, but shows all the signs of senility (and technology is now aging faster and faster, and, whatever they say, not only mentally, but also physically, although for the same reasons which morally ages: marketing, blasphemy; but now is not about that).


So, I unpacked a box with a brand new communicator. But where to call? Given the urgency (it was necessary to leave after 5 minutes), I decided to use the tools at hand, namely the built-in Windows tools to synchronize the contact book (via bluetooth). In view of the lack of time, I did not even begin to download a proprietary utility. Apparently in vain. Because Russian-speaking contacts, once in the womb of Microsoft Outlook (and, once installed, it is he who manages the contacts), have turned into crooked creatures. What is most surprising, inside the phone they turned exactly into the same krakozyabry. Realizing that I won’t be able to solve this problem quickly, I wrote off several numbers that I might presumably need and left this business until free time appeared.

 

Free time has come. And, first of all, I wondered how to return the encoding to its normal form. Finally, leaving thoughts on how to cram into a new phone.


Superficial googling showed only that such a problem does occur. There was no solution (or rather, they did not differ in adequacy). Well, well, your way, so your own.


Thank God, Outluk allows you to select all the contacts at once. And even copy (even through the context menu). This is already something. We set up the display in the form of a table, select only those columns in which something is actually written (fortunately, there are only a few or two of them), select all the contacts and copy. You can paste, for example, in a notebook and see that the value from the columns are separated by tabs. Well, not the most convenient, but you can at least somehow automate the work. Having received this mess, we go to the site on Tyoma and brazenly rape its decoder (after deleting the Russian signature on the columns added by the caring Outluk so that the raspberries are not spoiled). The dark decoder copes quickly and accurately. At the output, we get something like:

Vasily Pupkin +79001234567 pupkin@example.com

And a bunch of the same lines. Tab-separated-values ​​is the csv "format" brother. All contacts are beautiful, like on a plate. It remains to figure out how to feed them on the phone. You don’t want to do this through Outlook (and he understands this format almost without prompts).


The first option: write a utility for the communicator (a bucket, after all), which will parse the file and push it into the address book. Stopped laziness and Java (although KFOR put the first thing).


The second idea was: the bucket, surely vCard understands. It remains only to write a tsv to vCard converter. Well, it was decided to go this way. We will write the converter, for example, on Erlang. Well, why not, for example. A competitive-competitive converter for 60 lines was written quite quickly (I don’t bring any raw materials, since contact does not provide funds for its proper design). A little more google to understand how to say that this is the number of the mobile phone and voila! The file from records turned out like:

BEGIN: VCARD

VERSION: 3.0

FN: Vasily Pupkin

TEL; TYPE = cell: +79001234567

EMAIL: pupkin@example.com

END: VCARD


Holding our breath, we bullet them into the bucket on the bluetooth (again, by standard means). He merges the file, somewhat embarrassing the krakozyabrams in the title. We try to open it, the question “where to import” follows, we select and ... We observe how contacts with normal names appear in the list. Hooray, the problem is solved! Now there is where to call and, most importantly, I know who is calling me. Of course, I had to tinker not with the case, but as a bonus I received hundreds of moral satisfaction. I'm going to please myself with something tasty.
У записи 1 лайков,
0 репостов.
Эту запись оставил(а) на своей стене Игнат Толчанов

Понравилось следующим людям