Page 1 sur 1

coder texte variable dans fichier

Publié : dim. 17/juin/2007 10:55
par david
j'ai retrouvé ce super programme de je ne sais plus qui :

Code : Tout sélectionner

; constante des fenetres 
Enumeration 
   #win_0 
   #win_1 
   #win_2 
EndEnumeration 

; Constante des gadgets 
Enumeration 
   #list_0 
   #frame_0 
   #Text_nom 
   #string_nom 
   #text_login 
   #string_login 
   #text_passe 
   #string_passe 
   #button_ajouter 
   #button_quitter 
   #button_editer 
EndEnumeration 

; constante du menu et de la barre outil 
Enumeration 
   #bar_Nouveau 
   #bar_charge 
   #bar_sauve 
   #bar_remove 
   #menu_vider 
   #menu_quite 
    
EndEnumeration 
Enumeration 
   #menu_champs 
   #menu_sortir 
EndEnumeration 



; fonts 
Global fontID1 
fontID1 = LoadFont( 0, "arial", 11) 
Global fontID2 
fontID2 = LoadFont(2, "arial", 12, #PB_Font_Bold) 


; gestion des élements 

Structure gestion_struct 
    
   site.s 
   login.s 
   password.s 
EndStructure 


NewList items.gestion_struct() 

Procedure.b item_clear() 
   ClearList(Items()) 
EndProcedure 

Procedure.b item_add(site.s, login.s, password.s) 
   If AddElement(items()) 
      items()\site = site 
      items()\login = login 
      items()\password = password 
   EndIf 
   ProcedureReturn#True 
EndProcedure 

Procedure item_Modifie(Index,site.s, login.s, password.s) 
   IndexCourant = ListIndex(items()) ; mémorise la position actuelle de la liste 
   SelectElement(items(), Index) 
      items()\site = site 
      items()\login = login 
      items()\password = password 
   SelectElement(items(), IndexCourant) ; restitue la position de la liste 
EndProcedure 


Procedure.l Item_Load(fichier.s) 
  
   If OpenPreferences(fichier) 
      
      Repeat 
         i + 1 
         If PreferenceGroup("Item." + Str(i)) 
            site.s = ReadPreferenceString("Site", "") 
            login.s = ReadPreferenceString("Login", "") 
            password.s = ReadPreferenceString("Password", "") 
            Item_Add(site, login, password) 
         Else 
            Break 
         EndIf 
      ForEver 
      
      ClosePreferences() 
      ProcedureReturn i 
      
   EndIf 
    
EndProcedure 
Procedure.l Item_Save(fichier.s) 
    
    
   If CreatePreferences(fichier) 
      
      ForEach Items() 
         i + 1 
         PreferenceGroup("Item." + Str(i)) 
         WritePreferenceString("Site", Items()\site) 
         WritePreferenceString("Login", Items()\login) 
         WritePreferenceString("Password", Items()\password) 
      Next 
      
      ClosePreferences() 
      ProcedureReturn i 
      
   EndIf 
    
EndProcedure 

Procedure Open(append.b) 
       
    
   If append 
      ClearGadgetItemList(#list_0) 
   Else 
      Item_Clear() 
   EndIf 
    
   Item_Load("Passord.data") 
    
   ForEach Items() 
      line.s = Items()\site + Chr(10) + Items()\login + Chr(10) + Items()\password 
      AddGadgetItem(#list_0, -1, line) 
   Next 
    
   DisableToolBarButton(2, 0) 
   DisableToolBarButton(3, 0) 
   DisableMenuItem(4, 0) 
    
    
    
    
EndProcedure 



Procedure SaveAs() 
    
    
   Item_Save("Passord.data") 
    
    
EndProcedure 













Procedure RemoveGadget() 
    
   i = 0 
   For element = 0 To CountGadgetItems(#List_0) - 1 
      If GetGadgetItemState(#List_0, element) & #PB_ListIcon_Checked 
         MessageRequester("Info ", "l'élément  est effacé ", #MB_OK | #MB_ICONWARNING) 
          
          
         RemoveGadgetItem(#List_0, element) 
      EndIf 
   Next 
    
    
EndProcedure 











; procedure pour les actions des menus 


Procedure annule_champs() 
   MessageRequester("Info ", "Les champs sont effacées ", #MB_OK | #MB_ICONWARNING) 
    
   SetGadgetText(#string_nom, "") 
   SetGadgetText(#string_login, "") 
   SetGadgetText(#string_passe, "") 
   ActivateGadget(#string_nom) 
    
EndProcedure 

Procedure vide() 
   item_clear() 
   MessageRequester("Info ", "Vider la liste ", #MB_OK | #MB_ICONWARNING) 
   ClearGadgetItemList(#list_0) 
   DisableToolBarButton(2, 1) 
   DisableToolBarButton(3, 1) 
   DisableMenuItem(4, 1) 
    
    
EndProcedure 



; procdure des fenetres 

Procedure Main() 
   If OpenWindow(#win_0, 0, 0, 640, 540, #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_TitleBar | #PB_Window_ScreenCentered, "Gestion des mot de passe ") 
      If CreateToolBar(0, WindowID()) 
         ToolBarStandardButton(#bar_Nouveau, #PB_ToolBarIcon_New) 
          
          
         ToolBarStandardButton(#bar_charge, #PB_ToolBarIcon_Open) 
         ToolBarStandardButton(#bar_sauve, #PB_ToolBarIcon_Save) 
         ToolBarStandardButton(#bar_remove, #PB_ToolBarIcon_Delete ) 
         ToolBarToolTip(0, "Ajouter un  élément à la liste") 
          
         ToolBarToolTip(1, "Charge une liste") 
         ToolBarToolTip(2, "Sauvegarde une liste") 
         ToolBarToolTip(3, "Efface un élément de la liste") 
         DisableToolBarButton(2, 1) 
         DisableToolBarButton(3, 1) 
          
          
      EndIf 
      
      
      
      
      
      
      If CreateMenu(0, WindowID()) 
         MenuTitle("Edition") 
         MenuItem(#menu_vider, "Vider la liste ") 
         MenuBar() 
         MenuItem(#menu_quite, "Quitter") 
         DisableMenuItem(4, 1) 
          
          
      EndIf 
      
      
      If CreateGadgetList(WindowID()) 
         ListIconGadget(#list_0, 5, 30, 630, 485, "site web", 270, #PB_ListIcon_CheckBoxes | #PB_ListIcon_GridLines) 
         AddGadgetColumn(#list_0, 1, "login", 150) 
         AddGadgetColumn(#list_0, 2, "Mot de passe", 206) 
      EndIf 
      SetGadgetFont(#list_0, fontID1) 
   EndIf 
EndProcedure 

Procedure creation() 
   If OpenWindow(#win_1, 0, 0, 400, 500, #PB_Window_TitleBar | #PB_Window_ScreenCentered, "Creation d'une fiche") 
      If CreateGadgetList(WindowID()) 
         Frame3DGadget(#frame_0, 10, 10, 380, 470, "") 
         TextGadget(#text_nom, 120, 90, 160, 30, "Adresse du site web: ", #PB_Text_Center) 
         SetGadgetFont(#text_nom, fontID2) 
         StringGadget(#string_nom, 55, 120, 290, 30, "") 
         SetGadgetFont(#string_nom, fontID1) 
         TextGadget(#text_login, 125, 180, 140, 30, "Login :", #PB_Text_Center) 
         SetGadgetFont(#text_login, fontID2) 
         StringGadget(#string_login, 55, 210, 290, 30, "") 
         SetGadgetFont(#string_login, fontID1) 
         TextGadget(#text_passe, 140, 280, 140, 30, "Mot de passe : ", #PB_Text_Center) 
         SetGadgetFont(#text_passe, fontID2) 
         StringGadget(#string_passe, 55, 305, 290, 30, "") 
         SetGadgetFont(#string_passe, fontID1) 
         ButtonGadget(#button_ajouter, 124, 390, 140, 30, "AJOUTER") 
         SetGadgetFont(#button_ajouter, fontID2) 
         GadgetToolTip(#button_ajouter, "Ajouter un nouveau élément à la liste") 
      EndIf 
      If CreateMenu(1, WindowID()) 
         MenuTitle("Edition") 
         MenuItem(#menu_champs, "Effacer les champs ") 
         MenuItem(#menu_sortir, "Annuler la fiche") 
      EndIf 
      
      
      Repeat 
          
         event = WaitWindowEvent() 
          
          
         Select event 
            Case #pb_eventmenu 
               Select EventMenuID() 
                  Case #menu_champs : annule_champs() 
                     Case#menu_sortir : MessageRequester("Info ", "Annulation de la fiche  " + Chr(10) + "", #MB_OK | #MB_ICONWARNING) 
                     fermer_window_1 = 1 
                      
               EndSelect 
                
                
               Case#pb_eventgadget 
               Select EventGadgetID() 
                  Case #button_ajouter 
                     a.s = GetGadgetText(#string_nom) 
                     b.s = GetGadgetText(#string_login) 
                     c.s = GetGadgetText(#string_passe) 
                     If a <> "" And b <> ""And c <> "" 
                        item_add(a, b, c) 
                        AddGadgetItem(#list_0, -1, a + Chr(10) + b + Chr(10) + c) 
                     EndIf 
                     fermer_window_1 = 1 
                     DisableToolBarButton(2, 0) 
                     DisableToolBarButton(3, 0) 
                     DisableMenuItem(4, 0) 
                      
                      
               EndSelect 
                
                
                
                
         EndSelect 
      Until fermer_window_1 = 1 
      CloseWindow(#win_1) 
      While WindowEvent() : Wend 
      
      
   EndIf 
EndProcedure 

Procedure fenetre2(index) 
   If OpenWindow(#win_2, 0, 0, 400, 500, #PB_Window_TitleBar | #PB_Window_ScreenCentered, "Edition de la fiche") 
      If CreateGadgetList(WindowID()) 
         Frame3DGadget(#frame_0, 10, 10, 380, 470, "") 
         TextGadget(#text_nom, 120, 90, 160, 30, "Adresse du site web: ", #PB_Text_Center) 
         SetGadgetFont(#text_nom, fontID2) 
         StringGadget(#string_nom, 55, 120, 290, 30, "") 
         SetGadgetFont(#string_nom, fontID1) 
         TextGadget(#text_login, 125, 180, 140, 30, "Login :", #PB_Text_Center) 
         SetGadgetFont(#text_login, fontID2) 
         StringGadget(#string_login, 55, 210, 290, 30, "") 
         SetGadgetFont(#string_login, fontID1) 
         TextGadget(#text_passe, 140, 280, 140, 30, "Mot de passe : ", #PB_Text_Center) 
         SetGadgetFont(#text_passe, fontID2) 
         StringGadget(#string_passe, 55, 305, 290, 30, "") 
         SetGadgetFont(#string_passe, fontID1) 
         ButtonGadget(#button_quitter, 35, 390, 140, 30, "Quitter") 
         SetGadgetFont(#button_quitter, fontID2) 
         ButtonGadget(#button_editer, 220, 390, 140, 30, "Modifier") 
         SetGadgetFont(#button_editer, fontID2) 
      
      
      
      SelectElement(items(), index) 
      SetGadgetText(#string_nom, items()\Site) 
      SetGadgetText(#string_login, items()\login) 
      SetGadgetText(#string_passe, items()\Password) 
      
      
      
      Repeat 
         event = WaitWindowEvent() 
         Select event 
                
               Case#pb_eventgadget 
               Select EventGadgetID() 
                      
                      
                      
                  Case #button_editer 
;                      i = 0 
;                      For element = 0 To CountGadgetItems(#List_0) - 1 
;                         If GetGadgetItemState(#List_0, element) 
;                            MessageRequester("Info ", "l'élément  est effacé ", #MB_OK | #MB_ICONWARNING) 
;                            RemoveGadgetItem(#List_0, element) 
;                         EndIf 
;                     Next 
                      
                     a.s = GetGadgetText(#string_nom) 
                     b.s = GetGadgetText(#string_login) 
                     c.s = GetGadgetText(#string_passe) 
                     If a <> "" And b <> ""And c <> "" 
                        SetGadgetItemText(#list_0, Index, a, 0) ; texte 1ere colonne modifié 
                        SetGadgetItemText(#list_0, Index, b, 1) ; texte 2eme colonne modifié 
                        SetGadgetItemText(#list_0, Index, c, 2) ; texte 3eme colonne modifié 
                        item_Modifie(Index,site.s, login.s, password.s) 
;                         item_add(a, b, c) 
;                         AddGadgetItem(#list_0, -1, a + Chr(10) + b + Chr(10) + c) 
                     EndIf 
                     fermer_window_2 = 1 
                      
                      
                      
                      
                      
                  Case #button_quitter 
                     fermer_window2 = 1 
               EndSelect 
                
         EndSelect 
      Until fermer_window2 = 1 
      CloseWindow(#win_2) 
      
   EndIf 
    
 EndIf 
    
    
    
EndProcedure 


; boucle principale 

main() 
Repeat 
   event = WaitWindowEvent() 
   Select event 
          
          
          
      Case #pb_eventmenu 
         Select EventMenuID() 
            Case #bar_nouveau : creation() 
                
                
                
                
                
               Case#bar_charge : open(false) 
               Case#bar_sauve : saveas() 
               Case#bar_remove : RemoveGadget() 
                
               Case#menu_vider : vide() 
                
            Case #menu_quite : fermer_window_0 = 1 
         EndSelect 
          
      Case #PB_EventGadget 
         Select EventGadgetID() 
            Case #list_0 
               Select EventType() 
                  Case #PB_EventType_LeftDoubleClick 
                     Element = GetGadgetState(#list_0) 
                     If Element > - 1 
                        fenetre2(Element) 
                     EndIf 
               EndSelect 
         EndSelect 
          
          
          
          
          
      Case #pb_eventclosewindow 
         fermer_window_0 = 1 
   EndSelect 
Until fermer_window_0 = 1 
End 
je suis en train d'essayer de l'aménager à mon idée, mais j'ai remarqué que le fihier sauvegardé n'était pas crypté,. j'aurais aimé que le prog demande un code de cryptage au chargement et a la sauvegarde (sinon je trouve que ca ne sert pas a grand chose
j'ai bien essayé avec ca mais je n'y arrive pas :

Code : Tout sélectionner


Global res.s 
Procedure encode(txt.s, cle.s) 
  res.s="" 
  clefs.s="" 
  For n=0 To Len(txt)/Len(cle) 
    clefs.s + cle 
  Next 
  clefs=Right(clefs,Len(txt)) 
  For n= 1 To Len(txt) 
    x=Asc(Mid(txt,n,1))-Asc(Mid(clefs,n,1)) 

    If x<1 :x+255:EndIf 
  xx.s + Str(x)+" " 
    res + Chr(x) 
  Next 
EndProcedure 

Procedure decode(txt.s,cle.s) 
  res.s="" 
  clefs.s="" 
  For n=0 To Len(txt)/Len(cle) 
    clefs.s + cle 
  Next 
  clefs=Right(clefs,Len(txt)) 
  For n= 1 To Len(txt) 
    x=Asc(Mid(txt,n,1))+Asc(Mid(clefs,n,1)) 
    If x>256 :x-255:EndIf 
    res + Chr(x) 
  Next 
EndProcedure 


clef.s = ProgramParameter() 
If clef="" : clef="Secret" : EndIf 
texte.s="122  Ceci est un teste d'encodage" 


encode(texte,clef);encod 
Debug res 

decode(res,clef);encod 
Debug res 

je pensais utiliser une fenetre qui demande le code genre :

Code : Tout sélectionner

mdp.s = ReadPreferenceString("mdp", "") 
OpenWindow(fen, 10, 10, 90, 26, #PB_Window_SystemMenu | #PB_Window_ScreenCentered, "saisie clé") 
CreateGadgetList(WindowID()) 
StringGadget(2, 2, 2, 86, 22, mdp) 
Repeat 
  serv.s = GetGadgetText(2) 
Until WaitWindowEvent() = #PB_Event_CloseWindow 
CloseWindow(fen) 
;
;
;MessageRequester("code = ", serv)
si quelqu'un peut m'aider, je suis trop debutant mais j'aurais vraiment l'utilisté de ce prog SSSSVVVVVPPPP !!!!!

en plus j'aurais aimé pouvoir cliquer sur l'adresse internet pour ouvrir la page (premiere colonne) avec :

Code : Tout sélectionner

 HyperLinkGadget
mais là j'en parle même pas.

SI VOUS AVEZ NE SERAIT-CE QUE DES EXEMPLES POUR COMPRENDRE LE MECANISME....
SOYEZ SYMPA, AIDEZ-MOI
C'EST MA FETE QUAND MEME (BONNE FETE AUSSI A TOUS LES PAPA)

Publié : dim. 17/juin/2007 14:53
par brossden
J'ai fait il y a quelque temps un programme de codage, tu peux t'en inspirer !

Code : Tout sélectionner

  Enumeration
    #Win0 : #Frame0 : #Frame1 : #Frame2 : #Frame3
    #Str1: #Str2 : #Str3 : #Str4
    #BP0 : #BP1 : #BP2
    #Bar
  EndEnumeration
  
  Procedure Programme()
    Cle.s=GetGadgetText(#Str1)
    RandomSeed(Val(GetGadgetText(#Str2)))
    Lg.l=Lof(1)
    lc=Len(Cle)
    *orig = AllocateMemory(Lg+8) :
    *clef = AllocateMemory(Lg+8)
    *code = AllocateMemory(Lg+8)
    For n=0 To Lg
      If (n % 14000) = 0
        x.f=(n/Lg*75)
        SetGadgetState(#Bar, x)
        UpdateWindow_(GadgetID(#Bar))
      EndIf
      oct=Random(lc)
      PokeC(*clef+n,PeekC(@Cle+oct))
    Next
    ReadData(1,*orig,Lg)
    
    For n.l = 0 To Lg Step 8
      If (n % 14000) = 0
        x.f=(n/Lg*25)+75
        SetGadgetState(#Bar, x)
        UpdateWindow_(GadgetID(#Bar))
      EndIf
      a.q = PeekQ(*orig+n)
      b.q = PeekQ(*clef+n)
      c.q = a ! b
      PokeQ(*code+n,c)
    Next
    WriteData(2,*code,Lg)
    SetGadgetState(#Bar,0)
  EndProcedure
  
  Procedure Open_Win0()
    If OpenWindow(#Win0, 40, 100, 713, 180, "Encrypte  - Décrypte",  #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_TitleBar )
      If CreateGadgetList(WindowID(#Win0))
        Frame3DGadget(#Frame0, 10, 10, 570, 50, "Phrase servant de mot de passe")
        StringGadget(#Str1, 20, 30, 550, 20, "1 - * "+Chr(34)+"Mignonne allons voir si la rose, qui ce mation avait éclose"+Chr(34)+" * ")
        Frame3DGadget(#Frame1, 600, 10, 80, 50, "Clef de code")
        StringGadget(#Str2, 610, 30, 60, 20, "1500", #PB_String_Numeric|#PB_Text_Center)
        Frame3DGadget(#Frame2, 10, 70, 310, 50, "Fichier Source")
        StringGadget(#Str3, 20, 90, 265, 20, "")
        Frame3DGadget(#Frame3, 370, 70, 310, 50, "Fichier cible")
        StringGadget(#Str4, 380, 90, 265, 20, "")
        ButtonGadget(#BP0, 250, 130, 200, 30, "Encryptage / Décryptage")
        DisableGadget(#BP0,1)
        ButtonGadget(#BP1, 285, 90, 25, 20, "...")
        ButtonGadget(#BP2, 645, 90, 25, 20, "...")
        ProgressBarGadget(#Bar, 10,165, 695, 10, 1, 100)
      EndIf
    EndIf
  EndProcedure
  
  Open_Win0()
  SetActiveGadget(#Str1)
  
  Repeat
    Event = WaitWindowEvent()
    WindowID = EventWindow()
    GadgetID = EventGadget()
    EventType = EventType()
    If Event = #PB_Event_Gadget
      If GadgetID = #BP1
        SetGadgetText(#Str3,OpenFileRequester("Sectionnez le fichier Source à Traiter","*.*","*.*",1) )
      ElseIf GadgetID = #BP2
        SetGadgetText(#Str4,OpenFileRequester("Sectionnez le fichier Cible qui sera Traité","*.*","*.*",1) )
        OpenFile(2,GetGadgetText(#Str4))
        If Lof(2)>0 And IsFile(2)
          If MessageRequester("Attention le fichier existe déjà","Voulez vous vraiment écraser le contenu de ce fichier",4) <> 6
            SetGadgetText(#Str4,"")
          EndIf
        EndIf
        CloseFile(2)
      ElseIf GadgetID = #BP0
        OpenFile(1,GetGadgetText(#Str3))
        CreateFile(2,GetGadgetText(#Str4))
        Programme()
        SetGadgetText(#Str3,GetGadgetText(#Str4))
        SetGadgetText(#Str4,"")
        DisableGadget(#BP0,1)
        CloseFile(1)
        CloseFile(2)
      EndIf
      If GetGadgetText(#Str1) >"" And GetGadgetText(#Str2) >"" And GetGadgetText(#Str3) >"" And GetGadgetText(#Str4) >"" 
        DisableGadget(#BP0,0)
      EndIf
    EndIf
  Until Event = #PB_Event_CloseWindow
  End