motofan logo
> 

Чтение файлов .sms, сделанных программой SMSBackUp, Уважаемые кодеры, есть просьба!

Doktor Кот
сообщение 26.3.2007, 6:05


Опытный
***

Группа: Пользователи
Сообщений: 106
Регистрация: 12.8.2006
Из: Красноярск
Пользователь №: 94 751
Модель телефона: ROKR E1 with ТП
Прошивка: Electro_R373...49R

Рейтинг: 4.5



Уважаемые кодеры, есть к Вам небольшая просьба! Я уверен, что все Вы знакомы с программой SMSBackup, встроенной в корелет от Valleo: MediaViewer. Она, по приходу смс, считывает ее, и сохраняет в файл на флешку с расширением .sms, в котором находится текст входящей смс. И данный бэкап так же просто можно восстановить в телефон при помощи MediaViewer. Хотелось бы увидеть программу, при помощи которой можно было бы читать эти резервные копии смс на компе! А если она еще и сохранять/восстанавливать будет уметь, то это будет просто классно! Ну что, возьмется кто-нибудь?

Сообщение отредактировал Doktor Кот - 26.3.2007, 6:11
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
2 страниц V  1 2 >  
Ответ в темуСоздание новой темы
Ответов(1 - 39)
Serg c650
сообщение 26.3.2007, 7:28


Поэт?!
*****

Группа: Пользователи
Сообщений: 319
Регистрация: 26.10.2005
Пользователь №: 55 954
Модель телефона: Fly-Ying F003

Рейтинг: 87



Если уважаемый Valleo поделится информацией о алгоритме созранения и восстановления смс, то реализовать это на компе будет не сложно.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Avton
сообщение 26.3.2007, 7:34


Ветеран
*****

Группа: Разработчики
Сообщений: 305
Регистрация: 12.8.2005
Пользователь №: 48 481
Модель телефона: Razr I

Рейтинг: 107.5



Цитата(Serg c650 @ Сегодня, 15:28)

уважаемый Valleo

не знает этой информации. Его уже оч. много раз спрашивали. Плагин просто отсылает команду ОС телефона: Сохранить смс. А в каком формате он ее сохранят пока неизвестно sad.gif

Сообщение отредактировал Avton - 26.3.2007, 7:36
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Doktor Кот
сообщение 26.3.2007, 8:12


Опытный
***

Группа: Пользователи
Сообщений: 106
Регистрация: 12.8.2006
Из: Красноярск
Пользователь №: 94 751
Модель телефона: ROKR E1 with ТП
Прошивка: Electro_R373...49R

Рейтинг: 4.5



Сейчас заметил, что PST работает с файлами с расширением sms, вот только что то не открывает sms от SMSBackup'а, пишет, что формат не опознал... Ну я считаю, если будет большое желание, то сделать можно все! Ведь еще не такие вещи сотворяли с нашей старушкой-моторолой!!
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Serg c650
сообщение 26.3.2007, 11:53


Поэт?!
*****

Группа: Пользователи
Сообщений: 319
Регистрация: 26.10.2005
Пользователь №: 55 954
Модель телефона: Fly-Ying F003

Рейтинг: 87



Киньте сюда какой-нибудь файл *.sms
И чё там написано желательно тоже выложьте, поковыряю
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Valleo
сообщение 1.4.2007, 18:12


Гуру
******

Группа: Почётные мотофаны
Сообщений: 728
Регистрация: 21.10.2005
Из: Находка
Пользователь №: 55 219
Модель телефона: Z3
Прошивка: 0DR

Рейтинг: 692.5



формат СМС очень странный =)
Если смс состоит из 1 части - из нее легко вытащить текст и все остальное.
Если уже из нескольких - то там уже начинаются траблы.

Собственно вот класс в прошивке, разбирающий СМС по частям (и работает он вроде тока для 1-составной смс, так как с многосоставними смс выскакивает ошибка)

Код

public class SMSMessage
{

    public static final byte m_TEXTB = 1;
    public static final byte m_MMSB = 3;
    private byte m_myVersionB;
    private byte m_myEndianB;
    private byte m_myDataaB[];
    private int m_myMsgSizeI;
    private int m_myHdrSizeI;
    private String m_myFolderString;
    private int m_myIdentifierI;
    private byte m_myTypeB;
    private Date m_myTimestampDate;
    private String m_myFromAddressString;
    private String m_myToAddressString;
    private byte m_myStateReadB;
    private byte m_myStateLockB;
    private String m_myBodyTextString;
    private int m_mySegmentaI[];
    static final byte m_CURRENT_VERSIONB = 1;
    static final byte m_BIG_ENDIANB = 1;
    static final byte m_LITTLE_ENDIANB = 2;

