Charger et Enregistrer au Format RTF
Publié : sam. 14/mai/2005 19:03
Ce n'est certe pas nouveau pour certains d'entre vous, mais comme aucun exemple n'a été posté pour montrer la façon de procéder, je me suis décidé à le faire.
Le plus grand intérêt de l'EditorGadget est de pouvoir afficher des couleurs, je propose ce code qui permet de lire un fichier *.rtf ainsi que le sauvegarder dans ce même format.
Je tiens aussi à signaler que ce code n'est pas une reprise d'un quelconque code que l'on pourrait retrouver sur d'autres Forums, il est le résultat de mes propres recherches.
Le plus grand intérêt de l'EditorGadget est de pouvoir afficher des couleurs, je propose ce code qui permet de lire un fichier *.rtf ainsi que le sauvegarder dans ce même format.
Je tiens aussi à signaler que ce code n'est pas une reprise d'un quelconque code que l'on pourrait retrouver sur d'autres Forums, il est le résultat de mes propres recherches.
Code : Tout sélectionner
; PB Version 3.93
; Le 14/05/05
; Exemple de chargement et d'enregistrement au format RTF
; By Nico
Procedure EditCallBack_Ecriture(dwCookie.l, *pbBuff.l, cb.l, *pcb.l)
If WriteData(*pbBuff, cb)
ProcedureReturn 0
Else
ProcedureReturn 1
EndIf
EndProcedure
Procedure EditCallBack_Lecture(dwCookie.l, *pbBuff.l, cb.l, *pcb.l)
If ReadFile_(dwCookie, *pbBuff, cb, *pcb, 0)
ProcedureReturn 0
Else
ProcedureReturn 1
EndIf
EndProcedure
If OpenWindow(0,200,100,560,570,#PB_Window_SystemMenu,"EditorGadget") And CreateGadgetList(WindowID(0))
EditorGadget (0,10,60,540,500,#PB_Container_Raised)
ButtonGadget(2, 40, 20, 100, 20, "Ouvrir un fichier *.rtf")
ButtonGadget(1, 180, 20, 180, 20, "Enregistrer le contenu de l'éditeur")
ButtonGadget(3, 400, 20, 100, 20, "Quitter")
Repeat
EventID = WaitWindowEvent()
Select EventID
Case #PB_EventGadget
Select EventGadgetID()
Case 1
file$ = SaveFileRequester("Enregistrer un fichier *.rtf", "c:\","*.*|*.*", 0)
If file$<>""
If CreateFile(0, file$)
Edit.EDITSTREAM
Edit\dwCookie=0
Edit\pfnCallback=@EditCallBack_Ecriture()
SendMessage_(GadgetID(0),#EM_STREAMOUT,#SF_RTF,Edit)
If Edit\dwError=0
Debug "L'écriture s'est bien déroulée"
Else
Debug "L'écriture du fichier a provoqué une erreur"
EndIf
CloseFile(0)
EndIf
EndIf
Case 2
file$ = OpenFileRequester("Ouvrir un fichier rtf", "c:\","*.*|*.*", 0)
If file$<>""
hFile=OpenFile(1, file$)
Edit.EDITSTREAM
Edit\dwCookie=hFile
Edit\pfnCallback=@EditCallBack_Lecture()
SendMessage_(GadgetID(0),#EM_STREAMIN,#SF_RTF,Edit)
If Edit\dwError=0
Debug "La lecture s'est bien déroulée"
Else
Debug "La lecture du fichier a provoqué une erreur"
EndIf
CloseFile(1)
EndIf
Case 3
Quit=1
EndSelect
EndSelect
Until Quit=1
EndIf