Bonjour,
Merci d'avance à ceux qui pourront m'aider.
J'utilise l'algorithme de cryptage XOR trouvé là : http://www.developpez.net/forums/sho...d.php?t=161273
A l'aide de cet algorithme, je stocke plusieurs dates cryptées dans un fichier text avec le code suivant :
J'ai mis des dates en dur, mais à terme ce seront des dates ici d'une table.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 a.WriteLine "Liste des dates:" a.WriteLine XOREncrypt(#12/25/2005#, "111111") a.WriteLine XOREncrypt(#12/31/2005#, "111111") a.WriteLine XOREncrypt(#1/20/2006#, "111111")
Jusque là, pas de problème, mes dates apparaissent bien cryptées dans le fichier text quand je vais voir dedans avec WordPad.
Ensuite, j'essaie de récupérer ces dates en les décryptant depuis Access.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 Liste des dates:
J'utilise pour cela le code suivant :
J'ai mis plein de Debug.print pour essayer de bien suivre ce qui se passe.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50 Public Function FileRead2(ByVal strFile As String) Dim fso As Scripting.FileSystemObject Dim stm As Scripting.TextStream ' Créer une instance du FSO Set fso = New Scripting.FileSystemObject ' Ouvrir le fichier en écriture If Not fso.FileExists(strFile) Then MsgBox "Le fichier [" & strFile & "] n'existe pas !", vbExclamation Exit Function End If Set stm = fso.GetFile(strFile).OpenAsTextStream(ForReading) Dim strText As String 'variable dans laquelle je stocke la date cryptée (donc elle est en string) Dim DateText As Date 'variable dans laquelle je stocke la date décryptée 'début de la lecture ligne par ligne Do While Not stm.AtEndOfStream stm.SkipLine 'je skip la ligne avec le titre strText = stm.ReadLine Debug.Print "Ligne numéro : " & stm.Line & " - " & strText Debug.Print "Date1 : " & CDate(XOREncrypt(strText, "111111")) DateText = CDate(XOREncrypt(strText, "111111")) If DateText > #1/1/2006# Then Debug.Print "Date1 est postérieure au 01/01/2006;" End If strText = stm.ReadLine Debug.Print "Ligne numéro : " & stm.Line & " - " & strText Debug.Print "Date2 : " & CDate(XOREncrypt(strText, "111111")) DateText = CDate(XOREncrypt(strText, "111111")) If DateText > #1/1/2006# Then Debug.Print "Date2 est postérieure au 01/01/2006;" End If strText = stm.ReadLine Debug.Print "Ligne numéro : " & stm.Line & " - " & strText Debug.Print "Date3 : " & CDate(XOREncrypt(strText, "111111")) DateText = CDate(XOREncrypt(strText, "111111")) If DateText > #1/1/2006# Then Debug.Print "Date3 est postérieure au 01/01/2006;" End If Loop ' Libérer les objets stm.Close Set stm = Nothing Set fso = Nothing
Ce qui apparaît au final est normal (voir pièce jointe, car le copier-coller ne passe pas).
Voici mon souci :
- c'est que j'ai des erreurs d'incompatibilité de type (erreur 13) à chaque ligne
Et le plus étrange, c'est que le déboggeur se lance, la ligne est en jaune, et sans que je modifie quoique ce soit, si je refais Lecture, le programme lit correctement la ligne et passe à la suite comme si de rien était. Dans les options de VBE, j'ai pourtant bien coché l'option "Arrêt sur les erreurs non gérées".
Code : Sélectionner tout - Visualiser dans une fenêtre à part DateText = CDate(XOREncrypt(strText, "111111"))
Au final, je ne sais pas si le problème vient de la fonction de cryptage, de problème au niveau des formats de date ou encore de la façon dont je lis le fichier text (je suis peu acoutumé des fichiers text).
Désolé pour la longueur du message, mais j'essaie de vous donner un maximum d'éléments.
Merci pour vos éclairages.
Partager