Problem z konwersją i wydrukiem SMS


(Mr Outlaw) #1

jako, ze jest to mój pierwszy post - Witam :slight_smile:

Tak jak w temacie. Za namową znajomego podjąłem się jednego zadania, które mnie nieco przerasta. Poprosił mnie o to bym wydrukował mu zawartość jego skrzynki odbiorczej SMS. Bez większych problemów udało mi się zgrać poprzez Nokia PC Suite zawartość całej skrzynki do standardowych plików z rozszerzeniem vmg.

I tutaj rodzi się problem - czy jest możliwa konwersja dużej ilości plików do jednego (np. drukowalna tabela/baza danych itp.), lub po prostu wydruk masowej ilości plików w jakimś ciągu po kilkadziesiąt sztuk na stronę, bez bardziej mozolnej pracy typu kopij/wklej?


(Tomek Matz) #2

Zmodyfikowałem kod udostępniony na tej stronie http://www.senseiclassroom.net/lesson.asp?id=131 i w efekcie tego powstała ta aplikacja http://speedy.sh/JwA8a/VMG2TXT.zip. Ogólnie mówiąc ona przerabia wszystkie pliki vmg umieszczone w danym katalogu na pojedyncze pliki txt lub jeden duży plik txt. Niestety nie mam jej jak przetestować. Sprawdź, czy działa i daj znać. Jakby coś było nie tak, to jutro (a w zasadzie dziś) po południu poprawię.

PS Do uruchomienia tego programiku potrzebny jest .NET Framework 4

-- Dodane 10.11.2011 (Cz) 1:02 --

Doszło trochę zmian :slight_smile:


(Mr Outlaw) #3

Aplikacja działa całkiem przyjemnie, szczególnie w nowszej wersji, gdzie jest możliwość wyboru pól które mają zostać zgrane do zbiorczego pliku. Przydatna by była jeszcze zmiana ułożenia tekstu w pliku wyjściowym. Separator z kresek wygląda obecnie nie najgorzej, ale mógł by wyglądać podobnie do czegoś poniżej

[data] [informacja o nadawcy itp]

Treść wiadomości

--------------------------


[data] [informacja o nadawcy itp]

Treść wiadomości

--------------------------

Jeśli była by możliwość wprowadzenia lekkiej zmiany w kodzie wówczas było by wyśmienicie


(Tomek Matz) #4
  1. Zmianę wprowadzę, bo to akurat drobnostka. Zrobię coś takiego, że w polu tekstowym będziesz sobie ustalał jak ma wyglądać wynikowy plik txt dla pojedynczej wiadomości, czyli np.:

[$DATE$] [$PHONE$]

[$TEXT$]


$DATE$, itd. to będą parametry, które w programie będę podmieniał na treść wiadomości.

  1. A patrzyłeś na przykładzie kilku wiadomości SMS, czy w wynikowym pliku txt są poprawne wartości? Bo tak jak mówiłem, ja nie mam jak tej aplikacji przetestować i robię trochę wszystko w ciemno. Szukałem w internecie informacji na temat tego jaki jest format treści przechowywanej w pliku vmg (na stronach nokii), ale nic nie udało mi się znaleźć. Np. nie wiem jak wygląda zawartość pliku vmg w sytuacji, gdy sms jest wysłany do kilku osób. Niby pierdoła, no ale jednak :slight_smile: Zapewne w pliku txt wyświetli Ci się teraz tylko jeden numer telefonu (ten który w SMS będzie pierwszy na liście), ale to strzał.

  2. Jak z wydajnością programu, ile wiadomości najwięcej na raz przetwarzałeś i ile to trwało?

Tak, czy siak, dziś postaram się wrzucić zaktualizowany kod.


(Mr Outlaw) #5

1.Widzę, że przygotowujesz całkiem przyjemnego w użytkowaniu WYSWIGa 

2.Sprawdzałem Twoją aplikację i chylę pokłony za poprawność konwersji. Nie miałem jeszcze możliwości sprawdzenia jak spisuje się przy konwersji polskich znaków, ale generalnie jest bezbłędnie.

3.Sprawdzałem na kilkunastu wiadomościach i nie było z nią większych problemów. Konwersja vmg na txt przebiega szybko i sprawnie. Jak tylko znajdę pendraka na którym mam wszystko do przetworzenia, wówczas dam znać jak aplikacja radzi sobie przy wiadomościach w liczbie z 2 zerami na końcu 


