Hi Freaks
I just went crazy because something was wrong with an encryption routine.
The data is encrypted with BLOWFISH, some variables are created as RAW in between.
If you now apply the $length function to them, you get different values in UF 9 and UF 10.
Example:
9:"r|90|'{'|C{o{X|N{j|_\\0|_|m|k|[{C|K{C|){/{j.{MK{)/|+:|F|\\|'{@|@|8|P{O|a|g:|fdg{c{n|<d{h|${kD|U|e|k|6{L{`{<{q{V|1|&{R" Len = 115
10 "r|90|'{'|C{o{X|N{j|_\\0|_|m|k|[{C|K{C|){/{j.{MK{)/|+:|F|\\|'{@|@|8|P{O|a|g:|fdg{c{n|<d{h|${kD|U|e|k|6{L{`{<{q{V|1|&{R" Len = 64 <===
1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345
UF 10 verwendet also
Uniface 9 : $length(v_raw) = $length_UF9(v_raw)
UnifAce 10 : $length(v_raw) = $length_UF9($encode("ustring",v_raw))
This leads to the workaround
ENTRY LF_RAW_LENGTH returns numeric params raw v_RAW:IN endparams variables numeric v_LEN endvariables v_LEN = 0 WHILE(v_STR[v_LEN+1]!="") v_LEN+=1 RETURN(v_LEN)END
Is this new behavior a bug or a feature?
And will it be corrected?
But what will the colleagues who are already using the new type do :-)
Ingo
------------------------------
Ingo Stiller
Aareon Deutschland GmbH
------------------------------