Concatination Procedure for ACE / SQL
Posted in 1996
Here's a little something whipped up with the help of Neal Degregorio
(neald@informix.com - thanks!) to solve a very annoying problem of
concatinating values in ACE programs (you can't! you can't use ||
[double-pipe] in ACE).
Enjoy.
-Joseph
jkormann@castle.net
jkormann@rfbd.org - grunt programmer
create procedure concat (str1 char(30), str2 char(30)) returning char(60); define retstr char(60);
define tempstr char(60);
define i1 integer;
define i2 integer;
define s1 integer;
define s2 integer;
let s1 = length(str1);
let s2 = length(str2);
let retstr = '';
for i1 = 1 to s1
let retstr[60,60] = str1[1,1];
let retstr = retstr[2,60];
let str1 = str1[2,30];
end for;
for i1 = 1 to s2
let retstr[60,60] = str2[1,1];
let retstr = retstr[2,60];
let str2 = str2[2,30];
end for;
let i2 = 60 - (s1 + s2) - 1;
while (i2 > 0)
if i2 between 1 and 5 then
let retstr = retstr[2,60];
let i2 = i2 - 1;
elif i2 between 6 and 10 then
let retstr = retstr[7,60];
let i2 = i2 - 6;
elif i2 between 11 and 20 then
let retstr = retstr[12,60];
let i2 = i2 - 11;
elif i2 between 21 and 30 then
let retstr = retstr[22,60];
let i2 = i2 - 21;
else
let retstr = retstr[31,60];
let i2 = i2 - 30;
end if;
end while
return retstr;
end procedure;