Quoted-printable

Contenu du snippet

cette fonction décode les données codées en quoted printable

Source / Exemple :


Private Function Quoteprint(xx As String) As String
Dim Partie() As String
k = 0
old = 1
For i = 1 To Len(xx)
   If Mid(xx, i, 2) = vbCrLf Then
     ReDim Preserve Partie(k): Partie(k) = Mid(xx, old, i - old): k = k + 1: old = i
   End If
DoEvents
Next i

If k = 0 Then ReDim Preserve Partie(0): Partie(0) = xx
Dim sortie As String
For i = 0 To UBound(Partie)

     a = Partie(i)
     For k = 1 To Len(a)
         DoEvents
     
         If SafeChar(Mid(a, k, 1)) = True Or Mid(a, k, 1) = " " Or Mid(a, k, 1) = vbTab Then
            sortie = sortie & Mid(a, k, 1)
            GoTo 10
         End If
     
         If Mid(a, k, 1) = "=" And k < Len(a) Then
     
            sortie = sortie & Chr(CLng("&H" & Mid(a, k + 1, 2)))
            If Err.Number <> 0 Then
               Err.Clear
               GoTo 10
            End If
            k = k + 2
         End If
         On Error Resume Next
         If Mid(a, k, 1) = "=" And k = Len(a) Then
             sortie = sortie & vbCrLf
             GoTo 10
         End If
10
     Next k
DoEvents
Next i
Quoteprint = sortie

End Function
 
Function SafeChar(xx As String) As Boolean

Dim a(92) As Integer
For i = 0 To 27
a(i) = i + 33
Next i
For i = 28 To UBound(a)
a(i) = i + 34
Next i

For i = 0 To UBound(a)
If xx = Chr(a(i)) Then
SafeChar = True: Exit Function
End If
Next i
SafeChar = False
End Function

Conclusion :


j'essairai de mettre les commentaires après mais je pense pas qu'ils soient nécessaires.

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.