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.
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.