begin process at 2012 02 14 19:26:04
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive Visual Basic & VB.NET

 > 

Archives Visual Basic

 > 

Divers

 > 

Dupliquer un Template RTF


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Dupliquer un Template RTF

mercredi 20 juillet 2005 à 20:03:57 | Dupliquer un Template RTF

Erenion

Bonjour à tous

Je vous expose brièvement ce que je souhaite faire :

J'ai crée un template RTF, qui contient des champs (bookmarks) que je fusionne avec des valeurs se trouvant dans une base de données.
Par exemple : dans le fichier RTF j'ai "NOM"
Ma requete en base de données me ramenne la Valeur DUPOND
Apres fusion Mon document RTF, se compose Alors d'une page ou "NOM" est remplacé par exemple par DUPOND
Ceci fonctionne très bien.

J'aimerai généralisé se processus  à n Contactes
C'est à dire que si j'ai 3 contactes, mon document finale se compose de 3 pages ou chacune des pages contient respectivement le nom de chaque contacte.

En résumé je cherche une solution simple et fiable pour arriver à dupliquer le template.
ou sinon connaissez vous un prog en VB capable de parser du code RTF?

Merci d'avance pour vos réponses :)





jeudi 21 juillet 2005 à 00:41:08 | Re : Dupliquer un Template RTF

jack

Administrateur CodeS-SourceS
Salut
Je connais pas les techniques des Templates, mais il suffit de répéter 3 fois la même manip à partir d'un fichier Template vierge à chaque fois.
Donc ton problème est en réalité de faire défiler les 3 (ou X) noms renvoyés par ta requète sur la base de données.
Ne sachant pas comment tu as opéré, difficile de tout t'écrire ici.
Inspire toi des sources de ce site et intéresse toi aux objets RecordSet et faire une boucle du style :
monRecordSet.MoveFirst
While Not monRecordSet.EOF
      ' Les lignes qui permettent de faire ton insertion en utilisant comme nom : monRecordSet!NomDB
      ' où NomDB correspond au nom du champ dans ta DB
      monRecordSet.MoveNext
Loop

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage. (Socrate)
(je
jeudi 21 juillet 2005 à 12:40:25 | Re : Dupliquer un Template RTF

Erenion

Merci pour ta réponse rapide
J'entends par template : modèle de document. Dans mon cas il s'agit simplement d'un fichier rtf, contenant un bookmark "NOM"

Si on ouvre le fichier rtf avec blocnote on voit un code de ce genre :
{rtf1 \..........\pard\plain \...{ "NOM" }....}

I) Cas pour un seul contact
Donc le programme vb
1) Récupere le code rtf
sRtfCode = {rtf1 \..........\pard\plain \...{ "NOM" }....}

2) Récupere les valeurs  en bdd
Value(0) = "DUPOND"
Bookmark(0) = "NOM"

3)Remplace dans la chaine RTF, le bookmark par sa value

REPLACE( sRtfCode, Bookmark(0),Value(0))

=> sRtfCode = {rtf1 \..........\pard\plain \...{ DUPOND }....}
j'inscrit ensuite le code rtf dans un fichier texte

II) Cas pour N contactes
si j'ai plusieurs value a ramener il faudrait que la chaine RTF soit modifiée au fur et à mesure que je fusionne les contactes.

Par  exemple
Value(0) = "DUPOND"
Value(1) = "DUPOND2"
Value(3) = "DUPOND3"
Bookmark(0) = "NOM"
Au depart sRtfCode = {rtf1 \..........\pard\plain \...{ "NOM" }....}

Je fusionne le Premier contacte :
sRtfCode =>{rtf1 \..........\pard\plain \...{ DUPOND1 ...."Nom"}....}

Je fusionne le deuxieme contacte
sRtfCode =>{rtf1 \..........\pard\plain \...{ DUPOND1 ....DUPOND2...."NOM."}....}

Je fusionne le dernier contacte
sRtfCode => {rtf1 \..........\pard\plain \...{ DUPOND ....DUPOND2....DUPOND3."}....}
jeudi 21 juillet 2005 à 15:03:32 | Re : Dupliquer un Template RTF

jack

Administrateur CodeS-SourceS
re
J'ai bien compris le principe, mais ce que tu n'as pas saisi, c'est qu'il fallait recharger le rtf original avant de faire chaque remplacement :
- Charge le rtf original
- remplace NOM
- sauve le nouveau dans une chaine
- Recharge le rtf original
- remplace NOM
- ajoute le rtf modifié au précédent (ChaineSauvée = ChaineSauvée & DernièreChaineModifiée)
- Recharge le rtf original
- remplace NOM
- ajoute le rtf modifié au précédent (ChaineSauvée = ChaineSauvée & DernièreChaineModifiée)
...
Seul doute : Un fichier rtf possède des codes d'entête (avec la définition des fontes utilisées dans le document) : à mon avis, on ne peut pas concaténer deux fichiers rtf comme ça. Il va falloir travailler sur la structure du rtf, bon courage !

D'autre part, méfie toi des mots trop courts : Comme tu lis le fichier rtf avec toute sa structure, il y a fort à parier que le texte NOM apparait ailleurs : Choisis des noms de balise|bookmark plus complexes, par exemple : {"NOM_A_REMPLACER"}
Comme ça, plus de possibilité de mélange.

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage. (Socrate)
(je
jeudi 21 juillet 2005 à 20:17:31 | Re : Dupliquer un Template RTF

Erenion

J'ai concaténé le code rtf chargé au départ  autant de fois que j'ai de contactes à fusionner,  en prenant soin pour les n-1 contactes d'enlever la derniere "}" et de rajouter au nieme contacte autant de "}" qu'il y'a de  contactes

Je charge la chaine une seule fois et apres je fais du traitement sur cette chaine
dans le meme esprit que ce que tu as expliqué plus haut

ChaineSauvée = ChaineSauvée & DernièreChaineModifiée


ça donne un truc dans ce genre
chaine de départ  : {rtf1 \..........\pard\plain \...{ "NOM" }....}}

chaine à l'arrivée

{rtf1 \..........\pard\plain \...{ DUPOND1 }....} \page
{rtf1 \..........\pard\plain \...{ DUPOND2 }....} \page
{rtf1 \..........\pard\plain \...{ DUPOND3} ....} \page
{rtf1 \..........\pard\plain \...{DUPOND4}.... }}}}


Merci pour ton aide :)








Cette discussion est classée dans : base, contient, rtf, template, dupliquer


Répondre à ce message

Sujets en rapport avec ce message

Dupliquer une base de données [ par rafter ] Salut,Je voudrais savoir comment on fait pour dupliquer une base de données sous VB6. J'ai déja essayé pas mal de trucs, comme Makereplica et tout ca RTF impression et presse papier [ par globule ] Bonjour, J'ai cree 2 RichtText box. Le premier contient une en-tete de document en RTF. Le second contient le corps du document.Pour imprimer l'ensemb Dupliquer une base ouverte [ par agnescat ] Bonjour,je voudrais savoir s'il est possible de dupliquer (en programmation VBA) une base ouverte, et si cela est possible comment faire.Merci. Dupliquer enregistrement de formulaire [ par sebouratif ] Bonjour, Voila, je vous expose mon petit probleme dont je n'ai trouvé aucune solution malgré les nombreux forums visités.Voila, j'ai une table (ACCESS Dupliquer une table vide [ par cybercorp ] bonjourVoilà, je travaille avec une base de données avec plusieur tables qui traitents des évènements journaliers.Je voudrai pouvoir archiver (annuell Base de Données [ par gon_ak ] Bonjoue à tous! J'ai affiché ma base de données dans une datagrid en utilisant un ADODC. Le problème est que j'ai 22 colonnes dans ma base de données base de donnée .data [ par Heny ] Bonjour      Je posséde un mac travaillant sur Os9 qui contient un logiciel 4D qui fait marcher un programme de gestion de band. Aprés des manipulat Ecrire un RTF dans une base de données [ par julien14 ] Bonjour,Je ne suis pas un expert de vb.net et pour mon stage je dois programmer avec ce langage cependant j'ai un petit souci. Voila mon problème:J'ai Dupliquer une base de donnée Access avec VB [ par alecccc ] Bonjour,J'aimerais faire une sauvegarde de ma base de donnée Access avec Vb.J'aimerais le dupliquer et l'enrégistrer dans un répertoire portant la dat Dupliquer une base de donnée Access [ par alecccc ] Bonjour,J'aimerais faire une sauvegarde de ma base de donnée Access avec Vb.J'aimerais le dupliquer et l'enrégistrer dans un répertoire portant la dat


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,778 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales