Bueno les respondo a todos, de nuevo gracias por sus respuestas
les comento que a la tabla en la cual debo insertar este valor es una tabla foxpro dbf, la cual no la puedo tocar el campo de esta tabla es un caracter de 2, al parecer el programador original creó este código de encriptación como medida de seguridad.
function TForm1.n2topak(n2 :Integer): string;
var
L,H :Integer;
begin
L:= n2 mod 256;
H:= (n2-L) div 256;
//result[0]:= CHR(H);
//result[1]:=CHR(L);
result:=CHR(H)+CHR(L);
//result:= CHR(L);
end;
function TForm1.pertopak(vl_mes,vl_anio :String): string;
var
m,a : integer;
begin
m:= 0;
a := 0;
m:= StrToInt(vl_mes);
if m < 0 then m:=1;
a:= StrToInt(vl_anio)-2000;
if a < 0 then a := 0;
result := n2topak(a*12+m);
end;
este lógicamente lo traduci a delphi, la salida la puse como string debido a que el campo era un string en foxpro.
el código de inserción el el siguiente:
var
vl_per :String;
.....
...
...
begin
vl_per := '';
with table2 do //tabla conectada a la tabla foxpro
begin
vl_per := pertopak(mes,anio);
Active := True;
Insert;
FieldByName('pl_ints').AsString:= '0';
FieldByName('pl_intsb').AsString:= '0';
FieldByName('pl_jj').AsString:= GridContab.Cells[29,reg];
if GridContab.Cells[30,reg] = 'NULL' then
FieldByName('pl_por').AsFloat:= 0
else
FieldByName('pl_por').AsString:= GridContab.Cells[30,reg];
FieldByName('pl_cargo').AsString:= vl_cargo2;
FieldByName('pl_num').AsString:= n2topak(vl_num);
FieldByName('pl_per').AsVariant:= vl_per;
FieldByName('pl_sec').AsString:= vl_sec;
Post;
Active := False;
end;
end;
Como veis los datos del registro los extraigo de una grilla, en la cual recupero un archivo excel comun.
ya intente convirtiendo en pchar el resultado como dicen (mala idea), string retorna el valor correcto (lo comprobe con el algoritmo de desencriptación).
el problema es cuando lo inserto en la tabla, no inserta nada, verifique la tabla y tiene registros de este tipo (insertados desde foxpro desde luego).
La gente me tiene limitado porque no quieren un nuevo sistema, y solo quieren esta interfaz de archivos.
Básicamente lo que hago es subo un archivo excel y tengo que bajar en la tabla(s) foxpro, con la codificacion de determinados campos.
Base64 me encantaria, pero como les menciono no puedo cambiar la codificación porque no lo quieren asi (se los sugeri al principio).
Si alguien me puede dar luces al respecto les agradeceria