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 08-03-2011
kdemia kdemia is offline
Miembro
 
Registrado: may 2010
Posts: 109
Poder: 15
kdemia Va por buen camino
Unhappy Que estoy haciendo mal en este proceso?

Que tal gente, queria saber porque no me compila este proceso, osea entiendo que es porque el arreglo requiere una constante como dimension pero le mando una constante . Ojala me ayuden.

Nota: no puedo poner un arreglo dinamico porque el File of necesita algo con un rango definido..

Este es el proceso:

Código SQL [-]
procedure PasarAArchivo(const Alto, Ancho: Integer);
type
  Arreglo = Array[0..Ancho,0..Alto] of integer;
var
  Map : Arreglo;
  FMap: File of Arreglo;
begin
  //bloque de instrucciones
end;

Aunque mas que obvios estos son los errores:
http://imagenes.sitiosnc.info/?di=2129961635110

Muchas Gracias.

Saludos, kdemia.

Última edición por kdemia fecha: 08-03-2011 a las 21:38:12.
Responder Con Cita
  #2  
Antiguo 08-03-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola kdemia.

La sintáxis de Delphi no permite el uso de variables o parámetros (aunque sean pasados como constantes) en la declaración de tipo de un array estático.

Incorrecto:
Código Delphi [-]
procedure PasarAArchivo(const Alto, Ancho: Integer);
type
  Arreglo = Array[0..Ancho, 0..Alto] of integer;
La declaración de const en los parámetros es a fin de que el procedimiento o función no pueda alterar los valores de los mismos y también para que el compilador pueda optimizar el transpaso de parámetros (cuando el tamaño de estos supere los 4 bytes ya que evita la copia local de los mismos).

En cambio si es correcto:
Código Delphi [-]
procedure PasarAArchivo(const Alto, Ancho: Integer);
const
  X = 100;
  Y = 100;
type
  Arreglo = Array[0..X, 0..Y] of integer;

Quizá si explicaras que es lo que intentas hacer, encontremos una solución alternativa.
(Por favor tratá de poner títulos más descriptivos del problema, así quien pase por una situación similar podrá encontrar respuesta más
rapidamente.)

Un saludo.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 08-03-2011 a las 22:20:11.
Responder Con Cita
  #3  
Antiguo 08-03-2011
kdemia kdemia is offline
Miembro
 
Registrado: may 2010
Posts: 109
Poder: 15
kdemia Va por buen camino
bueno lo que quiero hacer es lo siguiente:
yo cargo un TStringList con un archivo de texto que representa un mapa, ese TStringList lo tengo que pasar a un Array para luego guardarlo en un archivo ese array (File of Arreglo),y en otro archivo las dimensiones del arreglo asi despues lo puedo abrir sabiendo las dimensiones.. el problema es que no puedo guardar un array dinamico en un archivo porque delphi no lo permite, si hay alguna manera de definir las dimensiones de un array estatico en tiempo de ejecucion, hacer eso seria lo ideal..
Responder Con Cita
  #4  
Antiguo 08-03-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola kdemia.

Cita:
si hay alguna manera de definir las dimensiones de un array estatico en tiempo de ejecucion, hacer eso seria lo ideal..
Es que si se pudiese hacer eso, los arrays estáticos dejarían de ser estáticos y por ende, ya no tendría sentido la existencia de los arrays dinámicos.

Segun lo veo yo, vas a tener que definir un arreglo lo suficientemente grande como para contener el maximo de ocurrencias factibles si queres guardarlo como archivo tipado.

Un saludo.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #5  
Antiguo 08-03-2011
kdemia kdemia is offline
Miembro
 
Registrado: may 2010
Posts: 109
Poder: 15
kdemia Va por buen camino
no totalmente que dejarian de tener gracia los arreglos dinamicos pero no fue lo que quice decir, osea no quiero cambiarle el tamaño al array en tiempo de ejecucion simplemente quiero definirle el tamaño en el momento de la declaracion.. pero bueno tendre que rebuscarmela por otro lado.. muchisimas gracias por todo
Responder Con Cita
  #6  
Antiguo 08-03-2011
Avatar de Chris
[Chris] Chris is offline
Miembro Premium
 
Registrado: abr 2007
Ubicación: Jinotepe, Nicaragua
Posts: 1.678
Poder: 19
Chris Va por buen camino
Puedes modificar las dimensiones de un arreglo dinámico con la función SetLength.
__________________
Perfil Github - @chrramirez - Delphi Blog - Blog Web
Responder Con Cita
  #7  
Antiguo 08-03-2011
kdemia kdemia is offline
Miembro
 
Registrado: may 2010
Posts: 109
Poder: 15
kdemia Va por buen camino
totalmente, pero no lo puedo guardar en un archivo :/ File of array_dinamico no se puede hacer
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
Que estoy haciendo mal ? piolillo Internet 8 28-07-2011 17:23:24
Que estoy haciendo mal con este trigger @-Soft Firebird e Interbase 6 25-01-2011 02:37:35
Uso de clases, ¿que estoy haciendo mal? gerardorom C++ Builder 2 26-12-2007 15:35:38
Que estoy haciendo Mal esimon SQL 4 04-07-2006 21:55:25
Que estoy Haciendo mal jostrix PHP 1 01-11-2004 01:29:16


La franja horaria es GMT +2. Ahora son las 23:52:50.


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