Clarion 11-12

Clarion, Clarion 7

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

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 8368
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 35 раз
Поблагодарили: 113 раз

Clarion 11-12

Сообщение Игорь Столяров »

kreator писал(а): 28 Декабрь 2025, 18:28 Проверка на "впихуемость" строки в переменную лежит на программисте.
Вот этот "сишный" вариант был бы самым худшим из возможных ... 🤦‍♀️
Если посмотреть картинки 8-ми (!!!) летней давности, то вроде бы USTRING имеет размерность.
И вроде бы (!) эта размерность именно в символах UNICODE (без привязки к реальной длине строки в BYTE)

1.jpg

Кстати, в примере хорошо видно город где всё вот это "USTRING туда и обратно" происходит ... :D
За теми, кто отстал, не возвращаться ! 🏴‍☠️ Кодекс
kreator
✯ Ветеран ✯
Сообщения: 5256
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 11 раз
Поблагодарили: 27 раз

Clarion 11-12

Сообщение kreator »

Игорь Столяров писал(а): 28 Декабрь 2025, 18:49 Вот этот "сишный" вариант был бы самым худшим из возможных ...
Наверно поэтому и делают "безразмерные" типы, чтобы мы не парились.
Игорь Столяров писал(а): 28 Декабрь 2025, 18:49 Если посмотреть картинки 8-ми (!!!) летней давности, то вроде бы USTRING имеет размерность.
Если это юникод Майкрософта, то ещё что-то можно подсчитать. А в стандартном некоторые символы имеют 1 байт, другие 2 байта, вроде есть и по три и по четыре байта. Как подсчитать в этом случае?
We are hard at work… for you. :)
kreator
✯ Ветеран ✯
Сообщения: 5256
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 11 раз
Поблагодарили: 27 раз

Clarion 11-12

Сообщение kreator »

Admin писал(а): 28 Декабрь 2025, 15:33
kreator писал(а): 28 Декабрь 2025, 14:52 Руками? В каждой процедуре? В каждом экране?
TXD + можно написать утилитку меняющую интеллектуально а не просто все подряд
RZ написал про какие-то области для тестирования. Но мне нужно сразу всё большое приложение перевести на Юникод. Не каждую процедуру, а сразу всё. Не может же быть так - один экран в Юникоде, другой в Анси.
We are hard at work… for you. :)
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 8368
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 35 раз
Поблагодарили: 113 раз

Clarion 11-12

Сообщение Игорь Столяров »

kreator писал(а): 28 Декабрь 2025, 21:00 Как подсчитать в этом случае?
Динамически при присвоении значения. Как это делается в типе данных ANY или штатном классе DynStr ...
За теми, кто отстал, не возвращаться ! 🏴‍☠️ Кодекс
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 5682
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 20 раз
Поблагодарили: 82 раза

Clarion 11-12

Сообщение finsoftrz »

В sqlite и тип char имеет динамический размер. То есть можно задекларировать поле char(40) и присвоить значение с длиной в 2 раза больше, все сохраниться и прочитается. Указание длины строки оставили для обратной совместимости по синтаксису.

Наверно, стоило бы предоставить бету всем бесплатно для тестирования, чтобы народ убедился, что действительно что-то разрабатывается (если вообще разрабатывается). А то так будет очень странно, если кто-то захочет продлять подписку.
Кстати, в кларионе ещё с 90-х имеется тип данных bstring, который предназначался для работы со строками в юникоде. О нем почему-то очень редко вспоминают.
C6/C12, ШВС, tps/btrieve.
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 8368
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 35 раз
Поблагодарили: 113 раз

Clarion 11-12

Сообщение Игорь Столяров »

finsoftrz писал(а): 28 Декабрь 2025, 23:12 В sqlite и тип char имеет динамический размер
А разве в SQLite есть такой тип данных ? Строковые поля SQLite - это TEXT в UTF-8 без размера ...
За теми, кто отстал, не возвращаться ! 🏴‍☠️ Кодекс
PavelNK
Старожил
Сообщения: 287
Зарегистрирован: 15 Март 2011, 8:02

Clarion 11-12

Сообщение PavelNK »

Игорь Столяров писал(а): 28 Декабрь 2025, 15:41 Понятно, что все SQL давно отказались от национальных кодировок ANSI и перешли на UNICODE.
Вы очень сильно заблуждаетесь.
Аватара пользователя
Губин Игорь
Шубуршун
Сообщения: 2714
Зарегистрирован: 16 Сентябрь 2005, 16:35
Откуда: Москва
Благодарил (а): 9 раз
Поблагодарили: 29 раз

Clarion 11-12

Сообщение Губин Игорь »

finsoftrz писал(а): 28 Декабрь 2025, 23:12 bstring, который предназначался для работы со строками в юникоде
Не совсем. Он предназначался для хранения файлов с произвольной информацией. Включая <0>
Это я только кажусь дураком! На самом деле я полный идиот!
Аватара пользователя
Губин Игорь
Шубуршун
Сообщения: 2714
Зарегистрирован: 16 Сентябрь 2005, 16:35
Откуда: Москва
Благодарил (а): 9 раз
Поблагодарили: 29 раз

Clarion 11-12

Сообщение Губин Игорь »

kreator писал(а): 28 Декабрь 2025, 21:03 Не может же быть так - один экран в Юникоде, другой в Анси.
А пуркуа бы и не па?! :?:
Это я только кажусь дураком! На самом деле я полный идиот!
Аватара пользователя
Губин Игорь
Шубуршун
Сообщения: 2714
Зарегистрирован: 16 Сентябрь 2005, 16:35
Откуда: Москва
Благодарил (а): 9 раз
Поблагодарили: 29 раз

Clarion 11-12

Сообщение Губин Игорь »

finsoftrz писал(а): 28 Декабрь 2025, 23:12 А то так будет очень странно, если кто-то захочет продлять подписку.
Лох не мамонт?
Это я только кажусь дураком! На самом деле я полный идиот!
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 5682
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 20 раз
Поблагодарили: 82 раза

Clarion 11-12

Сообщение finsoftrz »

Игорь Столяров писал(а): 28 Декабрь 2025, 23:18
finsoftrz писал(а): 28 Декабрь 2025, 23:12 В sqlite и тип char имеет динамический размер
А разве в SQLite есть такой тип данных ? Строковые поля SQLite - это TEXT в UTF-8 без размера ...
Вот из гугла.
Если указать тип CHAR(size), SQLite игнорирует параметр size. SQLite не позволяет указывать ограничения на длину для строковых типов данных.
Насколько я помню, в sqlite на самом деле в конечном итоге все значения хранятся как строковые переменной длины.
C6/C12, ШВС, tps/btrieve.
Ответить