Hirdetés

Aktív témák

  • PeliScan

    addikt

    Sziasztok! :)

    Nos, kifejtem bővebben a címet. Vagy egy telefonom. SL45. Arcíválja az smseseket. Ám ritkahülye módon. :(

    A kimenőket *.smo a bejövőket *.smi formában, és a tartalmazott karakterek számától függetlenül mindig 181 bájtot foglalnak, ebben benne van a kb 11 bájtos telefonszám is, illetve az időpont, ez szerintem olxan 8 bájtot foglalhat, tehát majdnem összejön a 181.

    Szimplán ha megnyitom, nem látszik az sms szövege, csak ascii maszat. Könnyen lehet, h csak vmi különleges kódolású editor szüxségeltetne hozzá, sajnos nem vagyok ebben vmi járatos, tehát még mielőtt nagyban elkezdenétek segíteni (már ha egyáltalán :B) könnyen lehet h vmi nagyon egyszerű a titok kulcsa.

    Mutatok két példát!
    [L]http://peliscan.fpn.hu/sms1.smi[/L] >> sms1.smi >> amit akpni kellne belőle >>
    ''Udv! Na figyelj, beraktam a cuccost, szal' 2 tajekan a blahanal, ott a padoknal, borkabat lesz rajtam es egy springfield szatyor, megismersz biztosan. Csao''

    [L]http://peliscan.fpn.hu/sms2.smi[/L] >> sms2.smi >> amit akpni kellne belőle >>
    ''Köszönöm szépen kedves baratom én is nagyon boldog békés ünnepeket kivanok és persze sok ajandékot.Szontesz''

    Nomost, vagy vagy 2000+ efféle file. :o Még ha meg is tudnám netán nyitni pl (télleg csak példa, ezzen nem sikerült!) Total Commanderrel, akkor sem jelente ez vmi nagy megoldást, hisz 2000-2500 file megnyitás, kopipésztelése, elmentése rengeteg idő.

    Nem tom, elképzelhető lenne-e esteleg... :B netán... :B akinek úgyis vmi hasonló a hobbija... :U hogy írna vmi teljesen egyszerű parancssoros progit, amit ráeresztek a könyvtárra, és mindet átalakítja txt-vé? :U
    Vhogy így converter.exe *.smo ...

    Nem tom, mit gondoltok róla. :B
    Anyway, előre is köszönök minden hozzászólást!

  • Bazsesz

    őstag

    válasz PeliScan #1 üzenetére

    Nem adtak hozzá egyData Exchange nevű progit? Azzal ki lehet TXT-re nyomatni. hm?

    Nekem ME45-öm van (majdnem ugyanaz), és én azzal szoktam.

    Üdv: Balu

    ''Játék a szavakkal mintájára Dúd a betűkkel :d Előadja Bazsesz művészúr :)'' by Esmein

  • Loha

    veterán

    válasz PeliScan #1 üzenetére

    Abban a progiban amivel lemásolod az *.smo *.smi fájlokat, fent a menüben ki kell pipálni azt, hogy convert files, vagy vmi hasonló, és akkor amikor lemásolod, akkor már txt-ben fogja lementeni...

    Szóval az a lényeg, hogy a nem kell hozzá külön progi! :))

  • X-COM

    nagyúr

    peliscan,

    én ezt a progit egyszer már mutattam Neked [L]http://sl45.darkzone.lu/download_system/load.php?action=download&medss=c8f13711e92a4170e4c9f438d414d677&id=11&mekat=Misc[/L]

    illetve a convertes dolgot is mondtam már
    :))

    Blog:http://ikszkom.freeblog.hu RSS:http://ikszkom.freeblog.hu/rss.xml http://live.xbox.com/member/ikszkom

  • atus

    senior tag

    Nagyon komoly, hogy még az aláírásodba is betetted... :DDD

    Ez bebizponyított tény, még a TV-ben is bemutatták! - by klepto

  • Bazsesz

    őstag

    válasz PeliScan #1 üzenetére

    Aham, most lestem, hogy az ékezetes betűket nekem az Data Excange (vagy mi a rák) nem írja a TXT-be.

    Most megnézem, hogy milyen az a progi, amit X-COM ajánlott.

    Üdv: Balu

    ''Játék a szavakkal mintájára Dúd a betűkkel :d Előadja Bazsesz művészúr :)'' by Esmein

  • Bazsesz

    őstag

    válasz atus #5 üzenetére

    Peliscan így szokta. És lehet, hogy igaza van. :B

    ''Játék a szavakkal mintájára Dúd a betűkkel :d Előadja Bazsesz művészúr :)'' by Esmein

  • X-COM

    nagyúr

    válasz Bazsesz #6 üzenetére

    ékezeteket az sem kezeli rendesen, de azt utána már egyszerű szövegbedarálással ki lehet cserélgetni

    pontosítok a notepad megjeleníti ékezethelyesen

    [Szerkesztve]

    Blog:http://ikszkom.freeblog.hu RSS:http://ikszkom.freeblog.hu/rss.xml http://live.xbox.com/member/ikszkom

  • PeliScan

    addikt

    Köszönöm az eddigieket. :)

    Igen, a ki pipácskát már elég rég felfedeztem, de egyszerűen nem működik. Pedig annyira szeretném!! :O Eddig már WinXP reinstall is volt miatta, de semmi eredmény. Egyszerűen egynél több smst nem hajlandó konvertálni. Ha megpróbálom, elkezdi a processt, de odáig sem jut el, hogy a hátralévő időt kírja, pedig egyszer ditrekt hagytam, hadd gondolkozzon 3-4 órát, de nem változtott az álláspontja, cseszik rám. :)

    X-COM, köszönöm a programot, emléxenm rá h adtad, de akkor sem sikerült működésre bírni, elképzelhető h a nyelvi nehézségek miatt, de nem ment, és van egy rossz előérzetem, h az ékezetekkel nem boldogulna. Ezen kívül még vagy egy grafikus program is, hasonló funkcióval, de az sem kezeli az ékezeteket, sőt, az ékezetes nevű sms-eknél haltol a program. Felvettem a (német) készítőjével emailban a kontaktot, de amikro megemlítettem neki az internészönöl verzió szüxségességét, nem írt vissza. :) (:()

  • PeliScan

    addikt

    Látjátok, elvettétek a kedvét a sok lánglelű codernek azzal, h elvettétek a cél értemét, hisz elvileg van már ilyen program. De ne tántorítson el ez senkit sem, sőt inkább töltön el bennetek lelkesedéssel és reménnyel hisz ezek a programok nem működnek, rosszak, ám bizonyítják, h meg lehet csinálni!

    Nem lehetetlen tehát! Közel a cél! Hajrá testvéreim! :)

  • Phantom

    tag

    válasz PeliScan #11 üzenetére

    Hello

    Kattints a linkre, megtalálod az SMS-ek felépítését. Ezen a nyomon el lehet indulni.

    [L]http://www.dreamfabric.com/sms/[/L]

    Tudod, hogy nincs bocsánat...

  • PeliScan

    addikt

    válasz Phantom #12 üzenetére

    Köszönöm a linekt, érdekes volt, bár sajnos semmi köze az aktuális problémához, mivel itt már teljesen mind1 hogy ezek tulképp sms-ek; ezek 181 fájlos szövegfájlok vmi teljesen hülye, ám mégis primitív kódolásban. :(

  • elttiL

    senior tag

    hello.
    Olyan programod van, ami teljesen mindegy, hogy milyen bonyolult módon, de megmutatja a *.smi-ből, hogy: pl. az sms1.smi 01.12.2003 08:54 +367029563__ számról küldték vagy te írtad erről stb.? amit találtam az--> igaz görög!!! nyelvű és sl45 formája van, úgyhogy lehet, hogy egy kicsit nehézkes kezelni, ja és nem möködik a kopipászte...

    [Szerkesztve]

  • PeliScan

    addikt

    válasz elttiL #14 üzenetére

    Köszi, igen, efféle van... a célom a 2000+ file txt-vé konvertálása (lenne :O)

  • elttiL

    senior tag

    válasz PeliScan #15 üzenetére

    oké. Tudod mit, nem tudok ilyen prg-t írni, de túrom egy kicsit Neked a netet,
    -->mert megérdemled

  • PeliScan

    addikt

    válasz elttiL #16 üzenetére

    Köszönöm szépen! :)

    Bár én eléggé átkutattam a hálót, és nem nagyon találtam, csak azokat amiket már említettem. Most nekiállok, és elkzdek ezekkel játaszodni, emrt ugy néz ki, más megoldás nem nagyon fog születni. :) Legrosszabb esetben is 2500 fájlban kell ''visszaírnom'' az ékezeteket, ami (ha egyet pl 20mp alatt csinálok meg) 14 óra alatt meg is van, ami ha naponta csinálok 1 órát, két hét alatt meg is van. :)

    Aztán meg nem hagyom, hogy így felgyűljön a cucc, és akkro nem kell egyszerre ennyit konvertálgatni.

  • TheVeryGuest

    senior tag

    válasz PeliScan #17 üzenetére

    Cső sikerült összedobnom valamit. A mellékelt message-eket dekódolja. Stimmelnek az adatok?

    bash-2.05a$ ./smsconv sms1.smi
    Using sms1.smias input file.
    Decoding...
    [Decoder]: SMS Center: 36709996500
    [Decoder]: Sender: 36702956343
    [Decoder]: TimeStamp: 03.12.01. 08:54:12, GMT + 1
    [Decoder]: SMS length: 155
    Udv! Na figyelj, beraktam a cuccost, szal' 2 tajekan a blahanal, ott a padoknal,
    borkabat lesz rajtam es egy springfield szatyor, megismersz biztosan. Csao
    <OK> SMS decoded successfully
    bash-2.05a$ ./smsconv sms2.smi
    Using sms2.smias input file.
    Decoding...
    [Decoder]: SMS Center: 36709996500
    [Decoder]: Sender: 36705136768
    [Decoder]: TimeStamp: 03.12.24. 16:33:57, GMT + 1
    [Decoder]: SMS length: 107
    Köszönöm szépen kedves baratom én is nagyon boldog békés ünnepeket kivanok és persze
    sok ajandékot.Szontesz
    <OK> SMS decoded successfully
    bash-2.05a$

    [Szerkesztve]

    “Perfection is attained not when there is nothing more to add, but when there is nothing more to remove” Antoine de Saint-Exupéry

  • PeliScan

    addikt

    válasz TheVeryGuest #18 üzenetére

    Szia! :) Nagyon köszi h fogalkoztál a gondommal!

    Stimmelnek az adatok! Te írtál vmi prgit, v találtal vmit a neten?

  • TheVeryGuest

    senior tag

    válasz PeliScan #19 üzenetére

    Írtam, a GSM-es doksi alapján, amit valaki linkelt. Télleg GSM formátumú a cucc, és 7 bitesek a karakterek ezért olyan olvashatatlan. Nem sokat teszteltem, a kódot, de odaadom a forrást és csinosítgathatod ha akarod.

    Linux-on született 2.96-os g++-szal, de biztos le tudod fordítani VC6.0-val is.

    “Perfection is attained not when there is nothing more to add, but when there is nothing more to remove” Antoine de Saint-Exupéry

  • TheVeryGuest

    senior tag

    symbol.h:

    #ifndef _INC_SYMBOL_H_
    #define _INC_SYMBOL_H_

    // Symbols from 0x00 to 0x0f
    #define SYMBOL_COMMERCIAL_AT ''@'' // 64
    #define SYMBOL_POUND_SIGN ''Ł'' // 163
    #define SYMBOL_DOLLAR_SIGN ''$'' // 36
    #define SYMBOL_YEN_SIGN ''Ą'' // 165
    #define SYMBOL_LATIN_SMALL_LETTER_E_WITH_GRAVE ''č'' // 232
    #define SYMBOL_LATIN_SMALL_LETTER_E_WITH_ACUTE ''é'' // 233
    #define SYMBOL_LATIN_SMALL_LETTER_U_WITH_GRAVE ''ů'' // 249
    #define SYMBOL_LATIN_SMALL_LETTER_I_WITH_GRAVE ''ě'' // 236
    #define SYMBOL_LATIN_SMALL_LETTER_O_WITH_GRAVE ''ň'' // 242
    #define SYMBOL_LATIN_CAPITAL_LETTER_C_WITH_CEDILLA ''Ç'' // 199
    #define SYMBOL_LINE_FEED ''/r'' // 10
    #define SYMBOL_LATIN_CAPITAL_LETTER_O_WITH_STROKE ''Ř'' // 216
    #define SYMBOL_LATIN_SMALL_LETTER_O_WITH_STROKE ''ř'' // 248
    #define SYMBOL_CARRIAGE_RETURN ''/n'' // 13
    #define SYMBOL_LATIN_CAPITAL_LETTER_A_WITH_RING_ABOVE ''Ĺ'' // 197
    #define SYMBOL_LATIN_SMALL_LETTER_A_WITH_RING_ABOVE ''ĺ'' // 229

    // Symbols from 0x10 to 0x1f
    #define SYMBOL_GREEK_CAPITAL_LETTER_DELTA ''D'' // guess
    #define SYMBOL_LOW_LINE ''_'' // 95
    #define SYMBOL_GREEK_CAPITAL_LETTER_PHI ''Phi'' // guess
    #define SYMBOL_GREEK_CAPITAL_LETTER_GAMMA ''Gamma'' // guess
    #define SYMBOL_GREEK_CAPITAL_LETTER_LAMBDA ''Lambda'' // guess
    #define SYMBOL_GREEK_CAPITAL_LETTER_OMEGA ''Omega'' // guess
    #define SYMBOL_GREEK_CAPITAL_LETTER_PI ''Pi'' // guess
    #define SYMBOL_GREEK_CAPITAL_LETTER_PSI ''Psi'' // guess
    #define SYMBOL_GREEK_CAPITAL_LETTER_SIGMA ''Sigma'' // guess
    #define SYMBOL_GREEK_CAPITAL_LETTER_THETA ''Theta'' // guess
    #define SYMBOL_GREEK_CAPITAL_LETTER_XI ''Xi'' // guess
    #define SYMBOL_ESCAPE_TO_EXTENSION_TABLE ''''
    #define SYMBOL_LATIN_CAPITAL_LETTER_AE ''Ć'' // 198
    #define SYMBOL_LATIN_SMALL_LETTER_AE ''ć'' // 230
    #define SYMBOL_LATIN_SMALL_LETTER_SHARP_S ''S'' // 223
    #define SYMBOL_LATIN_CAPITAL_LETTER_E_WITH_ACUTE ''É'' // 201

    // Symbols from 0x20 to 0x2f
    #define SYMBOL_SPACE '' '' // 32
    #define SYMBOL_EXCLAMATION_MARK ''!'' // 33
    #define SYMBOL_QUOTATION_MARK '''''' // 34
    #define SYMBOL_NUMBER_SIGN ''#'' // 35
    #define SYMBOL_CURRENCY_SIGN ''¤'' // 164 (ISO-8859-1)
    #define SYMBOL_PERCENT_SIGN ''%'' // 37
    #define SYMBOL_AMPERSAND ''&'' // 38
    #define SYMBOL_APOSTROPHE ''''' // 39
    #define SYMBOL_LEFT_PARENTHESIS ''('' // 40
    #define SYMBOL_RIGHT_PARENTHESIS '')'' // 41
    #define SYMBOL_ASTERISK ''*'' // 42
    #define SYMBOL_PLUS_SIGN ''+'' // 43
    #define SYMBOL_COMMA '','' // 44
    #define SYMBOL_HYPHEN_MINUS ''-'' // 45
    #define SYMBOL_FULL_STOP ''.'' // 46
    #define SYMBOL_SOLIDUS ''/'' // 47

    // Symbols from 0x30 to 0x3f
    #define SYMBOL_DIGIT_ZERO ''0'' // 48
    #define SYMBOL_DIGIT_ONE ''1'' // 49
    #define SYMBOL_DIGIT_TWO ''2'' // 50
    #define SYMBOL_DIGIT_THREE ''3'' // 51
    #define SYMBOL_DIGIT_FOUR ''4'' // 52
    #define SYMBOL_DIGIT_FIVE ''5'' // 53
    #define SYMBOL_DIGIT_SIX ''6'' // 54
    #define SYMBOL_DIGIT_SEVEN ''7'' // 55
    #define SYMBOL_DIGIT_EIGHT ''8'' // 56
    #define SYMBOL_DIGIT_NINE ''9'' // 57
    #define SYMBOL_COLON '':'' // 58
    #define SYMBOL_SEMICOLON '';'' // 59
    #define SYMBOL_LESS_THAN_SIGN ''<'' // 60
    #define SYMBOL_EQUALS_SIGN ''='' // 61
    #define SYMBOL_GREATER_THAN_SIGN ''>'' // 62
    #define SYMBOL_QUESTION_MARK ''?'' // 63

    // Symbols from 0x40 to 0x4f
    #define SYMBOL_INVERTED_EXCLAMATION_MARK ''ˇ'' // 161
    #define SYMBOL_LATIN_CAPITAL_LETTER_A ''A'' // 65
    #define SYMBOL_LATIN_CAPITAL_LETTER_B ''B'' // 66
    #define SYMBOL_LATIN_CAPITAL_LETTER_C ''C'' // 67
    #define SYMBOL_LATIN_CAPITAL_LETTER_D ''D'' // 68
    #define SYMBOL_LATIN_CAPITAL_LETTER_E ''E'' // 69
    #define SYMBOL_LATIN_CAPITAL_LETTER_F ''F'' // 70
    #define SYMBOL_LATIN_CAPITAL_LETTER_G ''G'' // 71
    #define SYMBOL_LATIN_CAPITAL_LETTER_H ''H'' // 72
    #define SYMBOL_LATIN_CAPITAL_LETTER_I ''I'' // 73
    #define SYMBOL_LATIN_CAPITAL_LETTER_J ''J'' // 74
    #define SYMBOL_LATIN_CAPITAL_LETTER_K ''K'' // 75
    #define SYMBOL_LATIN_CAPITAL_LETTER_L ''L'' // 76
    #define SYMBOL_LATIN_CAPITAL_LETTER_M ''M'' // 77
    #define SYMBOL_LATIN_CAPITAL_LETTER_N ''N'' // 78
    #define SYMBOL_LATIN_CAPITAL_LETTER_O ''O'' // 79

    // Symbols from 0x50 to 0x5f
    #define SYMBOL_LATIN_CAPITAL_LETTER_P ''P'' // 80
    #define SYMBOL_LATIN_CAPITAL_LETTER_Q ''Q'' // 81
    #define SYMBOL_LATIN_CAPITAL_LETTER_R ''R'' // 82
    #define SYMBOL_LATIN_CAPITAL_LETTER_S ''S'' // 83
    #define SYMBOL_LATIN_CAPITAL_LETTER_T ''T'' // 84
    #define SYMBOL_LATIN_CAPITAL_LETTER_U ''U'' // 85
    #define SYMBOL_LATIN_CAPITAL_LETTER_V ''V'' // 86
    #define SYMBOL_LATIN_CAPITAL_LETTER_W ''W'' // 87
    #define SYMBOL_LATIN_CAPITAL_LETTER_X ''X'' // 88
    #define SYMBOL_LATIN_CAPITAL_LETTER_Y ''Y'' // 89
    #define SYMBOL_LATIN_CAPITAL_LETTER_Z ''Z'' // 90
    #define SYMBOL_LATIN_CAPITAL_LETTER_A_WITH_DIAERESIS ''Ä'' // 196
    #define SYMBOL_LATIN_CAPITAL_LETTER_O_WITH_DIAERESIS ''Ö'' // 214
    #define SYMBOL_LATIN_CAPITAL_LETTER_N_WITH_TILDE ''Ń'' // 209
    #define SYMBOL_LATIN_CAPITAL_LETTER_U_WITH_DIAERESIS ''Ü'' // 220
    #define SYMBOL_SECTION_SIGN ''§'' // 167

    // Symbols from 0x60 to 0x6f
    #define SYMBOL_INVERTED_QUESTION_MARK ''ż'' // 191
    #define SYMBOL_LATIN_SMALL_LETTER_A ''a'' // 97
    #define SYMBOL_LATIN_SMALL_LETTER_B ''b'' // 98
    #define SYMBOL_LATIN_SMALL_LETTER_C ''c'' // 99
    #define SYMBOL_LATIN_SMALL_LETTER_D ''d'' // 100
    #define SYMBOL_LATIN_SMALL_LETTER_E ''e'' // 101
    #define SYMBOL_LATIN_SMALL_LETTER_F ''f'' // 102
    #define SYMBOL_LATIN_SMALL_LETTER_G ''g'' // 103
    #define SYMBOL_LATIN_SMALL_LETTER_H ''h'' // 104
    #define SYMBOL_LATIN_SMALL_LETTER_I ''i'' // 105
    #define SYMBOL_LATIN_SMALL_LETTER_J ''j'' // 106
    #define SYMBOL_LATIN_SMALL_LETTER_K ''k'' // 107
    #define SYMBOL_LATIN_SMALL_LETTER_L ''l'' // 108
    #define SYMBOL_LATIN_SMALL_LETTER_M ''m'' // 109
    #define SYMBOL_LATIN_SMALL_LETTER_N ''n'' // 110
    #define SYMBOL_LATIN_SMALL_LETTER_O ''o'' // 111

    // Symbols from 0x70 to 0x7f
    #define SYMBOL_LATIN_SMALL_LETTER_P ''p'' // 112
    #define SYMBOL_LATIN_SMALL_LETTER_Q ''q'' // 113
    #define SYMBOL_LATIN_SMALL_LETTER_R ''r'' // 114
    #define SYMBOL_LATIN_SMALL_LETTER_S ''s'' // 115
    #define SYMBOL_LATIN_SMALL_LETTER_T ''t'' // 116
    #define SYMBOL_LATIN_SMALL_LETTER_U ''u'' // 117
    #define SYMBOL_LATIN_SMALL_LETTER_V ''v'' // 118
    #define SYMBOL_LATIN_SMALL_LETTER_W ''w'' // 119
    #define SYMBOL_LATIN_SMALL_LETTER_X ''x'' // 120
    #define SYMBOL_LATIN_SMALL_LETTER_Y ''y'' // 121
    #define SYMBOL_LATIN_SMALL_LETTER_Z ''z'' // 122
    #define SYMBOL_LATIN_SMALL_LETTER_A_WITH_DIAERESIS ''ä'' // 228
    #define SYMBOL_LATIN_SMALL_LETTER_O_WITH_DIAERESIS ''ö'' // 246
    #define SYMBOL_LATIN_SMALL_LETTER_N_WITH_TILDE ''ń'' // 241
    #define SYMBOL_LATIN_SMALL_LETTER_U_WITH_DIAERESIS ''ü'' // 252
    #define SYMBOL_LATIN_SMALL_LETTER_A_WITH_GRAVE ''ŕ'' // 224

    #define SYMBOL_FORM_FEED '' '' // 12
    #define SYMBOL_CIRCUMFLEX_ACCENT ''^'' // 94
    #define SYMBOL_LEFT_CURLY_BRACKET ''{'' // 123
    #define SYMBOL_RIGHT_CURLY_BRACKET ''}'' // 125
    #define SYMBOL_REVERSE_SOLIDUS ''\'' // 92
    #define SYMBOL_LEFT_SQUARE_BRACKET ''['' // 91
    #define SYMBOL_TILDE ''~'' // 126
    #define SYMBOL_RIGHT_SQUARE_BRACKET '']'' // 93
    #define SYMBOL_VERTICAL_BAR ''|'' // 124
    #define SYMBOL_EURO_SIGN ''Euro'' // 164 (ISO-8859-15)


    const char *tabSymbol[] = {
    SYMBOL_COMMERCIAL_AT,
    SYMBOL_POUND_SIGN,
    SYMBOL_DOLLAR_SIGN,
    SYMBOL_YEN_SIGN,
    SYMBOL_LATIN_SMALL_LETTER_E_WITH_GRAVE,
    SYMBOL_LATIN_SMALL_LETTER_E_WITH_ACUTE,
    SYMBOL_LATIN_SMALL_LETTER_U_WITH_GRAVE,
    SYMBOL_LATIN_SMALL_LETTER_I_WITH_GRAVE,
    SYMBOL_LATIN_SMALL_LETTER_O_WITH_GRAVE,
    SYMBOL_LATIN_CAPITAL_LETTER_C_WITH_CEDILLA,
    SYMBOL_LINE_FEED,
    SYMBOL_LATIN_CAPITAL_LETTER_O_WITH_STROKE,
    SYMBOL_LATIN_SMALL_LETTER_O_WITH_STROKE,
    SYMBOL_CARRIAGE_RETURN,
    SYMBOL_LATIN_CAPITAL_LETTER_A_WITH_RING_ABOVE,
    SYMBOL_LATIN_SMALL_LETTER_A_WITH_RING_ABOVE,

    SYMBOL_GREEK_CAPITAL_LETTER_DELTA,
    SYMBOL_LOW_LINE,
    SYMBOL_GREEK_CAPITAL_LETTER_PHI,
    SYMBOL_GREEK_CAPITAL_LETTER_GAMMA,
    SYMBOL_GREEK_CAPITAL_LETTER_LAMBDA,
    SYMBOL_GREEK_CAPITAL_LETTER_OMEGA,
    SYMBOL_GREEK_CAPITAL_LETTER_PI,
    SYMBOL_GREEK_CAPITAL_LETTER_PSI,
    SYMBOL_GREEK_CAPITAL_LETTER_SIGMA,
    SYMBOL_GREEK_CAPITAL_LETTER_THETA,
    SYMBOL_GREEK_CAPITAL_LETTER_XI,
    SYMBOL_ESCAPE_TO_EXTENSION_TABLE,
    SYMBOL_LATIN_CAPITAL_LETTER_AE,
    SYMBOL_LATIN_SMALL_LETTER_AE,
    SYMBOL_LATIN_SMALL_LETTER_SHARP_S,
    SYMBOL_LATIN_CAPITAL_LETTER_E_WITH_ACUTE,

    SYMBOL_SPACE,
    SYMBOL_EXCLAMATION_MARK,
    SYMBOL_QUOTATION_MARK,
    SYMBOL_NUMBER_SIGN,
    SYMBOL_CURRENCY_SIGN,
    SYMBOL_PERCENT_SIGN,
    SYMBOL_AMPERSAND,
    SYMBOL_APOSTROPHE,
    SYMBOL_LEFT_PARENTHESIS,
    SYMBOL_RIGHT_PARENTHESIS,
    SYMBOL_ASTERISK,
    SYMBOL_PLUS_SIGN,
    SYMBOL_COMMA,
    SYMBOL_HYPHEN_MINUS,
    SYMBOL_FULL_STOP,
    SYMBOL_SOLIDUS,

    SYMBOL_DIGIT_ZERO,
    SYMBOL_DIGIT_ONE,
    SYMBOL_DIGIT_TWO,
    SYMBOL_DIGIT_THREE,
    SYMBOL_DIGIT_FOUR,
    SYMBOL_DIGIT_FIVE,
    SYMBOL_DIGIT_SIX,
    SYMBOL_DIGIT_SEVEN,
    SYMBOL_DIGIT_EIGHT,
    SYMBOL_DIGIT_NINE,
    SYMBOL_COLON,
    SYMBOL_SEMICOLON,
    SYMBOL_LESS_THAN_SIGN,
    SYMBOL_EQUALS_SIGN,
    SYMBOL_GREATER_THAN_SIGN,
    SYMBOL_QUESTION_MARK,

    SYMBOL_INVERTED_EXCLAMATION_MARK,
    SYMBOL_LATIN_CAPITAL_LETTER_A,
    SYMBOL_LATIN_CAPITAL_LETTER_B,
    SYMBOL_LATIN_CAPITAL_LETTER_C,
    SYMBOL_LATIN_CAPITAL_LETTER_D,
    SYMBOL_LATIN_CAPITAL_LETTER_E,
    SYMBOL_LATIN_CAPITAL_LETTER_F,
    SYMBOL_LATIN_CAPITAL_LETTER_G,
    SYMBOL_LATIN_CAPITAL_LETTER_H,
    SYMBOL_LATIN_CAPITAL_LETTER_I,
    SYMBOL_LATIN_CAPITAL_LETTER_J,
    SYMBOL_LATIN_CAPITAL_LETTER_K,
    SYMBOL_LATIN_CAPITAL_LETTER_L,
    SYMBOL_LATIN_CAPITAL_LETTER_M,
    SYMBOL_LATIN_CAPITAL_LETTER_N,
    SYMBOL_LATIN_CAPITAL_LETTER_O,

    SYMBOL_LATIN_CAPITAL_LETTER_P,
    SYMBOL_LATIN_CAPITAL_LETTER_Q,
    SYMBOL_LATIN_CAPITAL_LETTER_R,
    SYMBOL_LATIN_CAPITAL_LETTER_S,
    SYMBOL_LATIN_CAPITAL_LETTER_T,
    SYMBOL_LATIN_CAPITAL_LETTER_U,
    SYMBOL_LATIN_CAPITAL_LETTER_V,
    SYMBOL_LATIN_CAPITAL_LETTER_W,
    SYMBOL_LATIN_CAPITAL_LETTER_X,
    SYMBOL_LATIN_CAPITAL_LETTER_Y,
    SYMBOL_LATIN_CAPITAL_LETTER_Z,
    SYMBOL_LATIN_CAPITAL_LETTER_A_WITH_DIAERESIS,
    SYMBOL_LATIN_CAPITAL_LETTER_O_WITH_DIAERESIS,
    SYMBOL_LATIN_CAPITAL_LETTER_N_WITH_TILDE,
    SYMBOL_LATIN_CAPITAL_LETTER_U_WITH_DIAERESIS,
    SYMBOL_SECTION_SIGN,

    SYMBOL_INVERTED_QUESTION_MARK,
    SYMBOL_LATIN_SMALL_LETTER_A,
    SYMBOL_LATIN_SMALL_LETTER_B,
    SYMBOL_LATIN_SMALL_LETTER_C,
    SYMBOL_LATIN_SMALL_LETTER_D,
    SYMBOL_LATIN_SMALL_LETTER_E,
    SYMBOL_LATIN_SMALL_LETTER_F,
    SYMBOL_LATIN_SMALL_LETTER_G,
    SYMBOL_LATIN_SMALL_LETTER_H,
    SYMBOL_LATIN_SMALL_LETTER_I,
    SYMBOL_LATIN_SMALL_LETTER_J,
    SYMBOL_LATIN_SMALL_LETTER_K,
    SYMBOL_LATIN_SMALL_LETTER_L,
    SYMBOL_LATIN_SMALL_LETTER_M,
    SYMBOL_LATIN_SMALL_LETTER_N,
    SYMBOL_LATIN_SMALL_LETTER_O,
    SYMBOL_LATIN_SMALL_LETTER_P,

    SYMBOL_LATIN_SMALL_LETTER_Q,
    SYMBOL_LATIN_SMALL_LETTER_R,
    SYMBOL_LATIN_SMALL_LETTER_S,
    SYMBOL_LATIN_SMALL_LETTER_T,
    SYMBOL_LATIN_SMALL_LETTER_U,
    SYMBOL_LATIN_SMALL_LETTER_V,
    SYMBOL_LATIN_SMALL_LETTER_W,
    SYMBOL_LATIN_SMALL_LETTER_X,
    SYMBOL_LATIN_SMALL_LETTER_Y,
    SYMBOL_LATIN_SMALL_LETTER_Z,
    SYMBOL_LATIN_SMALL_LETTER_A_WITH_DIAERESIS,
    SYMBOL_LATIN_SMALL_LETTER_O_WITH_DIAERESIS,
    SYMBOL_LATIN_SMALL_LETTER_N_WITH_TILDE,
    SYMBOL_LATIN_SMALL_LETTER_U_WITH_DIAERESIS,
    SYMBOL_LATIN_SMALL_LETTER_A_WITH_GRAVE
    };

    const short tabExtIdx[] = {
    10,
    20,
    40,
    41,
    47,
    60,
    61,
    62,
    64,
    101
    };

    const char *tabExtSymbol[] = {
    SYMBOL_FORM_FEED,
    SYMBOL_CIRCUMFLEX_ACCENT,
    SYMBOL_LEFT_CURLY_BRACKET,
    SYMBOL_RIGHT_CURLY_BRACKET,
    SYMBOL_REVERSE_SOLIDUS ''\'',
    SYMBOL_LEFT_SQUARE_BRACKET,
    SYMBOL_TILDE,
    SYMBOL_RIGHT_SQUARE_BRACKET,
    SYMBOL_VERTICAL_BAR,
    SYMBOL_EURO_SIGN
    };

    #endif // _INC_SYMBOL_H_

    “Perfection is attained not when there is nothing more to add, but when there is nothing more to remove” Antoine de Saint-Exupéry

  • TheVeryGuest

    senior tag

    smsconv.cxx:

    #include <cstdlib>
    #include <cstdio>
    #include <iostream>
    #include ''symbol.h''
    #include <string>

    using namespace std;

    bool convertToSmsChar(unsigned short ch,
    std::string &str) {
    static unsigned short store = 0;

    if (0x1b == ch) {
    store = ch;
    return false;
    } else {
    if (0x00 != store) {
    for (int i = 0; i < sizeof(tabExtIdx)/sizeof(short); ++i) {
    if (tabExtIdx == ch) {
    str += tabExtSymbol
    ;
    }
    }
    store = 0;
    } else {
    str += tabSymbol[ch];
    }
    }
    return true;
    }

    std::string convert7To8Bit(const unsigned char *buff,
    unsigned int len) {
    unsigned char maskLo[] = {
    0x7f,
    0x3f,
    0x1f,
    0x0f,
    0x07,
    0x03,
    0x01
    };

    unsigned char maskHi[] = {
    0x80,
    0xc0,
    0xe0,
    0xf0,
    0xf8,
    0xfc,
    0xfe
    };

    std::string finalStr;
    unsigned int pos = 0;
    unsigned int bitHave = 0;
    unsigned int remainder = 0;

    int lenBit = len * 7;
    int lenByte = lenBit / 8;
    if (0 != (lenBit % 8)) {
    ++lenByte;
    }

    for (int i = 0; i < lenByte; ++i) {
    int value = remainder + ((buff & maskLo[bitHave]) << bitHave);
    remainder = (buff
    & maskHi[bitHave]) >> (7 - bitHave);
    ++bitHave;

    convertToSmsChar(value, finalStr);
    // cout << (char) value << endl;

    if (7 == bitHave) {
    bitHave = 0;
    convertToSmsChar(remainder, finalStr);
    // cout << (char) remainder << endl;
    remainder = 0;
    }
    }
    return finalStr;
    }

    std::string decodeCallNumber(const unsigned char *buff,
    unsigned int size) {
    char strVal[size + 1];
    const unsigned char mask[] = {
    0x0f,
    0xf0
    };

    const unsigned char shift[] = {
    0x00,
    0x04
    };

    for (int i = 0; i < size; ++i) {
    unsigned short val = (buff[i >> 1] & mask[i % 2]) >> shift[i % 2];
    // cout << val << endl;
    strVal = (char) '0' + val;
    }
    strVal[size] = 0;
    return string(strVal);
    }

    int decodeNumber(const unsigned char *buff,
    unsigned int size) {
    int sum = 0;
    const unsigned char mask[] = {
    0x0f,
    0xf0
    };

    const unsigned char shift[] = {
    0x00,
    0x04
    };

    for (int i = 0; i < size; ++i) {
    unsigned short val = (buff[i >> 1] & mask[i % 2]) >> shift[i % 2];
    // cout << val << endl;
    sum = sum * 10 + val;
    }
    return sum;
    }


    std::string decodeTimeStamp(const unsigned char *buff) {
    const unsigned char mask[] = {
    0x0f,
    0xf0
    };

    const unsigned char shift[] = {
    0x00,
    0x04
    };

    const char *tabGmt[] = {
    ''0'',
    ''1'',
    ''2'',
    ''3'',
    ''4'',
    ''5'',
    ''6'',
    ''7'',
    ''8'',
    ''9'',
    ''10'',
    ''11'',
    ''12''
    };

    std::string strTs = decodeCallNumber(buff, 12);
    // cout << strTs << endl;
    strTs.insert(2, ''.'');
    strTs.insert(5, ''.'');
    strTs.insert(8, ''. '');
    strTs.insert(12, '':'');
    strTs.insert(15, '':'');

    int diffGmt = decodeNumber(buff + 6, 2);
    diffGmt = ((diffGmt % 10) * 10 + diffGmt / 10) / 4;
    const char *sign;
    if (diffGmt < 0) {
    diffGmt *= -1;
    sign = '' - '';
    } else {
    sign = '' + '';
    }

    strTs += '', GMT'';
    if (0 != diffGmt) {
    strTs += sign;
    strTs += tabGmt[diffGmt];
    }

    // cout << (int) *(buff + 12) << endl;

    // cout << diffGmt << endl;

    return strTs;
    }

    bool decodeSms(const unsigned char *buff) {
    unsigned short lenSmscInfo = *buff;
    unsigned short typSmscInfo = *(buff + 1);

    // cout << (unsigned int) *buff << endl;

    if ((0x07 != lenSmscInfo) || (0x91 != typSmscInfo)) {
    cerr << ''[Decoder]: unknown format of SMSC info -> skipped '';
    } else {
    cerr << ''[Decoder]: SMS Center: '' << decodeCallNumber(buff + 2, 11) << endl;
    }

    // SMS Delivery byte skipped
    const unsigned char *infoSender = buff + lenSmscInfo + 2;

    unsigned short lenSenderNum = *infoSender;
    unsigned short typSenderNum = *(infoSender + 1);

    // cout << lenSenderNum << endl << typSenderNum << endl;

    if ((0x0b != lenSenderNum) || (0x91 != typSenderNum)) {
    cerr << ''[Decoder]: unknown format of Sender number -> returning '';
    return false;
    } else {
    cerr << ''[Decoder]: Sender: '' << decodeCallNumber(infoSender + 2, 11) << endl;
    }

    const unsigned char *infoTp = infoSender + 8;

    unsigned short pidTp = *infoTp;
    unsigned short dcsTp = *(infoTp + 1);

    if ((0x00 != pidTp) || (0x00 != dcsTp)) {
    cerr << ''[Decoder]: unknown format in TP info -> returning '';
    return false;
    }

    cerr << ''[Decoder]: TimeStamp: '' << decodeTimeStamp(infoTp + 2) << endl;

    unsigned short lenMsg = *(infoTp + 9);

    cerr << ''[Decoder]: SMS length: '' << lenMsg << endl;

    cout << convert7To8Bit(infoTp + 10, lenMsg) << endl;

    return true;
    }

    int main(int argc, char **argv) {
    if (argc < 2) {
    cerr << ''<ERROR> Input file name required. '';
    return 1;
    }

    cerr << ''Using '' << argv[1] << ''as input file. '';

    FILE *f = fopen(argv[1], ''rb'');
    if (!f) {
    cerr << ''<ERROR> File open error ('' << argv[1] << ''). '';
    return 1;
    }

    fseek(f, 0, SEEK_END);
    int szFile = ftell(f);

    if (181 != szFile) {
    cerr << ''<ERROR> Unknown file size ('' << szFile << '') for '' << argv[1] << ''. '';
    return 1;
    }

    unsigned char *bufFile = new unsigned char [szFile];
    if (!bufFile) {
    cerr << ''<ERROR> Memory allocation error ('' << szFile << '' bytes) '';
    return 1;
    }

    rewind(f);
    if (!fread(bufFile, szFile, 1, f)) {
    cerr << ''<ERROR> Error reading file ('' << argv[1] << ''). '';
    delete [] bufFile;
    return 1;
    }

    cerr << ''Decoding... '';

    if (!decodeSms(bufFile + 6)) {
    cerr << ''<ERROR> Decoder error. '';
    delete [] bufFile;
    return 1;
    }

    cerr << ''<OK> SMS decoded successfully '';
    delete [] bufFile;

    return 0;
    }

    “Perfection is attained not when there is nothing more to add, but when there is nothing more to remove” Antoine de Saint-Exupéry

  • TheVeryGuest

    senior tag

    Na, a RIOS-t se forráskód terjesztésre találták ki. ;] Sebaj elküldöm mail-ben is.
    A szimbólumok külön táblában vannak kicserélheted őket, ha nem tetszenek. A görög betűket nem nagyon kerestem.

    Sok szerencsét! :P

    “Perfection is attained not when there is nothing more to add, but when there is nothing more to remove” Antoine de Saint-Exupéry

  • PeliScan

    addikt

    válasz TheVeryGuest #23 üzenetére

    Köszönöm a forráskódot, egy fél évet tanultam C++ nyelvet, remélem sikerül vele vmit kezdenem. :) Most viszont el kell rohannom, így inkább délelőttre marad, de nagyon hálás vagyok érte, még1x köszönöm! :)

    [Szerkesztve]

  • Phantom

    tag

    Ugye, ugye...

    Csak jó volt valamire az a link, nem csupán ''érdekes.'' ;]

    Tudod, hogy nincs bocsánat...

Aktív témák