Page 1 sur 2

boite a fichiers

Publié : dim. 20/juil./2008 23:42
par kernadec
bonsoir c'est ennuyeux d' ecraser un fichier alors voila

Code : Tout sélectionner

;##########################################################################################
    ;##########     Sauvegarde avec choix recursif de remplacer le fichier existant  ##########
    ;##########     et creation d'une copie de sauvegarde avec l'extention file.bak  ##########
    ;##########     Kernadec en juillet  2008                                        ##########
    ;########################################################################################## 
     
          chemin$="C:\"
     
          file$ = SaveFileRequester("Sauvegarde du Fichier",chemin$,"*.txt|*.txt",1)
             If GetExtensionPart(file$)=""
                file$=file$+".txt"
             EndIf     
           If ReadFile(1,file$)
              CloseFile(1)
               recommencer:
                n=MessageRequester("ATTENTION","   Fichier Existant!!!  Voulez vous le Remplacer",#PB_MessageRequester_YesNoCancel)
                 If n=2
                   Goto sortie
                 EndIf
                 If n=6
                   RenameFile(file$, Left(file$,FindString(file$,".txt", 1))+".bak")
                 EndIf
             If n=7
               file$ = SaveFileRequester("Sauvegarde du Fichier",chemin$,"*.txt|*.txt",1)
                If GetExtensionPart(file$)=""
                  file$=file$+".txt"
                EndIf
                If ReadFile(1,file$)
                   CloseFile(1)
                   Goto recommencer
                EndIf
             EndIf 
           EndIf
           If CreateFile(0,file$)         ; création fichier texte.   
               WriteStringN(0,"Johnny et la boite a Que Que.!! ou the Box in {Qiou Qiou.!!}")
               CloseFile(0)   
           EndIf
           
    ;#################################### lecture ########################################        
     
           file$ = OpenFileRequester("Chargement du Fichier",chemin$,"*.txt|*.txt",1)
              f=ReadFile(1, file$)
           If f
             While Eof(1)=0
                 buffer$=ReadString(1,#PB_Ascii) ; lecture fichier
             Wend 
             CloseFile(1) 
           EndIf
           
        Debug  buffer$
        
           sortie:  

Publié : mer. 23/juil./2008 13:32
par kernadec
bonjour
je suis distrais j'avais mis une version precedente desole!!
celle ci est celle que j'utilise pour le moment
si quelqu'un en a une meilleur boite a coucou ou a des idees? merci

Code : Tout sélectionner

 ;##########################################################################################
    ;##########     Sauvegarde avec choix recursif de remplacer le fichier existant  ##########
    ;##########     et creation d'une copie de sauvegarde avec l'extention file.bak  ##########
    ;##########     Kernadec en juillet  2008                                        ##########
    ;########################################################################################## 
     
          chemin$="C:\"
     
          file$ = SaveFileRequester("Sauvegarde du Fichier",chemin$,"*.txt|*.txt",1)
             If GetExtensionPart(file$)=""
                file$=file$+".txt"
             EndIf     
           If ReadFile(1,file$)
              CloseFile(1)
               recommencer:
                If file$=".txt" Or file$=".bak"    ; modif pour les fichier sans nom lol
                   Goto sortie
                 EndIf
                n=MessageRequester("ATTENTION","   Fichier Existant!!!  Voulez vous le Remplacer",#PB_MessageRequester_YesNoCancel)
                  If n=2 
                   Goto sortie
                 EndIf
                 If n=6   ; les bak ne cree qu'une fois et avec 2..  resolu 
                    DeleteFile(Left(file$,FindString(file$,".txt", 1))+"bak")
                    RenameFile(file$,Left(file$,FindString(file$,".txt", 1))+"bak")
                 EndIf
              If n=7
               file$ = SaveFileRequester("Sauvegarde du Fichier",chemin$,"*.txt|*.txt",1)
                If GetExtensionPart(file$)=""
                  file$=file$+".txt"
                EndIf
                 If ReadFile(1,file$)
                   CloseFile(1)
                   Goto recommencer
                EndIf
             EndIf 
           EndIf
           If CreateFile(0,file$)         ; création fichier texte.   
               WriteStringN(0,"Johnny et la boite a Que Que.!! ou the Box in {qiou qiou.!!}")
               CloseFile(0)   
           EndIf
                  
    ;;#################################### lecture ########################################        
      
           file$ = OpenFileRequester("Chargement du Fichier",chemin$,"*.txt|*.txt",1)
              f=ReadFile(1, file$)
           If f
             While Eof(1)=0
                 buffer$=ReadString(1,#PB_Ascii) ; lecture fichier
             Wend 
             CloseFile(1) 
           EndIf
           
        Debug  buffer$
        
           sortie:  

Publié : mer. 23/juil./2008 15:55
par Cls
Il vaut mieux utiliser au minimum les GOTO/LABEL. Voilà une autre manière de faire :

Code : Tout sélectionner

Path.s = "C:\"

; Choix d'un fichier
Status.l = 0
Repeat
  File.s = SaveFileRequester("Fichier destination", Path, "Fichiers textes|*.txt",1)
  
  If File
    If FileSize(File) > -1
      Select MessageRequester("Fichier existant", "Voulez - vous le remplacer ?", #PB_MessageRequester_YesNoCancel)
        Case #PB_MessageRequester_Yes
          CopyFile(File, File + ".bak")
          DeleteFile(File)
          Status = 3
          
        Case #PB_MessageRequester_Cancel
          Status = 1

      EndSelect
    EndIf  
  Else
    Status = 2
  EndIf
Until Status > 0

; Traitement du code de sortie
Select Status
  Case 1 : Debug "Appui sur Cancel"
  Case 2 : Debug "Appui sur Annuler"
  Case 3
    If CreateFile(0, File)   
       WriteStringN(0,"Fichier de test.")
       WriteStringN(0,"Le fichier est désormais ici : " + File + ".bak")
       CloseFile(0) 
       Debug "Fichier correctement écrit"  
    Else
      Debug "Erreur lors de l'écriture du fichier"
    EndIf 
EndSelect

Publié : mer. 23/juil./2008 21:41
par Gillou
En me basant sur le tien j'en ai fait un autre dans le même style (à améliorer...)

Code : Tout sélectionner

Procedure.s SaveFileRequesterPlus(Title.s, Path.s, Pattern.s, PatternPosition.l, DefaultExtension.s="")
    file$ = SaveFileRequester(title, path, Pattern, PatternPosition)
    If Len(file$) >0
        If FileSize(file$) >= 0
            Select MessageRequester("ATTENTION","   Fichier Existant!!!  Voulez vous le Remplacer?",#PB_MessageRequester_YesNoCancel)
                Case #PB_MessageRequester_Yes
                    Select MessageRequester("REMPLACEMENT","Souhaitez vous conserver l'ancien fichier?",#PB_MessageRequester_YesNo)
                        Case #PB_MessageRequester_Yes
                            i=0
                            Repeat
                            i+1
                            Until FileSize(file$+"."+Str(i)+".bak") < 0
                            If RenameFile(file$, file$+"."+Str(i)+".bak") = 0
                                Select MessageRequester("ERREUR","L'ancien fichier n'a pu être renommé, voulez-vous tout de même écraser ce fichier?",#PB_MessageRequester_YesNo)
                                    Case #PB_MessageRequester_Yes
                                        ProcedureReturn file$
                                    Default
                                        ProcedureReturn ""
                                EndSelect
                            EndIf
                    EndSelect
                    ProcedureReturn file$
                Case #PB_MessageRequester_No
                    SaveFileRequesterPlus(Title, Path, Pattern, PatternPosition, DefaultExtension)
                Default
                    ProcedureReturn ""
            EndSelect
        Else
            ExtFound = #False
            ExtAll = #False
            Pattern = LCase(Pattern)
            For i=2 To CountString(Pattern, "|")+1 Step 2
                If Len(PatternExt$) > 0 : PatternExt$ + ";" + StringField(Pattern, i, "|")
                Else : PatternExt$ + StringField(Pattern, i, "|") : EndIf
            Next
            For i=1 To CountString(PatternExt$, ";")+1
                Ext$ = StringField(StringField(PatternExt$, i, ";"), 2, ".")
                If Ext$ = "*"
                    ExtAll = #True
                ElseIf LCase(GetExtensionPart(file$)) = Ext$
                    ExtFound= #True
                EndIf
            Next
            If ExtFound = #False And ExtAll = #False
                file$ + DefaultExtension
            EndIf
        EndIf
    EndIf
EndProcedure

DefDir$ = "/home/gillou/Dev/"
SaveFileRequesterPlus("Test", DefDir$, "Tous les fichiers|*.*|Fichiers textes|*.txt", 1)

Publié : mer. 23/juil./2008 23:14
par kernadec
bonsoir
merci pour vos reponses sympas
le cahier des charges de ce code devrait être celui-ci si je n’ai rien oublier lol :
d’abord écrire une fichier avec un contenu sans pour autant donner une extension
puisque définie par la boite a coucou
s'il rencontre pas de problème alors il crée un fichier avec le contenu
s'il rencontre un fichier du même nom il averti et demande la permission de l'écrasé oui ou non ?
si c'est non il me propose de choisir un nouveau nom
autrement dans les autres cas il ne fait rien
si je choisi l’ option écrasé il me crée un nouveau fichier et en même temps
il me crée une copie du précèdent avec l'extension bak
si par la suite je souhaite remplacer à nouveau ce fichier
et que je décide d' écraser à nouveau ce fichier
il devras gérer le fichier qui porte le même nom.bak l' effacer
pour pouvoir me créer une copie copie.bak plus récente
voila ce que je cherche enfin mon code n’est pas très pro je le reconnais
mais il fait cela

merci CLS j’ai teste ta version super le code mais il bloque en status3
pour la création simple il faut qu’il rencontre un problème pour créer un fichier
mais je vais m’inspirer de ce code pour en réécrire un nouveau

merci Gillou aussi top le code c’est une bonne base il faut que le travail pour créer
un fichier qui ne rencontre pas de problème
je vais m essayer a l'ameliorer
merci au revoir

Publié : jeu. 24/juil./2008 0:01
par kernadec
j'ai regle le ptit detail le => dans la boucle
et la case 0 fonctionne
et c'est parfait merci cls
avec l'option qui gere l'extension du nouveau fichier voila

Code : Tout sélectionner

Path.s = "C:\" 

; Choix d'un fichier 
Status.l = 0 
Repeat 
  File.s = SaveFileRequester("Fichier destination", Path, "Fichiers textes|*.txt",1) 
  If GetExtensionPart(file)=""
    file=file+".txt"
  EndIf    
  If File 
    If FileSize(File) > -1 
      Select MessageRequester("Fichier existant", "Voulez - vous le remplacer ?", #PB_MessageRequester_YesNoCancel) 
        Case #PB_MessageRequester_Yes 
          CopyFile(File, File + ".bak") 
          DeleteFile(File) 
          Status = 3 
          
        Case #PB_MessageRequester_Cancel 
          Status = 1 

      EndSelect 
    EndIf  
  Else 
    Status = 2 
  EndIf 
  Until Status => 0 
Debug status
; Traitement du code de sortie 
Select Status 
  Case 0 : 
   If CreateFile(0, File)  
      WriteStringN(0,"j'ecris un nouveau fichier sans rencontrer de probleme : " + File + ".txt") 
      CloseFile(0) 
    Else 
    Debug "Erreur lors de l'écriture du fichier" 
    EndIf 
    Debug "j'ai creer un nouveau fichier"
  Case 1 : Debug "Appui sur Cancel" 
  Case 2 : Debug "Appui sur Annuler" 
  Case 3 
    If CreateFile(0, File)    
       WriteStringN(0,"Fichier de test.") 
       WriteStringN(0,"Le fichier est désormais ici : " + File + ".bak") 
       CloseFile(0) 
       Debug "Fichier correctement écrit"  
    Else 
      Debug "Erreur lors de l'écriture du fichier" 
    EndIf 
EndSelect

Publié : jeu. 24/juil./2008 0:32
par kernadec
comme je suis un distrait ca continue je me suis tromper de copier coller lol voila le code qui fonctionne dans tous les cas grace a CLS merci
a moins qu'il y est une autre manip avec bug non percue pour ce genre de processus

Code : Tout sélectionner

Path.s = "C:\" 

; Choix d'un fichier 
Status.l = 0 
Repeat 
  File.s = SaveFileRequester("Fichier destination", Path, "Fichiers textes|*.txt",1) 
  If GetExtensionPart(file)=""
    file=file+".txt"
  EndIf    
  If File 
    If FileSize(File) > -1 
      Select MessageRequester("Fichier existant", "Voulez - vous le remplacer ?", #PB_MessageRequester_YesNoCancel) 
        Case #PB_MessageRequester_Yes 
          CopyFile(File, File + ".bak") 
          DeleteFile(File) 
          Status = 3 
        Case #PB_MessageRequester_Cancel 
          Status = 1 
        Case #PB_MessageRequester_No 
          Status = 2 
      EndSelect 
    EndIf  
   EndIf
Until Status => 0 
; Traitement du code de sortie 
Select Status 
  Case 0 : 
   If CreateFile(0, File)  
      WriteStringN(0,"j'ecris un nouveau fichier sans rencontrer de probleme : " + File + ".txt") 
      CloseFile(0) 
    Debug "j'ai creer un nouveau fichier"
   Else 
    Debug "Erreur lors de l'écriture du fichier" 
   EndIf 
  Case 1 : Debug "Appui sur Annuler" 
  Case 2 : Debug "Appui sur non" 
  Case 3 
    If CreateFile(0, File)    
       WriteStringN(0,"Fichier de test.") 
       WriteStringN(0,"Le fichier est désormais ici : " + File + ".bak") 
       CloseFile(0) 
       Debug "Fichier correctement réecrit sans ecraser le precedent"  
    Else 
      Debug "Erreur lors de l'écriture du fichier" 
    EndIf 
EndSelect


editeur gadget load save

Publié : ven. 25/juil./2008 10:47
par kernadec
bonjour
en utilisant le code de KALE paru dans codearchivebeta4\gadget\ editorgadget "EditorGadget_TabEditing.pb"
avec le code de CLS cela donne ceci maintenant il ne reste plus que le copier coller lol! si il y a des amateurs merci

Code : Tout sélectionner

 English forum: http://www.purebasic.fr/english/viewtopic.php?t=7030&highlight= 
; Author: Kale (updated for PB3.92 by Andre, updated for PB4.00 by blbltheworm) 
; Date: 29. July 2003 
; OS: Windows 
; Demo: No 

Declare boiteacoucou() 
;-Init Constants 

#WindowIndex =0 
#GadgetIndex =0 
#ImageIndex =0 
#StatusBarIndex =0 
#MenuBarIndex =0 


;-Window Constants 
Enumeration 
#WINDOW_MAIN 
EndEnumeration 


;-Gadget Constants 

;Window_Main 
Enumeration 
#MenuBar_Main 
#MenuBar_Main_New 
#MenuBar_Main_Open 
#MenuBar_Main_Save 
#MenuBar_Main_Exit 
#MenuBar_Main_Settings 
#MenuBar_Main_Help 
#MenuBar_Main_About 
#MenuBar_1 
#MENU_NEW 
#MENU_OPEN 
#MENU_SAVE 
#MENU_SAVEAS 
#MENU_UNDO 
#MENU_REDO 
#MENU_CUT 
#MENU_COPY 
#MENU_PASTE 
EndEnumeration 

Enumeration 
#Gadget_Main_Editor 
EndEnumeration 

Enumeration 
#StatusBar_Main 
#StatusBar_Main_Field1 
#StatusBar_Main_Field2 
EndEnumeration 

Global Path.s = "C:\" 
Global File.s 




Procedure NoTabJump(pGadgetID) 
;Needed, because i don't want a jump with tab 
Style = GetWindowLong_(pGadgetID, #GWL_STYLE) 
newStyle = Style & (~#WS_TABSTOP) 
SetWindowLong_(pGadgetID, #GWL_STYLE, newStyle) 
ProcedureReturn pGadgetID 
EndProcedure 


Procedure.l Window_Main() 
If OpenWindow(#WINDOW_MAIN,175,0,400,300,"Editor Test",#PB_Window_SystemMenu|#PB_Window_MinimizeGadget|#PB_Window_TitleBar|#PB_Window_ScreenCentered|#PB_Window_Invisible) 

CreateMenu(#MenuBar_Main,WindowID(#WINDOW_MAIN)) 
MenuTitle("File") 
MenuItem(#MenuBar_Main_New,"New") 
MenuBar() 
MenuItem(#MenuBar_Main_Open,"Open") 
MenuItem(#MenuBar_Main_Save,"Save") 
MenuBar() 
MenuItem(#MenuBar_Main_Exit,"Exit") 
MenuTitle("Edit") 
MenuItem(#MenuBar_Main_Settings,"Settings") 
MenuTitle("Help") 
MenuItem(#MenuBar_Main_Help,"Help") 
MenuBar() 
MenuItem(#MenuBar_Main_About,"About") 

If CreateToolBar(10, WindowID(#WINDOW_MAIN)) 
ToolBarStandardButton(#MENU_NEW, #PB_ToolBarIcon_New) 
ToolBarToolTip(10,#MENU_NEW, "New") 
ToolBarStandardButton(#MENU_OPEN, #PB_ToolBarIcon_Open) 
ToolBarToolTip(10,#MENU_OPEN, "Open") 
ToolBarStandardButton(#MENU_SAVE, #PB_ToolBarIcon_Save) 
ToolBarToolTip(10,#MENU_SAVE, "Save") 

ToolBarSeparator() 

ToolBarStandardButton(#MENU_UNDO, #PB_ToolBarIcon_Undo) 
ToolBarToolTip(10,#MENU_UNDO, "Undo") 
ToolBarStandardButton(#MENU_REDO, #PB_ToolBarIcon_Redo) 
ToolBarToolTip(10,#MENU_REDO, "Redo") 
ToolBarSeparator() 
ToolBarStandardButton(#MENU_CUT, #PB_ToolBarIcon_Cut) 
ToolBarToolTip(10,#MENU_CUT, "Cut") 
ToolBarStandardButton(#MENU_COPY, #PB_ToolBarIcon_Copy) 
ToolBarToolTip(10,#MENU_COPY, "Copy") 
ToolBarStandardButton(#MENU_PASTE, #PB_ToolBarIcon_Paste) 
ToolBarToolTip(10,#MENU_PASTE, "Paste") 
EndIf 

If CreateGadgetList(WindowID(#WINDOW_MAIN)) 
EditorGadget(#Gadget_Main_Editor,0,25,400,233) 
CreateStatusBar(#StatusBar_Main,WindowID(#WINDOW_MAIN)) 
AddStatusBarField(100) 
AddStatusBarField(100) 
HideWindow(#WINDOW_MAIN,0) 
ProcedureReturn WindowID(#WINDOW_MAIN) 
EndIf 
EndIf 
EndProcedure 

;-Main Loop 
If Window_Main() 

RemoveKeyboardShortcut(#WINDOW_MAIN, #PB_Shortcut_All) 

quitMain=0 
Repeat 
EventID=WaitWindowEvent() 
Select EventID 

Case #PB_Event_CloseWindow 
If EventWindow()=#WINDOW_MAIN 
quitMain=1 
EndIf 

Case #PB_Event_Menu 
Select EventMenu() 
Case #MenuBar_Main_New 
ClearGadgetItemList(#Gadget_Main_Editor) 
SetActiveGadget(#Gadget_Main_Editor) 
Case #MenuBar_Main_Open 
file = OpenFileRequester("Chargement du Fichier",path,"*.txt|*.txt",1) 
f=ReadFile(1, file) 
ClearGadgetItemList(#Gadget_Main_Editor) 
If f 
While Eof(1)=0 
SetGadgetText(#Gadget_Main_Editor,ReadString(1,#PB_Ascii)) 
Wend 
CloseFile(1) 
EndIf 
Case #MenuBar_Main_Save 
boiteacoucou() 
Case #MenuBar_Main_Exit 
quitMain = 1 

Case #MenuBar_Main_Settings 

Case #MenuBar_Main_Help 

Case #MenuBar_Main_About 

EndSelect 

Case #PB_Event_Gadget 
Select EventGadget() 
Case #Gadget_Main_Editor 
EndSelect 

EndSelect 
Until quitMain 
CloseWindow(#WINDOW_MAIN) 
EndIf 
End 

Procedure boiteacoucou() ; Ecrite par CLS juillet 2008 
Repeat 
File.s = SaveFileRequester("Fichier destination", Path, "*.txt|*.txt",1) 
If GetExtensionPart(file)="" 
file=file+".txt" 
EndIf 
If File 
If FileSize(File) > -1 
Select MessageRequester("Fichier existant", "Voulez - vous le remplacer ?", #PB_MessageRequester_YesNoCancel) 
Case #PB_MessageRequester_Yes 
CopyFile(File, File + ".bak") 
DeleteFile(File) 
Status = 3 
Case #PB_MessageRequester_Cancel 
Status = 1 
Case #PB_MessageRequester_No 
Status = 2 
EndSelect 
EndIf 
EndIf 
Until Status => 0 
; Traitement du code de sortie 
Select Status 
Case 0 : 
If CreateFile(0, File) 
WriteStringN(0,GetGadgetText(#Gadget_Main_Editor)) 
CloseFile(0) 
Else 
Debug "Erreur lors de l'écriture du fichier" 
EndIf 
Case 1 : Debug "Appui sur Cancel" 
Case 2 : Debug "Appui sur non" 
Case 3 
If CreateFile(0, File) 
WriteStringN(0,GetGadgetText(#Gadget_Main_Editor)) 
CloseFile(0) 
Else 
Debug "Erreur lors de l'écriture du fichier" 
EndIf 
EndSelect 
EndProcedure

Publié : ven. 25/juil./2008 10:50
par kernadec
eh bien decidement je suis distrait ? le

Code : Tout sélectionner

 a merde ???

pour reparer mes oublis

Publié : ven. 25/juil./2008 11:54
par kernadec
ptite modif pour charger la totalite du fichier lol alors qu'il ne prenait qu'une ligne lolll

Code : Tout sélectionner

; English forum: http://www.purebasic.fr/english/viewtopic.php?t=7030&highlight=
; Author: Kale (updated for PB3.92 by Andre, updated for PB4.00 by blbltheworm)
; Date: 29. July 2003
; OS: Windows
; Demo: No

Declare boiteacoucou() 
;-Init Constants 

#WindowIndex    =0 
#GadgetIndex    =0 
#ImageIndex     =0 
#StatusBarIndex =0 
#MenuBarIndex   =0 


;-Window Constants 
Enumeration 
  #WINDOW_MAIN
EndEnumeration


;-Gadget Constants 

;Window_Main 
Enumeration
  #MenuBar_Main 
  #MenuBar_Main_New   
  #MenuBar_Main_Open  
  #MenuBar_Main_Save  
  #MenuBar_Main_Exit  
  #MenuBar_Main_Settings
  #MenuBar_Main_Help   
  #MenuBar_Main_About  
  #MenuBar_1
  #MENU_NEW
  #MENU_OPEN
  #MENU_SAVE
  #MENU_SAVEAS
  #MENU_UNDO 
  #MENU_REDO 
  #MENU_CUT  
  #MENU_COPY 
  #MENU_PASTE
EndEnumeration

Enumeration
  #Gadget_Main_Editor
EndEnumeration

Enumeration
  #StatusBar_Main  
  #StatusBar_Main_Field1
  #StatusBar_Main_Field2
EndEnumeration

Global Path.s = "C:\" 
Global File.s




Procedure NoTabJump(pGadgetID) 
  ;Needed, because i don't want a jump with tab 
  Style = GetWindowLong_(pGadgetID, #GWL_STYLE) 
  newStyle = Style & (~#WS_TABSTOP) 
  SetWindowLong_(pGadgetID, #GWL_STYLE, newStyle) 
  ProcedureReturn pGadgetID 
EndProcedure 


Procedure.l Window_Main() 
  If OpenWindow(#WINDOW_MAIN,175,0,400,300,"Editeur Infos",#PB_Window_SystemMenu|#PB_Window_MinimizeGadget|#PB_Window_TitleBar|#PB_Window_ScreenCentered|#PB_Window_Invisible) 
    
    CreateMenu(#MenuBar_Main,WindowID(#WINDOW_MAIN)) 
      MenuTitle("Fichier") 
      MenuItem(#MenuBar_Main_New,"Nouveau") 
      MenuBar() 
      MenuItem(#MenuBar_Main_Open,"Ouvrir") 
      MenuItem(#MenuBar_Main_Save,"Sauve") 
      MenuBar() 
      MenuItem(#MenuBar_Main_Exit,"Quitter") 
      ;MenuTitle("Edit") 
     ; MenuItem(#MenuBar_Main_Settings,"Settings") 
     ; MenuTitle("Help") 
     ; MenuItem(#MenuBar_Main_Help,"Help") 
     ; MenuBar() 
     ; MenuItem(#MenuBar_Main_About,"About") 
      
      ;If CreateToolBar(10, WindowID(#WINDOW_MAIN)) 
      ; ToolBarStandardButton(#MENU_NEW, #PB_ToolBarIcon_New) 
      ;  ToolBarToolTip(10,#MENU_NEW, "New") 
     ;   ToolBarStandardButton(#MENU_OPEN, #PB_ToolBarIcon_Open) 
     ;   ToolBarToolTip(10,#MENU_OPEN, "Open") 
     ;   ToolBarStandardButton(#MENU_SAVE, #PB_ToolBarIcon_Save) 
      ;  ToolBarToolTip(10,#MENU_SAVE, "Save") 
        
      ;  ToolBarSeparator() 
        
      ;  ToolBarStandardButton(#MENU_UNDO, #PB_ToolBarIcon_Undo) 
      ;  ToolBarToolTip(10,#MENU_UNDO, "Undo") 
       ; ToolBarStandardButton(#MENU_REDO, #PB_ToolBarIcon_Redo) 
     ;   ToolBarToolTip(10,#MENU_REDO, "Redo") 
      ;  ToolBarSeparator() 
      ;  ToolBarStandardButton(#MENU_CUT, #PB_ToolBarIcon_Cut) 
      ;  ToolBarToolTip(10,#MENU_CUT, "Cut") 
      ;  ToolBarStandardButton(#MENU_COPY, #PB_ToolBarIcon_Copy) 
      ;  ToolBarToolTip(10,#MENU_COPY, "Copy") 
      ;  ToolBarStandardButton(#MENU_PASTE, #PB_ToolBarIcon_Paste) 
      ;  ToolBarToolTip(10,#MENU_PASTE, "Paste") 
     ; EndIf 
      
    If CreateGadgetList(WindowID(#WINDOW_MAIN)) 
      EditorGadget(#Gadget_Main_Editor,0,0,400,300) 
      ;CreateStatusBar(#StatusBar_Main,WindowID(#WINDOW_MAIN)) 
      ; AddStatusBarField(100) 
       ;AddStatusBarField(100) 
      HideWindow(#WINDOW_MAIN,0) 
      SetActiveGadget(#Gadget_Main_Editor)
      ProcedureReturn WindowID(#WINDOW_MAIN) 
    EndIf 
  EndIf 
EndProcedure 

;-Main Loop 
If Window_Main() 

    RemoveKeyboardShortcut(#WINDOW_MAIN, #PB_Shortcut_All) 

  quitMain=0 
  Repeat 
    EventID=WaitWindowEvent() 
    Select EventID 
      
      Case #PB_Event_CloseWindow 
        If EventWindow()=#WINDOW_MAIN 
          quitMain=1 
        EndIf 
        
      Case #PB_Event_Menu 
        Select EventMenu() 
          Case #MenuBar_Main_New 
             ClearGadgetItemList(#Gadget_Main_Editor)
             SetActiveGadget(#Gadget_Main_Editor)
          Case #MenuBar_Main_Open 
           file = OpenFileRequester("Chargement du Fichier",path,"*.txt|*.txt",1)
              f=ReadFile(1, file)
              ClearGadgetItemList(#Gadget_Main_Editor)
              ;####changement pour la restoration d'un fichier de plus d'une ligne
           Repeat 
        buffer$=ReadString(1) 
         AddGadgetItem(#Gadget_Main_Editor,-1,buffer$) 
Until Loc(1)=Lof(1) Or Eof(1)<>0 
              ;##################################################################
               CloseFile(1) 
          Case #MenuBar_Main_Save 
              boiteacoucou()
          Case #MenuBar_Main_Exit 
            quitMain = 1 
        
          Case #MenuBar_Main_Settings 
          
          Case #MenuBar_Main_Help 
          
          Case #MenuBar_Main_About 
       
        EndSelect 

      Case #PB_Event_Gadget 
        Select EventGadget() 
          Case #Gadget_Main_Editor 
        EndSelect 

    EndSelect 
  Until quitMain 
  CloseWindow(#WINDOW_MAIN) 
EndIf 
End 
   
Procedure boiteacoucou()  ; Ecrite par CLS juillet 2008 
     Repeat 
       File.s = SaveFileRequester("Fichier destination", Path, "*.txt|*.txt",1) 
         If GetExtensionPart(file)=""
           file=file+".txt"
         EndIf    
          If File 
           If FileSize(File) > -1 
             Select MessageRequester("Fichier existant", "Voulez - vous le remplacer ?", #PB_MessageRequester_YesNoCancel) 
               Case #PB_MessageRequester_Yes 
                 CopyFile(File, File + ".bak") 
                 DeleteFile(File) 
                 Status = 3 
               Case #PB_MessageRequester_Cancel 
                 Status = 1 
               Case #PB_MessageRequester_No 
                 Status = 2 
             EndSelect 
           EndIf  
          EndIf
     Until Status => 0 
;        Traitement du code de sortie 
       Select Status 
         Case 0 : 
           If CreateFile(0, File)  
             WriteStringN(0,GetGadgetText(#Gadget_Main_Editor)) 
             CloseFile(0) 
           Else 
            Debug "Erreur lors de l'écriture du fichier" 
           EndIf 
         Case 1 : Debug "Appui sur Cancel" 
         Case 2 : Debug "Appui sur non" 
         Case 3 
           If CreateFile(0, File)
             WriteStringN(0,GetGadgetText(#Gadget_Main_Editor)) 
             CloseFile(0) 
           Else 
           Debug "Erreur lors de l'écriture du fichier" 
           EndIf 
       EndSelect
EndProcedure

Publié : sam. 26/juil./2008 7:34
par kernadec
bonjour
ptit probleme de fiabilite du gadget editor : quand on recharge un fichier sauvegarder avec cet editeur si l'on a plusieurs lignes a caracteres blanc et que l'on fait des modifs avec le copier coller du clavier en ayant l'ascenseur apparent apres la saisie des lignes disparaissent en fin de texte pas compris??
je suis revenu a ce code

Code : Tout sélectionner

rectification apportee au code precedent

Publié : sam. 26/juil./2008 7:52
par kernadec
avec ceci ca fonctionne un retour chariot en fin de fichier !!

Code : Tout sélectionner

WriteStringN(0,GetGadgetText(#Gadget_Main_Editor)+chr(13))

Publié : sam. 26/juil./2008 20:41
par kernadec
je viens de comprendre eh oui? le gadget editor doit avoir 20 unites de moins dans sa hauteur que celle de la fenetre pour que l'ascenseur soit complet ce qui me provoquer des problemes avec les lignes mais pas evident pour moi je pensais que l'on devait lui donner la taille la fenetre voila!! alors je continue mon apprentissage lol!!

Publié : sam. 26/juil./2008 20:58
par Chris
C'est un One-man-show, ton topic! :mrgreen:

Remarque, tant que tu cause tout seul, tu risques pas de te fâcher avec quelqu'un, hein! :wink:

Publié : sam. 26/juil./2008 22:21
par Kwai chang caine
C'est un One-man-show, ton topic!
Remarque, tant que tu cause tout seul, tu risques pas de te fâcher avec quelqu'un, hein!
:lol: :lol:

CHRIS, il est en forme aujourd'hui :D
Allez hop un petit chapeau pointu, un petit paquet de confetis, une langue de belle mere (Trouloulou) et à la queuleuleu :lol: