Forum The World na Goldenline.pl Twitter Facebook Kanał RSS

Import kontaktów Google w telefonach bez systemu Android

Import kontaktów Google w starszych telefonach (tych bez systemu Android) może przynieść sporo kłopotów – brak możliwości zaimportowania pliku .vcf z wieloma wizytówkami, krzaki zamiast polskich znaków, itd. Problem ten da się rozwiązać m.in. konwertując plik zbiorczy do jednego pliku/wizytówkę.

Z racji, że to dość nietypowa konwersja nie udało mi się znaleźć programu, który mógłby ją za mnie wykonać (możliwe, że przejrzenie jedynie pierwszej strony w Google to za mało). W warunkach ekstremalnych powstał, więc program przeprowadzający konwersję z .vcf zbiorczego do pojedynczego .vcf dla każdej wizytówki. Działanie aplikacji jest bardzo proste. Pobiera ona każdą linijkę z oryginalnego pliku szukając wzorów BEGIN:VCARD oraz END:VCARD i wpisuje dane do oddzielnych wizytówek. Kod źródłowy oraz plik wykonywalny do pobrania są dostępne poniżej.

Import kontaktów możemy przeprowadzić z oprogramowania PC Suite lub kopiując powstałe wizytówki na kartę pamięci.

#include <QFile>
#include <QDir>
#include <QTextStream>

int main()
{
    QFile OrigFile, NewFile;
    QString Content, FileName, Line, NewFileName;
    QTextStream qtin(stdin), qtout(stdout);
    QDir dir;

    qtout << "Nazwa pliku: ";
    qtout.flush();

    FileName = qtin.readLine();

    OrigFile.setFileName(FileName.toUtf8());
    if(!OrigFile.open(QIODevice::ReadOnly)) {
        qtout << "Brak pliku '" << FileName << "'!\n\n";
        qtout.flush();
        system("pause");
        return 1;
    }

    dir.mkdir("Kontakty");
    QDir::setCurrent("Kontakty");

    while(!(Line = QString::fromUtf8(OrigFile.readLine())).isEmpty()) {
        if(Line.contains("BEGIN:VCARD")) {
            Content.clear();
            NewFileName.clear();
        }

        if(Line.contains("FN:")) {
            NewFileName = Line.mid(3, Line.length() - 5);
            qtout << NewFileName << "\n";
            qtout.flush();
        }

        Content += Line;

        if(Line.contains("END:VCARD") && !NewFileName.isEmpty()) {
            NewFile.setFileName(NewFileName + ".vcf");
            if(NewFile.open(QIODevice::WriteOnly)) {
                NewFile.write(Content.toLocal8Bit());
                NewFile.flush();
                NewFile.close();
            } else {
                qtout << "Błąd podczas otwierania pliku: " << NewFile.errorString() << "(" << NewFile.fileName() << ")";
                qtout.flush();
            }
        }
    }

    qtout << "Zakończono konwersję!\n\n";
    qtout.flush();

    OrigFile.close();
    system("pause");
    return 0;
}

Pobierz VCFKonwerter dla systemu Windows


Facebook Twitter Delicious Digg Reddit

Podobne wpisy

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *

Możesz użyć następujących tagów oraz atrybutów HTML-a: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Current month ye@r day *

CommentLuv badge