![]() |
Redimensionar un arreglo
Saludos amigos foristas.
Alguien sabe como puedo redimensionar un arreglo en tiempo de ejecución. Código:
Function Pide_Poli( Lista: Array Of Double ): Double; Si alguien conoce otra forma de redimensionar arreglos en tiempo de ejecución, me avisa por favor. PD 1 : A esta función, la "llamo" desde un Boton, de la siguiente manera: Código:
Var PD 2: A todo esto, está funcion está originalmente en c++ y la estoy "transformando" a Delphi 6(espero que la haya "transformado" bien), aquí les pongo el código en c++: Código:
void pide_poli(vector<double> &lista) Código:
int main() |
En Delphi existe una función que se llama Val, por lo que si usas una variable con dicho nombre, posiblemente estés provocando un error involuntario. Prueba primero a cambiar el nombre de val por otro y ya comentas si tu primer error ha desaparecido y ahora te aparece otro diferente.
|
Gracias por contestar, pero ya cambie lo que me dices, pero ese no es el problema(el problema es que debo redimensionar "lista" y no puedo), el problema me lo da aqui:
Código:
For i := 0 To length( j ) - 1 Do Salu2. |
Tienes una línea con el SetLength la cual has comentado en tu código.
Mira la ayuda de este procedimiento a ver si es lo que estás buscando. Consejo: Nada más empezar el procedimiento, haz un SetLength(MyFlexibleArray, 1); {por ejemplo} para luego poder asignarle el tamaño que desees. Creo que ese "pequeño truco" el que permite redimensionar un array en tiempo de ejecución sin problemas. |
si quieres redimensionar un array la función es setlength
ojo si quieres redimensionar la variable lista que pasas a la función, ya que la pasas como "constante" y no como "variable" |
Salud2, la linea con SetLength la tengo como comentario porque es ahí donde me da el error de "Incompatible types" y realmente no se porque me da ese error.
|
Sludos Julià T.
No me queda claro lo que dices: Cita:
Gracias. PD: Una consulta, existe alguna funcion para copiar el contenido de un array a otro?. |
Ya he encontrado uno de tus fallos:
Pones: Código:
Function Pide_Poli( Lista: Array Of Double ): Double; Código:
Function Pide_Poli(var Lista: Array Of Double ): Double; Después de esa modificación, faltará saber si te da algún otro error. |
Gracias por responder Obiwuan, hice el cambio que me comentaste y aún así me sigue dando el error de Incompatible types en
Código:
SetLength( Lista, n ) |
No he leído todo el hilo con detalle pero el error que te indica Obiwan no se debe al especificador var.
Lo que pasa es que no es lo mismo arreglos dinámicos que parámetros abiertos. Un arreglo dinámico se declara: Código:
var Código:
Function Pide_Poli( Lista: Array Of Double ): Double; Puedes pasar un arreglo dinámico como parámetro a un procedimiento o función pero entonces no puedes pasarlo como lo harías con un parámetro abierto, es decir, como una lista entre corchetes, sino que primero llenas el arreglo y luego lo pasas a la función. // Saludos |
en resumen para aclarar
Código:
|
Muchísimas gracias :D :D :D :D a todos los que han respondido, ya que gracias a ustedes he podido solucionar el problema.
Salu2 desde Chile. |
La franja horaria es GMT +2. Ahora son las 12:37:02. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi