Manipulation de chaines de caractères dans un document Word
Bonjour,
Je dois modifier des propriétés d'un document Word. Ces propriétés sont bien visibles lorsque j'ouvre le fichier avec un éditeur de texte.
J'ai tout d'abord essayé de modifier directement dans le document la partie qui m’intéresse.
Par exemple, pour remplacer "xxxxx" par 20631:
Code:
1 2 3 4 5 6 7
|
QFile fichier(document);
QTextStream flux(&fichier);
QString recherche = flux.readAll();
fichier.open(QIODevice::ReadWrite);
fichier.seek( recherche.indexOf("xxxxx") );
fichier.write("20631"); |
Problème: cette façon de faire ne marche que lorsque les chaines ont la même taille. Si je veux remplacer "nom_de_l'auteur" par "toto" par exemple ça ne marche plus.
Y-a-t-il une façon d'insérer du texte directement dans un fichier?? ( C'est à dire supprimer une chaîne et en écrire une autre à la place )
N'ayant pas trouvé comment faire j'ai essayé via la classe QTextStream. Là aussi problème: un document word n'étant pas un bête fichier texte, il n'est pas possible de stocker le contenu dans une string puis de la réécrire. Le document word obtenu est corrompu.
Je me suis ensuite tourné vers la classe QDataStream. Elle me permet bien de charger le contenu du document dans un char*, par compte après impossible de chercher une chaîne de caractère à l'intérieur, le format n'est plus le bon.
Une idée pour résoudre ce problème?
Merci d'avance