Aller au contenu
Invité bruno Amiot

Une Boucle Interminable

Messages recommandés

Invité bruno Amiot

Je travaille sur un projet pour le remplissage de contenant avec différents contenus (2 fichiers).

pour pouvoir les optimiser ; je veux faire les meilleurrs choix et boucher le maximum de trous possibles.

Je fonctionne par rang, de droite à gauche, de haut en bas.

J'ai d'autres scripts pour boucher les petits trous.

J'ai donc scripter un peu mais je me retrouve avec des boucles interminables qui ne s'arrêtent pas sauf avec la petite croix.

il semblerait d'après le forum que cela est même arrivé aux meilleurs.

comme je n'en suis pas là cela me rassure.

voici donc mes scripts avec toutes les erreurs du novice.

Fichier de contenant

*******************

script 1 "copier1":

- copie des valeurs dans des globales pour permettre d'isoler les fiches possibles

- les recopie dans toutes les fiches du second fichier avec un script externe

- active le script externe "copier meilleure valeur"

script 2 "copier2":

- remet à jour les valeurs et les globales du premier fichier

Fichier de contenu

******************

script 3 : "copier meilleure valeur" :

Autorisation annulation utilisateur [non]

Gestion erreurs [oui]

Mode recherche [rétablir]

Exécuter recherche [rétablir, remplacer l'ensemble trouvé]

##fait une recherche sur les globales récupérées (disponible, hauteur_max, largeur_max, surface_libre, ...)##

Boucle

SI["Etat(Fichestrouvées) >0"]

Exécuter [sous-scripts,"copier_valeurs"]

Exécuter [sous-scripts,Externe:"contenant.fp5=copier2"]

Exécuter [sous-scripts,Externe:"contenant.fp5=copier1"]

Afficher toutes les fiches

Sinon

##là c'est pas terrible, mais je ne veux pas qu'il s'arrête définitivement puisqu'il doit passer à un autre rang au bout de la ligne##

Afficher toutes les fiches

## crée un nouveau rang et repart à 0 (num position, largeur_max, ...)##

Exécuter [sous-scripts,Externe:"contenant.fp5=nouveau_rang"]

Exécuter [sous-scripts,Externe:"contenant.fp5=copier2"]

## relance la recherche##

Exécuter [sous-scripts,Externe:"contenant.fp5=copier1"]

Fin de si

Fin de boucle si ["(N_rang_libre)=7"]

##c'est une globale qui s'incrémente au fur et à mesure et cela ne dépasse jamais ce nombre de rangs

je pourrais utiliser d'autres paramètres (taux d'occupation, ETat(fichesTrouvées) qui se serait répété deux fois successivement)##

Fin de boucle

Interrompre script

Fin de script

script 4 : "copier_valeurs" :

- Tri les fiches trouvées par ordre décroissant

- sélectionne la première

- renseigne l'affectation au contenant (lien)

- renseigne le rang

- renseigne le numéro de position

- rend la fiche indisponible pour un prochain choix

