boite a fichiers

Partagez votre expérience de PureBasic avec les autres utilisateurs.
Avatar de l’utilisateur
kernadec
Messages : 1606
Inscription : ven. 25/avr./2008 11:14

Message par kernadec »

:oops:
Dernière modification par kernadec le lun. 04/août/2008 5:03, modifié 1 fois.
Avatar de l’utilisateur
kernadec
Messages : 1606
Inscription : ven. 25/avr./2008 11:14

le chris a la bonne parole

Message par kernadec »

bonjour merci chris "beau talent de chambreur lol!!!"

mais l'important dans la vie c'est d'avoir des idees je reconnais quelles sont modestes. tout le monde ne roule pas a la meme vitesse !!!
ceci dit je tire mon chapeau pointu a l'équipe de devellopeurs de ce langage qui ont fait un outils genial merci merci!!!!
le roi midas avait des oreille d'ane mais tout ce qu'il touchait devenait de l'or lol!!!
Avatar de l’utilisateur
kernadec
Messages : 1606
Inscription : ven. 25/avr./2008 11:14

Message par kernadec »

bonjour
voila un editor copier coller sauver ouvrir
avec des codes existant sur le forum!
j'ai ajouter un menu imprimer voila

Code : Tout sélectionner

; Author: Andre Beer / PureBasic Team modifié par KCC et remodifier par MetalOS :D 
Declare boiteaFichier() 
Global Path.s = "C:\" 
Global file.s 
Global IdGadgetSurvoler 
Procedure xcm(x.f)
  x = x * (PrinterPageWidth()/21) ; 21cm A4
  ProcedureReturn x
EndProcedure
Procedure ycm(x.f)
  x = x * (PrinterPageHeight()/29.7) ; 29,7cm A4
  ProcedureReturn x
