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

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 14-08-2008
Robert01 Robert01 is offline
Miembro
 
Registrado: feb 2006
Ubicación: Córdoba, Argentina
Posts: 895
Poder: 19
Robert01 Va por buen camino
Problema en código

Esta es una parte del código de un programa posiblemente en delphi3:

Código Delphi [-]
 tipo_elemento=(programa,clase,atributo,metodo,especializacion,asociacion);
        { contiene los posibles elementos del  fichero registro}

  reg_parametros=record
                       nombre,tipo_para:string;
                 end;
       {registro para guardar los parametros de cada metodo de las clases}

  elemento=record
     case tipo_elemento of
        programanombre_pro:string); //93
        clasenombre_clase:string);
        atributonombre_atri,tipo_atri:string);
        metodonombre_metodo:string;tipo_met:boolean;parametros:reg_parametros);
        especializacionsuperclase:string);
        asociacioncon_clase:string);
     end;
     {registro para almacenar el fichero de resultados}

  regis=record
              nom_reg,asoc:string;
         end;
    {registro para almacenar asociaciones que estén dentro de un campo del mismo}

var
  f:textfile; {fichero de visualizacion de resultados} /111

Al tratar de compilar da los siguientes errores:

[Error] EXPLORAR.PAS(93): Type 'String' needs finalization - not allowed in variant record
[Error] EXPLORAR.PAS(94): Type 'String' needs finalization - not allowed in variant record
[Error] EXPLORAR.PAS(95): Type 'String' needs finalization - not allowed in variant record
[Error] EXPLORAR.PAS(96): Type 'String' needs finalization - not allowed in variant record
[Error] EXPLORAR.PAS(96): Type 'reg_parametros' needs finalization - not allowed in variant record
[Error] EXPLORAR.PAS(97): Type 'String' needs finalization - not allowed in variant record
[Error] EXPLORAR.PAS(98): Type 'String' needs finalization - not allowed in variant record
[Error] EXPLORAR.PAS(111): Type 'elemento' needs finalization - not allowed in file type

¿De que forma se podría solucionar el problema?

Saludos

Última edición por Robert01 fecha: 14-08-2008 a las 03:34:00.
Responder Con Cita
  #2  
Antiguo 14-08-2008
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
Hola Robert01,
Cuando uno declara un type record obligadamente debe indicarle un tamaño determinado al string. Por ejemplo:
Código Delphi [-]
TCliente = record
  Nombre: string[30];
end;

Los "errores string" se deben a ello.
El error sobre "elemento" se debe a que te falta un end. Necesitas dos end. Uno para el case y otro para indicar el fin del record.

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
  #3  
Antiguo 14-08-2008
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.338
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Esto se ve raro:

Código Delphi [-]
:string);
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #4  
Antiguo 14-08-2008
Robert01 Robert01 is offline
Miembro
 
Registrado: feb 2006
Ubicación: Córdoba, Argentina
Posts: 895
Poder: 19
Robert01 Va por buen camino
Gracias por responder

Se trata de un proyecto para analizar el código de programas orientados a objetos escritos en turbo pascal. Estoy viendo como usar objetos y quise probar ese código.
Según indica es un trabajo de fin de carrera.

Saludos
Responder Con Cita
  #5  
Antiguo 14-08-2008
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
Hola Robert01,
Estuve viendo el documento que aparece en el enlace y por lo que he podido comprender se trata de simular un Analizador Léxico/Semantico para programas escitos en Turbo Pascal, y orientados a Objetos.

Por lo que comprendo del código, lo que hace es dado un programa escrito, extraer la información sobre las clases y su relaciones con otras.

Por ponerte un ejemplo, si en un aplicativo tienes las clases TCliente, TFactura, TDetalleFactura. El programa te mostrará la la información y la relación de estas tres clases: métodos, campos, tipos, etc.

El uso de esos records que ves no es más que para guardar la información que se va leyendo del archivo.

En ningún momento hace empleo de técnicas Orientadas a Objetos el programa. Se basa en bucles, y más bucles explorando el archivo.

Si quieres meterte en la teoria de objetos en Delphi, lo mejor es leer el capítulo 6 de la Cara Oculta. Lo explica a mi modo de ver, bastante bien.

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
  #6  
Antiguo 14-08-2008
Robert01 Robert01 is offline
Miembro
 
Registrado: feb 2006
Ubicación: Córdoba, Argentina
Posts: 895
Poder: 19
Robert01 Va por buen camino
Gracias Delphius por tomarte el trabajo. Voy a ver la "cara oculta de delphi" ya que tengo el libro hace tiempo.

Saludos
Responder Con Cita
Respuesta



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
problema al imprimir código de barras mguixot Impresión 3 16-11-2006 00:24:13
problema con codigo barra en fastreport hob Impresión 0 12-09-2006 20:33:25
Problema de código Mathom Varios 16 19-11-2005 17:01:27
problema al leer codigo de barras squenda OOP 3 30-06-2004 08:22:58
problema con el codigo superhopi SQL 1 20-05-2003 10:31:07


La franja horaria es GMT +2. Ahora son las 20:58:24.


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