Guest bruno Amiot Posted September 19, 2004 Report Share Posted September 19, 2004 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 Link to post Share on other sites
Guest Ugo Di Luca Posted September 19, 2004 Report Share Posted September 19, 2004 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 Link to post Share on other sites
Guest bruno.amiot@tiscali.fr Posted September 20, 2004 Report Share Posted September 20, 2004 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) Link to post Share on other sites
Recommended Posts