QR-code и кириллица

Clarion, Clarion 7

Модератор: Дед Пахом

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Ответить
Аватара пользователя
morkovin
Ветеран
Сообщения: 908
Зарегистрирован: 20 Июль 2005, 14:53
Откуда: Volgograd, Russia
Благодарил (а): 2 раза
Поблагодарили: 3 раза
Контактная информация:

QR-code и кириллица

Сообщение morkovin »

С11 + List&Label18
При распечатке латиницы в QR-code - всё нормально. При выводе кириллицы - не распознаётся.
При перекодировке кириллицы в UTF-8 - тоже не распознаётся. Перепробовал разные online сканеры. Ничего не помогло!
В чём причина? Сканеры убогие? UTF-8 какой-то неправильный? Или сабж принципиально не поддерживается?
WBR, morkovin
Yufil
Ветеран движения
Сообщения: 1277
Зарегистрирован: 16 Май 2006, 14:34
Контактная информация:

QR-code и кириллица

Сообщение Yufil »

А это не оно?

In order to enter non-printable characters (binary data) in the
barcode text, they must be packaged in a special string. The data is
inserted using the ~dNNN string, whereby NNN stands for ASCII-
Code.
Аватара пользователя
morkovin
Ветеран
Сообщения: 908
Зарегистрирован: 20 Июль 2005, 14:53
Откуда: Volgograd, Russia
Благодарил (а): 2 раза
Поблагодарили: 3 раза
Контактная информация:

QR-code и кириллица

Сообщение morkovin »

Yufil писал(а): 21 Август 2020, 9:41 А это не оно?

[binserted using the ~dNNN string, whereby NNN stands for ASCII-
Code.[/b]
Спасибо!
Да, формировать строку надо именно так. Т.е. строка "А Б В Г" должна пересылаться в L&L как "~d208~d144 ~d208~d145 ~d208~d146 ~d208~d147".
т.е. для кириллицы это UTF-коды с префиксом ~d
Вот результат:
21.08_1.png
WBR, morkovin
Yufil
Ветеран движения
Сообщения: 1277
Зарегистрирован: 16 Май 2006, 14:34
Контактная информация:

QR-code и кириллица

Сообщение Yufil »

А нельзя сюда кусочек кода с подготовкой строки для L&L? Всем полезно, даже мне :D
Когда-то давно решал эту проблему, но никаких следов не осталось :(
Аватара пользователя
morkovin
Ветеран
Сообщения: 908
Зарегистрирован: 20 Июль 2005, 14:53
Откуда: Volgograd, Russia
Благодарил (а): 2 раза
Поблагодарили: 3 раза
Контактная информация:

QR-code и кириллица

Сообщение morkovin »

Yufil писал(а): 21 Август 2020, 15:51 А нельзя сюда кусочек кода с подготовкой строки для L&L? Всем полезно, даже мне :D
Когда-то давно решал эту проблему, но никаких следов не осталось :(
Конечно, надо сделать универсальную процедуру, а не рутинку

Код: Выделить всё

StrToLL ROUTINE
    CLEAR(Loc:UtfStr)
    CLEAR(Loc:UTF)
    i#=1
    LOOP i#=1 TO 15                                     !LEN(klk1:F)
       
        CASE klk1:F[i#]
            OF 'А'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d144'
                 
            OF 'Б'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d145'
                 
            OF 'В'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d146'
                 
            OF 'Г'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d147'
                 
            OF 'Д'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d148'
                 
            OF 'Е'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d149'
                 
            OF 'Ж'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d150'
                 
            OF 'З'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d151'
                 
            OF 'И'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d152'
                 
            OF 'Й'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d153'

            OF 'К'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d154'
                 
            OF 'Л'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d155'
                 
            OF 'М'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d156'
                 
            OF 'Н'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d157'
                 
            OF 'О'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d158'
                 
            OF 'П'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d159'
                 
            OF 'Р'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d160'
                 
            OF 'С'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d161'
                 
            OF 'Т'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d162'
                 
            OF 'У'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d163'
                 
            OF 'Ф'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d164'
                 
            OF 'Х'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d165'
                 
            OF 'Ц'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d166'
                 
            OF 'Ч'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d167'
                 
            OF 'Ш'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d168'
                                 
            OF 'Щ'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d169'
                                
            OF 'Ъ'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d170'
                                 
            OF 'Ы'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d171'
                 
            OF 'Ь'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d172'
                                 
            OF 'Э'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d173'
                                
            OF 'Ю'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d174'
                                             
            OF 'Я'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d175'
                                             
               
            OF 'а'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d176'
                 
            OF 'б'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d177'
                 
               
            OF 'в'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d178'
                 
            OF 'г'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d179'
                 
            OF 'д'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d180'
                 
            OF 'е'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d181'
                 
            OF 'ж'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d182'
                 
            OF 'з'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d183'
                 
            OF 'и'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d184'
                 
            OF 'й'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d185'

            OF 'к'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d186'
                 
            OF 'л'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d187'
                 
            OF 'м'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d188'
                 
            OF 'н'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d189'
                 
            OF 'о'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d190'
                 
            OF 'п'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d191'
                 
            OF 'р'
                Loc:Utf=CLIP(Loc:Utf)&'~d209~d128'
                 
            OF 'с'
                Loc:Utf=CLIP(Loc:Utf)&'~d209~d129'
                 
            OF 'т'
                Loc:Utf=CLIP(Loc:Utf)&'~d209~d130'
                 
            OF 'у'
                Loc:Utf=CLIP(Loc:Utf)&'~d209~d131'
                 
            OF 'ф'
                Loc:Utf=CLIP(Loc:Utf)&'~d209~d132'
                 
            OF 'х'
                Loc:Utf=CLIP(Loc:Utf)&'~d209~d133'
                 
            OF 'ц'
                Loc:Utf=CLIP(Loc:Utf)&'~d209~d134'
                 
            OF 'ч'
                Loc:Utf=CLIP(Loc:Utf)&'~d209~d135'
                 
            OF 'ш'
                Loc:Utf=CLIP(Loc:Utf)&'~d209~d136'
                                 
            OF 'щ'
                Loc:Utf=CLIP(Loc:Utf)&'~d209~d137'
                                
            OF 'ъ'
                Loc:Utf=CLIP(Loc:Utf)&'~d209~d138'
                                 
            OF 'ы'
                Loc:Utf=CLIP(Loc:Utf)&'~d209~d139'
                 
            OF 'ь'
                Loc:Utf=CLIP(Loc:Utf)&'~d209~d140'
                                 
            OF 'э'
                Loc:Utf=CLIP(Loc:Utf)&'~d209~d141'
                                
            OF 'ю'
                Loc:Utf=CLIP(Loc:Utf)&'~d209~d142'
                                             
            OF 'я'
                Loc:Utf=CLIP(Loc:Utf)&'~d209~d143'
                                             
            OF 'Ё'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d101'
                 
            OF 'ё'
                Loc:Utf=CLIP(Loc:Utf)&'~d209~d145'
                              
            ELSE
                Loc:Utf=CLIP(Loc:Utf)&klk1:F[i#]
        END
    END !LOOP
   
    Loc:UtfStr='FIO:'&Clip(Loc:Utf)
    CLEAR(Loc:Utf)
    i#=1; j#=0
    LOOP i#=1 TO 1 !LEN(klk1:I)
      
        CASE klk1:I[i#]
            OF 'А'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d144'
                 
            OF 'Б'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d145'
                 
            OF 'В'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d146'
                 
            OF 'Г'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d147'
                 
            OF 'Д'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d148'
                 
            OF 'Е'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d149'
                 
            OF 'Ж'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d150'
                 
            OF 'З'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d151'
                 
            OF 'И'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d152'
                 
            OF 'Й'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d153'

            OF 'К'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d154'
                 
            OF 'Л'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d155'
                 
            OF 'М'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d156'
                 
            OF 'Н'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d157'
                 
            OF 'О'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d158'
                 
            OF 'П'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d159'
                 
            OF 'Р'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d160'
                 
            OF 'С'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d161'
                 
            OF 'Т'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d162'
                 
            OF 'У'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d163'
                 
            OF 'Ф'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d164'
                 
            OF 'Х'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d165'
                 
            OF 'Ц'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d166'
                 
            OF 'Ч'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d167'
                 
            OF 'Ш'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d168'
                                 
            OF 'Щ'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d169'
                                
            OF 'Ъ'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d170'
                                 
            OF 'Ы'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d171'
                 
            OF 'Ь'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d172'
                                 
            OF 'Э'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d173'
                                
            OF 'Ю'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d174'
                                             
            OF 'Я'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d175'
                                             
               
            OF 'а'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d176'
                 
            OF 'б'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d177'
                 
               
            OF 'в'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d178'
                 
            OF 'г'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d179'
                 
            OF 'д'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d180'
                 
            OF 'е'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d181'
                 
            OF 'ж'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d182'
                 
            OF 'з'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d183'
                 
            OF 'и'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d184'
                 
            OF 'й'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d185'

            OF 'к'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d186'
                 
            OF 'л'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d187'
                 
            OF 'м'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d188'
                 
            OF 'н'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d189'
                 
            OF 'о'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d190'
                 
            OF 'п'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d191'
                 
            OF 'р'
                Loc:Utf=CLIP(Loc:Utf)&'~d209~d128'
                 
            OF 'с'
                Loc:Utf=CLIP(Loc:Utf)&'~d209~d129'
                 
            OF 'т'
                Loc:Utf=CLIP(Loc:Utf)&'~d209~d130'
                 
            OF 'у'
                Loc:Utf=CLIP(Loc:Utf)&'~d209~d131'
                 
            OF 'ф'
                Loc:Utf=CLIP(Loc:Utf)&'~d209~d132'
                 
            OF 'х'
                Loc:Utf=CLIP(Loc:Utf)&'~d209~d133'
                 
            OF 'ц'
                Loc:Utf=CLIP(Loc:Utf)&'~d209~d134'
                 
            OF 'ч'
                Loc:Utf=CLIP(Loc:Utf)&'~d209~d135'
                 
            OF 'ш'
                Loc:Utf=CLIP(Loc:Utf)&'~d209~d136'
                                 
            OF 'щ'
                Loc:Utf=CLIP(Loc:Utf)&'~d209~d137'
                                
            OF 'ъ'
                Loc:Utf=CLIP(Loc:Utf)&'~d209~d138'
                                 
            OF 'ы'
                Loc:Utf=CLIP(Loc:Utf)&'~d209~d139'
                 
            OF 'ь'
                Loc:Utf=CLIP(Loc:Utf)&'~d209~d140'
                                 
            OF 'э'
                Loc:Utf=CLIP(Loc:Utf)&'~d209~d141'
                                
            OF 'ю'
                Loc:Utf=CLIP(Loc:Utf)&'~d209~d142'
                                             
            OF 'я'
                Loc:Utf=CLIP(Loc:Utf)&'~d209~d143'
                                             
            OF 'Ё'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d101'
                 
            OF 'ё'
                Loc:Utf=CLIP(Loc:Utf)&'~d209~d145'
                              
            ELSE
                Loc:Utf=CLIP(Loc:Utf)&klk1:I[i#]
        END
    END !LOOP

    Loc:UtfStr=CLIP(Loc:UtfStr)&' '&CLIP(Loc:Utf)&'.' 
    CLEAR(Loc:Utf)
    i#=1
    LOOP i#=1 TO 1  !LEN(klk1:O)
       
        CASE klk1:O[i#]
            OF 'А'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d144'
                 
            OF 'Б'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d145'
                 
            OF 'В'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d146'
                 
            OF 'Г'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d147'
                 
            OF 'Д'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d148'
                 
            OF 'Е'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d149'
                 
            OF 'Ж'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d150'
                 
            OF 'З'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d151'
                 
            OF 'И'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d152'
                 
            OF 'Й'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d153'

            OF 'К'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d154'
                 
            OF 'Л'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d155'
                 
            OF 'М'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d156'
                 
            OF 'Н'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d157'
                 
            OF 'О'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d158'
                 
            OF 'П'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d159'
                 
            OF 'Р'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d160'
                 
            OF 'С'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d161'
                 
            OF 'Т'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d162'
                 
            OF 'У'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d163'
                 
            OF 'Ф'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d164'
                 
            OF 'Х'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d165'
                 
            OF 'Ц'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d166'
                 
            OF 'Ч'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d167'
                 
            OF 'Ш'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d168'
                                 
            OF 'Щ'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d169'
                                
            OF 'Ъ'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d170'
                                 
            OF 'Ы'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d171'
                 
            OF 'Ь'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d172'
                                 
            OF 'Э'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d173'
                                
            OF 'Ю'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d174'
                                             
            OF 'Я'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d175'
            OF 'а'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d176'
                 
            OF 'б'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d177'
            OF 'в'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d178'
                 
            OF 'г'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d179'
                 
            OF 'д'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d180'
                 
            OF 'е'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d181'
                 
            OF 'ж'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d182'
                 
            OF 'з'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d183'
                 
            OF 'и'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d184'
                 
            OF 'й'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d185'

            OF 'к'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d186'
                 
            OF 'л'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d187'
                 
            OF 'м'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d188'
                 
            OF 'н'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d189'
                 
            OF 'о'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d190'
                 
            OF 'п'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d191'
                 
            OF 'р'
                Loc:Utf=CLIP(Loc:Utf)&'~d209~d128'
                 
            OF 'с'
                Loc:Utf=CLIP(Loc:Utf)&'~d209~d129'
                 
            OF 'т'
                Loc:Utf=CLIP(Loc:Utf)&'~d209~d130'
                 
            OF 'у'
                Loc:Utf=CLIP(Loc:Utf)&'~d209~d131'
                 
            OF 'ф'
                Loc:Utf=CLIP(Loc:Utf)&'~d209~d132'
                 
            OF 'х'
                Loc:Utf=CLIP(Loc:Utf)&'~d209~d133'
                 
            OF 'ц'
                Loc:Utf=CLIP(Loc:Utf)&'~d209~d134'
                 
            OF 'ч'
                Loc:Utf=CLIP(Loc:Utf)&'~d209~d135'
                 
            OF 'ш'
                Loc:Utf=CLIP(Loc:Utf)&'~d209~d136'
                                 
            OF 'щ'
                Loc:Utf=CLIP(Loc:Utf)&'~d209~d137'
                                
            OF 'ъ'
                Loc:Utf=CLIP(Loc:Utf)&'~d209~d138'
                                 
            OF 'ы'
                Loc:Utf=CLIP(Loc:Utf)&'~d209~d139'
                 
            OF 'ь'
                Loc:Utf=CLIP(Loc:Utf)&'~d209~d140'
            OF 'э'
                Loc:Utf=CLIP(Loc:Utf)&'~d209~d141'
            OF 'ю'
                Loc:Utf=CLIP(Loc:Utf)&'~d209~d142'
            OF 'я'
                Loc:Utf=CLIP(Loc:Utf)&'~d209~d143'
            OF 'Ё'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d101'
            OF 'ё'
                Loc:Utf=CLIP(Loc:Utf)&'~d209~d145'
            ELSE
                Loc:Utf=CLIP(Loc:Utf)&klk1:O[i#]
               
        END
    END !LOOP
 
    Loc:UtfStr=CLIP(Loc:UtfStr)&CLIP(Loc:UTF)&'.' 
    CLEAR(Loc:UTF)
    i#=1
    LOOP i#=1 TO LEN(AGR:Gruppa)
        CASE AGR:Gruppa[i#]
            OF 'А'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d144'
                 
            OF 'Б'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d145'
                 
            OF 'В'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d146'
                 
            OF 'Г'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d147'
                 
            OF 'Д'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d148'
                 
            OF 'Е'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d149'
                 
            OF 'Ж'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d150'
                 
            OF 'З'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d151'
                 
            OF 'И'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d152'
                 
            OF 'Й'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d153'

            OF 'К'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d154'
                 
            OF 'Л'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d155'
                 
            OF 'М'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d156'
                 
            OF 'Н'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d157'
                 
            OF 'О'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d158'
                 
            OF 'П'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d159'
                 
            OF 'Р'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d160'
                 
            OF 'С'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d161'
                 
            OF 'Т'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d162'
                 
            OF 'У'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d163'
                 
            OF 'Ф'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d164'
                 
            OF 'Х'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d165'
                 
            OF 'Ц'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d166'
                 
            OF 'Ч'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d167'
                 
            OF 'Ш'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d168'
                                 
            OF 'Щ'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d169'
                                
            OF 'Ъ'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d170'
                                 
            OF 'Ы'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d171'
                 
            OF 'Ь'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d172'
                                 
            OF 'Э'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d173'
                                
            OF 'Ю'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d174'
                                             
            OF 'Я'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d175'
                                             
               
            OF 'а'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d176'
                 
            OF 'б'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d177'
                 
               
            OF 'в'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d178'
                 
            OF 'г'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d179'
                 
            OF 'д'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d180'
                 
            OF 'е'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d181'
                 
            OF 'ж'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d182'
                 
            OF 'з'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d183'
                 
            OF 'и'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d184'
                 
            OF 'й'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d185'

            OF 'к'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d186'
                 
            OF 'л'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d187'
                 
            OF 'м'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d188'
                 
            OF 'н'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d189'
                 
            OF 'о'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d190'
                 
            OF 'п'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d191'
                 
            OF 'р'
                Loc:Utf=CLIP(Loc:Utf)&'~d209~d128'
                 
            OF 'с'
                Loc:Utf=CLIP(Loc:Utf)&'~d209~d129'
                 
            OF 'т'
                Loc:Utf=CLIP(Loc:Utf)&'~d209~d130'
                 
            OF 'у'
                Loc:Utf=CLIP(Loc:Utf)&'~d209~d131'
                 
            OF 'ф'
                Loc:Utf=CLIP(Loc:Utf)&'~d209~d132'
                 
            OF 'х'
                Loc:Utf=CLIP(Loc:Utf)&'~d209~d133'
                 
            OF 'ц'
                Loc:Utf=CLIP(Loc:Utf)&'~d209~d134'
                 
            OF 'ч'
                Loc:Utf=CLIP(Loc:Utf)&'~d209~d135'
                 
            OF 'ш'
                Loc:Utf=CLIP(Loc:Utf)&'~d209~d136'
                                 
            OF 'щ'
                Loc:Utf=CLIP(Loc:Utf)&'~d209~d137'
                                
            OF 'ъ'
                Loc:Utf=CLIP(Loc:Utf)&'~d209~d138'
                                 
            OF 'ы'
                Loc:Utf=CLIP(Loc:Utf)&'~d209~d139'
                 
            OF 'ь'
                Loc:Utf=CLIP(Loc:Utf)&'~d209~d140'
                                 
            OF 'э'
                Loc:Utf=CLIP(Loc:Utf)&'~d209~d141'
                                
            OF 'ю'
                Loc:Utf=CLIP(Loc:Utf)&'~d209~d142'
                                             
            OF 'я'
                Loc:Utf=CLIP(Loc:Utf)&'~d209~d143'
                                             
            OF 'Ё'
                Loc:Utf=CLIP(Loc:Utf)&'~d208~d101'
                 
            OF 'ё'
                Loc:Utf=CLIP(Loc:Utf)&'~d209~d145'
                              
            ELSE
                Loc:Utf=CLIP(Loc:Utf)&AGR:Gruppa[i#]
        END
    END !LOOP
     Loc:UtfStr=CLIP(Loc:UtfStr)&' Gruppa:'&CLIP(Loc:UTF) 
на каждый символ кириллицы получается десять символов. Это напрягает :(
Последний раз редактировалось morkovin 21 Август 2020, 19:48, всего редактировалось 1 раз.
WBR, morkovin
Аватара пользователя
Дед Пахом
Старичок
Сообщения: 3131
Зарегистрирован: 07 Июль 2005, 16:51
Откуда: Москва, Россия
Благодарил (а): 10 раз
Поблагодарили: 28 раз
Контактная информация:

QR-code и кириллица

Сообщение Дед Пахом »

У Вас косяк с буквой "ё" в четырёх местах. А ещё я бы сократил с 835 строк до примерно семи.
С уважением, ДП
Аватара пользователя
morkovin
Ветеран
Сообщения: 908
Зарегистрирован: 20 Июль 2005, 14:53
Откуда: Volgograd, Russia
Благодарил (а): 2 раза
Поблагодарили: 3 раза
Контактная информация:

QR-code и кириллица

Сообщение morkovin »

Дед Пахом писал(а): 21 Август 2020, 18:35 У Вас косяк с буквой "ё" в четырёх местах. А ещё я бы сократил с 835 строк до примерно семи.
Спасибо!Исправил.
WBR, morkovin
Yufil
Ветеран движения
Сообщения: 1277
Зарегистрирован: 16 Май 2006, 14:34
Контактная информация:

QR-code и кириллица

Сообщение Yufil »

А символы латиницы тоже можно в таком виде ?
Тогда выгоднее преобразовать строку в UTF-8, а потом побайтово вывести
C использованием класса Cstr примерно так...

Код: Выделить всё

St       Cstr
Result Cstr 
S1  String(1) 
   .... 
   St.Set( 'Входная строка с данными')
   St.ToUtf8() 
   LOOP I# = 1 To St.Len
      S1=St.S[I#]
      Result.Cat('~d' & format( Val(s1),@n03))
   END
   !  Результат находится в Result.S 
Аватара пользователя
morkovin
Ветеран
Сообщения: 908
Зарегистрирован: 20 Июль 2005, 14:53
Откуда: Volgograd, Russia
Благодарил (а): 2 раза
Поблагодарили: 3 раза
Контактная информация:

QR-code и кириллица

Сообщение morkovin »

Yufil писал(а): 27 Август 2020, 12:39 А символы латиницы тоже можно в таком виде ?
Тогда выгоднее преобразовать строку в UTF-8, а потом побайтово вывести
C использованием класса Cstr примерно так...
Спасибо! Проверил. Всё работает с классом CSTR.
WBR, morkovin
Ответить