Board.KolibriOS.org

Официальный форум KolibriOS
Текущее время: Пт июн 23, 2017 9:58 pm

Часовой пояс: UTC+03:00




Начать новую тему  Ответить на тему  [ 23 сообщения ]  На страницу 1 2 След.
Автор Сообщение
 Заголовок сообщения: Разные кодировки
СообщениеДобавлено: Пт авг 05, 2005 10:21 pm 
Не в сети

Зарегистрирован: Вс июн 19, 2005 7:08 pm
Сообщения: 41
Я попробовал написать функции для перевода строки из Win кодировки в Dos. Первая использует условные переходы, вторя таблицу. Какая лучше - не знаю. И первую и вторую надо хорошень потестить.

Входные данные: esi = указывает на строку, ecx = количество символов. Думаю функция будет полезной. Например, было бы неплохо прикрутить ее к ТиниПаду.
Код:
Win2Dos1:
        jcxz    .no_chars
        push    esi
        push    edi
        push    ecx
        mov     edi, esi
.next_char:
        lodsb
        cmp     al, 0xC0
        jae     .rus
        cmp     al, 0xA8
        jnz     @f
        mov     al, 0xF0
@@:
        cmp     al, 0xB8
        jnz     @f
        mov     al, 0xF1
@@:
        jmp     .char_ready
.rus:
        cmp     al, 0xF0
        jae     @f
        sub     al, 48
@@:
        sub     al, 16
.char_ready:
        stosb
        dec     ecx
        jnz     .next_char

        pop     ecx
        pop     edi
        pop     esi
.no_chars:
        ret


Вернуться к началу
 Заголовок сообщения:
СообщениеДобавлено: Пт авг 05, 2005 10:29 pm 
Второй вариант
Код:
Win2Dos2:
        jcxz    .no_chars
        push    ebx
        push    edi
        push    ecx
        mov     edi, esi
        mov     ebx, Win2Dos_table

.next_char:
        lodsb
        xlatb
        stosb

        dec     ecx
        jnz     .next_char

        pop     ecx
        pop     edi
        pop     ebx
.no_chars:
        ret

Win2Dos_table:
rept 168 counter
{        db counter - 1
}
        db 0xF0
rept 15 counter
{        db counter + 168
}
        db 0xF1
rept 7 counter
{        db counter + 184
}
rept 48 counter
{        db counter + 127
}
rept 16 counter
{        db counter + 223
}

Если кому интересно, могу добавить подробные комментарии.


Вернуться к началу
   
 Заголовок сообщения:
СообщениеДобавлено: Вс авг 07, 2005 5:51 pm 
ealex

перекодировка ДОС-ВИН есть (была) в хекс-редакторе, тока (хотя я и обещал посмотреть её и приделать к тинипаду) я её не смотрел...
ф-я очень нужная, будем надеяться mike.dld в скором времени обновит тинипад :)


Вернуться к началу
   
 Заголовок сообщения:
СообщениеДобавлено: Вт авг 09, 2005 9:58 am 
Не в сети

Зарегистрирован: Ср май 25, 2005 8:52 am
Сообщения: 147
Я реализовал перекодировку в своем RTF Reader и вполне ею доволен. Там конверсия путем вычитания кодов, и по таблице - для специальных символов. По возможности надо выложить исходники.


Вернуться к началу
 Заголовок сообщения:
СообщениеДобавлено: Вт авг 09, 2005 4:44 pm 
как на счёт добавления макросов в ascl?


Вернуться к началу
   
 Заголовок сообщения:
СообщениеДобавлено: Вт окт 11, 2005 12:40 pm 
Не в сети

Зарегистрирован: Ср май 25, 2005 8:52 am
Сообщения: 147
Отрывок из RTF READER:
Код:
; in - al/ax; out - al
macro uc2oem
{
local .ex1
    push edi
    mov  ecx,(oemutbl-uctbl)/2+1
    mov  edi,uctbl
    repne scasw
    jne  .ex1
    sub  edi,uctbl
    shr  edi,1
    dec  edi
    mov  al,[oemutbl+edi]
  .ex1:
    pop  edi
}

