Форум jimm.net.ru

  • Вы не зашли.

#1 2007-07-15 21:24:48

M@rsik
jimm-тестер
Откуда: Украина, Донецк
Зарегистрирован: 2007-07-09
Сообщений: 87
Модель телефона: Siemens CX75
Профиль  Вебсайт

Смайлики

Я всегда ставлю свои смайлы в джим. беру из квипа вместе с их кодами для взаимосовместимости.
Но меня волнует один вопрос по синтаксису в smiles.txt. Пробел там назначается знаком _
Чередование параметров - Пробел.
Но как установить именно знак _ я не могу понять. Для примера - в квипе есть смайл с кодом *DONT_KNOW*, но придя в джим этот код распознаётся как *DONT KNOW* и смайл не рисуется... Кто знает как установить подчёркивание?


Asus P5B, Intel® Core2Duo E8400@3.6Ghz, 2х2Gb DDR2 SDRAM PC-6400, Asus GeForce EN9800GT 1024Mb
Siemens CX75sw25, DCA-510 —> Патчи, включая ElfPack v2.3, FL-SWI v80725 —> Эльфы
PSP Slim&Lite Piano Black CFW 5.00 M33-6

Неактивен

 

#2 2007-07-16 18:29:24

aspro
Прохожий
Зарегистрирован: 2007-03-24
Сообщений: 1768
Модель телефона: nokia 6233 & 5530
Профиль  Вебсайт

Re: Смайлики

M@rsik
никак. Если есть предложение как это можно сделать по твоему. Я постораюсь реальзовать это.


Кто ты? Чего ты хочешь?

Неактивен

 

#3 2007-07-17 13:35:48

-=Raider=-
Грозный модератор
Зарегистрирован: 2007-06-25
Сообщений: 594
Профиль

Re: Смайлики

Aspro, я полагаю, что тут особо много думать не надо ;-) может, лучше пробел вообще в смайлах не юзать? Как-то глупо получается: одно обозначает другое, другое-третье, как по цепочке, а пробел на выводе нигде и не используется... А если сделать именно так, что подчеркивание обозначает подчеркивание, а пробел-разделение самих кодов... Вроде бы так проще всего сделать :-) или я что-то пропустил? Ведь в том же самом qip, да и в любом клиенте схема именно такая...


И взял Бог у Программиста кость, в которой не было мозга, и создал из неё  Пользователя...
© "Сеть"
-----
Неужели это опять я?..

Неактивен

 

#4 2007-07-17 17:39:59

M@rsik
jimm-тестер
Откуда: Украина, Донецк
Зарегистрирован: 2007-07-09
Сообщений: 87
Модель телефона: Siemens CX75
Профиль  Вебсайт

Re: Смайлики

Ну да, я тоже предложил бы именно такой вариант, когда "что пишешь то и видишь")
Только разделение может не пробелом а запятой, т.к в описании смайлика иногда 2 слова хочется написать а придётся юзать подчерк


Asus P5B, Intel® Core2Duo E8400@3.6Ghz, 2х2Gb DDR2 SDRAM PC-6400, Asus GeForce EN9800GT 1024Mb
Siemens CX75sw25, DCA-510 —> Патчи, включая ElfPack v2.3, FL-SWI v80725 —> Эльфы
PSP Slim&Lite Piano Black CFW 5.00 M33-6

Неактивен

 

#5 2007-07-17 19:54:15

-=Raider=-
Грозный модератор
Зарегистрирован: 2007-06-25
Сообщений: 594
Профиль

Re: Смайлики

В принципе, согласен.
Кстати,не подскажете, в какой кодепаге написан файл smiles.txt? Я пробовал писать названия русскими буквами-кракозябрики вместо букв появляются в описании в джимме... Варианта 2-либо не та кодировка, либо сам джимм не держит русских описаний... Но я больше склоняюсь к 1


И взял Бог у Программиста кость, в которой не было мозга, и создал из неё  Пользователя...
© "Сеть"
-----
Неужели это опять я?..

Неактивен

 

#6 2007-07-17 21:12:31

aspro
Прохожий
Зарегистрирован: 2007-03-24
Сообщений: 1768
Модель телефона: nokia 6233 & 5530
Профиль  Вебсайт

Re: Смайлики

кодировка текста UTF8


Кто ты? Чего ты хочешь?

Неактивен

 

#7 2007-07-18 17:28:11

M@rsik
jimm-тестер
Откуда: Украина, Донецк
Зарегистрирован: 2007-07-09
Сообщений: 87
Модель телефона: Siemens CX75
Профиль  Вебсайт

