Hola:
Pretendo migrar unos datos de un programa hecho en clipper. Estos datos están en forma de matrices, de forma similar a:
Código Delphi
[-]
FUNCTION L_72_F_32( nS, cC )
LOCAL aLineas:=
DO CASE
CASE nS = 1 .AND. cC = "1V"
aLineas:=,;
,;
,;
,;
,;
,;
,;
,;
,;
,;
,;
,;
,;
,;
,;
;
}
CASE nS = 1 .AND. cC = "2V"
aLineas:=,;
,;
,;
,;
,;
,;
,;
,;
,;
,;
,;
,;
,;
,;
,;
;
}
CASE nS = 1 .AND. cC = "3V"
.....
ENDCASE
RETURN aLineas
Existen muchas funciones similares a FUNCTION L_72_F_32( nS, cC ) que devuelven aLineas al mismo procedimiento que se encarga de leer los datos necesarios en cada caso.
Aunque en la función expuesta sólo varía el número de filas, en otras funciones aLineas tiene distinto número de columnas, por lo que en principio creo que debo usar un array dinámico, el problema es cómo realizo la asignación de valores.
Por ahora he pensado en "traducir" los array de clipper en array de cadenas y posteriormente en una función cargar los datos en un vector numérico.
Código Delphi
[-]
function L_72_F_32( nS, cC ): TArray_Dinamico_Real;
var
aLineas: TStringList;
begin
DO CASE
CASE nS = 1 .AND. cC = "1V"
aLinea.Add( '100, 11.20, 0.00, 0.00, 9, 1, 0.10, -1, 1' );
aLinea.Add( '500, 56.30, 2.30, 0.86, 9, 3, 1.10, -5, 5' );
....
aLinea.Add( '4000, 673.60, 25.60, 0.08, 2, 77, 20.10, -35, 35' );
...
result:= Conver_aLineas(aLineas);
end;
function Conver_aLineas(aLineas): TArray_Dinamico_Real;
var
A: TArray_Dinamico_Real;
begin
Dimensionar A;
Leer Valores de aLineas y cargarlos en A;
resutl:= A;
end;
Mi pregunta es si existe un método más eficiente y sencillo.
Un Saludo
Gracias de antemano.
Juan P.