macro ansi2oem
{
local .ex2,.notintbl
    push edi ecx
    mov  ecx,oematbl-ansitbl
    mov  edi,ansitbl
    repne scasb
    jne  .notintbl
    dec  edi
    mov  al,[oematbl-ansitbl+edi]
    jmp  .ex2
  .notintbl:
    cmp  al,0xc0
    jb   .ex2
    sub  al,0x40
    cmp  al,0xb0
    jb   .ex2
    add  al,0x30
  .ex2:
    pop  ecx edi
}

ansitbl:
    db 0xaa,0xba,0xbf,0xaf
    db 0xa7,0xa8,0xa1,0xab,0xb0,0xb2,0xb3,0xb6,0xb7,0xb8,0xb9
    db 0xa2,0xbb,0x93,0x94,0x85
oematbl:
    db 0xf2,0xf3,0xf5,0xf4
    db 0x15,0xf0,0xf6,0x22,0x1d,0x49,0x69,0x14,0x1c,0xf1,0x23
    db 0xf7,0x22,0x22,0x22,0x16
uctbl:
    dw 0x451
oemutbl:
    db 0xb8


Вернуться к началу
 Заголовок сообщения:
СообщениеДобавлено: Ср окт 12, 2005 7:33 pm 
Не в сети

Зарегистрирован: Ср май 18, 2005 7:27 pm
Сообщения: 1001
Андрей, GameMaker - это хорошо, но RTF-редактор важнее ;)


Вернуться к началу
 Заголовок сообщения:
СообщениеДобавлено: Чт окт 13, 2005 10:45 am 
Не в сети

Зарегистрирован: Ср май 25, 2005 8:52 am
Сообщения: 147
Я так скажу. С точки зрения доступа к данным формат RTF очень неудобен по сравнению например с Word. RTF редактор или даже удобную читалку с возможностью навигации по тексту сделать не легче, чем браузер...


Вернуться к началу
 Заголовок сообщения:
СообщениеДобавлено: Чт окт 13, 2005 7:57 pm 
Не в сети

Зарегистрирован: Ср май 18, 2005 7:27 pm
Сообщения: 1001
Кстати, помнится ты около года назад писал карточную игру с искуственным интеллектом. Как её судьба?


Вернуться к началу
 Заголовок сообщения:
СообщениеДобавлено: Пт окт 14, 2005 9:26 am 
Не в сети

Зарегистрирован: Ср май 25, 2005 8:52 am
Сообщения: 147
Что-то не выходит. Запутался. Возможно, большую часть кода нужно будет пересмотреть и переписать


Вернуться к началу
 Заголовок сообщения:
СообщениеДобавлено: Сб окт 15, 2005 8:08 am 
У меня тоже где-то валяется недописанный "Козел". Могу передать исходники, кто интересуется.


Вернуться к началу
   
 Заголовок сообщения:
СообщениеДобавлено: Пн окт 17, 2005 9:43 am 
Не в сети

Зарегистрирован: Ср май 25, 2005 8:52 am
Сообщения: 147
Почему нет? Кидай на wil[underline]low[at]hotbox[dot]ru


Вернуться к началу
 Заголовок сообщения:
СообщениеДобавлено: Чт окт 12, 2006 5:57 pm 
ealex

ИМХО нужно внутренне представлять символы текста в UCS32.
Тогда можно обеспечить реальную многоязыковую поддержку.

Сам недавно прорабатывал вопрос с перекодированием здесь.
Исходники на Oberon прилагаются :D


Вернуться к началу
   
 Заголовок сообщения:
СообщениеДобавлено: Чт окт 12, 2006 7:41 pm 
Не в сети
Site Founder
Аватара пользователя

Зарегистрирован: Вс авг 08, 2004 8:55 am
Сообщения: 690
А я лично за UTF8. По-моему, вполне достаточно будет для такой ОС как Колибри.


Вернуться к началу
 Заголовок сообщения:
СообщениеДобавлено: Чт окт 12, 2006 10:21 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Чт окт 13, 2005 12:00 pm
Сообщения: 299
боюсь что в конечном итоге все наиболее распространенные кодировки кириллицы будут нужны


Вернуться к началу
Показать сообщения за:  Поле сортировки  
Начать новую тему  Ответить на тему  [ 23 сообщения ]  На страницу 1 2 След.

Часовой пояс: UTC+03:00


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Limited
Русская поддержка phpBB