codial
Messages postés265Date d'inscriptionmercredi 14 avril 2004StatutMembreDernière intervention 5 mai 2015
-
2 juin 2005 à 13:09
codial
Messages postés265Date d'inscriptionmercredi 14 avril 2004StatutMembreDernière intervention 5 mai 2015
-
3 juin 2005 à 05:30
Bonjour à tous,
je vous soumets un bout de code car j'ai un problème compréhension et je galère. En effet la boucle en rouge et gras quand elle arrive au dernier enregistrement, elle devient sans fin et si je rajoute à la ligne while D1.tbl_res.fieldbyname('Code_Comp').asstring = lCode or not D1.tbl_res.Eof j'ai un message d'erreur; Type incompatible "String et Boolean".
while not D1.tbl_res.Eof do
begin
lCode: =D1.tbl_res.fieldbyname('Code_Comp').asstring;
StringsValides:=0;
Min:=0;
Sec:=0;
cent:=0;
while D1.tbl_res.fieldbyname('Code_Comp').asstring = lCode do
begin
inc(StringsValides);
STmp:=D1.tbl_res.fieldbyname('CO_Tp').asstring;
Min:=Min + StrToInt(Copy(STmp, 1, Pos(':', STmp) -1));
Delete(STmp, 1, Pos(':', STmp));
Sec:=Sec+StrToInt(Copy(STmp, 1, Pos(':', STmp) -1));
Delete(STmp, 1, Pos(':', STmp));
Cent := Cent + StrToInt(STmp);
D1.tbl_res.next; ==============> Boucle sans fin sur le dernier enregistrement ????
end;
Cent := Cent + Sec * 100 + Min * 6000;
Cent := Cent div StringsValides;
Sec := Cent div 100;
Cent := Cent mod 100;
Min := Sec div 60;
Sec := Sec mod 60;
// Enregistrement des moyenne
D1.tbl_Myn.insert;
D1.tbl_Myn.FieldByName('Code_Comp').asstring:= lCode;
D1.tbl_Myn.FieldByName('CO_Moyenne').asstring:=Format('%.1d:%.2d:%.2d', [Min, Sec, Cent]); //lblTemp;
D1.tbl_Myn.Post;
end;
showmessage('Mise à jour terminée.');
Loulibier
Messages postés309Date d'inscriptionjeudi 6 juin 2002StatutMembreDernière intervention24 septembre 20082 2 juin 2005 à 13:56
Je n'ai pas regardé tout ton code, mais il me semble que ton problème viens en fait que tu ne puisses pas mettre cette ligne : while D1.tbl_res.fieldbyname('Code_Comp').asstring = lCode or not D1.tbl_res.Eof
en fait pour ne pas avoir ton erreur de compilation il faut écrire :
while ( D1.tbl_res.fieldbyname('Code_Comp').asstring = lCode) or not D1.tbl_res.Eof do
Et la ton code compilera correctement...
Bonne Prog,
Olivier
PS : Lorsqu'une réponse vous convient, n'oubliez pas de la valider.
exyacc
Messages postés163Date d'inscriptiondimanche 20 octobre 2002StatutMembreDernière intervention31 juillet 2008 2 juin 2005 à 18:46
de toute facon, des que tu mets des AND ou OR, mets des parentheses,
car la t'as de la "chance" car tes donnees sont pas compatibles
(boolean et string) donc t'as eu une erreur...mais le pire c'est qd y'a
pas d'erreur de compilation et que ca merde dans les resultats
justement a cause du manque des parentheses...je dis ca par vecu.......
;o).