Финансы без пpоблем: Пеpеговоpный Пункт II (http://hdru.com/cgi-bin/pp2/YaBB.cgi)
>> ФБП для начинающих >> Большая строковая переменная "печать"
(Message started by: Seroga на 24.07.19 в 11:03:09)

Заголовок: Большая строковая переменная "печать"
Прислано пользователем Seroga на 24.07.19 в 11:03:09
Длина сохраняемого [sed] – 240 символов. Сохраняем 2 SEDа по 200 символов. Далее вытаскиваем их из файла, объединяем (+) и выводим на экран.
Что произходит на самом деле.
В 1 SEDе - сохраняется строка не более 95 символов. 2 sed – пустой. Вытаскиваем из файла эти 2 седа, складываем их, выводим на экран через растекатели. Под переменную отведено 4 строки по 110 символов (растекателей). Выводятся только 80 символов. Даже первая строка не заполняется до конца и еще обрезается.
Переменную разбил на части, по 70 символов, все равно выводится только 80 символов.
Может быть, по какой-то причине и сохраняется, тоже, только 80 символов.
Не пойму, что не так?

Заголовок: Re: Большая строковая переменная "печать"
Прислано пользователем Vladimir на 24.07.19 в 20:40:06
Попробуйте начать "от печки".
Что реально сохраняется в extrd.dat?
Можно посмотреть каким-нибудь HEX-редактором, например HEX Editor Neo.

К слову, для вывода длинных строк рекомендую оператор printstr.

Заголовок: Re: Большая строковая переменная "печать"
Прислано пользователем mine-R на 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


[color="#AA5577"]Форматных вставок в OUT2 не должно быть меньше чем длина выводимой переменной ( минимуи 248 )[/color]

Ну а при слиянии в единую переменную, конечно же будет превышен лимит для текстовой переменной в 255 символов.

[color="#AA5577"]UPDATE 2 : Если имя переменной в EXTRA состоит из 1 символа то размер текстовой переменной может достигать 251 симв. Ну и соответственно если имя переменной очень большое, то обрезать размер текстовой может и до 240 символов.. возможно и до 200.. (надо дополнительно экспериментировать с именами переменных) [/color]



Powered by YaBB 1 Gold - SP 1.3.2!
Forum software copyright й 2000-2004 Yet another Bulletin Board