Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Coloboración Paypal con ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #4  
Antiguo 09-10-2007
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 31
Lepe Va por buen camino
... No acabo yo de pillar el tema....

Desde mi punto de vista, haría un programa que lea el archivo de clipper (se supone que puede abrirse con notepad ¿no?), lo parsea, y ahora crea un archivo de salida .pas con el contenido leido y traducido a codigo delphi.

No creas que es muy complicado hacerlo a mano, aunque TRegExpr puede servir de ayuda.

La idea:
Código Delphi [-]

procedure LeerArchivo(filename:string); // el archio clipper
var Clipper, Delphi:TStringlist;
begin
  Clipper := TStringlist.Create;
  Clipper.LoadFromFile(Filename);
  Delphi := TStringList.Create;
  CreaCabeceraDelphi;
  for i:= 0 to Archivo.Count
  if pos('FUNCTION ', Archivo[i]) <> 0 then
    Procesa_matriz( Archivo, i);
  end;
  Clipper.Free;
  Delphi.SaveToFile('c:\mio.pas');
end;

procedure CreaCabeceraDelphi;
begin
   Delphi.Add('Unit  unidad1;');
   Delphi.Add('');
   Delphi.Add('interface');
   Delphi.Add('');
   Delphi.Add('uses sysutils;');
   Delphi.Add('');
   Delphi.Add('var ');
end;

procedure Procesa_matriz(Lineas:TStrings; idx:integer);
var f:textfile;
begin

// en lineas tenemos todo el texto, a partir del índice idx tenemos la función que queremos parsear:
delete(lineas[idx], 'FUNCTION ',9);// quitamos el texto "function " de esa linea
assign(f, 'c:\mio.pas');
Append; // preparamos el archivo para seguir escribiendo en él.

writeln(Copy(Archivo[idx], 1, 9) + ' : array of array of double = (' );

Buscar_el_case_mas_cercano;

CloseFile(f);
end;
El resumen de todo esto, es que el contenido de "c:\mio.pas" queda como:
Código:
Unit Unidad1;

interface

uses sysutils;

var 
L_72_F_32 : array of array of double = (
y hasta aquí he llegado yo

Tu nuevo archivo .pas tiene los arrays creados como si los hubieses escrito tu mismo. Después ese archivo .pas lo agregas al proyecto donde lo necesites.

Edito: Por supuesto lo he escrito todo de memoria... habrá cosas que ni compile, pero bueno... ahí queda. Ya puestos, puedes crear las funciones de clipper con parámetros incluidos para que la unidad final te quede como:
Código Delphi [-]
Unit Unidad1;

interface

uses sysutils;

var 
L_72_F_32 : array of array of double = (
        (   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 )
        )

FUNCTION proc_L_72_F_32(ns:integer; CC:String):double;


implementation

FUNCTION proc_L_72_F_32(ns:integer; CC:String):double;
begin
   if (nS = 1) AND (cC = '1V') then
    Result := L_72_F_32[ los indices que sean ]
  else if ...
end;
Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.

Última edición por Lepe fecha: 10-10-2007 a las 01:32:15.
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 04:01:41.


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