PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV (précédentes versions) → Parcours de table inversé
Parcours de table inversé
Débuté par Alain, 13 juin 2013 14:38 - 5 réponses
Posté le 13 juin 2013 - 14:38
Bonjour à tous,

Je constate que pour faire des extractions ou d'autres opérations, certain d'entre vous parcours les tables depuis le bas de ces dernières.
J'ai cherché mais je n'ai pas trouvé la raison de ce parcours inversé.

Quelqu'un pourrait il m'éclairer.

Merci de vos réponses.

Alain
Membre enregistré
111 messages
Popularité : +13 (13 votes)
Posté le 13 juin 2013 - 17:19
Bonjour

C'est surtout pratique dans le cas de suppressions en chaine dans une table multisélection (avant l'apparition de TableSupprimeSélect)

--
A+

Erick
Posté le 13 juin 2013 - 20:34
Bonjour Alain

la raison est le changement d'indice de ligne selon les opération
effectuées :
- si on supprime une ligne de la table dans la boucle de parcours,
toutes les lignes qui suivent ont donc leur indice décrémenté, et il
faut soit ne pas incrémenter l'indice de parcours dans la boucle ou
parcourir de bas en haut, faute de quoi on saute/évite la ligne suivante
- si on insère une ligne dans la table dans la boucle, les indices sont
maintenant incrémentés, et la valeur de fin de boucle est fausse... En
parcourant à l'envers, la fin de la table a déjà été traitée et ca ne
pose donc pas de problème

Cordialement


--
Fabrice Harari
Consultant WinDev, WebDev et WinDev Mobile International

Nouveau site web (EXPERIMENTAL) http://www.fabriceharari.eu
(Plus d'information sur http://fabriceharari.com/index_FR.html)


On 6/13/2013 6:38 AM, Alain wrote:
Bonjour à tous,

Je constate que pour faire des extractions ou d'autres opérations,
certain d'entre vous parcours les tables depuis le bas de ces dernières.
J'ai cherché mais je n'ai pas trouvé la raison de ce parcours inversé.

Quelqu'un pourrait il m'éclairer.

Merci de vos réponses.

Alain
Posté le 14 juin 2013 - 08:37
Bonjour,

Merci de vos réponses.
Mais alors quelle difference entre parcourrir une table avec:
i est un entier
Pour i = 1 a TableOccurrence (Matable)
//traitement
FIN
et
nIndice est un entier
POUR TOUTE LIGNE nIndice DE Matable
//traitement
FIN

Avec 'POUR TOUTE LIGNE' est il possible d'inverser le parcours de la table, si oui comment.

Alain
Posté le 24 avril 2014 - 15:44
Réponse tardive, mais j'ai également eu besoin de faire cette opération.
Il faut tout simplement parcourir à l'ancienne :) sans se servir des fonction Windev.

b est un entier = TableauOccurrence(MonTableau ou Matable)
TANTQUE b >= 1
SI MonTableau [b,9] <> de valeurAttendue ALORS
TableauSupprimeLigne(MonTableau,b)
FIN
b--
FIN
Membre enregistré
841 messages
Popularité : +19 (27 votes)
Posté le 28 avril 2014 - 08:43
ou plus simplement

POUR x=TableOccurrence(table) à 1 PAS -1
TableSupprime(table,x)
FIN


--
Miro