Clarion Entry Control with more than 255 characters

Clarion, Clarion 7

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

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

Clarion Entry Control with more than 255 characters

Сообщение Developer » 20 Октябрь 2018, 3:33

Привет всем!

Есть ли в Clarion элемент управления (Control) типа Entry с возможностью ввода более 255 символов?
С Уважением, Developer

Developer
Ветеран
Сообщения: 515
Зарегистрирован: 26 Март 2012, 16:18

Clarion Entry Control with more than 255 characters

Сообщение Developer » 20 Октябрь 2018, 4:07

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

Это Clarion control Text :wink:


Максимальный практический размер количества символов?
Вложения
TextControlTest.zip
(10.07 КБ) 19 скачиваний
С Уважением, Developer

Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 4109
Зарегистрирован: 07 Июль 2005, 9:19
Откуда: г. Ростов-на-Дону

Clarion Entry Control with more than 255 characters

Сообщение Игорь Столяров » 20 Октябрь 2018, 17:29

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

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

Я не пытался достичь дна, но достаточно большие текстовые файлы прекрасно печатаются через TEXT.
«V» значит Вендетта !

Аватара пользователя
Дед Пахом
Старичок
Сообщения: 2276
Зарегистрирован: 07 Июль 2005, 15:51
Откуда: Москва, Россия

Clarion Entry Control with more than 255 characters

Сообщение Дед Пахом » 20 Октябрь 2018, 17:56

Когда я делал FTP manager (libcurl), столкнулся с ограничением TEXT (где-то в районе 30K).
С уважением, ДП

Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 4109
Зарегистрирован: 07 Июль 2005, 9:19
Откуда: г. Ростов-на-Дону

Clarion Entry Control with more than 255 characters

Сообщение Игорь Столяров » 20 Октябрь 2018, 18:15

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

Я бы поставил на то, что упрётся в 4M по максимуму статичной STRING.
«V» значит Вендетта !

Developer
Ветеран
Сообщения: 515
Зарегистрирован: 26 Март 2012, 16:18

Clarion Entry Control with more than 255 characters

Сообщение Developer » 20 Октябрь 2018, 18:17

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

Developer
Ветеран
Сообщения: 515
Зарегистрирован: 26 Март 2012, 16:18

Clarion Entry Control with more than 255 characters

Сообщение Developer » 20 Октябрь 2018, 18:27

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

Я бы поставил на то, что упрётся в 4M по максимуму статичной STRING.
Интересует именно максимальный практический размер информации поля ввода в WINDOW
С Уважением, Developer

Аватара пользователя
Дед Пахом
Старичок
Сообщения: 2276
Зарегистрирован: 07 Июль 2005, 15:51
Откуда: Москва, Россия

Clarion Entry Control with more than 255 characters

Сообщение Дед Пахом » 20 Октябрь 2018, 18:39

CtrlC/CtrlV попробуй.
С уважением, ДП

Аватара пользователя
vic7tar
Старожил
Сообщения: 218
Зарегистрирован: 09 Февраль 2017, 20:12

Clarion Entry Control with more than 255 characters

Сообщение vic7tar » 20 Октябрь 2018, 20:00

А что, есть какие-то ограничения на вывод вText-controle?
Взял примерчик, который повыше, изменил TextField на CSTRING(1000000).
В поле, как положено, помещается миллион знаков, копируем, пастим в Word-е, смотрим статистику -> тот же миллион.
C10, Win10x64

Developer
Ветеран
Сообщения: 515
Зарегистрирован: 26 Март 2012, 16:18

Clarion Entry Control with more than 255 characters

Сообщение Developer » 20 Октябрь 2018, 20:05

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

Аватара пользователя
vic7tar
Старожил
Сообщения: 218
Зарегистрирован: 09 Февраль 2017, 20:12

Clarion Entry Control with more than 255 characters

Сообщение vic7tar » 20 Октябрь 2018, 21:22

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

Developer
Ветеран
Сообщения: 515
Зарегистрирован: 26 Март 2012, 16:18

Clarion Entry Control with more than 255 characters

Сообщение Developer » 21 Октябрь 2018, 0:00

Выяснил опытным путём декларируемый максимальный размер переменной 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
Ветеран
Сообщения: 862
Зарегистрирован: 24 Март 2009, 17:59
Откуда: НН
Контактная информация:

Clarion Entry Control with more than 255 characters

Сообщение RaFaeL » 21 Октябрь 2018, 9:51

Почитай что такое CSTRING и в чем отличие от STRING, может и не будет "фокусов"

kreator
✯ Ветеран ✯
Сообщения: 3334
Зарегистрирован: 28 Май 2009, 14:54
Откуда: Москва

Clarion Entry Control with more than 255 characters

Сообщение kreator » 21 Октябрь 2018, 15:35

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

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

Developer
Ветеран
Сообщения: 515
Зарегистрирован: 26 Март 2012, 16:18

Clarion Entry Control with more than 255 characters

Сообщение Developer » 21 Октябрь 2018, 22:25

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

Ответить