Clarion Entry Control with more than 255 characters

Clarion, Clarion 7

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

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Developer
Ветеран
Сообщения: 551
Зарегистрирован: 26 Март 2012, 17:18

Clarion Entry Control with more than 255 characters

Сообщение Developer »

Привет всем!

Есть ли в Clarion элемент управления (Control) типа Entry с возможностью ввода более 255 символов?
С Уважением, Developer
Developer
Ветеран
Сообщения: 551
Зарегистрирован: 26 Март 2012, 17:18

Clarion Entry Control with more than 255 characters

Сообщение Developer »

Обнаружил ответ в виде примера https://clarionhub.com/t/rtf-control-an ... key/2051/6

Это Clarion control Text :wink:


Максимальный практический размер количества символов?
Вложения
TextControlTest.zip
(10.07 КБ) 96 скачиваний
С Уважением, Developer
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7329
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 13 раз
Поблагодарили: 48 раз

Clarion Entry Control with more than 255 characters

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

Пример не особо удачный, ибо в нём строка для TEXT в 2 KByte …

Для работы с большими текстовыми полями, есть смысл идти по пути,
как рекомендовал ДП в соседней ветке форума: viewtopic.php?f=4&t=4362

Я не пытался достичь дна, но достаточно большие текстовые файлы прекрасно печатаются через TEXT.
За теми кто отстал - не возвращаться. (С) Кодекс
Аватара пользователя
Дед Пахом
Старичок
Сообщения: 3131
Зарегистрирован: 07 Июль 2005, 16:51
Откуда: Москва, Россия
Благодарил (а): 10 раз
Поблагодарили: 28 раз
Контактная информация:

Clarion Entry Control with more than 255 characters

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

Когда я делал FTP manager (libcurl), столкнулся с ограничением TEXT (где-то в районе 30K).
С уважением, ДП
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7329
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 13 раз
Поблагодарили: 48 раз

Clarion Entry Control with more than 255 characters

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

Дед Пахом писал(а): 20 Октябрь 2018, 17:56(где-то в районе 30K).
Может быть это именно экранный TEXT …
В отчёте, на вскидку - вывел через TEXT текстовый файл 350K / 100 листов.
Вообще без проблем, да и больше пробовал …

Я бы поставил на то, что упрётся в 4M по максимуму статичной STRING.
За теми кто отстал - не возвращаться. (С) Кодекс
Developer
Ветеран
Сообщения: 551
Зарегистрирован: 26 Март 2012, 17:18

Clarion Entry Control with more than 255 characters

Сообщение Developer »

Дед Пахом писал(а): 20 Октябрь 2018, 17:56Когда я делал FTP manager (libcurl), столкнулся с ограничением TEXT (где-то в районе 30K).
Зависит ли это ограничение от версии Clarion?
С Уважением, Developer
Developer
Ветеран
Сообщения: 551
Зарегистрирован: 26 Март 2012, 17:18

Clarion Entry Control with more than 255 characters

Сообщение Developer »

Игорь Столяров писал(а): 20 Октябрь 2018, 18:15
Дед Пахом писал(а): 20 Октябрь 2018, 17:56(где-то в районе 30K).
Может быть это именно экранный TEXT …
В отчёте, на вскидку - вывел через TEXT текстовый файл 350K / 100 листов.
Вообще без проблем, да и больше пробовал …

Я бы поставил на то, что упрётся в 4M по максимуму статичной STRING.
Интересует именно максимальный практический размер информации поля ввода в WINDOW
С Уважением, Developer
Аватара пользователя
Дед Пахом
Старичок
Сообщения: 3131
Зарегистрирован: 07 Июль 2005, 16:51
Откуда: Москва, Россия
Благодарил (а): 10 раз
Поблагодарили: 28 раз
Контактная информация:

Clarion Entry Control with more than 255 characters

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

CtrlC/CtrlV попробуй.
С уважением, ДП
Аватара пользователя
vic7tar
Ветеран
Сообщения: 365
Зарегистрирован: 09 Февраль 2017, 20:12

Clarion Entry Control with more than 255 characters

Сообщение vic7tar »

А что, есть какие-то ограничения на вывод вText-controle?
Взял примерчик, который повыше, изменил TextField на CSTRING(1000000).
В поле, как положено, помещается миллион знаков, копируем, пастим в Word-е, смотрим статистику -> тот же миллион.
C10, Win10x64
Developer
Ветеран
Сообщения: 551
Зарегистрирован: 26 Март 2012, 17:18

Clarion Entry Control with more than 255 characters

Сообщение Developer »

vic7tar писал(а): 20 Октябрь 2018, 20:00А что, есть какие-то ограничения на вывод вText-controle?
Взял примерчик, который повыше, изменил TextField на CSTRING(1000000).
В поле, как положено, помещается миллион знаков, копируем, пастим в Word-е, смотрим статистику -> тот же миллион.
Если я правильно понял, ограничения поля ввода будут по ограничению переменной типа CSTRING?
С Уважением, Developer
Аватара пользователя
vic7tar
Ветеран
Сообщения: 365
Зарегистрирован: 09 Февраль 2017, 20:12