    public SMSMessage(byte message[])
        throws IOException, IllegalArgumentException, SecurityException
    {
        m_myDataaB = new byte[message.length];
        System.arraycopy(message, 0, m_myDataaB, 0, m_myDataaB.length);
        int cursor = 0;
        m_myVersionB = m_myDataaB[cursor];
        cursor++;
        if(1 != m_myVersionB)
            throw new IllegalArgumentException("Message representation of version " + m_myVersionB + " is not supported");
        m_myEndianB = m_myDataaB[cursor];
        cursor++;
        if(1 != m_myEndianB)
            throw new IllegalArgumentException("Message data endianess number " + m_myEndianB + " is not supported");
        m_myMsgSizeI = _getShortII(cursor);
        cursor += 2;
        if(m_myMsgSizeI + 4 != message.length)
            throw new IllegalArgumentException("Incorrect message size " + message.length + ", shall be " + (m_myMsgSizeI + 4));
        m_myHdrSizeI = _getShortII(cursor);
        cursor += 2;
        m_myFolderString = getString(cursor);
        cursor += 1 + m_myDataaB[cursor];
        m_myIdentifierI = _getShortII(cursor);
        cursor += 2;
        m_myTypeB = (byte)(m_myDataaB[cursor] & 0xff);
        cursor++;
        if(1 != m_myTypeB && 3 != m_myTypeB)
            throw new IllegalArgumentException("Incorrect type of message " + m_myTypeB);
        long timestamp = getLong(cursor);
        cursor += 8;
        m_myTimestampDate = 0L != timestamp ? new Date(timestamp) : null;
        m_myFromAddressString = getString(cursor);
        cursor += 1 + m_myDataaB[cursor];
        m_myToAddressString = getString(cursor);
        cursor += 1 + m_myDataaB[cursor];
        m_myStateReadB = m_myDataaB[cursor];
        cursor++;
        m_myStateLockB = m_myDataaB[cursor];
        cursor++;
        int count = _getShortII(cursor);
        cursor += 2;
        m_myBodyTextString = null;
        if(count > 0)
        {
            if(1 == m_myTypeB)
                m_myBodyTextString = getString(cursor, count);
            cursor += count;
        }
        count = m_myDataaB[cursor] & 0xff;
        cursor++;
        m_mySegmentaI = new int[count];
        for(int index = 0; index < count;)
        {
            m_mySegmentaI[index] = _getShortII(cursor);
            index++;
            cursor += 2;
        }

    }

    private final int _getShortII(int cursor)
    {
        return (m_myDataaB[cursor + 0] & 0xff) << 8 | m_myDataaB[cursor + 1] & 0xff;
    }

    private final long getLong(int cursor)
    {
        long value = 0L;
        for(int index = 0; index < 8; index++)
        {
            value <<= 8;
            value |= m_myDataaB[index + cursor] & 0xff;
        }

        return value;
    }

    private final String getString(int cursor, int length)
    {
        length >>= 1;
        if(0 == length)
            return null;
        char chars[] = new char[length];
        for(int index = 0; index < length; index++)
            chars[index] = (char)_getShortII(cursor + (index << 1));

        return new String(chars);
    }

    private final String getString(int cursor)
    {
        return getString(cursor + 1, m_myDataaB[cursor] & 0xff);
    }
}


Попробуйте разобраться wink.gif Мож что выйдет.
Тестовую СМС прилагаю (извращенцам не стоит пытаться отыскать там мой номер - изменил в хексе =)) )

Собственно прошивка позволяет делать бэкап исхоящих СМС =) Но их восстановить невозможно.

Сообщение отредактировал Valleo - 3.4.2007, 9:16
Прикрепленный файл 07_12_43.zip   ( 538 байт ) Кол-во скачиваний: 540
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Serg c650
сообщение 2.4.2007, 10:49


Поэт?!
*****

Группа: Пользователи
Сообщений: 319
Регистрация: 26.10.2005
Пользователь №: 55 954
Модель телефона: Fly-Ying F003

Рейтинг: 87