Si un des pros (qui s'est bouclé les cheveux) pouvait m'aider.

là je sèche

salut

Bruno Amiot

FMP6

Partager ce message


Lien à poster
Partager sur d’autres sites
Invité Ugo Di Luca

Le 19 sept. 04, à 22:29, bruno amiot a écrit :

> Je travaille sur un projet pour le remplissage de contenant avec > différents contenus (2 fichiers).

> pour pouvoir les optimiser ; je veux faire les meilleurrs choix et > boucher le maximum de trous possibles.

> Je fonctionne par rang, de droite à gauche, de haut en bas.

>  J'ai d'autres scripts pour boucher les petits trous.

> J'ai donc scripter un peu mais je me retrouve avec des boucles > interminables qui ne s'arrêtent pas sauf avec la petite croix.

> il semblerait d'après le forum que cela est même arrivé aux meilleurs.

> comme je n'en suis pas là cela me rassure.

> voici donc mes scripts avec toutes les erreurs du novice.

>  

> Fichier de contenant

> *******************

>  

> script 1 "copier1":

> - copie des valeurs dans des globales pour permettre d'isoler les > fiches possibles

> - les recopie dans toutes les fiches du second fichier avec un script > externe

> - active le script externe "copier meilleure valeur"

>  

> script 2 "copier2":

> - remet à jour les valeurs et les globales du premier fichier

>  

>

>

> Fichier de contenu

> ******************

> script 3 : "copier meilleure valeur" :

>  

> Autorisation annulation utilisateur [non]

> Gestion erreurs [oui]

> Mode recherche [rétablir]

> Exécuter recherche [rétablir, remplacer l'ensemble trouvé]

> ##fait une recherche sur les globales récupérées (disponible, > hauteur_max, largeur_max, surface_libre, ...)##

> Boucle

> SI["Etat(Fichestrouvées) >0"]

> Exécuter [sous-scripts,"copier_valeurs"]

> Exécuter [sous-scripts,Externe:"contenant.fp5=copier2"]

> Exécuter [sous-scripts,Externe:"contenant.fp5=copier1"]

> Afficher toutes les fiches

> Sinon

> ##là c'est pas terrible, mais je ne veux pas qu'il s'arrête > définitivement puisqu'il doit passer à un autre rang au bout de la > ligne##

> Afficher toutes les fiches

> ## crée un nouveau rang et repart à 0 (num position, largeur_max, > ...)##

> Exécuter [sous-scripts,Externe:"contenant.fp5=nouveau_rang"]

> Exécuter [sous-scripts,Externe:"contenant.fp5=copier2"]

> ## relance la recherche##

> Exécuter [sous-scripts,Externe:"contenant.fp5=copier1"]

> Fin de si

> Fin de boucle si ["(N_rang_libre)=7"]

>  

> ##c'est une globale qui s'incrémente au fur et à mesure et cela ne > dépasse jamais ce nombre de rangs

> je pourrais utiliser d'autres paramètres (taux d'occupation, > ETat(fichesTrouvées) qui se serait répété deux fois successivement)##

> Fin de boucle

> Interrompre script

> Fin de script

>  

> script 4 : "copier_valeurs" :

> - Tri les fiches trouvées par ordre décroissant

> - sélectionne la première

> - renseigne l'affectation au contenant (lien)

> - renseigne le rang

> - renseigne le numéro de position

> - rend la fiche indisponible pour un prochain choix

>  

> Si un des pros (qui s'est bouclé les cheveux) pouvait m'aider.

> là je sèche

>  

> salut

>  

> Bruno Amiot

> FMP6

>

Bruno,

C'est assez difficile (peut-être un manque de courage de ma part à cette heure) de trouver la faille, surtout sans savoir ce que font les sous-script, ce qu'est un "copier", etc....

Le mieux à faire à mon avis, est d'introduire plusieurs étapes "Suspendre/Reprendre script" , et eventuellement "Afficher Message ["où je suis dans mon script"] pour le débugger.

Tu sauras exactment où/quand ça cloche.

Ugo Di Luca

OSXPanther - FM6/7

Paris, France

ugo.diluca@wanadoo.fr

espritlatin@wanadoo.fr

Le 19 sept. 04, à 22:29, bruno amiot a écrit :

<excerpt><fontfamily><param>Arial</param><smaller>Je travaille sur un

projet pour le remplissage de contenant avec différents contenus (2

fichiers).</smaller></fontfamily>

<fontfamily><param>Arial</param><smaller>pour pouvoir les optimiser ;

je veux faire les meilleurrs choix et boucher le maximum de trous

possibles.</smaller></fontfamily>

<fontfamily><param>Arial</param><smaller>Je fonctionne par rang, de

droite à gauche, de haut en bas.</smaller></fontfamily>

<fontfamily><param>Arial</param><smaller> J'ai d'autres scripts pour

boucher les petits trous.</smaller></fontfamily>

<fontfamily><param>Arial</param><smaller>J'ai donc scripter un peu

mais je me retrouve avec des boucles interminables qui ne s'arrêtent

pas sauf avec la petite croix.</smaller></fontfamily>

<fontfamily><param>Arial</param><smaller>il semblerait d'après le

forum que cela est même arrivé aux meilleurs.</smaller></fontfamily>

<fontfamily><param>Arial</param><smaller>comme je n'en suis pas là

cela me rassure.</smaller></fontfamily>

<fontfamily><param>Arial</param><smaller>voici donc mes scripts avec

toutes les erreurs du novice.</smaller></fontfamily>

 

<fontfamily><param>Arial</param><smaller>Fichier de contenant</smaller></fontfamily>

<fontfamily><param>Arial</param><smaller>*******************</smaller></fontfamily>

 

<fontfamily><param>Arial</param><smaller>script 1 "copier1":</smaller></fontfamily>

<fontfamily><param>Arial</param><smaller>- copie des valeurs dans des

globales pour permettre d'isoler les fiches possibles</smaller></fontfamily>

<fontfamily><param>Arial</param><smaller>- les recopie dans toutes les

fiches du second fichier avec un script externe</smaller></fontfamily>

<fontfamily><param>Arial</param><smaller>- active le script externe

"copier meilleure valeur"</smaller></fontfamily>

 

<fontfamily><param>Arial</param><smaller>script 2 "copier2":</smaller></fontfamily>

<fontfamily><param>Arial</param><smaller>- remet à jour les valeurs et

les globales du premier fichier</smaller></fontfamily>

 

<fontfamily><param>Arial</param><smaller>Fichier de contenu</smaller></fontfamily>

<fontfamily><param>Arial</param><smaller>******************</smaller></fontfamily>

<fontfamily><param>Arial</param><smaller>script 3 : "copier meilleure

valeur" :</smaller></fontfamily>

<fontfamily><param>Arial</param><smaller> </smaller></fontfamily>

<fontfamily><param>Arial</param><smaller>Autorisation annulation

utilisateur [non]</smaller></fontfamily>

<fontfamily><param>Arial</param><smaller>Gestion erreurs [oui]</smaller></fontfamily>

<fontfamily><param>Arial</param><smaller>Mode recherche [rétablir]</smaller></fontfamily>

<fontfamily><param>Arial</param><smaller>Exécuter recherche [rétablir,

remplacer l'ensemble trouvé]</smaller></fontfamily>

<fontfamily><param>Arial</param><smaller>##fait une recherche sur les

globales récupérées (disponible, hauteur_max, largeur_max,

surface_libre, ...)##</smaller></fontfamily>

<fontfamily><param>Arial</param><smaller>Boucle</smaller></fontfamily>

<fontfamily><param>Arial</param><smaller>SI["Etat(Fichestrouvées) >0"]</smaller></fontfamily>

<fontfamily><param>Arial</param><smaller>Exécuter

[sous-scripts,"copier_valeurs"]</smaller></fontfamily>

<fontfamily><param>Arial</param><smaller>Exécuter

[sous-scripts,Externe:"contenant.fp5=copier2"]</smaller></fontfamily>

<fontfamily><param>Arial</param><smaller>Exécuter

[sous-scripts,Externe:"contenant.fp5=copier1"]</smaller></fontfamily>

<fontfamily><param>Arial</param><smaller>Afficher toutes les fiches</smaller></fontfamily>

<fontfamily><param>Arial</param><smaller>Sinon</smaller></fontfamily>

<fontfamily><param>Arial</param><smaller>##là c'est pas terrible, mais

je ne veux pas qu'il s'arrête définitivement puisqu'il doit passer à

un autre rang au bout de la ligne##</smaller></fontfamily>

<fontfamily><param>Arial</param><smaller>Afficher toutes les fiches</smaller></fontfamily>

<fontfamily><param>Arial</param><smaller>## crée un nouveau rang et

repart à 0 (num position, largeur_max, ...)##</smaller></fontfamily>

<fontfamily><param>Arial</param><smaller>Exécuter

[sous-scripts,Externe:"contenant.fp5=nouveau_rang"]</smaller></fontfamily>

<fontfamily><param>Arial</param><smaller>Exécuter

[sous-scripts,Externe:"contenant.fp5=copier2"]</smaller></fontfamily>

<fontfamily><param>Arial</param><smaller>## relance la recherche##</smaller></fontfamily>

<fontfamily><param>Arial</param><smaller>Exécuter

[sous-scripts,Externe:"contenant.fp5=copier1"]</smaller></fontfamily>

<fontfamily><param>Arial</param><smaller>Fin de si</smaller></fontfamily>

<fontfamily><param>Arial</param><smaller>Fin de boucle si

["(N_rang_libre)=7"]</smaller></fontfamily>

<fontfamily><param>Arial</param><smaller> </smaller></fontfamily>

<fontfamily><param>Arial</param><smaller>##c'est une globale qui

s'incrémente au fur et à mesure et cela ne dépasse jamais ce nombre de

rangs</smaller></fontfamily>

<fontfamily><param>Arial</param><smaller>je pourrais utiliser d'autres

paramètres (taux d'occupation, ETat(fichesTrouvées) qui se serait

répété deux fois successivement)##</smaller></fontfamily>

<fontfamily><param>Arial</param><smaller>Fin de boucle</smaller></fontfamily>

<fontfamily><param>Arial</param><smaller>Interrompre script</smaller></fontfamily>

<fontfamily><param>Arial</param><smaller>Fin de script</smaller></fontfamily>

<fontfamily><param>Arial</param><smaller> </smaller></fontfamily>

<fontfamily><param>Arial</param><smaller>script 4 : "copier_valeurs" :</smaller></fontfamily>

<fontfamily><param>Arial</param><smaller>- Tri les fiches trouvées par

ordre décroissant</smaller></fontfamily>

<fontfamily><param>Arial</param><smaller>- sélectionne la première</smaller></fontfamily>

<fontfamily><param>Arial</param><smaller>- renseigne l'affectation au

contenant (lien)</smaller></fontfamily>

<fontfamily><param>Arial</param><smaller>- renseigne le rang</smaller></fontfamily>

<fontfamily><param>Arial</param><smaller>- renseigne le numéro de

position</smaller></fontfamily>

<fontfamily><param>Arial</param><smaller>- rend la fiche indisponible

pour un prochain choix</smaller></fontfamily>

<fontfamily><param>Arial</param><smaller> </smaller></fontfamily>

<fontfamily><param>Arial</param><smaller>Si un des pros (qui s'est

bouclé les cheveux) pouvait m'aider.</smaller></fontfamily>

<fontfamily><param>Arial</param><smaller>là je sèche</smaller></fontfamily>

<fontfamily><param>Arial</param><smaller> </smaller></fontfamily>

<fontfamily><param>Arial</param><smaller>salut</smaller></fontfamily>

<fontfamily><param>Arial</param><smaller> </smaller></fontfamily>

<fontfamily><param>Arial</param><smaller>Bruno Amiot</smaller></fontfamily>

<fontfamily><param>Arial</param><smaller>FMP6</smaller></fontfamily>

</excerpt>

Bruno,

C'est assez difficile (peut-être un manque de courage de ma part à

cette heure) de trouver la faille, surtout sans savoir ce que font les

sous-script, ce qu'est un "copier", etc....

Le mieux à faire à mon avis, est d'introduire plusieurs étapes

"Suspendre/Reprendre script" , et eventuellement "Afficher Message

["où je suis dans mon script"] pour le débugger.

Tu sauras exactment où/quand ça cloche.

Ugo Di Luca

OSXPanther - FM6/7

Paris, France

ugo.diluca@wanadoo.fr

espritlatin@wanadoo.fr

Partager ce message


Lien à poster
Partager sur d’autres sites
Invité bruno.amiot@tiscali.fr

merci Ugo de cette contribution.

(je peux t'envoyer les autres scripts si tu veux mais hier c'était dimanche alors ... faut me laisser un peu de temps)

je crois que ta solution est la plus raisonnable.

je vais tester cela de suite.

mais existe-t'il quelque part un didacticiel sur les "boucle, fin de boucle si, sinon, fin de si, fin de script".

Je m'emmêle les pinceaux et la doc manque d'exemples pratiques.

Heureusement que ce forum existe.

Salut

Bruno Amiot

FMP6

---------- Initial Header -----------

From : <FMPro@lists.fmsource.com>

To : "FMPro" <FMPro@lists.fmsource.com>

Cc :

Date : Mon, 20 Sep 2004 00:09:09 +0200

Subject : Re: Fmp: une boucle interminable

Le 19 sept. 04, à 22:29, bruno amiot a écrit :

> Je travaille sur un projet pour le remplissage de contenant avec

> différents contenus (2 fichiers).

> pour pouvoir les optimiser ; je veux faire les meilleurrs choix et

> boucher le maximum de trous possibles.

> Je fonctionne par rang, de droite à gauche, de haut en bas.

>  J'ai d'autres scripts pour boucher les petits trous.

> J'ai donc scripter un peu mais je me retrouve avec des boucles

> interminables qui ne s'arrêtent pas sauf avec la petite croix.

> il semblerait d'après le forum que cela est même arrivé aux meilleurs.

> comme je n'en suis pas là cela me rassure.

> voici donc mes scripts avec toutes les erreurs du novice.

>  

> Fichier de contenant

> *******************

>  

> script 1 "copier1":

> - copie des valeurs dans des globales pour permettre d'isoler les

> fiches possibles

> - les recopie dans toutes les fiches du second fichier avec un script

> externe

> - active le script externe "copier meilleure valeur"

>  

> script 2 "copier2":

> - remet à jour les valeurs et les globales du premier fichier

>  

>

>

> Fichier de contenu

> ******************

> script 3 : "copier meilleure valeur" :

>  

> Autorisation annulation utilisateur [non]

> Gestion erreurs [oui]

> Mode recherche [rétablir]

> Exécuter recherche [rétablir, remplacer l'ensemble trouvé]

> ##fait une recherche sur les globales récupérées (disponible,

> hauteur_max, largeur_max, surface_libre, ...)##

> Boucle

> SI["Etat(Fichestrouvées) >0"]

> Exécuter [sous-scripts,"copier_valeurs"]

> Exécuter [sous-scripts,Externe:"contenant.fp5=copier2"]

> Exécuter [sous-scripts,Externe:"contenant.fp5=copier1"]

> Afficher toutes les fiches

> Sinon

> ##là c'est pas terrible, mais je ne veux pas qu'il s'arrête

> définitivement puisqu'il doit passer à un autre rang au bout de la

> ligne##

> Afficher toutes les fiches

> ## crée un nouveau rang et repart à 0 (num position, largeur_max,

> ...)##

> Exécuter [sous-scripts,Externe:"contenant.fp5=nouveau_rang"]

> Exécuter [sous-scripts,Externe:"contenant.fp5=copier2"]

> ## relance la recherche##

> Exécuter [sous-scripts,Externe:"contenant.fp5=copier1"]

> Fin de si

> Fin de boucle si ["(N_rang_libre)=7"]

>  

> ##c'est une globale qui s'incrémente au fur et à mesure et cela ne

> dépasse jamais ce nombre de rangs

> je pourrais utiliser d'autres paramètres (taux d'occupation,

> ETat(fichesTrouvées) qui se serait répété deux fois successivement)##

