Escape & UnEscape

Escape & UnEscape

Messagepar Michael DELIQUE » 06 Oct 2007 à 20:37

Code : Tout sélectionner
Function Escape(chaine As String) As String
   '   Equivalent de la fonction escape en Javascript.
   '   Code une chaîne pour permettre de la passer dans une URL.
   '    converti les caratere spéciaux en code hexadecimale
   
   
   'Déclaration des variables
   Dim caractere As String
   Dim i As Integer 

       On Error Goto ErreurHandle
   
   Escape = ""
   
   For i = 1 To Len(chaine)
      caractere = Mid(chaine, i , 1)
      'détermine si c'est un caratere spécial
      If Instr("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+-_", caractere ) > 0 Then
         Escape = Escape + caractere
      Else
         Escape = Escape + "%" + Hex(Asc(caractere))
      End If
   Next
   Exit Function
ErreurHandle:
   Msgbox "("+Cstr(Getthreadinfo (1))+" Call by "+Cstr(Getthreadinfo(10))+")"+Chr(10)+"Erreur " + Str(Err) + " : "+Chr(10) + Cstr(Error)+". "+Chr(10)+"Ligne N° "+Cstr(Erl),16," ERREUR !"   
   Escape = ""
   Resume Next   
   Exit Function
End Function


Code : Tout sélectionner
Function UnEscape(chaine As String) As String
   
   '   Equivalent de la fonction unescape en Javascript.
   '   Décode une chaîne codée par la fonction escape et renvoie le résultat.
   '   converti les codes hexadecimaux en caracteres spécial
   '   Remarque : Ce codage permet de passer des paramètres par une URL.
   '
   
   'Déclaration des variables
   Dim caractere As String
   Dim i As Integer
   
   On Error Goto ErreurHandle
   
   UnEscape = ""
   
   'Parcours de la chaîne
   For i = 1 To Len(chaine)   
      caractere = Mid(chaine, i, 1)
      
          'Teste s'il s'agit d'un caractère spécial
      If caractere = "%" Then
         UnEscape = UnEscape + Uchr(Cint("&H" + Mid(chaine, i+1,2)))
         i = i + 2
      Else
         UnEscape = UnEscape + caractere
      End If
   Next
   Exit Function
ErreurHandle:
   Msgbox "("+Cstr(Getthreadinfo (1))+" Call by "+Cstr(Getthreadinfo(10))+")"+Chr(10)+"Erreur " + Str(Err) + " : "+Chr(10) + Cstr(Error)+". "+Chr(10)+"Ligne N° "+Cstr(Erl),16," ERREUR !"
   UnEscape = ""
   Resume Next   
   Exit Function   
End Function
Cordialement

Michael (SMS-Phobique)
----------------------------
"La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi."
Albert EINSTEIN
Avatar de l’utilisateur
Michael DELIQUE
Administrateur
Administrateur
 
Message(s) : 12183
Inscrit(e) le : 16 Déc 2004 à 10:36
Localisation : Paris/Cergy

Retour vers World Wide Web (Web)