Czlowiek stary, a głupi (mowa o mnie). Lekki bałagan w wyjściowym pliku txt był spowodowany ograniczeniami notatnika. Z ciekawości przekopiowałem zawartość pliku txt do worda i wygląda bardzo ładnie.

||Date:dd.mm.yyyy hh:mm:ss

[Treść] |

----------------------------------------------------------------------

Jedynym mankamentem jest brak podpięcia numeru telefonu/nazwy kontaktu, po zaznaczeniu w menu aplikacji pozycji „Phone”. Tak to Twój soft działa bez zarzutów. A konwersja ponad 500 plików zajmuje ok 1,5 sekundy :slight_smile:


(Tomek Matz) #6

Nowa wersja: http://speedy.sh/gn6PM/VMG2TXT.zip.

No to trochę za dużo powiedziane :slight_smile: Ale wydaje mi się, że teraz jest lepiej niż w poprzedniej wersji. Jeśli się mylę, to pisz.

Te wynikowe pliki txt otwieraj w jakiejś lepszej wersji notatnika, np. notepad++. Każdy z tych plików txt ma takie kodowanie jak plik vmg, czyli Unicode. Notatnik może sobie z tym nie radzić (choć w sumie nie sprawdzałem). Niemniej to moja wina, bo powinien był to wcześniej powiedzieć.

O właśnie, i o zgłaszanie tego typu błędów właśnie mi chodziło. Ja nie mam jak to sprawdzić. Możesz mi podrzucić jak wygląda ten plik vmg? Weź jakiś pojedynczy sms i przekonwertuj go z zaznaczoną opcją "Zapisz cała zawartość pliku VMG" i wklej mi jak możesz treść wynikowego pliku txt. Oczywiście numer telefonu i treść wiadomości podmień jak chcesz na byle co :slight_smile:


(Mr Outlaw) #7

Program wygląda coraz dojrzalej.

Aktualnie po wybraniu wszystkich opcji w okienku rezultat jest podobny do wcześniejszych. Dalej wyświetlana jest data dostarczenia wiadomości oraz jej treść. Pozostałe pola w których powinna się wyświetlać reszta informacji pozostaje w dalszym ciągu pusta.

[] [] [] []

[]

[Date]

------------------------------------------------------------------------------------------------------------------------------------

Co prawda w prezentowanym przeze mnie przypadku wszystkie informacje nie muszą zostać wyświetlone. Zależy mi na tym by się wyświetlała data dostarczenia wiadomości oraz jej treść. Opcją jest również numer odbiorcy. Można więc powiedzieć, że z grubsza efekt jest już w 2/3 osiągnięty (o ile nawet nie jest to znacznie większy odsetek postępu). Jeżeli pominąć ten pechowy numer nadawcy wiadomości wówczas możemy powiedzieć, że progres Twojej pracy jak dla mnie jest równy 100% :slight_smile: Cała zawartość pliku VMG

BEGIN:VMSG

VERSION:1.1

X-IRMC-STATUS:READ

X-IRMC-BOX:INBOX

BEGIN:VCARD

VERSION:2.1

N:

TEL:+48123456789

END:VCARD

BEGIN:VENV

BEGIN:VBODY

Date:21.8.2011 09:20:37

Treść wiadomości

END:VBODY

END:VENV

END:VMSG


END:VB ֈɸ VENV簼㔙٪I욠ʋ ෌ רɸ 쌐Ϲ Ȁ٩I緀඘

(Tomek Matz) #8

Dzięki za szybką odpowiedź. Format pliku vmg zgadza się (mniej więcej) z tym, którego aktualnie używam (brakuje tylko dwóch pól). Podejrzewam, że problemem może być kodowanie. Najprawdopodobniej nie jest to Unicode, a jakieś inne. Wysłałem w tej sprawie prywatną wiadomość. Jak możesz to sprawdź skrzynkę.

-- Dodane 10.11.2011 (Cz) 23:57 --

Dzięki za odpowiedź. Nowa wersja: http://speedy.sh/jNfsH/VMG2TXT.zip. Teraz już powinno być OK. Problemem nie było kodowanie, a znaki nowej linii :slight_smile: Oczywiście jeśli wciąż coś jest nie tak, to daj znać.


(Mr Outlaw) #9

Na chwilę obecną nie zauważyłem żadnego błędu. Aplikacja działa jak należy.

Dziękuję za pomoc :slight_smile:


(Tomek Matz) #10

Nie ma za co. Błędy mogą wystąpić w przypadku wiadomości, która była wysłana do kilku odbiorców. Wtedy format tego pliku vmg (ten co wklejałeś) będzie zupełnie inny (w końcu musi w nim zostać zawartych kilka numerów telefonu). Musiałbym mieć taką wiadomość (zobaczyć jak wygląda jej format), aby móc to wprowadzić do programu. Zerknij jednak już teraz, czy program poprawnie konwertuje wiadomości wysłane (skrzynka będzie się wówczas zapewne nazywać Outbox).

Jeśli chodzi o rzeczy, które można by poprawić, to sposób wyświetlania daty oraz oznaczenia statusów i skrzynek (zamiast angielskich nazw można by wprowadzić polskie), ale tu znowu musiałbym mieć informację o wszystkich możliwych angielskich statusach i nazwach skrzynek jakie mogą wystąpić.


(Mr Outlaw) #11

W chwili obecnej nie mam zbytniej możliwości dokopania się do jakiejś wiadomości wychodzącej.

Statusy w języku angielskim nie są w żaden sposób utrudnieniem.

Co do wyświetlanej daty. Aktualnie nie ma większego problemu z chronologicznym sortowaniem wiadomości, ale nie wiem czemu odnoszę wrażenie, że czuł bym się znacznie pewniej gdyby data była wyświetlana w formacie yyyy.mmm.dd aniżeli w dd.mm.yyyy. Jeżeli w oknie aplikacji znalazło by się jeszcze jakiś pole z możliwości wyboru owego formatu wyświetlania daty wówczas zrobiło by się jeszcze bardziej ciekawie.


(Tomek Matz) #12

Aktualna wersja (0.7) Click- plik VMG2TXT.zip.

Krótkie podsumowanie:

  • Pole Binarny format pliku VMG precyzuje, czy pliki vmg w danym katalogu ( Folder ze źródłowymi plikami vmg: ) są binarne, czy też tekstowe (jak się okazuje mogą być takie i takie). Plik vmg można traktować jako tekstowy, gdy da się go otworzyć w np. notatniku (notepad++, itp.) i odczytać jego zawartość (nie ma "krzaczków"). Domyślna wartość tego pola mówi o tym, że pliki vmg w danym katalogu będą traktowane jak binarne. Jeśli konwersja się nie powiedzie, to warto odhaczyć to pole i zobaczyć, czy wówczas konwersja zakończy się powodzeniem.

  • Pole Konwertuj do jednego pliku txt pozwala określić, czy wyniki mają zostać zapisane w jednym pliku txt (zaznaczony), czy też dla każdego pliku vmg ma zostać utworzony osobny plik txt (odznaczony). Parametry Nazwa pliku , Sortuj wg oraz Rosnąco pozwalają określić (w sytuacji zaznaczenia pola Konwertuj do jednego pliku txt ) jaka ma być nazwa tego pliku oraz w jaki sposób mają zostać posortowane wiadomości SMS (wg jakiego pola oraz czy rosnąco, czy też malejąco).

  • Pole Źródłowy format daty to lista formatów daty (oddzielonych znakiem nowej linii), które mogą pojawić się w plikach vmg umieszczonych w danym katalogu. Pole Docelowy format daty pozwala określić jaki będzie format daty w wynikowym(ch) plikach txt. Domyślna wartość tego pola pobierana jest z Ustawień Regionalnych z Panelu Sterowania, ale można ją dowolnie zmieniać.

  • Definiując kształt wynikowego pliku txt można wybrać ścieżkę pliku, całą zawartość pliku VMG, status wiadomości, skrzynkę wiadomości, numer telefonu, datę i oczywiście treść wiadomości :). Przy czym rozmieszczenie tych elementów jest dowolne.

  • Przycisk Resetuj pozwala zresetować wszystkie ustawienia programu do domyślnych.


(Mikelemauricio) #13

Witam,

To bardzo przydatny program. Czy mozna go jeszcze jakos sciagnac z sieci? Bede wdzieczny za pomoc.

Dzieki,

M.