Pas de problème (pb), que du PowerBuilder (PB) ^^

Le forum (ô combien francophone) des utilisateurs de Powerbuilder.

Recherche rapide

Annonce

Certaines rubriques, dont des cours, sont uniquement visibles par les membres du forum ^^.
Dans la rubrique Liens & Références, vous avez accès à un sommaire de téléchargement, profitez-en !
Il existe maintenant un nouveau TOPIC "Votre CV en Ligne" accessible uniquement par demande.
  • Index
  •  » Powerscripts
  •  » [RESOLU] Concaténation de blob contenant chacun un fichier rtf

#1 29-11-2016 17:42:43

stef  
Membre Geek
Date d'inscription: 12-09-2006
Messages: 62
Pépites: 340
Banque: 0

[RESOLU] Concaténation de blob contenant chacun un fichier rtf

Bonjour,
Je déclare un blob en variable locale. Ensuite je récupère la valeur d'un blob en BDD, je le mets dans ma variable et en fonction de paramètres je l'écrit ou non dans un fichier. ça fonctionne pour le premier, les autres ne génèrent aucune erreur et ont une taille cohérente mais ne s'écrivent pas dans le fichier malgré le paramètre Append! de FileOpen et une valeur retour cohérente de FileWrite ou FileWriteEx.
J'ai tenté avec les fonctions FileWriteEx  et FileWrite, aucune ne passe
Après le fileClose, le fichier est tout petit et n'a pas pris en compte les écritures suivantes
Certainement un indicateur de fin de fichier. Savez-vous comment résoudre ce problème s'il vous plait ? Je dois absolument livrer et ça me bloque ^^
Pour info, il s'agit de fichiers rtf enregistrés en blob dans une base informix. Je travaille sur pb 11.5
Merci beaucoup

Code: pb

//Ouverture du fichier 
l_iOpenFile = fileOpen(i_sDir+"\"+l_sNomModeleFic, StreamMode!, Write! , Shared!, Append!)
if l_iOpenFile < 0 then
  Messagebox('erreur', 'L~'ouverture du fichier modèle '+l_sNomModeleFic+'a échoué ! ')
  return -1
end if
//Dans la boucle j'écris
l_iRc = fileWriteEx(l_iOpenFile, l_blobCourant)
if isnull(l_iRc) or l_iRc < 0 then
  Messagebox('erreur', 'Erreur à l~'écriture du blob dans le fichier')
end if
//J'ai également tenté en fin de boucle une concaténation dans un blob global, écrit dans un autre fichier ça donne la même chose : 
l_blobComplet += l_blobCourant
//Fermeture du fichier modèle
l_iRc = fileClose(l_iOpenFile)
if l_iRc < 0 then
  MessageBox('erreur', 'Le fichier '+ l_sNomModeleFic +'n~'a pas pu être fermé !')
end if


ajout de la coloration PB

Dernière modification par stef (30-11-2016 12:02:13)

Hors ligne

 

#2 29-11-2016 23:43:36

seki  
0x73656B69
Award: bf
Lieu: Laquenexy & Luxembourg
Date d'inscription: 20-11-2008
Messages: 1116
Pépites: 4,296,080,198
Banque: 9,223,372,036,854,776,000
Site web

Re: [RESOLU] Concaténation de blob contenant chacun un fichier rtf


The best programs are the ones written when the programmer is supposed to be working on something else. - Melinda Varian

Mes réponses PB sur StackOverflow
http://stackoverflow.com/users/flair/317266.png

Hors ligne

 

#3 30-11-2016 08:57:34

Dadone  
Membre Power Geek
Lieu: Avon (Seine et Marne)
Date d'inscription: 19-02-2007
Messages: 252
Pépites: 985
Banque: 0
Site web

Re: [RESOLU] Concaténation de blob contenant chacun un fichier rtf

Une solution de contournement ne consisterais pas à ouvrir autant de fichiers qu'il y a de lectures puis a fusionner ces fichiers via un ole Word par exemple ?

Dernière modification par Dadone (30-11-2016 09:00:24)

Hors ligne

 

#4 30-11-2016 11:11:15

stef  
Membre Geek
Date d'inscription: 12-09-2006
Messages: 62
Pépites: 340
Banque: 0

Re: [RESOLU] Concaténation de blob contenant chacun un fichier rtf

OK, merci. Un collègue m'a dit avoir concaténé des blobs avec du contenu word et réussi à afficher le résultat je commence vraiment à en douter.
Sais tu quelle fonction utiliser dans l'OLE word pour fusionner ou extraire le contenu et l'insérer dans le document ouvert avec l'objet OLE stp ? Sans qu'il ne traite que la première insertion à cause du caractère de fin de document ?
Merci beaucoup


Et désolée pour la coloration

Hors ligne

 

#5 30-11-2016 11:37:30

buck  
Modérateur
Lieu: Dijon
Date d'inscription: 31-07-2008
Messages: 745
Pépites: 1,028,837
Banque: 171,170,849,654

Re: [RESOLU] Concaténation de blob contenant chacun un fichier rtf

Bonjour,

Comme il s'agit de contenu rtf, tu peux essayer de passer en mode chaine pour voir si le contenu de ce que tu dois sauvegarder est correct  :

Code: pb

String ls_content, ls_current
ls_current = String(l_blobCourant, EncodingUTF8!)
ls_content += ls_current


Ensuite, tu peux essayer de sauvegarder cette chaine, si tout est correct.

Hors ligne

 

#6 30-11-2016 12:01:15

stef  
Membre Geek
Date d'inscription: 12-09-2006
Messages: 62
Pépites: 340
Banque: 0

Re: [RESOLU] Concaténation de blob contenant chacun un fichier rtf

Bon, j'ai réussi à le faire sans passer par un objet OLE. Je passe par un RichTextEdit control :

Code: pb

//J'ai créé un fichier à partir du blob et je passe le chemin du fichier à mon objet RichTextEdit
//(code dans une boucle)
l_iRc = uo_ttx.rte_ttx.InsertDocument(fileName, false, fileTypeRichText!)
if l_iRc < 0 then
  MessageBox('erreur', 'Erreur à l~'insertion du paragraphe')
end if
//En fin de boucle, je sauvegarde le contenu du Document de l'objet RichTextEdit
l_iRc = uo_ttx.rte_ttx.SaveDocument ( filename , fileTypeRichText! )


Merci d'avoir pris le temps de répondre

Hors ligne

 

#7 30-11-2016 12:03:13

stef  
Membre Geek
Date d'inscription: 12-09-2006
Messages: 62
Pépites: 340
Banque: 0

Re: [RESOLU] Concaténation de blob contenant chacun un fichier rtf

Ah, merci j'avais pas vu ta réponse je teste ça tout de suite ça m'évitera de créer des fichiers

buck a écrit:

Bonjour,

Comme il s'agit de contenu rtf, tu peux essayer de passer en mode chaine pour voir si le contenu de ce que tu dois sauvegarder est correct  :

Code: pb

String ls_content, ls_current
ls_current = String(l_blobCourant, EncodingUTF8!)
ls_content += ls_current


Ensuite, tu peux essayer de sauvegarder cette chaine, si tout est correct.

Hors ligne

 

#8 30-11-2016 12:36:27

stef  
Membre Geek
Date d'inscription: 12-09-2006
Messages: 62
Pépites: 340
Banque: 0

Re: [RESOLU] Concaténation de blob contenant chacun un fichier rtf

La conversion en string revient au même qu'avec la concaténation des blobs surement à cause des EOF
Si je ne convertis pas en blob avant d'écrire il perd la mise en forme RTF
Si je convertis à la fin j'ai une erreur cannot sart the converter WPFT532.CNV

Donc merci mais du coup je passe par l'objet RichTextEdit

Hors ligne

 
  • Index
  •  » Powerscripts
  •  » [RESOLU] Concaténation de blob contenant chacun un fichier rtf

Pied de page des forums

Propulsé par FluxBB 1.2.22