Valleo, спасибо за код, но яву я не знаю(( Щас попробую в файлике поковыряться
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
dvsdigiman
сообщение 2.4.2007, 15:13


Интересующийся
**

Группа: Пользователи
Сообщений: 96
Регистрация: 21.11.2006
Пользователь №: 107 629
Модель телефона: V3i
Прошивка: 03.05R

Рейтинг: 12



А этот код для восстановления смс из файла?
Он предназначен и для длинных смс, т.е. других кусков кода в проше больше нет?

Valleo,[OFF] я конечно не сюда запостил, но добавь все-таки бэкап исходящих...[/OFF]


p/s/ щас попытаюсь разобраться с алгоритмом...
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
dvsdigiman
сообщение 2.4.2007, 19:59


Интересующийся
**

Группа: Пользователи
Сообщений: 96
Регистрация: 21.11.2006
Пользователь №: 107 629
Модель телефона: V3i
Прошивка: 03.05R

Рейтинг: 12



Код простенький, только вроде не хватает чего-то... Все обрывается...

Valleo, может есть еще немножко кода? И еще если есть таблицу кодировки Unicode BigEndian...
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Valleo
сообщение 3.4.2007, 7:13


Гуру
******

Группа: Почётные мотофаны
Сообщений: 728
Регистрация: 21.10.2005
Из: Находка
Пользователь №: 55 219
Модель телефона: Z3
Прошивка: 0DR

Рейтинг: 692.5



Serg c650,
Ну С++ тоже самое все )

dvsdigiman, Это парсер СМС - т.е. он парсит СМС на составляющие, и ему не важно односоставная или несколькисостовная смс. Но с несколькисоставными он не фурычит - так как не возвращает текст. В том то и дело что этим кодом тока односоставные смс читать.


dvsdigiman,
Я выдрал кусок из класса который касается именно парсинга смс по составляющим. Остальные вспомогательные функции, такие как getText() которая вернет m_myBodyTextString, я убрал так как для вас они не важны.
таблиц таких у меня нет
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Serg c650
сообщение 3.4.2007, 8:58


Поэт?!
*****

Группа: Пользователи
Сообщений: 319
Регистрация: 26.10.2005
Пользователь №: 55 954
Модель телефона: Fly-Ying F003

Рейтинг: 87



Valleo, а я в Си не шарю, тока дельфи((

В принципе прогу можно сделать в таком виде:
Номер того кому пишем
Сама смска

Кнопочку для скачки и т.д. и т.п.

Больше ни чё не надо??
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Valleo
сообщение 3.4.2007, 9:19


Гуру
******

Группа: Почётные мотофаны
Сообщений: 728
Регистрация: 21.10.2005
Из: Находка
Пользователь №: 55 219
Модель телефона: Z3
Прошивка: 0DR

Рейтинг: 692.5



Serg c650,
Думаю программу надо такую:
по меню: Файл->Открыть, Файл->Сохранить как txt, Файл->Закрыть, ну и About кнечно же =)
по самой функциональности:
поля "Date", "From", "To", "Parts" (сколько частей смс)
и поле с текстом смс.

В тхт сохранять все поля поочереди через перенос строки.
Ну и фиксированный размер окна. Собственно это ToDo для красивой работоспособной программы.

Как "наворот" можно сделать папочку-архив, куда будут скидываться папки с смс (с одним, двумя, тремя и т.д. подуровнями), и по которым можно будет внутри программы лазить (в виде дерева к примеру панелька слева). Для удобства использования наворота - всплывающее окошко над смс в виде облачка, которая под курсором, в котором поле From и кусочек текста смс в несколько строчек. Думаю если делать навигацию по папке - то только по фиксированной, а не Мой компьютре и так далее как в проводнике wink.gif

Дизайн думаю не стоит выдумывать - пусть держит стандартный виндосовский.

Вот собственно что мне бы хотелось видеть в такой программе wink.gif

Сообщение отредактировал Valleo - 3.4.2007, 9:25
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Serg c650
сообщение 3.4.2007, 17:18


Поэт?!
*****

Группа: Пользователи
Сообщений: 319
Регистрация: 26.10.2005
Пользователь №: 55 954
Модель телефона: Fly-Ying F003

Рейтинг: 87



Valleo, про навороты не совсем понятно. Ты хочешь, чтоб прога скинула весь бэкап в папку, а потом пользователь оттуда уже выбирал бы смски для чтения?
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
dvsdigiman
сообщение 3.4.2007, 19:59


Интересующийся
**

Группа: Пользователи
Сообщений: 96
Регистрация: 21.11.2006
Пользователь №: 107 629
Модель телефона: V3i
Прошивка: 03.05R

Рейтинг: 12



Valleo, а куда же тогда дальше передается m_mySegmentaI и m_myBodyTextString?

И верно ли, что если m_myTypeB=1 и Count>0, то смска одиночная, и вслед за Count идет само тело смски?
Иначе m_mySegmentaI заполняется набором непонятных чисел...

У кого есть инфа как переводить UTF-8 в Win1251?
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Serg c650
сообщение 4.4.2007, 10:16


Поэт?!
*****

Группа: Пользователи
Сообщений: 319
Регистрация: 26.10.2005
Пользователь №: 55 954
Модель телефона: Fly-Ying F003

Рейтинг: 87



Цитата
У кого есть инфа как переводить UTF-8 в Win1251?

На форумы по программированию зайди
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Valleo
сообщение 4.4.2007, 12:00


Гуру
******

Группа: Почётные мотофаны
Сообщений: 728
Регистрация: 21.10.2005
Из: Находка
Пользователь №: 55 219
Модель телефона: Z3
Прошивка: 0DR

Рейтинг: 692.5



Цитата
Valleo, про навороты не совсем понятно. Ты хочешь, чтоб прога скинула весь бэкап в папку, а потом пользователь оттуда уже выбирал бы смски для чтения?

Нет. Чтобы например была папка рядом с программой, в которую пользователь сам (вручную, незачем усложнять программу вскими импортами) копирует папки с смсками или сами смски. А прога уже работает с этой папкой, выстраивая дерево файлов и папок начиная с именно этой папки...
Ну надеюсь ты понял =)

Добавлено позже (4.4.2007, 23:02):
Цитата
Иначе m_mySegmentaI заполняется набором непонятных чисел...


Сорьки, вот кусок кода:

Код

   public byte getType()
    {
        return m_myTypeB;
    }

    public Date getTimestamp()
    {
        return m_myTimestampDate;
    }

    public String _getFromAddressvString()
    {
        return null != m_myFromAddressString ? new String(m_myFromAddressString) : null;
    }

    public String _getToAddressvString()
    {
        return null != m_myToAddressString ? new String(m_myToAddressString) : null;
    }

    public int getSize()
    {
        return m_myDataaB.length;
    }

    public int _getSegmentsvI()
    {
        return m_mySegmentaI.length;
    }

    public String _getBodyTextvString()
        throws IllegalArgumentException
    {
        if(1 == m_myTypeB)
            return m_myBodyTextString;
        if(3 == m_myTypeB)
            return null;
        else
            throw new IllegalArgumentException("Wrong message type: not textual message");
    }

    public boolean _isUnreadvZ()
    {
        return 0 == m_myStateReadB;
    }

    public boolean _isLockedvZ()
    {
        return m_myStateLockB > 0;
    }

думаю из этого понятно как получается кол-во сегментов wink.gif
Ну и все остальное как получается...

Добавлено позже (4.4.2007, 23:06):
Цитата
И верно ли, что если m_myTypeB=1 и Count>0, то смска одиночная, и вслед за Count идет само тело смски?

Видимо получается так...
Но если смс многосоставная - это там ужас какой то =)