EndProcedure  
OpenWindow(0,175,0,400,300,"Editeur Infos", #PB_Window_SystemMenu) 
 CreateGadgetList(WindowID(0)) 
  EditorGadget(1,0,0,400,280) 
   If CreateMenu(2,WindowID(0)) 
      MenuTitle("Fichier") 
      MenuItem(3,"Nouveau") 
      MenuBar() 
      MenuItem(4,"Ouvrir") 
      MenuItem(5,"Sauver") 
      MenuItem(6,"Imprimer")
      MenuBar() 
      MenuItem(7,"Quitter") 
    EndIf 
    If CreatePopupMenu(10)      ; here the creating of the pop-up menu begins... 
      ;MenuItem(40, "Annuler") 
      ;MenuBar()    ;pas de traitement de du mode annuler enfin pour le moment
      MenuItem(41, "Couper") 
      MenuItem(42, "Copier") 
      MenuItem(43, "Coller") 
    EndIf 
    SetActiveGadget(1) 
Repeat 
 GetCursorPos_(@point.POINT) 
  Handle = WindowFromPoint_(point\x,point\y) 
  IdGadgetSurvoler = GetDlgCtrlID_(Handle) ; Id du gadget survolé 
  
  Select WaitWindowEvent()     ; check for window events 
  
       Case #WM_RBUTTONDOWN       ; right mouse button was clicked => 
         If IdGadgetSurvoler = 1 
           DisplayPopupMenu(10,WindowID(0),point\x,point\y)  ; now display the popup-menu 
         EndIf 
       Case #PB_Event_Menu         ; an item of the popup-menu was clicked 
  
    Select EventMenu()     ; get the clicked menu item... 
       Case 3 
        ClearGadgetItemList(1) 
        SetActiveGadget(1) 
       Case 4 
         file = OpenFileRequester("Chargement du Fichier",Path,"*.txt|*.txt",1) 
         f=ReadFile(1, file) 
         ClearGadgetItemList(1) 
         ;####changement pour la restoration d'un fichier de plus d'une ligne 
          Repeat 
             buffer$=ReadString(1) 
             AddGadgetItem(1,-1,buffer$) 
          Until Loc(1)=Lof(1) Or Eof(1)<>0    
         ;############################################################### 
         CloseFile(1) 
       Case 5 
        boiteaFichier() 
      Case 6            ;impression de x pages avec numeros par kernadec
        yhaut = 300
        xleft = 300
        p=0
        If PrintRequester() 
          If StartPrinting("Multipages av n°") 
            Font=ycm(((8*0.090)/2.5))
            LoadFont(1,"Arial",Font)
            If StartDrawing(PrinterOutput()) 
                DrawingFont(FontID(1)) 
                For n=0 To CountGadgetItems(1)
                  yhaut=yhaut+(Font*1.5)
                  DrawText(xleft,yhaut,GetGadgetItemText(1,n-1,0)) 
                  If yhaut>ycm(780*0.035)    
                    p=p+1                 ; 29.7cm/848pixels=0.035 - 21.0cm/600pixels=0.035              
                    DrawText(xcm(500*0.035),ycm(800*0.035),Str(p))  ;numero de bas page droite 
                    NewPrinterPage()
                    yhaut=300
                  EndIf  
                Next n
                p=p+1 
                DrawText(xcm(500*0.035),ycm(800*0.035),Str(p))  ;numero de derniere page 
              StopDrawing() 
            EndIf 
            StopPrinting() 
          EndIf 
        EndIf
       Case 7 
         Quit = 1 
       Case 40 : Debug "Menu: Annuler" 
       Case 41 : Debug "Menu: Couper" 
         ;Code Couper 
         Vide$ = "" 
            SendMessage_(GadgetID(1),#EM_GETSEL,@StartSel,@EndSel) 
            buffer$ = Space(EndSel-StartSel) 
            SendMessage_(GadgetID(1),#EM_GETSELTEXT,0,@buffer$) 
            ClearClipboard() 
            SetClipboardText(buffer$) 
            SendMessage_(GadgetID(1),#EM_REPLACESEL,#True,@Vide$) 
          ;Fin Couper 
        Case 42 : Debug "Menu: Copier" 
          ;Code Copier 
            SendMessage_(GadgetID(1),#EM_GETSEL,@StartSel,@EndSel) 
            buffer$ = Space(EndSel-StartSel) 
            SendMessage_(GadgetID(1),#EM_GETSELTEXT,0,@buffer$) 
            ClearClipboard() 
            SetClipboardText(buffer$) 
          ;Fin Copier 
         Case 43 : Debug "Menu: Coller" 
         ;Code coller 
            buffer$ = GetClipboardText() 
            SendMessage_(GadgetID(1),#EM_REPLACESEL,#True,@buffer$) 
            ;Fin de code Coller 
    EndSelect 
      Case #PB_Event_CloseWindow 
       Quit = 1 
  EndSelect 
Until Quit = 1 

Procedure boiteaFichier()  ; procedure 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, Left(file ,Len(file)-4)+ ".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(1)) 
        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(1)) 
        CloseFile(0) 
      Else 
        Debug "Erreur lors de l'écriture du fichier" 
      EndIf 
  EndSelect 
EndProcedure
; IDE Options = PureBasic 4.20 (Windows - x86)
; CursorPosition = 127
; FirstLine = 76
Dernière modification par kernadec le ven. 10/juil./2009 13:04, modifié 4 fois.
Avatar de l’utilisateur
kernadec
Messages : 1606
Inscription : ven. 25/avr./2008 11:14

Message par kernadec »

rectification effectuee. merci dobro
Dernière modification par kernadec le dim. 03/août/2008 19:13, modifié 1 fois.
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

kernadec a écrit :ce mode de lecture est le bon
plus d'oubli de derniere ligne
remplacer les lignes 49 à 54 par ceci:

Code : Tout sélectionner

          Repeat 
             buffer$=ReadString(1) 
             AddGadgetItem(1,-1,buffer$) 
          Until Loc(1)=Lof(1) Or Eof(1)<>0 

Bon !! faudrait voir a arrêter les codes du style PHP !! :twisted:

c'est a dire avec des patchs, sans fin qu'il faut ajouter ou modifier !!

tu as un bouton [Editer] au dessus de tes messages, rien ne t'empêche de faire la modification que tu veux, et de proposer le listing Fini ....

ensuite d'ajouter un message qui signale que le listing a ete mis a jour !!

imagine un gars dans 2 ans, qui soit intéressé par ton code, si il faut qu'il se tape tout le topic a lire
et toute les modifs a faire, il est pas sorti de l'auberge ! :)
Avatar de l’utilisateur
Chris
Messages : 3731
Inscription : sam. 24/janv./2004 14:54
Contact :

Message par Chris »

Te plains pas, il pourrait aussi créer un nouveau topic à chaque patch :mrgreen:
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

Chris a écrit :Te plains pas, il pourrait aussi créer un nouveau topic à chaque patch :mrgreen:
Image
Avatar de l’utilisateur
Ouaf-Ouaf
Messages : 212
Inscription : dim. 11/juil./2004 9:07

Message par Ouaf-Ouaf »

Dobro a écrit :
Chris a écrit :Te plains pas, il pourrait aussi créer un nouveau topic à chaque patch :mrgreen:
Image
Pourquoi tant de haine ?? :cry:
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

Ouaf-Ouaf a écrit :Pourquoi tant de haine ?? :cry:
t'es pas un peu cherche merde toi ?

la prochaine fois que tu te pose une question existentiel

commence par te demander "pourquoi pas ? ..."

comme ça tu m'fra des vacances :lol:
Avatar de l’utilisateur
Ouaf-Ouaf
Messages : 212
Inscription : dim. 11/juil./2004 9:07

Message par Ouaf-Ouaf »

Bonne astuce. A epingler. Merci. Bonne journée.
Avatar de l’utilisateur
kernadec
Messages : 1606
Inscription : ven. 25/avr./2008 11:14

Message par kernadec »

merci
Mr dobro
pour le {Editer} je ne connaissais pas
et je viens de l'utliser. merci
je doit dire que sur ce forum et dans un bon nombre de topics,
on rencontre ce genre de bout de code a ajouter
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

kernadec a écrit :merci
Mr dobro
pour le {Editer} je ne connaissais pas
et je viens de l'utliser. merci
je doit dire que sur ce forum et dans un bon nombre de topics,
on rencontre ce genre de bout de code a ajouter
ben oui c'est super pratique la touche editer heureusement !! :)


que tu ais rencontré dans CE forum des bouts de code a ajouter, c'est une erreur !! ça devrais meme pas exister !! :twisted:

dénoncez moi les vilains qui ont osé !! je vais de ce pas les fouetter !!

, serieusement , faut pas le faire, il suffit de se mettre a la place du mec qui debarque dans 1 mois, ou une année, et la c'est l'angoisse

Merci pour tes modifs "in Code" :D
Avatar de l’utilisateur
kernadec
Messages : 1606
Inscription : ven. 25/avr./2008 11:14

imprimer

Message par kernadec »

vraiment pratique ce bouton editer
je viens de modifier le code precedent en ajoutant option
Répondre