Page 1 sur 1

Escape & UnEscape

MessagePublié: 06 Oct 2007 à 20:37
par Michael DELIQUE
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