И вот еще:

Код

    public static char byte2Char(int i){
        if(i < 0) i += 256;
        char c = (char)i;
        if(c == '\n') return c;
        if(c == '\r') return c;
        if(c == '\t') return c;
        if(c < ' ') return ' ';
        if(c < '\200') return c;
        if(i == 168) return '\u0401';
        if(i == 184) return '\u0451';
        if(i == 179) return '\u0456';
        if(i == 178) return '\u0406';
        if(i == 191) return '\u0457';
        if(i == 175) return '\u0407';
        if(i == 186) return '\u0454';
        if(i == 170) return '\u0404';
        if(i >= 192 && i <= 255) return (char)(i + 848);
        else return ' ';
    }

    public static int char2Byte(char c){
        char c1 = c;
        if(c == '\n') return c;
        if(c == '\r') return c;
        if(c == '\t') return c;
        if(c < ' ')   return 32;
        if(c < '\200') return c;
        if(c1 == '\u0401') return 168;
        if(c1 == '\u0451') return 184;
        if(c1 == '\u0456') return 179;
        if(c1 == '\u0406') return 178;
        if(c1 == '\u0457') return 191;
        if(c1 == '\u0407') return 175;
        if(c1 == '\u0454') return 186;
        if(c1 == '\u0404') return 170;
        if(c1 >= '\u0410' && c1 <= '\u044F') return c1 - 848;
        else return 32;
    }

//*************************************************//

    public static String ascii2Utf(String s){
        String s1 = "";
        try{
            byte abyte0[] = s.getBytes();
            for(int i = 0; i < abyte0.length; i++) s1 += String.valueOf(byte2Char(abyte0[i]));
        }
        catch(Exception exception){
            s1 = "";
        }
        return s1;
    }

    public static String utf2Ascii(String s){
        String s1 = "";
        try{
            char ac[] = s.toCharArray();
            for(int i = 0; i < ac.length; i++) s1 += (char)char2Byte(ac[i]);
        }
        catch(Exception exception){
            s1 = "";
        }
        return s1;
    }


