Przejdź do treści

Darmowy konwerter online VMSG do CSV

Wyodrębnij rekordy SMS z kopii zapasowych VMSG do przeszukiwalnych plików CSV kompatybilnych z arkuszami kalkulacyjnymi.

Konwertuj VMSG na CSV online - za darmo

Przesyłanie…

Plik jest przetwarzany natychmiast i usuwany zaraz po pobraniu.

Jak to działa

  1. 1/3

    Prześlij swój plik .vmsg

    Kliknij, aby wybrać plik, który chcesz przekonwertować, lub po prostu przeciągnij go i upuść w zaznaczonym obszarze.

  2. 2/3

    Wykonaj konwersję .vmsg do .csv

    Po pomyślnym przesłaniu pliku kliknij konwersję, gdy będziesz gotowy.

  3. 3/3

    Pobierz przekonwertowany plik .csv

    Wynik konwersji jest gotowy do pobrania.

Jak konwertować vmsg do csv

Stara kopia zapasowa telefonu lub narzędzie do obsługi wiadomości może eksportować rekordy SMS jako .vmsg, podczas gdy arkusze kalkulacyjne, bazy danych i narzędzia do tworzenia raportów zwykle wymagają formatu .csv. Konwersja przekształca rekordy wiadomości w wiersze, które można przeszukiwać, filtrować, edytować lub importować.

Czym jest format VMSG

VMSG, nazywany również vMessage, to format tekstowy używany przez starsze telefony komórkowe, oprogramowanie do obsługi telefonów oraz narzędzia do tworzenia kopii zapasowych SMS. Plik zwykle zawiera sekcje BEGIN:VMSG, BEGIN:VENV i BEGIN:VBODY z właściwościami takimi jak TEL, DTSTART, SUBJECT, BODY, X-IRMC-BODY, X-IRMC-TYPE i X-IRMC-BOX.

VMSG jest czytelny jako zwykły tekst, ale jego zagnieżdżone rekordy i właściwości zależne od producenta nie są automatycznie wyświetlane jako wiersze i kolumny. Niektóre pliki przechowują numer telefonu w otaczającej sekcji VCARD, a nie wewnątrz treści wiadomości.

Czym jest format CSV

CSV przedstawia dane tabelaryczne w postaci wierszy i pól. Excel, LibreOffice Calc, Google Sheets, narzędzia do importowania baz danych i większość bibliotek skryptowych obsługują ten format. Eksport wiadomości zwykle korzysta z kolumn takich jak date, phone, type, folder, subject i body.

CSV jest przydatny do sortowania według daty, filtrowania wiadomości przychodzących i wychodzących, wyszukiwania tekstu wiadomości, importowania rekordów do innego systemu oraz tworzenia kompaktowego archiwum tekstowego. Nie zachowuje składni VMSG, załączników, stanów dostarczenia ani metadanych zależnych od producenta, chyba że te wartości zostaną jawnie wyeksportowane do dodatkowych kolumn.

Konwersja pliku za pomocą lokalnego skryptu

Nie istnieje uniwersalna implementacja standardu VMSG: producenci telefonów i programy do tworzenia kopii zapasowych używają różnych nazw właściwości i kodowań. Niewielki lokalny parser w języku Python jest zwykle bezpieczniejszy niż przesyłanie prywatnych wiadomości do ogólnej witryny konwertującej.

Zainstaluj Python 3, zapisz poniższy kod jako vmsg_to_csv.py i umieść go obok pliku źródłowego:

import csv
import sys
import quopri


def decode(value, params):
    if any(p.upper() == 'ENCODING=QUOTED-PRINTABLE' for p in params):
        value = quopri.decodestring(value).decode('utf-8', errors='replace')
    slash = chr(92)
    return (value.replace(slash + 'n', '\n')
                 .replace(slash + 'N', '\n')
                 .replace(slash + ',', ',')
                 .replace(slash + ';', ';')
                 .replace(slash + slash, slash))


