- Épített vízhűtés (nem kompakt) topic
- Milyen alaplapot vegyek?
- OLED TV topic
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- Intel Core i5 / i7 / i9 "Alder Lake-Raptor Lake/Refresh" (LGA1700)
- 3D nyomtatás
- Azonnali notebookos kérdések órája
- Nyugdíjazza a tuningra szabott, első Raptor Lake-eket az Intel
- Ízlésesre sikerült a Galax alacsony profilú GeForce RTX VGA-ja
- Milyen SSD-t vegyek?
Hirdetés
-
QLC-s Team Group SSD jön a PCI Express 4.0-s halmaz belépőszintjére
ph A vállalat fél évtizedes jótállással kísért újdonságát tárhelymérettől függően 512, 1024, valamint 2048 TBW tartósságra hitelesítették.
-
AMD Radeon undervolt/overclock
lo Minden egy hideg, téli estén kezdődött, mikor rájöttem, hogy már kicsit kevés az RTX2060...
-
Frissült a MediaTek középkategóriás ajánlata
ma Hivatalos a Dimensity 6300, ez lesz a MediaTek kínálatából kivezetésre kerülő 6100+ utódja.
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! -
-
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
-
-
X-COM
nagyúr
-
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
Senkinek semmi további ötlete? :U
-
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! :) -
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
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
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
Í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...