Page 1 sur 1

[R] Formater un script avec des numeros de lignes

Posté : mar. 16 févr. 2010 14:26
par lerin57
Bonjour à tous,

Je viens à vous pour une nouvelle problematique.

Dans le cadre d'un projet de création de mails outlook préformatés, j'ai, sur les bon conseils de membres de forum, créé des corps de message basé sur des fichiers html.

Avec l'aide d'un editeur html simplifié (KOMPOZER), je crée mon corps html.c
devant ensuite distribuer ces modeles avec le script qui va générer le message en fontion de champs input déja remplis), j'ai privilégié plutot un script qui me permet de les générer automatiquement.

exemple :
corps html :
► Afficher le texte
A l'aide d'un tableur comme excel, je fait ensuite un script qui me permettra de générer le modele :
► Afficher le texte
Excel me permet De générer les variables $Ln01 à $Ln18.

L'inconvénient (si je puis dire) c'est que mes modèles de corps de message peuvent changer régulièrement.
Je voudrais donc creer un script commençant par ceci :
► Afficher le texte
... Je colle le code source dans le champ $HtmlCode et je génére ensuite un script tout pret.

Mon principal inconvénient est de trouver la fonction adequate qui me permettrait de générer, pour chaque lignes de mon code html, la variable $LnXX = ' (ou XX correspond au n° de chaque ligne) au début et une quote " ' " à la fin.

Je suppose que l'on peut utiliser dans un premier temps un compteur du type _GUICtrlEdit_GetLineCount pour le champs $HtmlCode, afin de compte le nombre lignes.

Mais après, que pourrais je utiliser pour formater chaque ligne ? ... une fonction stringformat ?

J'ai lu dans l'aide la manière de l'utiliser, mais je ne suis pas sûr de correctement l'adapter.

en vous remerciant par avance pour votre aide.

Re: [..] Formater un script avec des numeros de lignes

Posté : jeu. 18 févr. 2010 12:38
par lerin57
Bonjour,

J'ai déja une piste :
► Afficher le texte
Mais je bloque encore sur le type de focntion a employer pour formater chaque ligne.

De plus , pour une question de norme, je voudrias créer les première lignes au format $Ln01, $Ln02 ...

Si quelqu'un a des suggestions. :?:

Re: [..] Formater un script avec des numeros de lignes

Posté : jeu. 18 févr. 2010 21:45
par Tlem
Pourquoi vouloir traiter vos modèles ligne par ligne ?
Ne pouvez-vous pas remplacer par une suite de caractères définit les champs qui doivent être modifiés et traiter le modèle comme un tout.
Il vous suffit lors de la récupération du modèle de remplacer chaque champ 'générique' par la valeur à attribuer. ;)
► Afficher le texteExemple

Re: [..] Formater un script avec des numeros de lignes

Posté : ven. 19 févr. 2010 11:16
par lerin57
Bonjour, Tlem.

C'est, à la base, l'approche qui est prévue.

Toutefois, je privilégie l'aspect de créer des modeles génériques à l'aide d'un scripts pour les raisons suivantes :

- le script et les modeles doivent etre distribués sur plusieurs postes.
- en cas de disparition de modele html, celui ci doit pouvoir etre régénéré rapidement (par un bouton que j'ai ajouté dans mon script de base).


Il est vraix que je pourrais me contenter de distribuer mes modeles html avec l'executable (au format zip par exemple),
Celui ci se chargerais de renseigner les valeur cibles dans les modeles html, mais ces modeles sont susceptible de changer tres régulièrement, ils se comptent par dizaine,

De plus je tient à rester dans une logique purement Autoit.

Je reconnais que mes motivation peuvent sembler farfelue, mais je suis persuadé que le principe de générer plusieurs ligne de code préformaté pourra m'aider sur d'autre fonction à l'avenir.

Si vous avez une piste, je suis preneur.

Re: [..] Formater un script avec des numeros de lignes

Posté : ven. 19 févr. 2010 18:46
par Tlem
Hé bien justement, ce que je vous ais suggéré correspond à votre demande.
Vous pouvez choisir d'intégrer totalement le texte de votre modèle dans votre script (pas très pratique) ou tout simplement faire vos différents fichiers modèle que vous rajoutez à la compilation avec la commande FileInstall().

Mais que ce soit l'un ou l'autre vous avez l'avantage d'avoir l'intégralité du modèle et non une partie qui, si le nombre de ligne change va devenir plus ou moins complexe à gérer.

La solution du FileInstall() vous permettra en cas de modification du modèle, de ne changer que le fichier concerné et à compiler le script (pas besoin de remettre les mains dans le code :roll: ).
Un simple clic sur un bouton et hop vos modèle sont extrait et utilisable (sinon vous pouvez passer par l'extraction dans le dossier temporaire ;) ).

Re: [..] Formater un script avec des numeros de lignes

Posté : ven. 19 févr. 2010 19:24
par lerin57
Bonsoir,

Et bien Tlem, je sent que je vais encore passer pour un ane :oops: , vu que je n'ai pas encore abordé cette commande.

Le pire, c'est que j'avais déja avancé dans mon script.
je le poste ici au cas ou cela intéresserait quelqu'un :
► Afficher le texte
Et je m'attelle de ce pas sur la fonction fileinstall().

Si cela ne vous dérange pas, je laisse le post en attente un jour ou deux.

En vous remerciant

Re: [..] Formater un script avec des numeros de lignes

Posté : ven. 19 févr. 2010 19:53
par lerin57
Bon et bien, on Oublie les deux jours.

La fonction FileInstall() fonctionne parfaitement.

Encore une fois, un tres grand merci à Tlem (et un petit coucou à Ayuckers qui m'a déja aidé dans mon projet).

J'espère ne pas avoir à vous embeter dans les prochains jours.

Bonne soirée à tous.

Re: [R] Formater un script avec des numeros de lignes

Posté : ven. 19 févr. 2010 19:57
par Tlem
Juste pour info, vous pouvez utiliser plusieurs fois la commande FileInstall() pour le même fichier, il ne sera pas dupliqué dans la compilation, mais cela peut vous permettre de gérer une extraction en cas d'appui sur un bouton et une autre au lancement d'une autre action. ;)

Pour résumer : Si vous faites dans votre code plusieurs FileInstall() d'un fichier de 1Mo, votre script compilé ne grossira pas plus que si vous le faites une seul foi. ;)

Re: [R] Formater un script avec des numeros de lignes

Posté : sam. 20 févr. 2010 12:12
par lerin57
Merci pour le conseil.

A vrai dire, c'est de cette manière que je comptait l'employer.