> Fin de boucle

> Interrompre script

> Fin de script

>  

> script 4 : "copier_valeurs" :

> - Tri les fiches trouvées par ordre décroissant

> - sélectionne la première

> - renseigne l'affectation au contenant (lien)

> - renseigne le rang

> - renseigne le numéro de position

> - rend la fiche indisponible pour un prochain choix

>  

> Si un des pros (qui s'est bouclé les cheveux) pouvait m'aider.

> là je sèche

>  

> salut

>  

> Bruno Amiot

> FMP6

>

Bruno,

C'est assez difficile (peut-être un manque de courage de ma part à

cette heure) de trouver la faille, surtout sans savoir ce que font les

sous-script, ce qu'est un "copier", etc....

Le mieux à faire à mon avis, est d'introduire plusieurs étapes

"Suspendre/Reprendre script" , et eventuellement "Afficher Message ["où

je suis dans mon script"] pour le débugger.

Tu sauras exactment où/quand ça cloche.

Ugo Di Luca

OSXPanther - FM6/7

Paris, France

ugo.diluca@wanadoo.fr

espritlatin@wanadoo.fr

************************ ADSL ILLIMITE TISCALI + TELEPHONE GRATUIT ************************

Surfez 40 fois plus vite pour 30EUR/mois seulement ! Et téléphonez partout en France gratuitement,

vers les postes fixes (hors numéros spéciaux). Tarifs très avantageux vers les mobiles et l'international !

Pour profiter de cette offre exceptionnelle, cliquez ici : http://register.tiscali.fr/adsl (voir conditions sur le site)

Partager ce message


Lien à poster
Partager sur d’autres sites

  • En ligne récemment   0 membre est en ligne

    Aucun utilisateur enregistré regarde cette page.

×