Arreglo!!!
Hola a todos:
Les comento mi problema , estoy trabajando en delphi 1o, pero resulta que quiero guardar una variable en un arreglo que se encuentra en un ciclo for,pero me arroja un error "acces violation at adrres 004078a2 in module 'puerto.exe. write of address 0000000", la verdad nose a ke se deba este error, espero y me haya explicado les dejo el codigo que tengo. saludos
|
Hola, MARLON1, por favor, pon títulos descriptivos a los temas para saber de qué trata, ya que luego a la hora de buscar no sirve de nada a nadie que quiera encontrar algo sobre el mismo tema, te recomiendo que leas la guía de estilo de clubdelphi, gracias.
En cuanto a tu pregunta, está el código un poco "lioso" con variables que no se saben de donde vienen ni qué son, pero de todas formas, me parece que te olvidaste de declarar el tamaño del array. Código:
resultx: array [xxx] of string; |
Gracias!!
Cita:
QUE TAL CASIMIRO: YA TRATE DECLARANDO EL TAMAÑO DEL ARREGLO PERO AUN ASI SIGUE EL PROBLEMA, PERO MUCHAS GRACIAS DE TODAS FORMAS, NO PUSE EL CODIGO COMPLETO POR QUE PENSE KE SERIA MAS ENREDO, PERO AHORA LO PONGO IGUAL Y SIRVE DE MAS AYUDA.
|
Te tengo que dar la misma respuesta que antes:
Tienes que darle un tamaño: Código:
resultx:array [xxx] of string; Código:
resultx[fin]:=FloatToStr(Xutm); -----------------------AKI ESTA EL ERROR No puede asignar un valor a algo que no existe, Ejemplo: Código:
var |
casimiro:
te agradezco mucho te ayuda, pero como te digo ya lo intente o nose si lo estoy declarando mal el arreglo, lo declaro asi pero aun me marca error, gracias por la ayuda :o
|
En tu código declaras 'fin' y le das el valor cero.
Luego haces un bucle 'for' desde 0 (el valor de fin) hasta 'ini', que lo sacas de aquí: Código:
ini:= dbgrid2.DataSource.DataSet.Fields[0].Value; Luego asignas al array, en la posición 'fin' un valor. Código:
resultx[fin]:=floattostr(Xutm) Código:
resultx : array[1..100] of string; y por supuesto, si la declaras sin tamaño... no puede hacerse eso. Tienes varias soluciones, pero para empezar te hago una pregunta: ¿qué valores mínimo y máximo puede resultar de aquí: dbgrid2.DataSource.DataSet.Fields[0].Value |
Hola MARLON1, creo que Casimiro tiene razón, no puedes asignar un valor a una posición del array que no existe, yo tambien pienso que hay tienes el problema.
Un saludo |
Prueba con SetLength
Como ya te han comentado, si declaras el array con un tamaño y "te pasas", te da error.
Una solución sería aumentar el tamaño del array en tiempo de ejecución, ya que si sabes (en ejecución) el tamaño máximo de ese array.
|
Gracias a todos
Pues si ese era el error!! que el tamaño de mi arreglo lo declaraba [1..n], y mas abajo fin lo igualaba a "cero", y ps ahi tronaba :D, muchas gracias a todos, lo unico que tenia que hacer era lo que uds me decian declarar el tamaño de mi arreglo asi [0..n].
saludos.;) |
La franja horaria es GMT +2. Ahora son las 07:31:42. |
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