Автор |
Тема: Большая строковая переменная "печать" (Прочитано 131404 раз) |
|
Seroga
Я люблю этот Форум!
Просмотреть Профиль |
Сообщений: 40
|
|
Большая строковая переменная "печать"
« В: 24.07.19 в 11:03:09 » |
Цитировать | Править
|
Длина сохраняемого [sed] – 240 символов. Сохраняем 2 SEDа по 200 символов. Далее вытаскиваем их из файла, объединяем (+) и выводим на экран. Что произходит на самом деле. В 1 SEDе - сохраняется строка не более 95 символов. 2 sed – пустой. Вытаскиваем из файла эти 2 седа, складываем их, выводим на экран через растекатели. Под переменную отведено 4 строки по 110 символов (растекателей). Выводятся только 80 символов. Даже первая строка не заполняется до конца и еще обрезается. Переменную разбил на части, по 70 символов, все равно выводится только 80 символов. Может быть, по какой-то причине и сохраняется, тоже, только 80 символов. Не пойму, что не так?
|
|
Зарегистрирован |
|
|
|
Vladimir
Я люблю этот Форум!
Просмотреть Профиль | WWW |
Сообщений: 264
|
|
Re: Большая строковая переменная "печать"
« Ответить #1 В: 24.07.19 в 20:40:06 » |
Цитировать | Править
|
Попробуйте начать "от печки". Что реально сохраняется в extrd.dat? Можно посмотреть каким-нибудь HEX-редактором, например HEX Editor Neo. К слову, для вывода длинных строк рекомендую оператор printstr.
|
« Изменён в : 24.07.19 в 20:44:04 пользователем: Vladimir » |
Зарегистрирован |
С уважением, Владимир
|
|
|
mine-R
compact & flexible rulezzz
Просмотреть Профиль |
Сообщений: 150
|
|
Re: Большая строковая переменная "печать"
« Ответить #2 В: 26.07.19 в 17:57:17 » |
Цитировать | Править
|
Не совсем понятно, что и как там на самом деле у Вас. EXTRA обрезает до 248 символов. (см Примечание в UPDATE 2) Пример, сляпанный на лету. Code: * TEST_SED A='';B='' A1='12345' B1='ABCDE' WHILE ([LENGTH A]<=254) A=[STRIP A]+A1 B=[STRIP B]+B1 ENDWHILE SS=[LENGTH A] Длина переменной после присвоения =255 ^SS [SED 'VAR1',A] [SED 'VAR2',B] C=[GED 'VAR1'] D=[GED 'VAR2'] Z=[CH13]+[CH10] SF=[LENGTH C] Длина переменной после EXTRA =248 ^SF OUT1: PRINTSTR C PRINTSTR Z PRINTSTR D PRINTSTR Z -------------------------------- OUT2: ^C^^^^... (дополнить "^" до 248 в длину) ^D^^^^... (дополнить "^" до 248 в длину) -------------------------------- STOP |
| Форматных вставок в OUT2 не должно быть меньше чем длина выводимой переменной ( минимуи 248 ) Ну а при слиянии в единую переменную, конечно же будет превышен лимит для текстовой переменной в 255 символов. UPDATE 2 : Если имя переменной в EXTRA состоит из 1 символа то размер текстовой переменной может достигать 251 симв. Ну и соответственно если имя переменной очень большое, то обрезать размер текстовой может и до 240 символов.. возможно и до 200.. (надо дополнительно экспериментировать с именами переменных)
|
« Изменён в : 07.01.20 в 21:47:11 пользователем: mine-R » |
Зарегистрирован |
|
|
|
|
|