Clarion Entry Control with more than 255 characters

Сообщение vic7tar »

Developer писал(а): 20 Октябрь 2018, 20:05Если я правильно понял, ограничения поля ввода будут по ограничению переменной типа CSTRING?
Ну и я так тоже понимаю, Text-control - всего лишь обычное окно. А вот сколько туда можно вывести - другой вопрос. В случае с TextField размер строки будет ограничен стековой памятью потока.
C10, Win10x64
Developer
Ветеран
Сообщения: 551
Зарегистрирован: 26 Март 2012, 17:18

Clarion Entry Control with more than 255 characters

Сообщение Developer »

Выяснил опытным путём декларируемый максимальный размер переменной CSTRING(4194304) - это 4 мегабайта (4194304 байт) который пропускает компилятор, но возможно добавить ещё один байт и получаем 4194305 - компилятор пропускает, а вот уже
TextField CSTRING(4194306) нет - Declaration too big - C:\TextControlTest\TextControlTest001.clw:276,30 :wink:

Но при вставке символов в окно, их количество не может быть больше 4194304 :D

Так что за фокусы компилятора с размером CSTRING(4194305) :mrgreen:
С Уважением, Developer
Аватара пользователя
RaFaeL
✯ Ветеран ✯
Сообщения: 1376
Зарегистрирован: 24 Март 2009, 17:59
Откуда: НН
Благодарил (а): 7 раз
Поблагодарили: 1 раз
Контактная информация:

Clarion Entry Control with more than 255 characters

Сообщение RaFaeL »

Почитай что такое CSTRING и в чем отличие от STRING, может и не будет "фокусов"
kreator
✯ Ветеран ✯
Сообщения: 4960
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 6 раз
Поблагодарили: 19 раз

Clarion Entry Control with more than 255 characters

Сообщение kreator »

Developer писал(а): 20 Октябрь 2018, 3:33Привет всем!

Есть ли в Clarion элемент управления (Control) типа Entry с возможностью ввода более 255 символов?
А я подумал, что вопрос в том, как сделать текст размером Ю255 символов в одну строчку. Контрол Text с опцией Single :D .
We are hard at work… for you. :)
Developer
Ветеран
Сообщения: 551
Зарегистрирован: 26 Март 2012, 17:18

Clarion Entry Control with more than 255 characters

Сообщение Developer »

RaFaeL писал(а): 21 Октябрь 2018, 9:51Почитай что такое CSTRING и в чем отличие от STRING, может и не будет "фокусов"

Отличие мне хорошо известно:

CSTRING (строка фиксированной длины, завершающаяся нулем)
метка СSTRING( length
string constant
picture )[,DIM()][,OVER()][,NAME()] [,EXTERNAL]
Формат: Фиксированное число байт.
Диапазон: От 1 до 65,535 байт
length Числовая константа, которая задает размер строки в байтах. При использовании этого параметра,строка инициализируется пробелами.
string constant Начальное значение строки. Длина СSTRING-a устанавливается (в байтах) по длине этой строковой константы плюс завершающий нулевой символ.
picture Используется для форматирования значений, присвоенных строке. Длина такой строки, это количество байт, достаточное для хранения форматированной строки и завершающего нулевого символа. Строка инициализируется пробелами.
DIM Размерность(и) переменной как массива.
OVER Разделяет один и тот же участок памяти с другой переменной
NAME Задает внешнее имя для переменной.
EXTERNAL Указывает, что переменная описана и память под нее выделяется во внешней библиотеке. НЕ разрешено для описаний FILE, QUEUE и GROUP.
CSTRING описывает символьную строку, завершающуюся нулевым символом (ASCII NULL). Она соответствует строкам, используемым в языке C и типу данных "ZSTRING" в Btrieve Record Manager. Под CSTRING в памяти выделяется участок постоянной длины, при этом, завершающий нулевой символ помещается в конец введенных данных. CSTRING во время исполнения преобразовывается в промежуточный тип STRING. Тип CSTRING имеет смысл употреблять для совместимости с внешними файлами и/или процедурами.

Пример:

Name CSTRING(21) !Declare 21 byte field - 20 bytes data

OtherName CSTRING(21),OVER(Name) !Declare field over name field

Contact CSTRING(21),DIM(4) !Array 21 byte fields - 80

! bytes data Company

Company CSTRING('Clarion Software, Inc.') !23 byte string 22

! bytes data

Phone CSTRING(@P(###)###-####p) !Declare 14 bytes 13 bytes

! data

ExampleFile FILE,DRIVER('Btrieve') !Declare a file

Record RECORD

NameField CSTRING(21),NAME('ZstringField')

!Declare with external name

. .


https://clarionhub.com/t/diference-betw ... ring/249/5

То есть это не "фокус" это "фича" - если я правильно понял, для максимального использования размерности переменной типа CSTRING необходимо объявлять
VariableName CSTRING (4194305)?
С Уважением, Developer
Ответить