Вроде то что ты ищешь =)
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Serg c650
сообщение 4.4.2007, 16:44


Поэт?!
*****

Группа: Пользователи
Сообщений: 319
Регистрация: 26.10.2005
Пользователь №: 55 954
Модель телефона: Fly-Ying F003

Рейтинг: 87



Valleo, понял, спасибо)) А какая кодировка в этих файлах (*.sms)?
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
dvsdigiman
сообщение 4.4.2007, 17:19


Интересующийся
**

Группа: Пользователи
Сообщений: 96
Регистрация: 21.11.2006
Пользователь №: 107 629
Модель телефона: V3i
Прошивка: 03.05R

Рейтинг: 12



пойду жевать...

Serg c650, кодировка Unicode - UCS-2 Big Endian
Вот только начальная позиция текста может быть разной,
как раз-таки из-за этого в прогах типа AkelPad пропадают куски текста...

Добавлено позже (4.4.2007, 21:52):
Получается примерно так:
0. Начало (4 байта)
1. Заголовок
2. хз какие-то блоки wink.gif

В начале:
0000: byte -> версия (=01)
0001: byte -> кодировка (=01)
0002: int -> [размер_файла]-4

В заголовке:
0004: int -> размер заголовка (фактически численно совпадает со смещением первого "хз_блока")
0006: string -> папка (Inbox,...)
?: int -> идентификатор (?)
?+2: byte -> тип (=01 или 03) (?)
?+3: long -> дата+время (8 байт)
?+11: string -> отправитель (например, sms://+1234567890)
??: string -> получатель (обычно пустая строка - 1 байт = 00)
???: byte -> прочитано/непрочитано (=00 - прочитано, другие значения не смотрел...)
???+1: byte -> заблокировано/незаблокировано (=00 - нет)
???+2: int -> "count" => Если count>0, то смска одиночная и сразу за count идет тело смски длиной count байт (реальная длина - count/2 символов), иначе ничего...
????: byte -> N - кол-во блоков, равное кол-ву страниц смс
???+1: -> таблица из N значений (int), каждое значение - размер блока.
Т.е. размеры_всех_блоков + размер_заголовка + размер начала (=4) = размер файла

Далее идут один за другим N блоков...
Вот тут пока что Ж*ПА.... Если приглядется, то в блоках, кроме текста присутствует также номер отправителя и номер смс-центра, ну и есессно куча всякой, пока непонятной хрени...

Если смска одиночная, то тело смски помещается в заголовок, при этом его длина входит в длину заголовка... Кодировка при этом - что-то подобное на юникод, но не пойму что... Также при этом все-равно присутствует 1 хз_блок, в котором тоже присутствует текст смски (уже в кодировке юникод)

Возможно хз_блоки имеют структуру схожую со структурой симов 007D, вот только размер блоков по 600-800 байт...
Также возможно структура блоков такая же, которая приходит от оператора (тут уже надо pdu глянуть)

Valleo, поищи, может где-нибудь все таки есть парсинг этих хз_блоков
И вообще может выложи то, откуда ты выдирал этот класс...
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Valleo
сообщение 4.4.2007, 21:49


Гуру
******

Группа: Почётные мотофаны
Сообщений: 728
Регистрация: 21.10.2005
Из: Находка
Пользователь №: 55 219
Модель телефона: Z3
Прошивка: 0DR

Рейтинг: 692.5



dvsdigiman,
Я уже все выложил =)

?+2: byte -> тип (=01 или 03) (?)
01 - SMS
03 - MMS

В смс пишется обязательно насколько я понял номер смс-цента, номер отправителя и номер получателя. (т.е. 3 номера)

Про блоки - вот тоже не понимаю их структуры... Но то что кол-во блоков = количество смс в 1 смс-ке это факт. Значит надо парсить каждый блок чтобы извлечь само сообщение.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Serg c650
сообщение 5.4.2007, 11:07


Поэт?!
*****

Группа: Пользователи
Сообщений: 319
Регистрация: 26.10.2005
Пользователь №: 55 954
Модель телефона: Fly-Ying F003

Рейтинг: 87



Чё-то не получается у меня эти каракули из файла в ANSI перевести. Кто в Delphi это умеет делать, помогите.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
dvsdigiman
сообщение 5.4.2007, 13:33


Интересующийся
**

Группа: Пользователи
Сообщений: 96
Регистрация: 21.11.2006
Пользователь №: 107 629
Модель телефона: V3i
Прошивка: 03.05R

Рейтинг: 12



Sergc650, Valleo уже выложил utf2ascii:

Короче берешь по два байта и переводишь так:
$04 01 -> #168
$04 51 -> #184
$04 56 -> #179
$04 06 -> #178
$04 57 -> #191
$04 07 -> #175
$04 54 -> #186
$04 04 -> #170
$00 20 -> #32
от $04 10 до $04 4F -> вычитаешь из числа 848
---------------------------------------------------------
Щас повытаскиваю все xз_блоки из всех файлов *.sms и буду сравнивать...

Направьте меня куда-нибудь, где есть инфа про PDU...


Сообщение отредактировал dvsdigiman - 5.4.2007, 13:39
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Ezik
сообщение 5.4.2007, 17:52


Из тумана
****

Группа: Пользователи
Сообщений: 204
Регистрация: 9.12.2004
Из: Казань city
Пользователь №: 25 826
Модель телефона: nokia n72

Рейтинг: 85.5



Цитата(dvsdigiman @ 5.4.2007, 17:33) *

Направьте меня куда-нибудь, где есть инфа про PDU...

shuffle.gif это не подойдет?
http://www.ixbt.com/mobile/review/comp-sms.shtml
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Serg c650
сообщение 6.4.2007, 2:46


Поэт?!
*****

Группа: Пользователи
Сообщений: 319
Регистрация: 26.10.2005
Пользователь №: 55 954
Модель телефона: Fly-Ying F003

Рейтинг: 87



dvsdigiman, в дельфи есть встроеные функции, только у меня они не работают((
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
dvsdigiman
сообщение 6.4.2007, 5:28


Интересующийся
**

Группа: Пользователи
Сообщений: 96
Регистрация: 21.11.2006
Пользователь №: 107 629
Модель телефона: V3i
Прошивка: 03.05R

Рейтинг: 12



Как я понял, в тех блоках полезная информация (текст сообщения) находится только в конце блока, остальное (кроме номеров отправителя/получателя/смс-центра) - случайный мусор из симов...
Осталось научится определять смещение начала текста в данном блоке или хотя бы размер куска текста в данном блоке...

Sergc650, какая именно делфи, какие именно функции?

Ezik, для начала пойдет...

Valleo, можешь ли сделать отдельно маленькую прогу для бэкапа черновых или исходящих. Так хоть можно будет экспериментировать (без затрат денюжков) - изменил/добавил/удалил одну буковку, сохранил, сделал бэкап и опять сидишь изучаешь...

Сообщение отредактировал dvsdigiman - 6.4.2007, 5:57
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Valleo
сообщение 6.4.2007, 9:37


Гуру
******

Группа: Почётные мотофаны
Сообщений: 728
Регистрация: 21.10.2005
Из: Находка
Пользователь №: 55 219
Модель телефона: Z3
Прошивка: 0DR

Рейтинг: 692.5



dvsdigiman,
Сделаю для VC бэкапер всех остальных папок (будет отдельным плагином)
Прикрепил плагин для VC. Делает бэкап СМС из ВСЕХ папок, но ТОЛЬКО смс. Папки создаются там же, куда бэкапер сливает входящие (путь указан в txt файле в плагине).
Это Invisible плагин.
Положить оба класса в папку
Plugins/SMSBackup/
в VC и прописать в InvisiblePlugin.txt:
SMSBackupAll|Plugins.SMSBackup.SMSBackupAll

Он будет всегда висеть в фоне, я просто не замудрялся с этим.
Бэкап делает при запуске плагина из VC (появится окошко с процессом, когда скроется - бэкап сделан)

Сообщение отредактировал Valleo - 6.4.2007, 10:10
Прикрепленный файл SMSBackup.zip   ( 1.77 килобайт ) Кол-во скачиваний: 477
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
dvsdigiman
сообщение 6.4.2007, 11:19


Интересующийся
**

Группа: Пользователи
Сообщений: 96
Регистрация: 21.11.2006
Пользователь №: 107 629
Модель телефона: V3i
Прошивка: 03.05R

Рейтинг: 12



Valleo, а аналогичное для MV можно?
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Valleo
сообщение 6.4.2007, 14:14


Гуру
******

Группа: Почётные мотофаны
Сообщений: 728
Регистрация: 21.10.2005
Из: Находка
Пользователь №: 55 219
Модель телефона: Z3
Прошивка: 0DR

Рейтинг: 692.5



dvsdigiman,
Для MV лень писать... Там таким способом не отделаешься =)
И вообще привыкайте к новинками =) Скоро от MV отвыкать придется...

Сообщение отредактировал Valleo - 6.4.2007, 14:14
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Serg c650
сообщение 6.4.2007, 17:34


Поэт?!
*****

Группа: Пользователи
Сообщений: 319
Регистрация: 26.10.2005
Пользователь №: 55 954
Модель телефона: Fly-Ying F003

