Максимальная длина строки #656411


#0 by Адимр
У меня на 26 вылетает - это примерно 134Мб
#1 by GANR
Длина строки 2^26
#2 by GANR
67 108 864 символов
#3 by Reset
У него начинается уже с двух нулей, т.е. 2^27
#4 by Maxus43
в чем вопрос?
#5 by PR
И че?
#6 by PR
Видимо, ни в чем. Просто решил интеллектом блеснуть, мол я знаю, что есть такая штука как степень.
#7 by Адимр
Не просто хочу понять ограничения строки в 1с, памятью только ограничено доступной для 32 битного приложения 2 Гб или же чем то другим.
#8 by Адимр
Получается чем то другим?
#9 by Адимр
Изначально столкнулся с тем что Base64Строка сваливался на относительно небольших размерах. А это используется при передачи бинарных данных через веб сервисы. То есть выходит что размер файла косвенно ограничен длинной строки которую 1с поддерживает. Далее ограничение функции Base64Строка но её можно обойти свою написать например, а далее уже смотреть у веб сервиса параметр строковый какую строку проглотит.
#10 by Адимр
В ЖКК пишут что строка - неограниченной длины, а таки выходит что чем то ограничена и даже не доступной памятью.
#11 by PR
Ну да, а тот как же строки длиннее 134 МБ передавать, да, согласен.
#12 by Адимр
Кстати интересно еще запустить проверку из на сервере 64 бит свалится или нет.
#13 by Maxus43
в пятницу надо было, зачем сейчас то... практической пользы 0 целых 0 десятых, большие объёмы хранить явно не в строках, а двоичные данные в хранилище значений
#14 by Адимр
Хранить да в хранилище, но передача то в веб сервисах идет преобразованием в строку и передачей строки.
#15 by Адимр
Есть такой тип значения base64Binary (
#16 by PR
И кто в здравом уме и твердой памяти будет передавать 100 метров строкой через веб-сервис?
#17 by Torquader
Если файл очень большой, то его можно порезать на части и передавать каждую часть в отдельном запросе. Просто, если при передаче нескольких сотен мегабайт связь рвётся, то вы передаёте всё с начала, а если передача идёт по кускам, то передавать заново нужно только непрошедшие куски.
#18 by H A D G E H O G s
Нету куска памяти подходящего размера, к примеру.
#19 by Адимр
Все так но вопрос о ограничения 1с и особенностях которые в документации не описаны. Может и так а может и нет, кто его знает в документации об этом никакой информации нет.
#20 by H A D G E H O G s
А вот у меня на пустой базе нормально отработало Для ч = 1 По 28 Цикл и заняло 1.1 гиг. Win 7 А у тебя Win7 ?
#21 by Адимр
При проектировании веб сервиса лично вы чем будете ограничивать размер строки или передаваемого/принимаемого файла? Причем то, что будут вам пихать в веб сервис вы не сможете ограничить заранее, предпроверок нет.
#22 by NDN
я в школе на олимпиаде, в финале видал подобную задачу: Есть строка, состоящая из последовательности 1. а 2. aab и т.п. Нужно вычислить какой символ будет находиться в заданной позиции справа налево после того как будут записаны все символы англ алфавита т.е. программа спрашивает число, и выводит в ответ символ. например: если введешь 1 то ответ z
#23 by Torquader
В документации к php, например, написано, что строка может быть любой длины, но с учётом свободной памяти. Если вы только что запустили 1С, то у вас свободной памяти будет порядка 2 Гб, но как только начинается работа - память становится фрагментированной (точнее не сама память, а адресное пространство процесса). Как это достигается: Выделяем кусок 100 Мб, потом выделяем кусок 1 кб, потом освобождаем 100 Мб и выделяем 101 Мб, потом опять 1 Кб Ну и повторяем, пока хватит памяти - в результате имеем, что у нас будет множество кусков по 1 кб на расстоянии 1 Мб. В результате, при очередной попытке выделить 200 Мб мы получим отказ, хотя реально памяти будет использоваться чуть больше 1 Мб. Поэтому, работа с большими строками очень нежелательна, так как может привести к фрагментации памяти - особенно операции сложения строк, когда вместо увеличения блока под одну строку мы выделяем новый блок.
#24 by Адимр
xp
#25 by Адимр
2003 server
#26 by Адимр
Похожее обсуждение
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям