Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для мобильных телефонов > JAVA Micro Edition

JAVA Micro Edition Низкоуровневое программирование мобильных телефонов.

Ответ
 
Опции темы
Старый 30.10.2008, 20:07   #16
impersonalis
Зануда с интернетом
 
Аватар для impersonalis
 
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений
(для 20,935 пользователей)
Ответ: Сжать текст смс средствами J2me

То есть никакой универсальности, в общем, это очень неудобно.
Ну а ты как думал?
совет:http://forum.boolean.name/showpost.p...7&postcount=30
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
(Offline)
 
Ответить с цитированием
Старый 30.10.2008, 20:21   #17
Phantom
Элита
 
Аватар для Phantom
 
Регистрация: 14.06.2008
Адрес: Украина, Киев
Сообщений: 2,273
Написано 754 полезных сообщений
(для 1,833 пользователей)
Ответ: Сжать текст смс средствами J2me

Нифига ничего не понял =(
В джаве нет прямого доступа к отправщику смс. Текст смс скармливать надо в любом случае в юникоде. И если в тексе символы позволяют быть закодированными семью битами, то телефон сам уже кодирует. То есть видимо я пытаюсь ESC символ скормить, но он не может быть в одиночку использован при семибитном кодировании, поэтому телефон решает, что нужно текст использовать в юникоде. Возможно, это ещё от телефона и/или джава машины зависит. Блин... Что же делать-то? Твой совет я нифига не понял =(
(Offline)
 
Ответить с цитированием
Старый 31.10.2008, 02:46   #18
Phantom
Элита
 
Аватар для Phantom
 
Регистрация: 14.06.2008
Адрес: Украина, Киев
Сообщений: 2,273
Написано 754 полезных сообщений
(для 1,833 пользователей)
Ответ: Сжать текст смс средствами J2me

Сделал вместо ESC тильду. Первые тесты показали неплохой результат. Пример:
"Штиль - ветер молчит,
Упал белой чайкой на дно.
Штиль - наш корабль забыт,
Один в мире, скованном сном.

Между всех времён
Без имён и лиц
Мы уже не ждём,
Что проснётся бриз!"
Данный текст, набранный в смс, занимает три смс сообщения. А этот же текст, пропущенный через мою функцию выглядит примерно так:
"цa_$n,m0ΔTBPX0q5dΦk/r3їШXи)3Dl.@I#DlΞ$їC'7WyB"йЦYZaPш,Λ9@@%ЦXЖ@Πi5WxpB щlй0aи$uXDQїЎ
Ξ8eD&NΘЬС?Fйш_жЎHE+0ΦЈ& ~/p_#lΔ2ЈДи,Π!5?F~XL0ДщEXΣ¤ҐΞkцС_kмPЖDlиH§XйЈЈv"
И ВЛАЗИТ В ОДНО СМС!!!
Я мега крут!
(Offline)
 
Ответить с цитированием
Эти 3 пользователя(ей) сказали Спасибо Phantom за это полезное сообщение:
impersonalis (31.10.2008), Piligrim (31.10.2008), Romanzes (31.10.2008)
Старый 31.10.2008, 02:49   #19
Phantom
Элита
 
Аватар для Phantom
 
Регистрация: 14.06.2008
Адрес: Украина, Киев
Сообщений: 2,273
Написано 754 полезных сообщений
(для 1,833 пользователей)
Ответ: Сжать текст смс средствами J2me

Форум испаганил почему-то некоторые символы. Непонятно откуда появились всякие "ц", "Д", "ш", "ж"... Это я к тому, что моя функция выдаёт нормальные символы, которые не переключают смс-редактор в режим юникода, это всё баг форума. =)
(Offline)
 
Ответить с цитированием
Старый 31.10.2008, 17:29   #20
impersonalis
Зануда с интернетом
 
Аватар для impersonalis
 
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений
(для 20,935 пользователей)
Ответ: Сжать текст смс средствами J2me

Так-так. Что придпримите далее?
*читаю, как начуно-популярный сериал смотрю - все серии*
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
(Offline)
 
Ответить с цитированием
Старый 31.10.2008, 18:04   #21
Phantom
Элита
 
Аватар для Phantom
 
Регистрация: 14.06.2008
Адрес: Украина, Киев
Сообщений: 2,273
Написано 754 полезных сообщений
(для 1,833 пользователей)
Ответ: Сжать текст смс средствами J2me

Ой, ёлки, сколько спасибок поставили. Вы это погорячились. Я пока на PHP написал сам алгоритм, так как в нём много лучше ориентируюсь, чем в Java. Ещё предстоит довести до ума и портировать на Java. Так что ещё куча вопросов, наверно, возникнет. =)
(Offline)
 
Ответить с цитированием
Старый 04.11.2008, 03:45   #22
Phantom
Элита
 
Аватар для Phantom
 
Регистрация: 14.06.2008
Адрес: Украина, Киев
Сообщений: 2,273
Написано 754 полезных сообщений
(для 1,833 пользователей)
Ответ: Сжать текст смс средствами J2me

Всё. Готово практически. Осталось пару строк в класс вписать! Вот только не знаю как это делается. Нужно в цикле пробежать строку посимвольно, получая код очередного символа. Из потока я умею побайтно читать, а вот как из строки посимвольно - не знаю.
(Offline)
 
