Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 26-02-2010
BrunoBsso BrunoBsso is offline
Miembro
 
Registrado: nov 2009
Ubicación: Berisso, Buenos Aires, Argentina
Posts: 239
Poder: 17
BrunoBsso Va por buen camino
Wink

Cita:
Empezado por LoPiTaL Ver Mensaje
Hola otra vez,
Revisando los posts me he dado cuenta de que es curioso que sí que me permite hacer length(vect1) , así que por lo menos algo sabrá sobre vect1, ¿no?

Un saludo,
LoPiTaL
Porque la función Length(Vect1) es en tiempo de ejecución, no le da ningún dato al programa al compilar
O sea, Length la usa el programa en tiempo de ejecución, no mientras estás codeandolo, y es ahí en la ejecución cuando devuelve algún dato.
Un saludo
Responder Con Cita
  #2  
Antiguo 26-02-2010
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por BrunoBsso Ver Mensaje
Porque la función Length(Vect1) es en tiempo de ejecución, no le da ningún dato al programa al compilar
O sea, Length la usa el programa en tiempo de ejecución, no mientras estás codeandolo, y es ahí en la ejecución cuando devuelve algún dato.
Me parece que no puede ser como lo dices. Una construcción del tipo

Código Delphi [-]
const
  V: array[A..B] of Integer = (...)

requiere que A y B sean constantes, es decir, que sean conocidos al momento de la compilación, ya que el tipo de datos corresponde a un arreglo de tamaño fijo.

En una construcción como:

Código Delphi [-]
const
  U: array[0..2] of Integer = (...);
  V: array[0..Length(U) - 1] = (...);

seguramente el compilador calcula el valor de Length, cosa que puede hacer porque el mismo vector U es constante y ya está determinada su longitud desde la compilación. Esto debe ser "magia" del compilador, pues no sucedería lo mismo con otra función.

Si cambiamos la definición a algo como:

Código Delphi [-]
var
  U: array of Integer;

const
  V: array[0..Length(U) - 1] = (...);

ya no compila, pues, siendo U un vector dinámico, el compilador no tiene manera de saber cuál es su longitud y requiere una constante para el índice superior de V.

// Saludos
Responder Con Cita
  #3  
Antiguo 26-02-2010
BrunoBsso BrunoBsso is offline
Miembro
 
Registrado: nov 2009
Ubicación: Berisso, Buenos Aires, Argentina
Posts: 239
Poder: 17
BrunoBsso Va por buen camino
Según recuerdo la teoría de compiladores, no obtiene un resultado de Length en compilación, lo obtiene solo en ejecución.
Y al hacer un vector estático y querer asignarle la longitud a otro vector dinámico no puede hacerlo porque el dinámico no tiene ningún dato todavía.
Me parece a mí, no se.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
No veo, en tiempo de diseño los nombres de los componentes QuarkBcn Varios 3 19-12-2007 09:38:31
Diseño de reportes en tiempo de ejecución jzginez Impresión 2 17-04-2007 16:46:10
eventos en tiempo de diseño jar OOP 0 27-01-2007 22:09:11
Indices En Tiempo De Diseño?? amadis Conexión con bases de datos 0 12-04-2006 20:22:01
Diseño en tiempo de ejecucion Nelson Alberto Impresión 2 26-01-2006 09:34:12


La franja horaria es GMT +2. Ahora son las 03:13:13.


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