Рейтинг: 87



dvsdigiman, Delphi - это среда для разработки прог))
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
dvsdigiman
сообщение 6.4.2007, 18:31


Интересующийся
**

Группа: Пользователи
Сообщений: 96
Регистрация: 21.11.2006
Пользователь №: 107 629
Модель телефона: V3i
Прошивка: 03.05R

Рейтинг: 12



Встречайте первый тест-релиз SMSBackup Viewer:

Минимум интерфейса, минимум функциональности.
Прога только для просмотра *.sms файлов, в т.ч. многостраничных

Минусы:
- только для type01 файлов (т.е. SMS)
- не показывает картинки эмоций, также как и ems-картинки (и не будет в скором времени)
- не показывает дату/время (не могу я пока javaвский Date в делфи прикрутить)
- не малый размер для проги - писал на делфях (VCL) только для простоты и быстроты

Еще раз повторяю - это тест версия. Для одиночных смсок в данной версии выдает два текста - один из заголовка, второй из сегмента

Big thx to Valleo...

p/s/
Valleo, не могу пока перейти на VC из-за отсутствия там файлменеджера...

Serg c650, я в курсе что такое дельфи, я спрашивал в какой версии ты работаешь...

Сообщение отредактировал dvsdigiman - 6.4.2007, 18:36
Прикрепленный файл SMSBackup_Viewer_001test.zip   ( 132.13 килобайт ) Кол-во скачиваний: 765
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Ezik
сообщение 6.4.2007, 20:02


Из тумана
****

Группа: Пользователи
Сообщений: 204
Регистрация: 9.12.2004
Из: Казань city
Пользователь №: 25 826
Модель телефона: nokia n72

Рейтинг: 85.5



Цитата(dvsdigiman @ 6.4.2007, 22:31) *

Встречайте первый тест-релиз SMSBackup Viewer:
Минимум интерфейса, минимум функциональности.
Прога только для просмотра *.sms файлов, в т.ч. многостраничных

замечательно работает, многостраничные тоже без проблем. жду продолжения wink.gif
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Serg c650
сообщение 7.4.2007, 2:01


Поэт?!
*****

Группа: Пользователи
Сообщений: 319
Регистрация: 26.10.2005
Пользователь №: 55 954
Модель телефона: Fly-Ying F003

Рейтинг: 87



dvsdigiman, уже собственно и не надо, т.к. ты взялся за разработку.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Valleo
сообщение 7.4.2007, 4:28


Гуру
******

Группа: Почётные мотофаны
Сообщений: 728
Регистрация: 21.10.2005
Из: Находка
Пользователь №: 55 219
Модель телефона: Z3
Прошивка: 0DR

Рейтинг: 692.5



Прикрепил СМС которая не открывается. Это информационное сообщение с номера 502 но думаю читабельность их стоит сделать.
Далее лучше сделать так чтобы индиетичный текст он не отображал, т.е. к примеру:
Цитата
Я уже дома
*****
Я уже дома

Псалось просто "Я уже дома". Думаю сравнение строк на индиетичность сделать легко.
Далее а где поле "получатель"? =)
Когда будет кнопка "Сохранить в txt"? =))))
И еще хотелось бы фичу такую - перетаскиваешь смс из папки прямо в программу и она открывается...

НО главное исправить считывание смс.
Народ не стесняйтесь, выкладывайте смс которые не читаются программой (но читаются в телефоне)
Прикрепленный файл 01_24_08.zip   ( 444 байт ) Кол-во скачиваний: 156
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Ezik
сообщение 7.4.2007, 6:17


Из тумана
****

Группа: Пользователи
Сообщений: 204
Регистрация: 9.12.2004
Из: Казань city
Пользователь №: 25 826
Модель телефона: nokia n72

Рейтинг: 85.5



Цитата(Valleo @ 7.4.2007, 8:28) *

Прикрепил СМС которая не открывается. Это информационное сообщение с номера 502 но думаю читабельность их стоит сделать.

у меня сервисные сообщения открывает, но текст отбражается не полностью
https://forum.motofan.ru/index.php?act=Attach&type=post&id=118111
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
dvsdigiman
сообщение 7.4.2007, 9:18


Интересующийся
**

Группа: Пользователи
Сообщений: 96
Регистрация: 21.11.2006
Пользователь №: 107 629
Модель телефона: V3i
Прошивка: 03.05R

Рейтинг: 12



Valleo, это только тест версия, как раз таки для того, чтобы народ выкладывал не открывающиеся смски.
То, что для одиночных отображается два текста, так это я пока для себя сделал. И сохранение в txt пока убрал.