Re: Смайлики

её можно как-то изменить?
я хотел написать о русских описаниях, но решил что не очень значительно, но раз уж написали.... smile)


Asus P5B, Intel® Core2Duo E8400@3.6Ghz, 2х2Gb DDR2 SDRAM PC-6400, Asus GeForce EN9800GT 1024Mb
Siemens CX75sw25, DCA-510 —> Патчи, включая ElfPack v2.3, FL-SWI v80725 —> Эльфы
PSP Slim&Lite Piano Black CFW 5.00 M33-6

Неактивен

 

#8 2007-07-19 11:44:01

-=Raider=-
Грозный модератор
Зарегистрирован: 2007-06-25
Сообщений: 594
Профиль

Re: Смайлики

Да, по этому поводу опять появилась пара вопросов. Кодировка utf8 или java utf8, unix line breaks нужно включать или нет? Я в принципе пробовал все 4 варианта,ни один не катит...
Насколько я знаю по опыту,манифесты сохраненные в utf8 делают джар "неправильным"... Java utf 8 в этом случае спасает. А вот с описанием смайлов ниче не выходит,либо кракозябрики, либо пустота... 3.Ы. Редактировал софтинками Yedit и xplore (Symbian)


И взял Бог у Программиста кость, в которой не было мозга, и создал из неё  Пользователя...
© "Сеть"
-----
Неужели это опять я?..

Неактивен

 

#9 2007-07-20 03:28:53

iMiKE
Тестер в отставке
Откуда: Novosibirsk
Зарегистрирован: 2007-04-16
Сообщений: 63
Профиль  Вебсайт

Re: Смайлики

Мо моему опыту общения с джимом, с его реверсивной инженерией, с ковырянием файлов истории, обычный UTF-8
Кстати, где-то валяется мой проект батчевого конвертирования RMSDB SIEMENS x65/x75 в файлы истории любого формата (text, icq5, icqlite, qip, miranda, rnq...), надо будет поднять, что ли...

Неактивен

 

#10 2007-07-20 06:20:52

-=Raider=-
Грозный модератор
Зарегистрирован: 2007-06-25
Сообщений: 594
Профиль

Re: Смайлики

iMiKE, пасиба... Но всё равно не пашет :-( никто не пришлет файлик с описанием смайлов из стандартной комплектации на русском языке? ;-)


И взял Бог у Программиста кость, в которой не было мозга, и создал из неё  Пользователя...
© "Сеть"
-----
Неужели это опять я?..

Неактивен

 

#11 2007-07-20 08:12:44

Ale}{(is)
Джимогляд и Хэлперовод
Зарегистрирован: 2007-03-24
Сообщений: 601
Модель телефона: Siemens CSL65 sw53 + Nokia E51-1
Профиль  Вебсайт

Re: Смайлики

aspro написал:

кодировка текста UTF8

Здесь aspro к сожалению не прав.
Взглянув на исходники чтения строки из файла smiles.txt:

static boolean readStringFromStream(StringBuffer buffer, DataInputStream stream) throws IOException, EOFException {
    byte chr;
    boolean space = false;
    buffer.setLength(0);
    for (;;) {
        chr = stream.readByte();
        if ((chr == ' ') || (chr == '\n') || (chr == '\t')) break;
        if (chr == '_') {
            chr = ' ';
        }
        if (chr >= ' ') {
            buffer.append((char)chr);
        }
    }
    return (chr == '\n');
}

Можно заметить, что чтение идёт побайтно, а не посимвольно, следовательно для поддержки мультибайтных символов эту функцию нужно переписать. А пока русские названия в файле smiles.txt использовать нельзя


[img]http://promo.jimm.net.ru/userbars/animated/mrim/2.gif[/img]
Siemens CSL65 sw53 + Nokia E51(05) RM-244 fw200.04.36

Carpe diem! Carpent tua poma nepotes!
// Живи сегодняшним днем! Пожнут твои плоды потомки! (лат.)

Неактивен

 

#12 2007-07-20 10:52:31

CEB@
jimm-тестер
Откуда: г.Санкт-Петербург
Зарегистрирован: 2007-07-19
Сообщений: 393
Модель телефона: Samsung Galaxy S5 Dual Sim
Профиль

Re: Смайлики

Ale}{(is) написал:

aspro написал:

кодировка текста UTF8

Здесь aspro к сожалению не прав.
Взглянув на исходники чтения строки из файла smiles.txt:

static boolean readStringFromStream(StringBuffer buffer, DataInputStream stream) throws IOException, EOFException {
    byte chr;
    boolean space = false;
    buffer.setLength(0);
    for (;;) {
        chr = stream.readByte();
        if ((chr == ' ') || (chr == '\n') || (chr == '\t')) break;
        if (chr == '_') {
            chr = ' ';
        }
        if (chr >= ' ') {
            buffer.append((char)chr);
        }
    }
    return (chr == '\n');
}

Можно заметить, что чтение идёт побайтно, а не посимвольно, следовательно для поддержки мультибайтных символов эту функцию нужно переписать. А пока русские названия в файле smiles.txt использовать нельзя

Блин... Вот и вся разгадка насчёт пробела и подчёркивания... Подчёркивание банально заменяется на пробел...
Товарищи - программисты! Переделайте этот кусок кода!
Тут даже переменная space заведена, как я понимаю, для учёта пробелов...
Убираем кусок

                        if (chr == '_') {
            chr = ' ';
        }

Заменяем строку if ((chr == ' ') || (chr == '\n') || (chr == '\t')) break;
на if ((chr == '\n') || (chr == '\t')) break;

И производим учёт => если (chr == ' ') и space == false, то
space == true;
chr = ''

если (chr == ' ') и space == true, то
space == false;
break;

Отдельно добавим код, что если chr <> ' ', а space == true, то buffer.append((char)' ');

Конечно, это очень сыро + я не знаю синтаксиса языка Java, но, надеюсь, идея понятна:

В текстовом файле smiles.txt заменяем все пробелы на двойные пробелы и можно забыть о проблеме пробела/подчёркивания в смайлах...
Если, конечно, кому-нибудь в голову не взбредёт в смайлы по два пробела добавлять :)

Отредактировано CEB@ (2007-07-20 10:54:03)


Samsung Galaxy S5 Dual Sim

Неактивен

 

#13 2007-07-20 11:07:24

CEB@
jimm-тестер
Откуда: г.Санкт-Петербург
Зарегистрирован: 2007-07-19
Сообщений: 393
Модель телефона: Samsung Galaxy S5 Dual Sim
Профиль

Re: Смайлики

В общем, я так представляю себе код этой процедуры:


static boolean readStringFromStream(StringBuffer buffer, DataInputStream stream) throws IOException, EOFException {
    byte chr;
    boolean space = false;
    buffer.setLength(0);
    for (;;) {
        chr = stream.readByte();
        if ((chr == '\n') || (chr == '\t')) break;
        if ((chr == ' ') {
            if (space == true) {
                  space = false;
                  break;
            }
            else {
                  chr = '';
                  space = true;
            }
        }
        if ((chr > ' ')and(space == true)) {
            buffer.append((char)' '); 
            space = false;       
        }
        if (chr >= ' ') {
            buffer.append((char)chr);
        }
    }
    return (chr == '\n');
}


Только надо проверить синтаксис if..else и заменить and на что надо...
+возможно, может не работать строка buffer.append((char)' ');


Samsung Galaxy S5 Dual Sim

Неактивен

 

#14 2007-07-20 15:25:04

CEB@
jimm-тестер
Откуда: г.Санкт-Петербург
Зарегистрирован: 2007-07-19
Сообщений: 393
Модель телефона: Samsung Galaxy S5 Dual Sim
Профиль

Re: Смайлики

Ну, и smiles.txt должен иметь вид:

25
0  O:-)  O:-)
1  :-)  :-)  :)  :-))  :))  =)  =))  ))  )))
2  :-(  :-(  :(  :-((  :((  =(  =((  ((  (((

а не

25
0 O:-) O:-)
1 :-) :-) :) :-)) :)) =) =)) )) )))
2 :-( :-( :( :-(( :(( =( =(( (( (((


Samsung Galaxy S5 Dual Sim

Неактивен

 

#15 2007-07-20 17:17:58

aspro
Прохожий
Зарегистрирован: 2007-03-24
Сообщений: 1768
Модель телефона: nokia 6233 & 5530
Профиль  Вебсайт

Re: Смайлики

CEB@
есть пара нюансов.
1) 2 пробела можно перепутать с табом (да и вообще с одним пробелом) => многие просто не поймут этого
2) уже создано очень большое количество наборов смайликов, что бы их переделывать.


Кто ты? Чего ты хочешь?

Неактивен

 

Board footer

Powered by PunBB 1.2.14
© Copyright 2002–2005 Rickard Andersson
Модифицирован PunBB.ru
А находится на jimm.net.ru