def convert(source, destination):
    rows = []
    record = None
    contact_tel = ''
    in_vcard = False

    with open(source, encoding='utf-8-sig', errors='replace') as handle:
        lines = []
        for raw in handle:
            line = raw.rstrip('\r\n')
            if line.startswith((' ', '\t')) and lines:
                lines[-1] += line[1:]
            else:
                lines.append(line)

    for line in lines:
        upper = line.upper()
        if upper == 'BEGIN:VCARD':
            in_vcard = True
            continue
        if upper == 'END:VCARD':
            in_vcard = False
            continue
        if upper == 'BEGIN:VBODY':
            record = {}
            continue
        if upper == 'END:VBODY':
            if record is not None:
                record['_CONTACT_TEL'] = contact_tel
                rows.append(record)
            record = None
            continue
        if ':' not in line:
            continue
        left, value = line.split(':', 1)
        parts = left.split(';')
        name = parts[0].upper()
        value = decode(value, parts[1:])
        if in_vcard and name == 'TEL':
            contact_tel = value
        elif record is not None:
            record[name] = value

    def first(row, names):
        for name in names:
            if row.get(name, ''):
                return row[name]
        return ''

    columns = ['date', 'phone', 'type', 'folder', 'subject', 'body']
    with open(destination, 'w', newline='', encoding='utf-8-sig') as handle:
        writer = csv.DictWriter(handle, fieldnames=columns)
        writer.writeheader()
        for row in rows:
            writer.writerow({
                'date': first(row, ['DTSTART', 'DATE']),
                'phone': first(row, ['TEL', 'X-IRMC-RECIPIENT', 'TO', 'FROM', '_CONTACT_TEL']),
                'type': first(row, ['X-IRMC-TYPE', 'TYPE']),
                'folder': first(row, ['X-IRMC-BOX', 'FOLDER']),
                'subject': first(row, ['SUBJECT']),
                'body': first(row, ['BODY', 'X-IRMC-BODY', 'TEXT', 'MESSAGE'])
            })


if len(sys.argv) != 3:
    raise SystemExit('Usage: python vmsg_to_csv.py input.vmsg output.csv')
convert(sys.argv[1], sys.argv[2])

Uruchom python vmsg_to_csv.py messages.vmsg messages.csv. W systemach, które używają polecenia python3, uruchom python3 vmsg_to_csv.py messages.vmsg messages.csv. Otwórz wynik w Calc lub Excelu; znacznik kolejności bajtów UTF-8 pomaga oprogramowaniu arkusza wykryć znaki inne niż ASCII.

Przed konwersją otwórz kopię pliku VMSG w edytorze tekstu i sprawdź rzeczywiste nazwy jego właściwości. Skrypt rozpoznaje typowe aliasy, w tym BODY, X-IRMC-BODY, TEXT i MESSAGE. Jeśli wiadomości używają innej nazwy, dodaj ją do listy treści w skrypcie. Jeśli plik korzysta ze znaków kodowanych w innym standardzie niż UTF-8, zmień kodowanie wejściowe i przed przetworzeniem całej kopii zapasowej sprawdź znaki diakrytyczne.

Inne opcje konwersji

Dedykowane narzędzie, takie jak vmsg2csv, może działać w przypadku konkretnego wariantu kopii zapasowej telefonu, ale najpierw sprawdź jego źródło, obsługiwane właściwości i wynik na niewielkiej kopii. Dostępność i zgodność starszych narzędzi różnią się, a wiele z nich nie dekoduje poprawnie tekstu w formacie quoted-printable, łamanych wierszy ani pól zależnych od producenta.

LibreOffice Calc i Excel mogą otwierać pliki CSV, ale nie są niezawodnymi parserami VMSG. Importowanie pliku VMSG za pomocą File → Open działa dopiero po uprzednim znormalizowaniu rekordów do rozdzielanych wierszy.

Ogólne konwertery online rzadko wymieniają VMSG jako obsługiwany format wejściowy i mogą błędnie odczytywać jego zagnieżdżoną strukturę. Korzystaj z usługi online tylko wtedy, gdy wyraźnie obsługuje VMSG, wyjaśnia zasady przechowywania i usuwania danych, używa HTTPS oraz nie wymaga niepotrzebnego dostępu do konta. Nie przesyłaj kopii zapasowych SMS zawierających prywatne wiadomości, numery telefonów ani kody uwierzytelniające, chyba że akceptujesz związane z tym ryzyko dla prywatności.

Sprawdzanie przekonwertowanych danych

Porównaj kilka wierszy CSV ze źródłem, w tym wiadomości zawierające przecinki, podziały wiersza, cudzysłowy, znaki inne niż ASCII oraz puste treści. Writer CSV języka Python poprawnie umieszcza przecinki i osadzone podziały wiersza w cudzysłowach, ale program telefonu może przechowywać wielowierszową treść lub zawartość w formacie quoted-printable w sposób zależny od producenta, co wymaga dodatkowego dekodowania.

Zachowaj oryginalny plik VMSG. CSV to spłaszczony format wymiany i może pomijać załączniki, stan odczytania lub dostarczenia, strukturę kontaktów, znaczniki czasu z informacjami o strefie czasowej oraz pola, które nie zostały uwzględnione w wybranych kolumnach wyjściowych.

Porównanie formatu VMSG z CSV

Jak formaty VMSG i CSV wypadają w porównaniu pod względem najważniejszych cech dla tej konwersji.

Porównanie formatów plików VMSG i CSV
Cecha .VMSG vMessage SMS backup .CSV Comma-Separated Values
Czytelny tekstowo Tak Tak
Typy danych Nietypowane (cały tekst) Typowane
Zagnieżdżone struktury Nie Nie
Formuły Nie Nie
Wiele tabel lub arkuszy Nie Nie
Typowy rozmiar pliku Bardzo mały Mały
Otwarty standard Częściowo otwarty Tak
Najlepszy do Wymiana danych Wymiana danych
Typ MIME — text/csv

Informacje o rozszerzeniach i typach plików zapewnia File-Extensions.org

Najczęściej zadawane pytania

Czy konwerter VMSG do CSV jest darmowy?

Tak, konwersja VMSG do CSV na 101convert.com jest całkowicie darmowa. Nie wymaga rejestracji, adresu e-mail ani instalacji. Jeśli potrzebujesz wyższego limitu rozmiaru pliku lub chcesz konwertować więcej plików naraz, sprawdź nasze plany.

Jak duży może być mój plik VMSG?

Możesz przesłać pliki VMSG o rozmiarze do 3 MB i przekonwertować do 3 plików jednocześnie w jednej partii. W płatnym planie limit wynosi do 50 MB na plik i 100 plików naraz, sprawdź nasze plany.

Co dzieje się z przesłanymi plikami?

Pliki są przetwarzane automatycznie i usuwane z naszych serwerów kilka minut po konwersji. Nigdy nie przeglądamy ani nie udostępniamy Twoich plików.

Czy muszę instalować oprogramowanie, aby przekonwertować VMSG do CSV?

Nie. Konwersja VMSG do CSV odbywa się całkowicie online w przeglądarce i działa w systemach Windows, Mac, Linux, Android i iPhone.

Konwersja nie powiodła się?

W większości przypadków przyczyną jest nieprawidłowy format pliku. Prześlij prawidłowy plik VMSG dla tej konwersji z VMSG do CSV. Czasami problem może również występować po naszej stronie. Analizujemy powtarzające się nieudane konwersje i wyłączamy lub naprawiamy konwerter, jeśli wykryjemy usterkę.

Jakie informacje zostają zachowane podczas konwersji VMSG do CSV?

Konwersja wyodrębnia pola SMS, takie jak nadawca lub odbiorca, data i godzina oraz treść wiadomości, jeśli te pola są obecne w rekordach VMSG. Dodatkowe pola obsługiwane tylko przez konkretny wariant VMSG mogą nie mieć odpowiadającej im kolumny CSV.

Czy załączniki i formatowanie wiadomości zostaną zachowane przy konwersji VMSG do CSV?

Nie, CSV przechowuje dane SMS jako zwykły tekst i pola tabelaryczne, dlatego załączniki, formatowanie tekstu oraz pierwotna struktura rekordu VMSG nie są zachowywane. Podziały wierszy w wiadomości mogą pozostać jako zawartość komórki, ale nie zachowają pierwotnego wyglądu.

Czy można przekonwertować CSV z powrotem do oryginalnej kopii zapasowej VMSG?

Zwykle nie w dokładny sposób, ponieważ CSV nie zachowuje całej struktury VMSG, metadanych ani szczegółów kodowania. Najlepiej traktować go jako edytowalny i przeszukiwalny eksport, a nie kopię zapasową, którą można odtworzyć.

Dlaczego niektórych wiadomości VMSG brakuje w CSV albo są rozdzielone na niewłaściwe kolumny?

Może się tak zdarzyć, gdy kopia zapasowa używa niestandardowego wariantu VMSG, zawiera uszkodzone rekordy lub korzysta z nietypowego kodowania znaków. Przecinki, cudzysłowy lub podziały wierszy w treści wiadomości muszą być obsługiwane jako dane CSV, a nieprawidłowe rekordy mogą uniemożliwić niezawodne wyodrębnienie pól.

Dodatkowe formaty dla konwersji pliku
vmsg

Konwersja do .csv
z innych formatów

Udostępnij w mediach społecznościowych:

Już pobrano

Ten plik został już pobrany. Ze względu na prywatność usunęliśmy go z serwera zaraz po pobraniu, więc nie można go pobrać ponownie. Jeśli potrzebujesz go jeszcze raz, przekonwertuj plik ponownie.