coder texte variable dans fichier
Publié : dim. 17/juin/2007 10:55
j'ai retrouvé ce super programme de je ne sais plus qui :
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 :
je pensais utiliser une fenetre qui demande le code genre :
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 :
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)
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
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
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)
en plus j'aurais aimé pouvoir cliquer sur l'adresse internet pour ouvrir la page (premiere colonne) avec :
Code : Tout sélectionner
HyperLinkGadget
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)