Ответить с цитированием
Старый 04.11.2008, 15:17   #23
Piligrim
Оптимист
 
Регистрация: 07.01.2006
Сообщений: 961
Написано 105 полезных сообщений
(для 259 пользователей)
Ответ: Сжать текст смс средствами J2me

s.charAt(int)
а заменять удобно с помощью s.replace(char, char)
(Offline)
 
Ответить с цитированием
Старый 04.11.2008, 20:32   #24
Phantom
Элита
 
Аватар для Phantom
 
Регистрация: 14.06.2008
Адрес: Украина, Киев
Сообщений: 2,273
Написано 754 полезных сообщений
(для 1,833 пользователей)
Ответ: Сжать текст смс средствами J2me

Сорри, я уже сделал, но забыл отписаться =) Только пока не работает как надо. Сейчас вот до ума довожу.
(Offline)
 
Ответить с цитированием
Старый 24.12.2008, 21:49   #25
abcdef
Знающий
 
Регистрация: 16.09.2008
Сообщений: 299
Написано 71 полезных сообщений
(для 123 пользователей)
Ответ: Сжать текст смс средствами J2me

Phantom_wc - я когда-то делал аналогичный алгоритм, но в MIDletPascal, неохота переписывать на java,.. думаю получилось просто это можно взять за основу, и добавить в алгоритм кодирования обход недопустимых символов..
var
  buf : array[0..4096] of boolean;
  bit : array[0..7] of integer;
  max : integer;
  id_in,id_out,id_dec : integer;
  convCmd : command;


function ansiToUtf(s : string) : string;
var  {rus_ansi to UTF8}
  i,ch : integer;
begin
  for i := 0 to length(s)-1 do
  begin
    ch := ord(getChar(s,i)) and 255;
    if (ch>=192) then  s := setChar(s,chr(ch+848),i);
    if (ch=168)  then  s := setChar(s,chr($0401),i);
    if (ch=184)  then  s := setChar(s,chr($0451),i);
  end;
  ansiToUtf := s;
end;


function utfToAnsi(s : string) : string;
var  {UTF8 to rus_ansi}
  i,ch : integer;
begin
  for i := 0 to length(s)-1 do
  begin
    ch := ord(getChar(s,i));
    if (ch>255) then  s := setChar(s,chr(ch-848),i);
    if (ch=$0401) then  s := setChar(s,chr(168),i);
    if (ch=$0451) then  s := setChar(s,chr(184),i);
  end;
  utfToAnsi := s;
end;


procedure toBits(s : string; maxb : integer);
var
  i,j,b : integer;
begin
  max:=0;
  for i:=0 to 4096 do buf[i]:=false;
  for i:=0 to length(s)-1 do
  begin
    b:=ord(getChar(s,i));
    for j:= maxb{7} downto 0 do
    begin
      if (b and bit[j])<>0 then buf[max]:=true;
      max:=max+1;
    end;
  end;
end;


function fromBits(maxb : integer) : string;
var
  i,j,b : integer;
  s : string;
begin
  i:=0;
  s:='';
  while i<max do
  begin
    b:=0;
    j:=maxb;
    while (i<max) and (j>=0) do
    begin
      if buf[i] then b:=(b or bit[j]);
      i:=i+1;
      j:=j-1;
    end;
    s:=s+chr(b);
  end;
  fromBits:=s;
end;


begin
  bit[0]:=1;
  bit[1]:=2;
  bit[2]:=4;
  bit[3]:=8;
  bit[4]:=16;
  bit[5]:=32;
  bit[6]:=64;
  bit[7]:=128;
  showForm;
  id_in := formAddTextField('IN', 'Привет! это тестовая программка от arT (c). e-mail: [email protected]', 512, TF_ANY);
  convCmd := createCommand('next', CM_OK, 1);
  addCommand(convCmd);
  repeat delay(100); until getClickedCommand=convCmd;
  removeCommand(convCmd);
  //////
  toBits(utfToAnsi(formGetText(id_in)),7);
  id_out := formAddTextField('OUT', fromBits(6), 1024, TF_ANY);
  //////
  toBits(utfToAnsi(formGetText(id_out)),6);
  id_dec := formAddTextField('DECODE', ansiToUtf(fromBits(7)), 512, TF_ANY);
  repeat delay(100); until false;
end.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Phantom (25.12.2008)
Старый 25.12.2008, 07:43   #26
Phantom
Элита
 
Аватар для Phantom
 
Регистрация: 14.06.2008
Адрес: Украина, Киев
Сообщений: 2,273
Написано 754 полезных сообщений
(для 1,833 пользователей)
Ответ: Сжать текст смс средствами J2me

Ы. Да я уже сделал =) Совсем забыл, что у меня тут тема есть на эту тему =) Оказалось в итоге, что зря я мучился, биллинг запретил отправку смс с подменой номера :-(
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Что помогает сдать экзамен impersonalis Болтовня 14 23.06.2010 16:48
2D средствами 3D giraf 3D-программирование 5 17.09.2009 20:41
UTF-8 и J2me Phantom JAVA Micro Edition 4 11.09.2009 04:19
Прозрачность png/gif в стандартными средствами Blitz3D ELIAS Blitz3D 12 19.07.2009 00:53


Часовой пояс GMT +4, время: 22:14.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com