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-04-2010
MARLON1 MARLON1 is offline
Miembro
 
Registrado: nov 2007
Posts: 118
Poder: 17
MARLON1 Va por buen camino
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
Código Delphi [-]
 
var
 
resultx: array of string;
 uno,dos,Xutm: real;
begin
 
for ini:=0 to fin do begin

 uno:=dbgrid2.DataSource.DataSet.FieldValues['x'];
 dos:=dbgrid2.DataSource.DataSet.FieldValues['y'];
 
"proceso esta informacion y arrojo un resultado"
 
resultx[ini]:=FloatToStr(Xutm)  ;
 
dbgrid2.DataSource.DataSet.Next;
 
end;
 end;
end.
Responder Con Cita
  #2  
Antiguo 08-04-2010
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.043
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
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;
Responder Con Cita
  #3  
Antiguo 08-04-2010
MARLON1 MARLON1 is offline
Miembro
 
Registrado: nov 2007
Posts: 118
Poder: 17
MARLON1 Va por buen camino
Gracias!!

Cita:
Empezado por Casimiro Notevi Ver Mensaje
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;

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.

Código Delphi [-]
var
uno,dos,ttotal,total,A_X,B_Y,Ema,eme,emac,emec,rest,rauz,e1,e2,e2c,c1,alpha1,mA_X,mB_Y,gA_Xr,gB_Yr,m  gA_Xr,mgB_Yr,Huso,Lo,pi,pid,DeL,A,E,N,cose2,V,C2,A1,A2,J2,J4,J6,ALPHA,alp1,BETHA,alp2,alp3,GAMMA,Bo,  Xutm,Yutm :real;
raizc,Xut,Yut:real;
inc,ino,ini,fin: integer;
resultx : array of string;
begin
QUERY2.Close;
QUERY2.SQL.Clear;
QUERY2.SQL.Add('SELECT *FROM DATOS WHERE MAQUINA=:MAQ && DR= && MODULO=:MO && DIA=I && MES=:ME && ANO=:AN');
QUERY2.ParamByName('MAQ').Value:=EDIT1.Text;
QUERY2.ParamByName('D').Value:=EDIT2.Text;
QUERY2.ParamByName('MO').Value:=EDIT3.Text;
QUERY2.ParamByName('DI').Value:=EDIT4.Text;
QUERY2.ParamByName('ME').Value:=EDIT5.Text;
QUERY2.ParamByName('AN').Value:=EDIT6.Text;
QUERY2.Open;
dbgrid2.DataSource.DataSet.First;
ini:= dbgrid2.DataSource.DataSet.Fields[0].Value;

  fin:=0;
  inc:=0;
dbgrid2.DataSource.DataSet.First;
for fin:=0 to ini do begin

 uno:=dbgrid2.DataSource.DataSet.FieldValues['x'];
 dos:=dbgrid2.DataSource.DataSet.FieldValues['y'];
  //grados decimales
        A_X :=  uno; // w
        B_Y :=  dos; // N

     Ema := 6378388.000000;
      eme := 6356911.946130;
  emac:= Ema * Ema;
  emec:= eme * eme;
  rest:= emac - emec;
  rauz:= sqrt(rest);
    e1  := rauz/ Ema;
    e2  := rauz / eme;
    e2c := e2 * e2;
    c1   := Ema*Ema/eme;
  alpha1 := (Ema-eme)/Ema;
      mA_X := -A_X; // w
        mB_Y := -B_Y; // N
  //Convertirgrados rad
  gA_Xr := A_X*3.14159265358979323846/180; // w
        gB_Yr := B_Y*3.14159265358979323846/180; // N
  mgA_Xr := -gA_Xr; // w
    mgB_Yr := -gB_Yr; // N
    Huso := floor(mA_X/6+31);
  Lo   := Huso*6-183;
  pi:= Lo* 3.14159265358979323846;
  pid:= pi /180;
    DeL := mgA_Xr - pid;
  A  := cos(gB_Yr)*sin(DeL);
  E  := 1/2* ln(((1+A)/(1-A)));
    N  := arctan(tan(gB_Yr)/cos(DeL)) - gB_Yr;
  cose2 := cos(gB_Yr)*cos(gB_Yr);
  V  := c1* 0.9996/((1+e2c*cose2))*1/2;
  C2  := e2c/2 * $E*$E * cos(gB_Yr)*cos(gB_Yr);
  A1  := sin(2*gB_Yr);
  A2  := A1* cos(gB_Yr)*cos(gB_Yr);
    J2  := gB_Yr + A1/2;
  J4  := (3*J2 +A2)/4;
  J6  := (5*J4 +A2*cos(gB_Yr)*cos(gB_Yr))/3;
  ALPHA := 0.75 * $e2c;
  alp1:= ALPHA * ALPHA;
  BETHA:= 1.6666666666666666666666666666667 * alp1 ;
  alp2:= ALPHA * ALPHA;
  alp3:= alp2 * ALPHA;

  GAMMA := 1.2962962962962962962962962962963 * alp3;
    Bo  := 0.9996 * c1 * (gB_Yr-((ALPHA * J2) + BETHA )*( J4 - GAMMA ) * J6 );
 
  Xutm := E*V*(1+C2/3)+500000;
  Yutm := N*V*(1+C2)+Bo;
    Listbox2.Items.Add(FloatToStr(Xutm));
    Listbox3.Items.Add(FloatToStr(Yutm));
      resultx[fin]:=FloatToStr(Xutm);  -----------------------AKI ESTA EL ERROR
    dbgrid2.DataSource.DataSet.Next;
 end;
end;
Responder Con Cita
  #4  
Antiguo 09-04-2010
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.043
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
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
Te aconsejo que leas sobre los arrays.
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;
Responder Con Cita
  #5  
Antiguo 09-04-2010
MARLON1 MARLON1 is offline
Miembro
 
Registrado: nov 2007
Posts: 118
Poder: 17
MARLON1 Va por buen camino
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
Código Delphi [-]
resultx : array[1..100] of string;
Responder Con Cita
  #6  
Antiguo 09-04-2010
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.043
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
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;
¿cuánto vale esa variable 'ini'?
Luego asignas al array, en la posición 'fin' un valor.
Código:
resultx[fin]:=floattostr(Xutm)
Pues bien, como al principio has declarado el array
Código:
resultx : array[1..100] of string;
si la variable 'fin' tiene un valor menor de 1 o mayor de 100 ---> ¡¡¡crack!!!
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
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
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


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


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