Problème tableau, violation d'accès

Résolu
cs_OhAime Messages postés 18 Date d'inscription vendredi 8 avril 2005 Statut Membre Dernière intervention 7 avril 2007 - 22 juil. 2006 à 17:02
cs_OhAime Messages postés 18 Date d'inscription vendredi 8 avril 2005 Statut Membre Dernière intervention 7 avril 2007 - 22 juil. 2006 à 21:34
Bonjour,

Voilà j'ai ce morceau de code:





procedure Tform1.CalculPoint;
var


i,j,m,n,z : integer;


begin
FichierINI := Tinifile.Create('d:\traitement.ini');
i := 4;
SetLength(TabloNivo,i,2);
SetLength(TabloConsomme,1);
  for j:= 0 to i-1 do
  begin
    TabloNivo[j,0] := StrToInt((FichierINI.ReadString(IntToStr(j),'DistanceNiveau','0')));
    TabloNivo[j,1] := StrToFloat((FichierINI.ReadString(IntToStr(j),'ConsoH','0')));
    StringGrid2.Cells[0,j] := FloatToStr(TabloNivo[j,0]);
    StringGrid2.Cells[1,j] := FloatToStr(TabloNivo[j,1]);
  end;
m := 0;
n := 0;
z := 0;
  repeat
    begin
      If (TabloNivo[m,0]>TabloPoint[n]) then   {  <----- Violation d'accès }
        begin
          TabloConsomme[z] := TabloPoint[n]*TabloNivo[m,1];
          TabloNivo[m,0] := TabloNivo[m,0] - TabloPoint[n];
          n := n+1;
          SetLength(TabloConsomme,(High(TabloConsomme))+2);
         z := z+1;
        end;
      If TabloNivo[m,0]<TabloPoint[n] then
        begin
          TabloConsomme[z] := TabloConsomme[z] + (TabloNivo[m,0]*TabloNivo[m,1]);
          TabloPoint [n] := (TabloPoint[n] - TabloNivo[m,0]);
          m := m+1;
        end;
      memo1.Lines.add(FloatToStr(TabloConsomme[z]));
      end;
      until
      TabloPoint[n] = 0;


end;

Eh bien lorsque je compile c'est bon, mais lors de l'utilisation, j'ai une erreur de violation d'accès à la ligne indiqué dans le code!
Je ne comprend pas bien pourquoi, les tableaux sont bien remplis (je vérifie en les affichant dans les StringGrid). Il arrive d'avoir par moment aussi une "erreur d'opération sur virgule flottante".

Là je suis un peu dans le flou!!

Si vous voyez d'ou peut venir le problème! Merci d'avance!

2 réponses

cs_OhAime Messages postés 18 Date d'inscription vendredi 8 avril 2005 Statut Membre Dernière intervention 7 avril 2007
22 juil. 2006 à 21:34
Résolu
3
cs_OhAime Messages postés 18 Date d'inscription vendredi 8 avril 2005 Statut Membre Dernière intervention 7 avril 2007
22 juil. 2006 à 19:16
Re bonjour, en fait, j'affichait le contenu du TabloPoint (déclaré en variable globale dans l'unité 1) à partir de la deuxiemme unité. Cela s'affichait bient, mais en fait, j'ai réessayer en l'appelant depuis l'unité 1 et là, c'est comme si le tableau avait été effacé, la valeur High affichée est -1 .

Est-il possible qu'un tableau dynamique soit effacé ainsi en passant d'une form à l'autre??
0
Rejoignez-nous