mon code:
Access violation at address ..... sur le
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 var i: Integer begin i := 0;A votre avis?
Code : Sélectionner tout - Visualiser dans une fenêtre à part i := 0
mon code:
Access violation at address ..... sur le
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 var i: Integer begin i := 0;A votre avis?
Code : Sélectionner tout - Visualiser dans une fenêtre à part i := 0
Ne manquerait-il pas un point virgule après Integer?![]()
Il y a surement autre chose ... une récursivité de l'appel et donc une violation d'accès me surprend j'aurais plus pensé à un débordement de pile ...
un peu plus de code, juste celui qui plante ... que l'on puisse tester, un code le plus conci et indépendant que possible ...
Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !![]()
Attention Troll Méchant !
"Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
L'ignorance n'excuse pas la médiocrité !
L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
Il faut avoir le courage de se tromper et d'apprendre de ses erreurs
ca va etre dur j'utilise une classe que mon maitre de stage a cree...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 while (CompareDate( date, datePrec) = 0) and (va<>0) do begin // fill a1 with the datas of the day (datePrec) a1.Add(@atd); ReadFile( h, atd, sizeof(atd), va, nil ); date := atd.heure; end; // for i := 0 to a1.Count-1 do begin // if i > 619 then begin // ShowMessage( ATDATA(a1.items[i]^).exchg); // end; // end; if CompareDate( date, datePrec ) <> 0 then begin if not Belongs( datePrec, a2 ) then begin //ShowMessage(IntToStr(Length(a1))); a2 := Fill( a1, a2 ); // fills a2 with the datas in a1 // ShowMessage( 'boucle if '+IntToStr(Length(a2)) ); // updates l l.AddObject( DateToStr(datePrec), Pointer(a1.Count) ); endLe bug est sur le
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 //------------------------------------------------------------------------------ // fills a2 with the datas in a1 function Fill( a1: TVector; a2: TVector ): TVector; var i, j: Integer; begin i := 0; while CompareDate( ATDATA(a2.Items[i]^).heure, ATDATA(a1.Items[0]^).heure ) < 0 do Inc(i); for j := 0 to a1.Count-1 do begin a2.Insert( i, a1.Items[j] ); end; result := a2; end;de la fonction Fill
Code : Sélectionner tout - Visualiser dans une fenêtre à part i := 0;
Lol, ça sens le java, ... au bureau où je suis, un collègue qui faisait du java, et réinventer, plein de truc donc les vector au lieu d'utiliser une TList ...
bon, en plus je vois que ces Vector semble n'être que des TList, des TATDATAList, aurait été plus pratique pour éviter le Transtypage, ... il y a l'outil de Waskol, qui est bien pratique pour cela (je l'utiliserais au lieu de copier coller mon modèle pour voir une fois), ensuite plus de ^, cela éclairci le code ...
Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !![]()
Attention Troll Méchant !
"Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
L'ignorance n'excuse pas la médiocrité !
L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
Il faut avoir le courage de se tromper et d'apprendre de ses erreurs
Non parce que dans la TList il n'y a que des pointeurs alors que les TVector copient les datas!
Partager