Retourner première et dernière valeur d'une boucle

Résolu
phoenixgreg Messages postés 77 Date d'inscription mardi 17 novembre 2009 Statut Membre Dernière intervention 18 août 2015 - 21 mai 2014 à 15:07
phoenixgreg Messages postés 77 Date d'inscription mardi 17 novembre 2009 Statut Membre Dernière intervention 18 août 2015 - 23 mai 2014 à 14:17
Bonjour,

excusez-moi pour cette question assez élémentaire mais comment puis-je avoir la première et dernière valeur que retourne cette boucle :


Master.Fisrt;
for i:=1 to Master.RecordCount-1 do
begin
if Master.FieldByName('CHECK').AsBoolean = true then
showmessage(Master.FieldByName('ID').AsString);
Master.Next;
end;

Il me renvoi bien avec un showmessage toutes les ID où le champ 'CHECK' est à true et donc je n'aimerai que la première et dernière valeur.

Voilà merci d'avance pour votre aide ;)
--

5 réponses

jordane45 Messages postés 38207 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 juin 2024 344
21 mai 2014 à 17:20
Bonjour,

Sans faire de delphi..
je dirai que tu peux toujours faire quelque chose du genre :

Master.Fisrt;
firstID = Master.FieldByName('ID').AsString;
while(not Master.EOF)do begin
    if Master.FieldByName('CHECK').AsBoolean = true then
         lastID = Master.FieldByName('ID').AsString;
    Master.Next;
end;
  showmessage(firstID );
  showmessage(lastID );

0
phoenixgreg Messages postés 77 Date d'inscription mardi 17 novembre 2009 Statut Membre Dernière intervention 18 août 2015
21 mai 2014 à 22:17
Salut jordane45,

j'essayerai demain merci !
0
phoenixgreg Messages postés 77 Date d'inscription mardi 17 novembre 2009 Statut Membre Dernière intervention 18 août 2015
22 mai 2014 à 16:15
Alors j'ai le dernier ID (lastID) mais le premier n'est pas la bonne valeur (il me renvoi la valeur de Master.EOF :s

--
0
korgis Messages postés 420 Date d'inscription samedi 17 mai 2003 Statut Membre Dernière intervention 6 mai 2019 17
Modifié par korgis le 22/05/2014 à 20:01
Hello,

Je suis une quiche en bases de données, mais...
Sans trop savoir ce qu'est "Master", je ne comprend absolument pas pourquoi tu balaies les enregistrements qu'il contient dans une boucle, et tout ça entre les instructions "first" et "next" qui elles-même (ces instructions) semblent de manière évidente avoir un rôle dans le parcours de ces mêmes enregistrements...
Ça ne semble (à priori) pas avoir de sens et pourrait expliquer le problème.

korgis
0
cs_yanb Messages postés 271 Date d'inscription lundi 27 octobre 2003 Statut Membre Dernière intervention 7 juillet 2022 14
23 mai 2014 à 09:23
pas testé
Master.Fisrt;
FirstID := '';
LastID := '';
while (not Master.EOF) do
begin
if Master.FieldByName('CHECK').AsBoolean = True then
begin
if FirstID = '' then
FirstID = Master.FieldByName('ID').AsString;
else
LastID = Master.FieldByName('ID').AsString;
end;
Master.Next;
end;
ShowMessage(Format('La premiere valeur à true est : %s'+#13#10+'La derniere valeur à true est : %s',[FirstID, LastID]));
@+
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
phoenixgreg Messages postés 77 Date d'inscription mardi 17 novembre 2009 Statut Membre Dernière intervention 18 août 2015
23 mai 2014 à 14:17
Merci pour vos réponse, j'ai tout simplement fait un break lorsqu'il trouve le premier check à true, ce sera plus simple.

merci encore!

--
0
Rejoignez-nous