Retourner première et dernière valeur d'une boucle [Résolu]

Signaler
Messages postés
77
Date d'inscription
mardi 17 novembre 2009
Statut
Membre
Dernière intervention
18 août 2015
-
Messages postés
77
Date d'inscription
mardi 17 novembre 2009
Statut
Membre
Dernière intervention
18 août 2015
-
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

Messages postés
32948
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
13 juin 2021
351
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 );

Messages postés
77
Date d'inscription
mardi 17 novembre 2009
Statut
Membre
Dernière intervention
18 août 2015

Salut jordane45,

j'essayerai demain merci !
Messages postés
77
Date d'inscription
mardi 17 novembre 2009
Statut
Membre
Dernière intervention
18 août 2015

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

--
Messages postés
420
Date d'inscription
samedi 17 mai 2003
Statut
Membre
Dernière intervention
6 mai 2019
16
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
Messages postés
263
Date d'inscription
lundi 27 octobre 2003
Statut
Membre
Dernière intervention
28 avril 2021
13
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]));
@+
Messages postés
77
Date d'inscription
mardi 17 novembre 2009
Statut
Membre
Dernière intervention
18 août 2015

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!

--