Как я ни смотрел, но номера получателя я так и не смог найти в *.sms - только отправитель и смс-центр - их не сложно достать. Номер получателя я видел только в забэкапленных исходящих, и то с парой отсутствующих цифр.

С информационными сообщениями (именно от оператора) на английском языке я пока разбираюсь, т.к. там пока непонятная кодировка - совсем не Unicode. Хотя входящие смс только с латинскими символами с обычных номеров тоже приходят в unicode (по два байта на символ).

Сейчас делаю упор не на функциональность, а на более подробное изучение структуры файла.
Так что пока не изучу формат в более-менее нормальном виде, всяких штук, типа drag&drop и дерева смс не будет.
Пока скажу только, что прога открывает файлы *.sms, переданные в качестве параметра.

p/s/
Не стесняйтесь выкладывать свои нечитаемые sms-файлы. Кто не хочет разглашения своего номера лучше не меняйте его вручную, а отправляйте файл в личку... Естественно вместе с файликом пишите текст сообщения...

p/p/s Если у кого-нибудь показываются тестовые сообщения типа:
"Different ID in ... block", "Checkpoint 5 not found in ... block", "Different block number in ... block" тоже выкладываем свои файлики...


Добавлено позже (7.4.2007, 14:10):
Вот небольшой апдейт - улучшено считывание смсок...

Сообщение отредактировал dvsdigiman - 7.4.2007, 11:13
Прикрепленный файл SMSBackup_Viewer_002test.zip   ( 132.3 килобайт ) Кол-во скачиваний: 245
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Valleo
сообщение 7.4.2007, 11:29


Гуру
******

Группа: Почётные мотофаны
Сообщений: 728
Регистрация: 21.10.2005
Из: Находка
Пользователь №: 55 219
Модель телефона: Z3
Прошивка: 0DR

Рейтинг: 692.5



dvsdigiman,
Пооткрывал кучу СМС - вроде все пашут без проблем...
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
dvsdigiman
сообщение 8.4.2007, 16:32


Интересующийся
**

Группа: Пользователи
Сообщений: 96
Регистрация: 21.11.2006
Пользователь №: 107 629
Модель телефона: V3i
Прошивка: 03.05R

Рейтинг: 12



Valleo, все - да не все...

Открываются только смски с кодировкой Unicode, а сообщения с 7-битной кодировкой - нет - пока разбираюсь...
И с датой пока разбираюсь, т.к. есть различия между хранением времени в java (Date) и в винде (filetime) - а именно различные точки отсчета (начала)...

Valleo, исчо есть проблема - SMSBackup не хочет бэкапить смски размером 4 и более страниц...
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Valleo
сообщение 9.4.2007, 1:24


Гуру
******

Группа: Почётные мотофаны
Сообщений: 728
Регистрация: 21.10.2005
Из: Находка
Пользователь №: 55 219
Модель телефона: Z3
Прошивка: 0DR

Рейтинг: 692.5



Цитата
исчо есть проблема - SMSBackup не хочет бэкапить смски размером 4 и более страниц...

Ну эт уже я не могу исправить увы. Это уже сами классы такие.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
dvsdigiman
сообщение 9.4.2007, 13:05


Интересующийся
**

Группа: Пользователи
Сообщений: 96
Регистрация: 21.11.2006
Пользователь №: 107 629
Модель телефона: V3i
Прошивка: 03.05R

Рейтинг: 12



Щас попробую сделать прогу "сообщение" -> "*.sms"
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Unlimit
сообщение 9.4.2007, 14:27


Новичок
*

Группа: Пользователи
Сообщений: 23
Регистрация: 4.8.2006
Пользователь №: 93 764
Модель телефона: Nokia N73
Прошивка: Symbian OS v9.1

Рейтинг: 2.5



dvsdigiman,
По пводу интерфейса, было бы не плохо если бы ты сделал его как и в P2KTools в АТ режиме, только с левого бока дерево каталогов как писал Valleo.
Прога нужная! Спасибо за то, что ты взялся её делать.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Serg c650
сообщение 9.4.2007, 15:13


Поэт?!
*****

Группа: Пользователи
Сообщений: 319
Регистрация: 26.10.2005
Пользователь №: 55 954
Модель телефона: Fly-Ying F003

Рейтинг: 87



Unlimit, а файл в АТ режиме не скачаешь(
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Чтение файлов .sms, сделанных программой SMSBackUp, Уважаемые кодеры, есть просьба! · Программы для работы со справочником и SMS-сообщениями · Forum
 

2 страниц V  1 2 >
Ответ в темуСоздание новой темы
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 18.7.2025, 8:28

Форум живёт: