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
35767
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
1 juillet 2022
358
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
16
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
267
Date d'inscription
lundi 27 octobre 2003
Statut
Membre
Dernière intervention
20 mai 2022
13
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