FTP | CCD | Buscar | Trucos | Trabajo | Foros |
#1
|
|||
|
|||
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
|
#2
|
||||
|
||||
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; |
#3
|
|||
|
|||
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.
|
#4
|
||||
|
||||
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 personas : array [3] of string; // array de 3 elementos begin personas[0] := 'manolo'; // posición 1 personas[1] := 'maría'; // posición 2 personas[2] := 'pedro'; // posición 3 personas[3] := 'juan'; // ERROR !!! no existe sitio en el array para 4 elementos !!! end; |
#6
|
||||
|
||||
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 |
#7
|
|||
|
|||
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 |
#8
|
||||
|
||||
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.
__________________
Progress Openedge https://abevoelker.com/progress_open...dered_harmful/ Delphi forever... |
#9
|
|||
|
|||
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 , 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. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Arreglo String | Carliviris | Varios | 7 | 11-09-2006 23:26:26 |
Recorrer arreglo | Perrero80 | Varios | 3 | 18-05-2006 22:52:27 |
De una cadena a un arreglo | D-MO | PHP | 2 | 06-01-2006 19:19:45 |
arreglo con Campos | ahkimpech | Firebird e Interbase | 0 | 01-06-2005 04:26:23 |
Imprimir un arreglo | Luli | Varios | 2 | 15-05-2005 07:57:55 |
|