Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 09-10-2007
jplj jplj is offline
Miembro
 
Registrado: oct 2003
Posts: 189
Poder: 21
jplj Va por buen camino
Asignar valores a Arrays dinámicos - (migrar datos desde CLIPPER)

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:={ ;
        {   100,  11.20,  0.00,  0.00,  9,  1,  0.10,  -1,  1 },;
        {   500,  56.30,  2.30,  0.86,  9,  3,  1.10,  -5,  5 },;
        {   700,  79.40,  3.30,  0.61,  9,  4,  1.60,  -7,  7 },;
        {  1000, 114.70,  4.70,  0.42,  8,  6,  2.50, -10, 10 },;
        {  1200, 138.90,  5.70,  0.35,  8,  7,  3.10, -12, 12 },;
        {  1500, 176.20,  7.30,  0.28,  8,  9,  4.00, -15, 15 },;
        {  2000, 242.10,  9.90,  0.21,  7, 13,  5.60, -19, 20 },;
        {  2500, 314.70, 12.80,  0.16,  6, 18,  7.60, -24, 24 },;
        {  3000, 398.00, 16.00,  0.13,  5, 25, 10.00, -28, 28 },;
        {  3200, 436.10, 17.40,  0.12,  5, 30, 11.10, -29, 30 },;
        {  3500, 501.70, 19.80,  0.10,  4, 39, 13.30, -31, 32 },;
        {  3600, 527.00, 20.70,  0.10,  4, 44, 14.20, -32, 33 },;
        {  3700, 554.90, 21.70,  0.10,  3, 50, 15.20, -33, 34 },;
        {  3800, 586.50, 22.70,  0.09,  3, 60, 16.40, -33, 34 },;
        {  3900, 624.10, 24.00,  0.09,  2, 77, 17.90, -34, 35 },;
        {  4000, 673.60, 25.60,  0.08,  2, 77, 20.10, -35, 35 } ;
             }

     CASE nS = 1 .AND. cC = "2V"
      aLineas:={ ;
        {   500,  44.70,  2.00,  0.96, 11,  2,  0.80,  -5,  5 },;
        {  1000,  90.80,  4.20,  0.48, 11,  2,  1.90, -10, 10 },;
        {  1300, 119.30,  5.50,  0.37, 10,  3,  2.60, -13, 13 },;
        {  1500, 138.80,  6.40,  0.31, 10,  3,  3.00, -15, 15 },;
        {  2000, 189.30,  8.70,  0.23, 10,  4,  4.30, -19, 20 },;
        {  2500, 243.20, 11.20,  0.18,  9,  6,  5.60, -24, 24 },;
        {  3000, 301.80, 13.80,  0.15,  8,  8,  7.20, -28, 28 },;
        {  3500, 367.10, 16.60,  0.12,  7, 11,  9.00, -31, 32 },;
        {  4000, 443.10, 19.80,  0.10,  6, 15, 11.30, -35, 36 },;
        {  4300, 497.40, 21.90,  0.09,  5, 20, 13.10, -37, 38 },;
        {  4500, 539.80, 23.60,  0.09,  4, 25, 14.60, -38, 39 },;
        {  4600, 564.00, 24.50,  0.08,  4, 29, 15.50, -39, 40 },;
        {  4700, 591.00, 25.60,  0.08,  3, 34, 16.60, -39, 40 },;
        {  4800, 622.50, 26.70,  0.08,  3, 43, 17.80, -40, 41 },;
        {  4900, 661.70, 28.10,  0.07,  2, 62, 19.60, -40, 41 },;
        {  5000, 722.40, 30.20,  0.07,  0, 63, 22.50, -41, 41 } ;
             }

     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.
__________________
Sonríe. Mañana puede ser peor.
Responder Con Cita
 



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
arrays dinamicos Chompiras Varios 8 14-07-2015 22:49:51
Arrays dinamicos Besto Varios 4 13-10-2006 15:24:01
Arrays dinámicos en memoria eliash OOP 5 01-02-2006 11:03:26
Arrays dinámicos con Delphi.NET mamen .NET 0 25-11-2004 14:21:35
Arrays Dinamicos mauro Varios 4 05-07-2003 21:14:29


La franja horaria es GMT +2. Ahora son las 17:25:14.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi